Интеграция с CI/CD
Запуск сканирований ScanSuite из конвейера сборки.
Сканирования ScanSuite запускаются из конвейера сборки через интерфейс командной строки. Конвейер отправляет задание на сервер ScanSuite; сервер выполняет работу на своих воркерах — сборочные агенты остаются свободны.
Что и когда запускать
Полный анализ на каждый коммит редко оправдан. Рабочее разделение:
| Триггер | Рекомендуемое сканирование |
|---|---|
| Pull request | sast_quick плюс secrets. Достаточно быстро, чтобы не раздражать, а секреты — та уязвимость, которую больше всего хочется поймать до слияния. |
| Слияние в main | mlsast в инкрементальном режиме. Повторно анализируется только изменившееся, поэтому AI-анализ на каждый коммит остаётся доступным по стоимости. |
| Ночью или еженедельно | Полный набор — mlsast с проверкой достижимости, dep_checks, iacs_kics. |
| Релиз | Динамическое сканирование развёрнутой тестовой среды. |
Инкрементальный режим — ключ к экономике конвейера. Сначала выполните одно полное сканирование, чтобы появилась контрольная точка, а затем переведите конвейер на --mode incremental — см. раздел «Периодические и инкрементальные сканирования».
Шаг для pull request
python scansuite-scan-git.py \
-s "$SCANSUITE_URL" \
-u "$SCANSUITE_USER" \
-p "$SCANSUITE_PASSWORD" \
-l java \
-g "$CI_REPOSITORY_URL" \
-b "$CI_COMMIT_BRANCH" \
--engagement-id "$SCANSUITE_ENGAGEMENT_ID" \
--scanners sast_quick,secrets \
--mode onceПередавайте пароль из хранилища секретов вашей CI, а не литералом в описании конвейера. Ключ -p существует для автоматизации; во всех остальных случаях лучше интерактивный запрос.
Инкрементальный шаг при слиянии
python scansuite-scan-git.py \
-s "$SCANSUITE_URL" \
-u "$SCANSUITE_USER" \
-p "$SCANSUITE_PASSWORD" \
-l java \
-g "$CI_REPOSITORY_URL" \
-b main \
--engagement-id "$SCANSUITE_ENGAGEMENT_ID" \
--scanners mlsast \
--mode incrementalПереиспользуйте один и тот же идентификатор engagement, URL репозитория, конфигурацию сканеров, ветку и язык между запусками. Сервер ищет контрольную точку для сравнения именно по ним; измените одно — и получите полное сканирование.
Альтернативы запуску из конвейера
Управлять сканированиями из CI вовсе не обязательно. Два серверных варианта покрывают большинство сценариев, ради которых ставят триггер в конвейере, и не требуют шага сборки:
- Monitor Changes — сервер ежечасно проверяет ветку и сканирует только изменившееся. Настраивается один раз из консоли или ключом
--mode monitor-changes. - Сканирования по расписанию — ежедневные, еженедельные или ежемесячные запуски для тяжёлых движков, которым не место в сборке.
Как получить результаты
Уязвимости попадают в раздел Управление уязвимостями, а для движков, которые туда выгружаются, — и в DefectDojo. Отчёты можно скачать из раздела истории сканирований, а записи об уязвимостях выгружаются в XLSX.
Настройка ключей API и AI-провайдера, используемых этими сканированиями, описана в разделах Настройка API-ключей для внешних систем и AI-провайдеры и стоимость.
Проверено: 2026-08-16