# Dependency Track

**Образ в Auditor**: `registry.cybercodereview.ru/cybercodereview/security-images/dtrack:v1.0.0`\
**Кастомный импортер в GitLab**: [cybercodereview/importers/dtrack.json](https://gitlab.cybercodereview.ru/cybercodereview/importers/-/blob/main/dtrack.json)

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

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

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

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

1. Режим полного сканирования (full\_scan) - в этом режиме сканер парсит зависимости проекта с помощью syft, далее загружает готовый SBOM в Dependency Track, запускает внутренний аудит на стороне Dependency Track, и, получив результат, формирует отчет об уязвимостях. \
   При использовании этого режима сканер будет осуществлять поиск проекта в Dependency Track оперируя ссылкой на репозиторий в SCM. Если проект с подходящим названием не будет найден, он будет создан.
2. Режим загрузки результатов в ASOC (vulns\_upload) - здесь сканер не формирует отчет с зависимостями проекта сам (не строит SBOM). Он по названию проекта загружает из Dependency Track уже найденные уязвимости и формирует отчет.&#x20;

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

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

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

Переменные для 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)
