Перейти к содержимому
traio.kz

Semgrep

Semgrep — это SAST-сканер (Static Application Security Testing), который анализирует исходный код и ищет уязвимости, небезопасные паттерны и нарушения best practices на основе правил (rules).

  • В Sequences перед этим инструментом должен быть добавлен job Code Downloader

TRAIO запускает Semgrep одной командой и сохраняет JSON-отчёт в /data/$REPORT_FILE_NAME.

Команда запуска:

  1. Semgrep сканирует текущую директорию ./
  2. Правила задаются через переменную SEC_SEMGREP_CONFIG
  3. Исключаемые пути задаются через SEC_SEMGREP_EXCLUDE
  4. Отчёт сохраняется в JSON через --json --output /data/$REPORT_FILE_NAME
  5. --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 ./

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.