Справочник

Интеграция с CI/CD

Запуск сканирований ScanSuite из конвейера сборки.

Сканирования ScanSuite запускаются из конвейера сборки через интерфейс командной строки. Конвейер отправляет задание на сервер ScanSuite; сервер выполняет работу на своих воркерах — сборочные агенты остаются свободны.

Что и когда запускать

Полный анализ на каждый коммит редко оправдан. Рабочее разделение:

ТриггерРекомендуемое сканирование
Pull requestsast_quick плюс secrets. Достаточно быстро, чтобы не раздражать, а секреты — та уязвимость, которую больше всего хочется поймать до слияния.
Слияние в mainmlsast в инкрементальном режиме. Повторно анализируется только изменившееся, поэтому AI-анализ на каждый коммит остаётся доступным по стоимости.
Ночью или еженедельноПолный набор — mlsast с проверкой достижимости, dep_checks, iacs_kics.
РелизДинамическое сканирование развёрнутой тестовой среды.

Инкрементальный режим — ключ к экономике конвейера. Сначала выполните одно полное сканирование, чтобы появилась контрольная точка, а затем переведите конвейер на --mode incremental — см. раздел «Периодические и инкрементальные сканирования».

Шаг для pull request

bash
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 существует для автоматизации; во всех остальных случаях лучше интерактивный запрос.

Инкрементальный шаг при слиянии

bash
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