Введение
Прошло почти полгода с момента предыдущего релиза Dependency-Track v4.11 (о котором мы также писали в этой статье). 1 октября вышел новый релиз Dependency-Track v4.12.0, а на днях – релиз v4.12.1. Мы опробовали новый функционал и готовы рассказать о тех изменениях, которые показались нам наиболее интересными.
Этот релиз в основном был посвящен работе с тегами. Также был добавлен новый интерфейс для работы с нарушениями политик и изменены правила работы с API. Но обо всем по порядку.
![](https://habrastorage.org/getpro/habr/upload_files/dc9/eb5/e43/dc9eb5e4310925778804d59ac7b1a4bd.jpg)
Теги
Алерты могут быть привязаны к проектам с определенными тегами.
Оповещения теперь могут приходить не только по проектам, но и по заданным тегам.
![Настройка оповещений по тегам Настройка оповещений по тегам](https://habrastorage.org/getpro/habr/upload_files/c71/96e/765/c7196e765fa7c4792a824bd0f5596196.png)
Проекты могут быть включены или исключены для валидации BOM через теги.
Таким образом можно включить (или отключить) валидацию BOM для всех проектов, за исключением тех, которым присвоены определенные теги.
![Настройка валидации BOM Настройка валидации BOM](https://habrastorage.org/getpro/habr/upload_files/a71/e83/eb1/a71e83eb10377c62c46841cb34ce3fd3.png)
Проекты могут быть тегированы как часть запроса загрузки BOM. Для запросов PUT/POST на api/v1/bom добавилось поле projectTags, чтобы сразу указывать теги при загрузке SBOM.
Поля с тегами на фронтенде сейчас предлагают автозаполнение.
Появилось новое представление Tag Management, благодаря которому можно управлять тегами, в том числе через REST API эндпоинты. Теперь можно отслеживать, сколько тегов существует и к каким проектам, политикам и алертам они привязаны. Проекты, политики и алерты могут быть отвязаны от тегов, а теги могут удаляться.
![Интерфейс вкладки Tags Интерфейс вкладки Tags](https://habrastorage.org/getpro/habr/upload_files/d9c/85a/db8/d9c85adb82e364df605db59318a6a9b4.png)
Интерфейс представляет собой список всех имеющихся в системе тегов, связанных с проектами, политиками, алертами (каждая сущность — отдельный столбец).
Можно открыть диалоговое окно, позволяющее:
Провалиться внутрь — доступно только для проекта;
Отвязать одну или несколько сущностей от данного тега;
-
Удалить тег.
Тег можно удалить даже в случае, если к нему привязаны другие сущности (то есть необязательно отвязывать от тега все прикрепленные к нему проекты/алерты/политики, чтобы удалить его). Для удаления необходимо добавить пользователю или команде право TAG_MANAGEMENT. По умолчанию , администратор системы не имеет данных прав, так что после обновления Dependency-Track на новую версию это право нужно добавить вручную.
![Добавление права TAG_MANAGEMENT Добавление права TAG_MANAGEMENT](https://habrastorage.org/getpro/habr/upload_files/b1f/13a/5a8/b1f13a5a8791c6d9cdc22bfba18e59ec.png)
После добавления прав необходимо заново осуществить вход в систему, затем можно удалить тег.
![Удаление тега Удаление тега](https://habrastorage.org/getpro/habr/upload_files/a3c/848/515/a3c8485158af53111299ac85cfeef9e4.png)
Работа с политиками
-
Глобальный интерфейс аудита нарушений политик. Аналогично глобальному представлению уязвимостей из версии 4.11.0 в этом релизе был добавлен интерфейс для работы с нарушениями политик.
Интерфейс для работы с нарушениями политик
Появилась возможность поиска по следующим полям:
по типу нарушения (Fail, Warn, Info),
по типу риска (License, Security, Operational),
по статусу анализа (Not Set, Rejected, Approved),
по датам появления,
по названию политики, лицензии, компоненту и имени проекта,
по срабатываниям конкретных политик, заведенных вами в Dependency-Track.
Увы, проблемы с долгой загрузкой остаются. Как и в случае с интерфейсом для уязвимостей, загрузка занимает значительное время — в среднем 46 секунд для объема нарушений, равного 44912 срабатываниям.
![](https://habrastorage.org/getpro/habr/upload_files/802/525/d96/802525d96afbee1b694ce7e74d7ab80c.png)
Добавлена поддержка политик на основании EPSS.
EPSS (Exploit Prediction Scoring System — прогноз эксплуатации уязвимости) позволяет предсказать, насколько вероятна эксплуатация той или иной уязвимости.
![Пример политики с настроенным EPSS и критической уязвимостью Пример политики с настроенным EPSS и критической уязвимостью](https://habrastorage.org/getpro/habr/upload_files/cf1/087/5b7/cf10875b7893c9461ff7e8bbd31bba62.png)
Ранее для каждого проекта уже существовала система предсказания эксплуатации на основании графика EPSS / CVSS. Чем ближе уязвимость к верхнему правому краю графика, тем более она опасна и тем выше вероятность, что она будет проэксплуатирована.
![График EPSS и CVSS в тестовом проекте DVJA График EPSS и CVSS в тестовом проекте DVJA](https://habrastorage.org/getpro/habr/upload_files/e84/44e/dcf/e8444edcf33f4e655935d127e3b840e8.png)
Поэтому наличие условий в политике, по которым можно выставить отслеживание EPSS, является очень хорошей помощью в триаже уязвимостей, особенно если EPSS прописан в связке с критичностью уязвимости.
Изменения в API
Ручка GET /v1/bom/token/{uuid} объявлена как устаревшая (deprecated), вместо неё предлагается использовать /v1/event/token/{uuid}.
Аналогично с ручкой GET /api/v1/tag/{policyUuid}, можно использовать вместо неё GET /api/v1/tag/policy/{uuid} в своих интеграциях.
Модернизация. Технологический стек Dependency-Track был обновлен – c Swagger v2 на OpenAPI v3. В связи с этим описание API доступно по новому адресу: <hostname>/api/openapi.json).
Добавлена аутентификация в бейджи.
Бейдж (badge) – это SVG-значок с информацией о состоянии проекта (подробнее здесь.) На основании анализа Dependency-Track его можно загружать в репозиторий с оригинальным проектом через API.
![Бейджи для компонентов Бейджи для компонентов](https://habrastorage.org/getpro/habr/upload_files/e17/3a9/f35/e173a9f358b2ba413c7323ea225e8cb5.png)
![Бейджи для политик Бейджи для политик](https://habrastorage.org/getpro/habr/upload_files/901/864/5ad/9018645adb6ef438c90e33d6b80b588b.png)
Ранее Dependency-Track мог выгружать информацию о нарушениях политик и о количестве уязвимостей без аутентификации, но это создавало проблемы для безопасности проекта, поэтому по умолчанию эта функция была отключена. В этом релизе неавторизованный доступ был помечен как устаревший. Сейчас для того, чтобы загрузить бейдж, необходимо сделать следующее:
-
Выдать команде, ответственной за проект, право VIEW_BADGES;
Назначение права VIEW_BADGES Создать API-ключ команды для запрашивания бейджа. Его можно использовать в заголовке X-API-Key или в параметре apiKey в URI;
Использовать ключ в HTML или в Markdown (примеры можно посмотреть здесь)
Это можно объединить с контролем доступа к портфелю проектов, так что по ключу можно получить доступ к Badges подмножества проектов. Ссылка на полную документацию здесь.
Дополнительные изменения
Кроме описанных выше обновлений, в релиз Dependency-Track v4.12.0. были добавлены:
Модернизация. Dependency‑Track переехал с Java 17 на Java 21, с Java EE на Jakarta EE 10, с Jetty 10 на Jetty 12. Про переход со Swagger v2 на OpenAPI v3 мы упомянули выше.
Если Dependency‑Track установлен в k8s и вы используете read‑only файловую систему, контейнер frontend не сможет запуститься после обновления. Подробнее: frontend/#940.
Новый способ обработки SBOM «BOM Processing V2», о котором мы писали в прошлой статье по v4.11, сейчас настроен по умолчанию и является единственной доступной опцией.
Добавлен новый тип нотификации BOM_VALIDATION_FAILED — теперь в случае ошибки валидации BOM отправляется уведомление с InvalidBomProblemDetails.
При создании проекта теперь можно сразу привязать его к команде:
![Добавление команды при создании проекта Добавление команды при создании проекта](https://habrastorage.org/getpro/habr/upload_files/fd8/dfd/658/fd8dfd65877942bd0d599780ee884a39.png)
Подводя итог
За три недели после релиза Dependency‑Track v4.12.0 в GitHub проекта не появилось критических issue. К тому же вышла версия 4.12.1 с небольшими исправлениями, и мы рекомендуем вам переходить сразу на нее.
Мы считаем развитие в сторону менеджмента тегов интересным решением, а интерфейс работы с нарушенными политиками — логичным продолжением после такого же интерфейса в версии 4.11.