848.19K
AI

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
English     Русский Правила