Semgrep
Overview
Заголовок раздела «Overview»Semgrep — это SAST-сканер (Static Application Security Testing), который анализирует исходный код и ищет уязвимости, небезопасные паттерны и нарушения best practices на основе правил (rules).
Requirements
Заголовок раздела «Requirements»- В Sequences перед этим инструментом должен быть добавлен job Code Downloader
How it works
Заголовок раздела «How it works»TRAIO запускает Semgrep одной командой и сохраняет JSON-отчёт в /data/$REPORT_FILE_NAME.
Команда запуска:
- Semgrep сканирует текущую директорию
./ - Правила задаются через переменную
SEC_SEMGREP_CONFIG - Исключаемые пути задаются через
SEC_SEMGREP_EXCLUDE - Отчёт сохраняется в JSON через
--json --output /data/$REPORT_FILE_NAME --metrics=offотключает сбор/отправку метрик Semgrep
Сканер использует официальный docker-образ:
semgrep/semgrep:latest
Пример команды:
semgrep scan --config $SEC_SEMGREP_CONFIG --exclude $SEC_SEMGREP_EXCLUDE --json --output /data/$REPORT_FILE_NAME --metrics=off ./
Variables
Заголовок раздела «Variables»| Name | Default value | Required | Description |
|---|---|---|---|
| REPORT_FILE_NAME | semgrep.json | false | Имя JSON-файла отчёта, который будет создан в /data/. |
| SCAN_TYPE | Semgrep JSON Report | false | Тип скана для отображения/парсинга в TRAIO. |
| SEC_SEMGREP_CONFIG | p/default | false | Набор правил Semgrep. Можно указать Semgrep Registry pack (например p/default, p/ci) или путь/URL к собственному конфигу. |
| SEC_SEMGREP_EXCLUDE | /tests | false | Путь/паттерн, который Semgrep должен исключить из анализа (например тесты). |
- Про
--quiet: если нужно меньше шума в логах, можно добавить--quiet. - Про исключения:
--excludeлучше задавать одним значением. Если нужно исключить много путей, обычно удобнее запускать Semgrep с несколькими--excludeили использовать конфиг Semgrep.
- Semgrep Documentation: https://semgrep.dev/docs/
- Semgrep Registry: https://semgrep.dev/explore
- Semgrep GitHub: https://github.com/semgrep/semgrep