❓ Raven (Risk Analysis and Vulnerability Enumeration for CI/CD) - инструмент для обеспечения безопасности, предназначенный для массового сканирования рабочих процессов CI в GitHub Actions. Сохраняет обнаруженные данные в базе данных Neo4j.
🔺Здесь можно ознакомиться с популярными репозиториями, в которых были обнаружены уязвимости с помощью Raven.
😮ВозможностиИнструмент обладает тремя основными функциями:
download,
index и
report.
1⃣Download - позволяет загрузить рабочие процессы и действия, необходимые для анализа. Рабочие процессы можно загрузить как для нескольких аккаунтов (пользователей/организаций) одновременно, так и для общедоступных репозиториев GitHub, отсортированных по количеству звёзд. Выполнение этого шага является обязательным условием для анализа рабочих процессов.
2⃣Index - преобразование загруженных данных в графовую базу данных Neo4j. Этот процесс включает в себя установление связей между рабочими процессами, действиями, заданиями, этапами и т. д.
3⃣Report - простой способ сообщать о подозрительных результатах. Например, данный процесс можно внедрить в процесс непрерывной интеграции для pull requests и запускать там.
🔺УстановкаRaven использует два основных Docker-контейнера: Redis и Neo4j. Команда
make setup
запустит
docker compose
.
pip3 install raven-cycode
#OR
git clone https://github.com/CycodeLabs/raven.git
cd raven
make setup
👨💻ИспользованиеДоступ ко всем рабочим процессам и действиям, связанным с учетной записью.
raven download account --token $GITHUB_TOKEN --account-name microsoft --account-name google --debug
Сканирование общедоступных репозиториев GitHub.
raven download crawl --token $GITHUB_TOKEN --min-stars 100 --max-stars 1000 --debug
После завершения процесса загрузки или в случае прерывания с помощью сочетания клавиш Ctrl+C необходимо приступать к индексированию всех рабочих процессов и действий в базе данных Neo4j.
raven index --debug
На данном этапе можно создать отчёт с помощью библиотеки запросов.
raven report --severity high --tag injection --tag unauthenticated