Gitlab Semgrep
Описание
Заголовок раздела «Описание»Gitlab Semgrep — это статический анализатор кода (SAST), интегрированный в TRAIO и основанный на официальном GitLab Semgrep Analyzer. Поддерживает анализ более 15+ языков программирования с использованием актуальных правил-паттернов GitLab.
Поддерживаемые языки
Заголовок раздела «Поддерживаемые языки»Gitlab Semgrep в TRAIO поддерживает сканирование следующих языков:
- C# (.NET)
- C
- C++
- Go
- Kotlin
- Java
- JavaScript
- Objective-C
- PHP
- Python
- Ruby
- Rust
- Scala
- Swift
- TypeScript
Актуальный и полный список поддерживаемых языков — в документации Gitlab Semgrep
Ключевые возможности
Заголовок раздела «Ключевые возможности»- Анализ кода на уязвимости по правилам GitLab SAST
- Быстрый запуск без ручной настройки (“из коробки”)
- Поддержка мульти-языковых проектов
- Результаты в едином формате для отчётов и дашбордов TRAIO
Как работает
Заголовок раздела «Как работает»Сканер использует официальный docker-образ:
registry.gitlab.com/gitlab-org/security-products/analyzers/semgrep:latestПри запуске выполняется команда:
/analyzer runif [ ! -f "$REPORT_FILE_NAME" ]; then touch "$REPORT_FILE_NAME" echo "Created $REPORT_FILE_NAME manually."fimv $REPORT_FILE_NAME /dataПеременные окружения (env)
Заголовок раздела «Переменные окружения (env)»| Имя | Значение по умолчанию | Обязательное | Описание |
|---|---|---|---|
| REPORT_FILE_NAME | gl-sast-report.json | Нет | Имя итогового отчёта |
| SCAN_TYPE | GitLab Semgrep | Нет | Тип сканирования для парсинга |
| SEARCH_MAX_DEPTH | 20 | Нет | Глубина обхода директорий |
| REPOSITORY | (указывается автоматический) | Да | Путь или URL к проекту |
Настройки и параметры
Заголовок раздела «Настройки и параметры»- allow_failure: True — ошибки сканера не прерывают пайплайн
- overwrite_entrypoint: True — позволяет явно задавать run_command
- timeout: 10 минут (можно увеличить при необходимости)
Кастомизация и расширенные настройки
Заголовок раздела «Кастомизация и расширенные настройки»- Собственные rulesets: можно указать свой набор правил через переменную
SEMGREP_RULES(ссылка или путь к YAML/JSON) - Глубина и скорость: регулируется через
SEARCH_MAX_DEPTH,.semgrepignore,SEMGREP_EXCLUDE - Ограничение времени: переменная
SEMGREP_TIMEOUT(например, 600 секунд) - Дополнительные параметры: через
SEMGREP_ADDITIONAL_ARGS(например,--strict,--max-target-bytes)
Подробнее о кастомизации — Customize rulesets (GitLab) и Semgrep Registry.
Ссылки и источники
Заголовок раздела «Ссылки и источники»Типовые сценарии использования
Заголовок раздела «Типовые сценарии использования»- Быстрый старт SAST-анализа для любого проекта (без ручной настройки)
- Проверка кода на соответствие стандартам безопасности и compliance
Примечания
Заголовок раздела «Примечания»- Итоговый отчёт всегда сохраняется в /data и доступен для последующей обработки в TRAIO