Dependency Track

Dependency Track - инструмент для управления уязвимостями в зависимостях проектов.

Образ в Auditor: registry.cybercodereview.ru/cybercodereview/security-images/dtrack:v1.0.0 Кастомный импортер в GitLab: cybercodereview/importers/dtrack.json

Dependency Track устанавливается в инфраструктуре компании как сервер, в который загружают зависимости проектов, разрабатываемых в Компании, в котором можно настроить различные фиды для сбора данных об уязвимостях зависимостей/компонентов.

Для Dependency Track не существует CLI утилит или агентов для управления им или реализации автоматизации. Поэтому был реализован сканер, который управляет Dependency Track по API.

С помощью данного сканера, если запускать его регулярно по расписанию, реализована полноценная интеграция ASOC с Dependency Track.

dtrack сканер может работать в двух режимах:

  1. Режим полного сканирования (full_scan) - в этом режиме сканер парсит зависимости проекта с помощью syft, далее загружает готовый SBOM в Dependency Track, запускает внутренний аудит на стороне Dependency Track, и, получив результат, формирует отчет об уязвимостях. При использовании этого режима сканер будет осуществлять поиск проекта в Dependency Track оперируя ссылкой на репозиторий в SCM. Если проект с подходящим названием не будет найден, он будет создан.

  2. Режим загрузки результатов в ASOC (vulns_upload) - здесь сканер не формирует отчет с зависимостями проекта сам (не строит SBOM). Он по названию проекта загружает из Dependency Track уже найденные уязвимости и формирует отчет.

Запуск задания аудитора с dtrack сканером:

// python3 app.py ---work_mode full_scan/vulns_upload

Все необходимые параметры для работы скрипта можно задать в виде переменных окружения, которые можно указать как на уровне настройки задания, так и как глобальные переменные, назначенные в docker-compose файле или в helm-чартах.

Переменные для dtrack сканера:

  • DT_API_KEY - API-ключа для авторизации в инсталляции Dependency Track

  • DT_API_HOST - API-ендпоинт Dependency Track формата "{scheme}:\\{domain}:{port}/api"

  • SEC_CODE_FOLDER - директория с анализируемым проектом

  • SEC_REPORT_FOLDER - директория для сохранения отчета с уязвимостями (по умолчанию должна быть /data)

  • REPORT_FILE_NAME - название отчета с уязвимостями (по умолчанию - dtrack_report.json)

Last updated