- PVSM.RU - https://www.pvsm.ru -
Всем привет! Сегодня хочу рассказать вам про свой инструмент [1], который помогает автоматически выгружать отчёты из OWASP Dependency Track [2]. Этот инструмент я разработал с целью упростить процесс работы с отчётами и сделать его доступным даже для тех, кто ранее мог испытывать трудности с анализом данных напрямую из Dependency Track.
OWASP Dependency Track — мощный инструмент композиционного анализа, который позволяет отслеживать зависимости проекта и выявлять уязвимые из них. Однако штатных средств для выгрузки данных в нем нет. Пользователи либо работают через веб-интерфейс, либо прибегают к помощи сторонних решений класса ASOC (Application Security Orchestration and Correlation) / ASPM (Application Security Posture Management) / VM (Vulnerability Management).
Но что делать, если вам нужно просто и быстро экспортировать данные для анализа или для передачи руководству в удобном формате? Например:
Подготовить таблицу с результатами сканирования для аудита.
Собрать отчёт для compliance.
Быстро проанализировать результаты разового сканирования внутреннего проекта.
Вот здесь и приходит на помощь dt-report-generator [1].
dt-report-generator предоставляет простой и интуитивно понятный веб-интерфейс. Вы заполняете несколько параметров через форму и мгновенно получаете отчёт в одном из поддерживаемых форматов.
Основные возможности:
Поддержка форматов: выгрузка отчётов доступна в формате .docx (для текстовых отчётов) и .xlsx (для табличных данных).
Совместимость: инструмент работает с версиями OWASP Dependency Track начиная с v4.10.0. Не исключено, что и с предыдущими версиями будет отлично работать (если не было изменений в API), но не тестировал - не пишу.
Гибкость в развертывании: вы можете развернуть dt-report-generator как локальный сервис или установить его в инфраструктуре вашей организации. Это особенно полезно для компаний, которые часто проводят разовые сканирования.
Когда это полезно:
Если у вашей команды нет дополнительных инструментов менеджмента уязвимостей, либо их использование нецелесообразно. Например, лицензии таких решений могут быть дорогими, а для разового сканирования внутреннего проекта достаточно простого и бесплатного инструмента.
Когда требуется автоматизация процесса генерации отчётов для аудитов, compliance или других проверок.
Давайте на примере разберем кейс использования "от и до":
Вы с утра завариваете себе кофе, листаете хабр и натыкаетесь на данную статью. С диким интересом читаете статью до самого конца, допиваете кофе и бежите в комнату. Открываете ноутбук (предположим, что у вас настроенная экосистема устройств), в браузере уже открыта статья. Первым дело вы отправляете ссылку на статью друзьям, а далее переходите к пилоту инструмента, клацая по ссылке [1]. Изучив содержание репозитория и файл README, вы приступаете к делу.
Открыв терминал, клонируем репозиторий
git clone <https://github.com/denimoll/dt-report-generator.git>
С использованием Docker (инструкция по установке [3]) разворачиваем сервис
docker build -t dt-report:v1 . # собираем образ контейнера
docker run -d -p 5000:5000 dt-report:v1 # запускаем контейнер
В браузере переходим по адресу localhost:5000 [4] и видим сие чудо
Для получение отчёта заполняем форму и жмём "Get report"
URL - адрес вашего Dependency Track. Например, https://dependencytrack.org [5].
Token - API ключ (инструкция по получению [6])
Project - ID проекта (параметр Object Identifier в Project Details или идентификатор из URL после .../projects/)
Severities - интересующие уровни критичности
Report type - формат отчёта
Под капотом выполняется обращение к ручкам:
/api/v1/project/<id> # информация о проекте
/api/v1/component/project/<id> # используемые компоненты
/api/v1/vulnerability/project/<id> # уязвимости в компонентах
На выходе получаем примерно следующее:
docx-документ:
excel-документ:
Подзабыли о сервисе, ребутнули машину, хочется ещё. Не беда, просто запускаем существующий контейнер и побежали на localhost:5000 [4] снова.
docker start <container id или name> # запускает конейнер
Инструмент был выпущен совсем недавно и уже доступен для использования. Я открыт к вашим предложениям, идеям по улучшению и, конечно, сообщениям об ошибках.
На ближайшее будущее у меня есть несколько идей, как сделать dt-report-generator ещё лучше:
Форматы отчётов. Добавить новые форматы и/или скорректировать существующие.
Поиск проектов. Упростить поиск проектов через предоставленную ссылку и токен.
Дашборды с обзорной информацией. Визуализировать данные в виде различных графиков для наглядного анализа.
Приоритезация уязвимостей. Реализовать логику, которая поможет оценить, какие уязвимости требуют первоочередного исправления (идея уже в процессе разработки, и я надеюсь скоро представить её).
Безопасность. Прикрутить Dependabot [7]’а, добавить SAST проверки.
Релизная политика. Сформировать правила выпуска релизов и публиковать сразу Docker-образы.
Если инструмент найдет себе место в узком кругу пользователей, то буду дополнять информацию по часто задаваемым вопросам на GitHub (например, как решать распространенные проблемы при установке или использовании).
Спасибо за внимание и приятной работы с инструментом! 😊
Автор: denimoll
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/otchyot/402925
Ссылки в тексте:
[1] инструмент: https://github.com/denimoll/dt-report-generator
[2] OWASP Dependency Track: https://dependencytrack.org/
[3] инструкция по установке: https://docs.docker.com/engine/install/
[4] localhost:5000: http://localhost:5000
[5] https://dependencytrack.org: https://dependencytrack.org
[6] инструкция по получению: https://docs.dependencytrack.org/integrations/rest-api/
[7] Dependabot: https://github.com/dependabot
[8] Источник: https://habr.com/ru/articles/860536/?utm_source=habrahabr&utm_medium=rss&utm_campaign=860536
Нажмите здесь для печати.