PDA

Просмотр полной версии : DevSecOps: менеджмент уязвимостей и инструменты


AVA
13.08.2022, 19:38
https://forum.antichat.xyz/attachments/4921312/img_544e11cd7d.png

Доброго времени суток!

DevSecOps. Начало (https://forum.antichat.xyz/threads/579991/)

DevSecOps. DevOps (ч.1) (https://forum.antichat.xyz/threads/579992/)

SSDLC (https://forum.antichat.xyz/threads/580040/)

DevSecOps. Эпизод 1. Скрытые угрозы (https://forum.antichat.xyz/threads/580310/)


https://forum.antichat.xyz/attachments/4921312/1660403423052.png

PS: В прошлой статье (https://forum.antichat.xyz/threads/580310/)забыл упомянуть о таком крайне важном инструменте, как OAST или SCP.

OAST - Open Source Application Security Testing. При внедрении DevSecOps, это, наверное самое важное. Ведь внедрение этого инструмента самое простое и безболезненное, а пользы от него довольно много. Актуальность анализа открытых источников связана с тем, что сложность современных приложений не позволяет разрабатывать все самим и с нуля. Использовать готовые библиотеки больше не признак лени, а острая необходимость.

Из инструментов стоит выделить инструмент Snyk. Компания, которая его разработала и поддерживает, следит за трендами в безопасности.

https://forum.antichat.xyz/attachments/4921312/1660403132561.png

https://forum.antichat.xyz/attachments/4921312/1660403152007.png

Скачиваем и получаем репорт в красивом виде.

https://forum.antichat.xyz/attachments/4921312/1660403266253.png

Теперь перейдем к основной части этой статьи, инструменту для менеджмента уязвимостей, DefectDojo.

DefectDojo

Для управления разработкой и багфиксами во многих компаниях используются багтрекеры. Например, JIRA. Но писать все найденные уязвимости в JIRA руками, такое себе, поэтому была сделана JIRA для безопасников - DefectDojo. DefectDojo — это инструмент безопасности с открытым исходным кодом, который автоматизирует управление уязвимостями безопасности приложений. DefectDojo оптимизирует процесс тестирования безопасности приложений, предлагая такие функции, как импорт сторонних результатов проверок, слияние и удаление дубликатов, интеграцию с Jira, создание шаблонов, создание отчетов и многое другое.

Разработчики предоставляют различные варианты установки DefectDojo. Правильным считается использование бинарника - godojo. С его помощью DefectDojo устанавливается на диск как часть работающей ОС. Установщик обрабатывает запрошенную версию исходного кода и любые необходимые зависимости. Далее можно запустить docker compose и поднять всю систему в пару кликов.

Впрочем никто не мешает вам воспользоваться docker-compose из репозитория, получится то же самое.

Пощупать уже поднятый и наполненный сервис можно здесь. Именно на его основе мы рассмотрим основной функционал.

1. Dashboard. Вкладка содержит информацию о найденных/закрытых уязвимостях, активных работах, риски.

2. Products. По названию понятно, что это список наших продуктов/проектов.

https://forum.antichat.xyz/attachments/4921312/1660403487154.png

3. Engagements. Содержит в себе список проводимых работ, "мероприятий". Например, мануальный тест с использованием Burp, или автоматизированное сканирование с использованием Acunetix.

https://forum.antichat.xyz/attachments/4921312/1660403534484.png

4. Findings. Она содержит в себе информацию о найденных уязвимостях. Для наполнения этой вкладки можно использовать как ручной ввод, так и загрузку отчетов, сгенерированных специальными приложениями. Их можно классифицировать по серьезности: Critical, High, Medium, Low, and Informational (Info).

https://forum.antichat.xyz/attachments/4921312/1660403611357.png

5. Endpoints. Это тестируемые системы, определяемые IP-адресом или полным доменным именем.

6. Metrics. DefectDojo предоставляет визуализацию ряда метрик, чтобы помочь с отчетами, осведомленностью и иметь возможность быстро сообщать о позиции безопасности продуктов / типов продуктов.
Предусмотрены следующие представления метрик:

количество открытых ошибок по месяцам

количество принятых ошибок по месяцам

количество открытых ошибок по неделям

количество принятых ошибок по неделям

табличные данные о 10 лучших продуктах по степени серьезности ошибок

подробную разбивку всех обнаруженных ошибок

открытые результаты

Принятые найденные уязвимости

Закрытые найденные уязвимости

Тенденции количества открытых ошибок

Тенденции количества принятых ошибок

Возраст проблем.
7. Users. Список пользователей системы.

8. Calendar. Обеспечивает просмотр всех “мероприятий”, происходящих в течение отображаемого месяца. Каждая запись является прямой ссылкой на страницу просмотра Engagement.

Для примера давайте пройдем весь путь по оформлению бага.

Создаем новый продукт: Products -> Add Product. Заполняем все поля как вам нужно, я оставил значения по умолчанию.


https://forum.antichat.xyz/attachments/4921312/1660403824495.png

2. Дальше нам нужно создать некоторое “мероприятие”. Например, ручная проверка. Для этого переходим в проект и выбираем вкладку Engagements->Add New Interactive Engagement.

https://forum.antichat.xyz/attachments/4921312/1660403860808.png

Снова заполняем данные по необходимости, я выбрал по умолчанию. И вот мы создали “мероприятие”

https://forum.antichat.xyz/attachments/4921312/1660403896327.png

3. Начинаем ручную проверку с Burp. Для этого создадим новый тест. Данные заполняем на ваше усмотрение.

https://forum.antichat.xyz/attachments/4921312/1660403922567.png

4. Допустим мы находим XSS. Это нужно добавить.

https://forum.antichat.xyz/attachments/4921312/1660403960972.png

Тут есть два варианта - New Finding, где мы заполняем все с нуля, либо Finding From Template, и такие часто встречающиеся уязвимости как XSS лучше оформлять в Template. Но тут мы создадим через New Finding. И вот тут можно увидеть почему лучше создать template. Так как безопасность не терпит полумер, желательно заполнить все поля, тут и CWE, если вдруг нашли, CVSS рейтинг, естественно описание и шаги для воспроизведения, запрос и ответ. Что из этого вы будете заполнять дело ваше. Я заполнил только описание и шаги для воспроизведения, запрос и ответ, выбрал серьезность.

Готово! Вот таким образом вы добавляете все уязвимости. Но это для ручных находок. Плюс DefectDojo это возможность парсить репорты от автоматических инструментов. Например, от Nmap:

https://forum.antichat.xyz/attachments/4921312/1660404007419.png

К сожалению, он ничего не нашел

https://forum.antichat.xyz/attachments/4921312/1660404036298.png

Но если бы нашел, то в Findings можно было бы увидеть разбитые по категориям найденные “уязвимости”.

5. Генерация отчета. Products->Наш продукт -> Product Report

https://forum.antichat.xyz/attachments/4921312/1660404103948.png

Результат:

https://forum.antichat.xyz/attachments/4921312/1660404131793.png

Возможностей у этого инструмента невероятное количество, он хорош для менеджмента уязвимостей. Но его внедрение и использование сопряжено с некоторыми трудностями. Как с введением любого инструмента для менеджмента, в первую очередь нужно убедить людей, что менеджмент уязвимостей вообще необходим, а дальше составить Workflow работы и строго следовать ему, а это совсем не легко.

Поэтому отдельно стоит отметить интеграцию с JIRA. Интеграция DefectDojo с JIRA является двунаправленной. Вы можете отправлять результаты в JIRA и делиться комментариями. Если задача закрыта в JIRA, она автоматически будет закрыта в Dojo.
Настройка веб хуков в JIRA и в DefectDojo. Таким образом, каждая команда будет работать в своем багтрекере, которые будут связаны.

Кроме того, поддерживается аутентификация через LDAP и OAuth2/SAML2, так же есть синхронизация с Google-таблицами. Есть даже плагин для Burp Suite.

На этом все, спасибо за внимание и уделенное время!

AVA
15.08.2022, 06:32
В чате в телеграмме написали, что не раскрыта причина выбора Snyk и чем он лучше остальных инструментов.
Мой косяк, построил предложение так, будто у нас есть выбор, так вот, его у нас нет) Snyk - единственный качественный универсальный инструмент. Кто-то скажет, а как же Dependency Check от Owasp, но он, как и почти все Open Source ПО, просто не дотягивает до уровня коммерческого инструмента.

zakrush
19.08.2022, 16:24
AVA сказал(а):

В чате в телеграмме написали, что не раскрыта причина выбора Snyk и чем он лучше остальных инструментов.
Мой косяк, построил предложение так, будто у нас есть выбор, так вот, его у нас нет) Snyk - единственный качественный универсальный инструмент. Кто-то скажет, а как же Dependency Check от Owasp, но он, как и почти все Open Source ПО, просто не дотягивает до уровня коммерческого инструмента.


Dependency Track вполне себе норм продукт. С API вокруг которого можно накрутить автоматизацию и логику. К сожалению в текущих ситуациях в РФ например Snyk не лучший вариант, т.к. проблемы с оплатой + возможные костыли с доступом. Или бан как это сделали Sonatype. Кстати их инструмент один из лучших и имел такие фишки, что он в nexus изначально не пускает уязвимые пакеты пока ты не проанализируешь их.

zakrush
19.08.2022, 16:27
AVA сказал(а):

Кроме того, поддерживается аутентификация через LDAP


Когда они добавили? Не было такого. Надо было пересобирать DefectDojo с доп модулем.

AVA
22.08.2022, 06:47
zakrush сказал(а):

Когда они добавили? Не было такого. Надо было пересобирать DefectDojo с доп модулем.


Получается, она все таки есть, просто не из коробки)
В документацииподробная инструкция как это сделать, вроде не должно возникнуть сложностей)



zakrush сказал(а):

Dependency Track вполне себе норм продукт. С API вокруг которого можно накрутить автоматизацию и логику. К сожалению в текущих ситуациях в РФ например Snyk не лучший вариант, т.к. проблемы с оплатой + возможные костыли с доступом. Или бан как это сделали Sonatype. Кстати их инструмент один из лучших и имел такие фишки, что он в nexus изначально не пускает уязвимые пакеты пока ты не проанализируешь их.


Кстати, да, Dependency Track, неплохая альтернатива.

robdollard
27.09.2023, 15:31
Что у нас появилось за это время для менеджмента уязвимостей? Наши как то подсуетились? DefectDojo при нагрузке какойто это просто ад. Snyk подошел бы идеально. Но как мы все знаем в текущих реалиях не подойдет. Есть у кого опыт использования наших оркестраторов в этом направлении?