Похожие презентации:
OpenGrep: статический анализ кода в CI/CD
1.
OpenGrepОткрытый статический анализ исходного кода
для поиска уязвимостей и дефектов
Архитектурный комитет
2.
Бизнес-цельНаходить уязвимости и дефекты в исходном коде до попадания изменений в
основную ветку.
Задачи
OpenGrep в процессе разработки:
• проверяет pull request и коммиты в CI/CD;
• использует готовые и собственные YAML-правила;
• выдаёт понятные сработки с файлом и строкой кода;
• передаёт результаты в DefectDojo для дальнейшей работы.
3.
РешениеКак работает OpenGrep
Как встроить
• получает исходный код из репозитория в
рамках CI/CD job;
• разбирает код и сопоставляет его с правилами
безопасности;
• при необходимости выполняет taint-анализ
внутри файла;
• формирует отчёт в JSON или SARIF с
указанием места сработки.
• добавить OpenGrep в pipeline GitLab CI
или GitHub Actions;
• запустить scan на изменённых или всех
исходных файлах;
• сохранить SARIF/JSON как артефакт
pipeline;
• импортировать сработки в DefectDojo
через API или загрузку отчёта.
Сканирование не изменяет виртуальные машины и не требует агента на сервере.
4.
Архитектура решенияРепозиторий
Исходный код
Pull request /
commit
CI/CD
→
GitLab CI
GitHub Actions
Результат
OpenGrep
→
Правила
SAST и taintанализ
→
SARIF / JSON
файл и строка
сработки
DefectDojo
→
Импорт
результатов
управление
дефектами
OpenGrep работает как отдельный CLI-шаг pipeline. Состояние дефектов и история
исправлений хранятся в DefectDojo.
5.
Возможности платформыOpenGrep — единый CLI-инструмент для статического анализа кода
Языки
30+ языков, включая Python, Java,
JavaScript, Go, PHP, C/C++, Rust, Kotlin и
Terraform
Отчёты
JSON и SARIF для загрузки в CI/CD и
DefectDojo
Правила
совместимость с правилами Semgrep и
возможность писать собственные YAMLправила
Поставка
самодостаточные бинарные файлы,
установка без отдельного Pythonокружения
Анализ
поиск паттернов, SAST-проверки и
intrafile taint-анализ
Лицензия
open source под LGPL 2.1 с открытым
развитием проекта
6.
Анализ решенияПотребности
Недостатки
• единый набор правил для команд разработки;
• регулярный запуск в CI/CD на каждый pull
request;
• порог качества, блокирующий критичные
сработки;
• передача результатов в DefectDojo.
• у OpenGrep нет собственной истории
сканирований: это CLI-инструмент, а не система
хранения результатов;
• историю, статусы и повторные проверки
нужно вести в DefectDojo;
• нет готового полноценного web-интерфейса
для аналитики.
Проблемы и риски
• legacy-проекты на старом PHP могут требовать отдельных правил и проверки качества анализа;
• устаревший синтаксис и конструкции PHP могут давать неполное покрытие или шумные результаты;
• при отсутствии дисциплины CI/CD сработки могут не попадать в DefectDojo.
7.
ОбсуждениеВопросы по внедрению OpenGrep в CI/CD
и загрузке сработок в DefectDojo
Программное обеспечение