Профили сканирований
Профили сканирования позволяют вам сконфигурировать запуск различных сканеров, их параметры и порядок работы.
Внимание
Профили сканирования доступны только в Enterprise версии Vampy.
Профили сканирования могут быть запущены как к отдельным репозиториям, так и к продуктам.
Для того чтобы увидеть список профилей для сканирования, перейдите в раздел "Оркестрация" в левой панели
Создание профиля сканирования
Для того чтобы создать профиль сканирования, необходимо нажать кнопку "Создать" и ввести имя профиля
Теперь можно добавлять сканеры в профиль сканирования. Для этого нажмите кнопку "Добавить сканер" и в поле "Сканер" выберите сканер, который необходимо запускать
Сканер успешно добавлен. Если вам необходимо добавить еще один сканер в профиль сканирования, повторите вышеописанные действия.
Для того чтобы сохранить созданный профиль, необходимо нажать "Сохранить"
Теперь вы можете использовать созданный профиль и запускать сканирования из web интерфейса, API или Vampy Cli, используя slug профиля
Кастомизация профиля и параметров сканирований
Если вам необходимо отредактировать предустановленные настройки для предустановленных сканеров, то вы можете сделать это, изменив:
- Используемый образ сканера
- Команду запуска и параметры работы
- Определить дополнительные переменные окружения
В командах сканера доступны переменные окружения, такие как ${RESULTS_FILE}, ${SRC_DIR} и другие.
Для того чтобы изменения применились, не забудьте нажать кнопку "Сохранить"
Добавление в профиль сканирований коммерческих сканеров
Помимо возможности запускать предустановленные сканеры, вы также можете использовать интеграции с коммерческими сканерами, для того чтобы запускать и автоматически загружать их результаты сканирований в Vampy.
Внимание
Для этого необходимо в первую очередь, настроить интеграцию с выбранным сканером
Для добавления коммерческого сканера в профиль сканирования нажмите "Добавить сканер" и в меню "Сканер" выберите необходимую интеграцию:
Вы также, как и для предустановленных сканеров, можете настроить параметры запуска сканера.
Профиль по умолчанию
По умолчанию в Vampy есть профиль сканирований Initial Profile, который последовательно запустит:
- semgrep
- Trivy FileSystem
- Trufflehog
- Gitleaks
Оркестрация кастомного сканера
Механизм оркестрации позволяет запустить и автоматически отправить результаты сканирований произвольных утилит. Это может быть даже ваш самописный сканер.
Для того чтобы это сделать необходимо:
- Добавить в профиль сканер с типом "Custom"
- Указать путь до Docker-образа с этим сканером
- Указать команду на запуск (см. справочник переменных окружения)
- Выбрать какой парсер должен использовать Vampy, чтобы распарсить результаты. Например, SARIF или SBOM
Сохранить изменения
Требования к Docker образу
Для того чтобы успешно оркестировать сканер, необходимо чтобы образ удовлетворял ряду требований. Образ должен иметь:
curltar- пустой
ENTRYPOINT []
Параметр scannerOptions
Параметр scannerOptions позволяет передать дополнительные аргументы командной строки при запуске сканирования через API или vampy-cli. Механика работы зависит от того, запускается отдельный сканер или профиль.
Запуск отдельного сканера
При запуске конкретного сканера (без профиля) у каждого предустановленного сканера есть два шаблона команды:
- Команда по умолчанию — используется, когда
scannerOptionsне передан. Содержит параметры, подобранные для типичного сценария. - Команда с пользовательскими опциями — используется, когда
scannerOptionsзадан. Значение подставляется в определённое место шаблона (у каждого сканера оно своё).
Например, для Semgrep:
# Команда по умолчанию (scannerOptions не задан)
semgrep scan --disable-version-check --json \
--output "${RESULTS_FILE}" --config=p/owasp-top-ten --metrics=off "${CURRENT_DIR}"
# scannerOptions="--config=p/ci --verbose"
semgrep scan --disable-version-check --json \
--output "${RESULTS_FILE}" --config=p/ci --verbose "${CURRENT_DIR}"
Пример запуска через API:
curl -X 'POST' \
'https://vampy.example.com/api/ext/v1/scan/' \
-H "Authentication: $VAMPY_API_TOKEN" \
-H 'Content-Type: multipart/form-data' \
-F 'repository=my-repo' \
-F 'scanner=SEMGREP' \
-F 'scannerOptions=--config=p/ci --verbose'
Пример запуска через vampy-cli:
Запуск профиля с scannerOptions
При запуске профиля сканирования scannerOptions подставляется в команды тех сканеров профиля, где в команде присутствует плейсхолдер %(custom_options)s.
Чтобы использовать эту возможность в кастомном профиле:
- Откройте профиль сканирования
- В команде нужного сканера добавьте
%(custom_options)sв то место, куда должны подставляться аргументы - Сохраните профиль
Например, если команда сканера в профиле выглядит так:
то при запуске с scannerOptions="--severity high --timeout 300" итоговая команда будет:
Если scannerOptions не передан, плейсхолдер заменяется на пустую строку.
Ограничения
scannerOptions— это аргументы командной строки, не переменные окружения. Запись видаVAR=valueне создаст переменную.- В значении
scannerOptionsможно использовать переменные окружения для подстановки — например,${SRC_DIR}или${ARTIFACT_REFERENCE}. - В итоговой команде запрещены слова
rm,chrootи символ;.






