Доброго времени суток!
PS: В прошлой статье забыл упомянуть о таком крайне важном инструменте, как OAST или SCP.
OAST - Open Source Application Security Testing. При внедрении DevSecOps, это, наверное самое важное. Ведь внедрение этого инструмента самое простое и безболезненное, а пользы от него довольно много. Актуальность анализа открытых источников связана с тем, что сложность современных приложений не позволяет разрабатывать все самим и с нуля. Использовать готовые библиотеки больше не признак лени, а острая необходимость.
Из инструментов стоит выделить инструмент Snyk. Компания, которая его разработала и поддерживает, следит за трендами в безопасности.
Скачиваем и получаем репорт в красивом виде.
Теперь перейдем к основной части этой статьи, инструменту для менеджмента уязвимостей, DefectDojo.
DefectDojo
Для управления разработкой и багфиксами во многих компаниях используются багтрекеры. Например, JIRA. Но писать все найденные уязвимости в JIRA руками, такое себе, поэтому была сделана JIRA для безопасников - DefectDojo. DefectDojo — это инструмент безопасности с открытым исходным кодом, который автоматизирует управление уязвимостями безопасности приложений. DefectDojo оптимизирует процесс тестирования безопасности приложений, предлагая такие функции, как импорт сторонних результатов проверок, слияние и удаление дубликатов, интеграцию с Jira, создание шаблонов, создание отчетов и многое другое.
Разработчики предоставляют различные варианты установки DefectDojo. Правильным считается использование бинарника - godojo. С его помощью DefectDojo устанавливается на диск как часть работающей ОС. Установщик обрабатывает запрошенную версию исходного кода и любые необходимые зависимости. Далее можно запустить docker compose и поднять всю систему в пару кликов.
Впрочем никто не мешает вам воспользоваться docker-compose из репозитория, получится то же самое.
Пощупать уже поднятый и наполненный сервис можно
Ссылка скрыта от гостей
. Именно на его основе мы рассмотрим основной функционал.1. Dashboard. Вкладка содержит информацию о найденных/закрытых уязвимостях, активных работах, риски.
2. Products. По названию понятно, что это список наших продуктов/проектов.
3. Engagements. Содержит в себе список проводимых работ, "мероприятий". Например, мануальный тест с использованием Burp, или автоматизированное сканирование с использованием Acunetix.
4. Findings. Она содержит в себе информацию о найденных уязвимостях. Для наполнения этой вкладки можно использовать как ручной ввод, так и загрузку отчетов, сгенерированных специальными приложениями. Их можно классифицировать по серьезности: Critical, High, Medium, Low, and Informational (Info).
5. Endpoints. Это тестируемые системы, определяемые IP-адресом или полным доменным именем.
6. Metrics. DefectDojo предоставляет визуализацию ряда метрик, чтобы помочь с отчетами, осведомленностью и иметь возможность быстро сообщать о позиции безопасности продуктов / типов продуктов.
Предусмотрены следующие представления метрик:
- количество открытых ошибок по месяцам
- количество принятых ошибок по месяцам
- количество открытых ошибок по неделям
- количество принятых ошибок по неделям
- табличные данные о 10 лучших продуктах по степени серьезности ошибок
- подробную разбивку всех обнаруженных ошибок
- открытые результаты
- Принятые найденные уязвимости
- Закрытые найденные уязвимости
- Тенденции количества открытых ошибок
- Тенденции количества принятых ошибок
- Возраст проблем.
8. Calendar. Обеспечивает просмотр всех “мероприятий”, происходящих в течение отображаемого месяца. Каждая запись является прямой ссылкой на страницу просмотра Engagement.
Для примера давайте пройдем весь путь по оформлению бага.
- Создаем новый продукт: Products -> Add Product. Заполняем все поля как вам нужно, я оставил значения по умолчанию.
2. Дальше нам нужно создать некоторое “мероприятие”. Например, ручная проверка. Для этого переходим в проект и выбираем вкладку Engagements->Add New Interactive Engagement.
Снова заполняем данные по необходимости, я выбрал по умолчанию. И вот мы создали “мероприятие”
3. Начинаем ручную проверку с Burp. Для этого создадим новый тест. Данные заполняем на ваше усмотрение.
4. Допустим мы находим XSS. Это нужно добавить.
Тут есть два варианта - New Finding, где мы заполняем все с нуля, либо Finding From Template, и такие часто встречающиеся уязвимости как XSS лучше оформлять в Template. Но тут мы создадим через New Finding. И вот тут можно увидеть почему лучше создать template. Так как безопасность не терпит полумер, желательно заполнить все поля, тут и CWE, если вдруг нашли, CVSS рейтинг, естественно описание и шаги для воспроизведения, запрос и ответ. Что из этого вы будете заполнять дело ваше. Я заполнил только описание и шаги для воспроизведения, запрос и ответ, выбрал серьезность.
Готово! Вот таким образом вы добавляете все уязвимости. Но это для ручных находок. Плюс DefectDojo это возможность парсить репорты от автоматических инструментов. Например, от Nmap:
К сожалению, он ничего не нашел
Но если бы нашел, то в Findings можно было бы увидеть разбитые по категориям найденные “уязвимости”.
5. Генерация отчета. Products->Наш продукт -> Product Report
Результат:
Возможностей у этого инструмента невероятное количество, он хорош для менеджмента уязвимостей. Но его внедрение и использование сопряжено с некоторыми трудностями. Как с введением любого инструмента для менеджмента, в первую очередь нужно убедить людей, что менеджмент уязвимостей вообще необходим, а дальше составить Workflow работы и строго следовать ему, а это совсем не легко.
Поэтому отдельно стоит отметить интеграцию с JIRA. Интеграция DefectDojo с JIRA является двунаправленной. Вы можете отправлять результаты в JIRA и делиться комментариями. Если задача закрыта в JIRA, она автоматически будет закрыта в Dojo.
Ссылка скрыта от гостей
. Таким образом, каждая команда будет работать в своем багтрекере, которые будут связаны.Кроме того, поддерживается аутентификация через LDAP и OAuth2/SAML2, так же есть синхронизация с Google-таблицами. Есть даже плагин для Burp Suite.
На этом все, спасибо за внимание и уделенное время!
Последнее редактирование модератором: