Интеграция с DefectDojo
Стингрей предоставляет скрипт, написанный на языке Python, для экспорта результатов сканирования в JSON-файл в формате DefectDojo generic findings и последующего импорта данного файла в проект DefectDojo.
Параметры запуска скрипта
Для запуска скрипта необходимо указать ряд параметров как со стороны Стингрей, так и со стороны DefectDojo.
Обязательные параметры со стороны Стингрей:
--login
— имя пользователя Стингрей (логин);--password
— пароль пользователя Стингрей;--url
— сетевой адрес системы Стингрей, который в конце должен включать в себя элемент /rest, например, https://saas.stingray.ru/rest;--scan_id
— ID (идентификатор) сканирования в Стингрей. Результаты данного сканирования будут экспортированы в DefectDojo.
Обязательные параметры со стороны Defect Dojo:
--dojo_url
— URL сервера DefectDojo;--dojo_key
— DefectDojo API v2 key. Значение API v2 key можно получить в настройках пользователя DefectDojo, выбрав соответствующий пункт в выпадающем меню в правом верхнем углу.
Значение API v2 key можно увидеть на открывшейся странице.
--engagement_id
— engagement id в DefectDojo. При интеграции Стингрей с DefectDojo применяется следующее правило: один проект в Стингрей – один engagement в DefectDojo. Такой подход позволяет наиболее корректно импортировать результаты из Стингрей в DefectDojo.
Опциональные параметры:
-
--file_name
— имя, с которым будет локально сохранен JSON-файл на компьютере, на котором запускается скрипт. По умолчанию используется значениеstingray_scan
, в этом случае полное имя файла будет выглядеть так:stingray_scan_{scan_id}_defectDojo_format.json
. Если скрипт запускается в директории, где нет прав на запись, в этом параметре можно указать полный путь к JSON-файлу; -
--dojo_environment
— окружение, для которого был создан просканированный артефакт. Этот параметр позволяет при импорте результатов разделить в DefectDojo найденные дефекты по стадиям жизненного цикла программного обеспечения. Значение параметра по умолчанию: ''. Возможные варианты:Default
,Development
,Lab
,Pre-prod
,Production
,Staging
,Test
; -
--dojo_min_severity
— минимальный уровень серьезности дефектов, которые будут импортированы в DefectDojo. Значение параметра по умолчанию:'Info'
. Возможные варианты:Info
,Low
,Medium
,High
,Critical
.
Чтобы импортировать в DefectDojo результаты из проекта в Стингрей, результаты которого еще ни разу не импортировались, нужно создать новый engagement в DefectDojo. Для этого выберите пункт меню Add New Interactive Engagement.
Заполните всю необходимую информацию об engagement на открывшейся странице. В поле Name рекомендуется указать имя проекта в Стингрей.
Пример запуска скрипта
Перед первым запуском необходимо установить пакеты pip, в том числе высокоуровневую обвязку над Стингрей, написанную на языке Python и включающую в себя mdast-cli-core версии 2022.8.12 или выше:
pip install -r requirements.txt
После этого можно запускать скрипт, например, с такими параметрами:
python3 stingray-defectdojo/import_scan.py \
-u https://saas.stingray/rest \
-l admin \
-p P@ssw0rd \
-id 1337 \
--file_name buggen \
--dojo_url https://dojo.com \
--dojo_key D0j0S3cr3t \
--engagement_id 1 \
- env Staging
Результаты работы скрипта
После завершения выполнения скрипта результаты его работы можно посмотреть в DefectDojo.
Выберите engagement, соответствующий проекту, к которому относятся результаты сканирования.
Выберите необходимый результат сканирования из списка импортированных.
На экране появится подробная информация о результатах сканирования со списком обнаруженных дефектов, где Vulnarability Id соответствует ID дефекта в Стингрей.
Нажмите в поле Name название дефекта, чтобы просмотреть подробную информацию о нем.