Статья DevSecOps. Эпизод 2. Менеджмент Уязвимостей.

DevSecOps.png


Доброго времени суток!
  1. DevSecOps. Начало

  2. DevSecOps. DevOps (ч.1)

  3. SSDLC

  4. DevSecOps. Эпизод 1. Скрытые угрозы


1660403423052.png


PS: В прошлой статье забыл упомянуть о таком крайне важном инструменте, как OAST или SCP.

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

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

1660403132561.png


1660403152007.png


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


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

DefectDojo​


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

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

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

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

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

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

1660403487154.png


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

1660403534484.png


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

1660403611357.png


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

6. Metrics. DefectDojo предоставляет визуализацию ряда метрик, чтобы помочь с отчетами, осведомленностью и иметь возможность быстро сообщать о позиции безопасности продуктов / типов продуктов.
Предусмотрены следующие представления метрик:
  • количество открытых ошибок по месяцам
  • количество принятых ошибок по месяцам
  • количество открытых ошибок по неделям
  • количество принятых ошибок по неделям
  • табличные данные о 10 лучших продуктах по степени серьезности ошибок
  • подробную разбивку всех обнаруженных ошибок
  • открытые результаты
  • Принятые найденные уязвимости
  • Закрытые найденные уязвимости
  • Тенденции количества открытых ошибок
  • Тенденции количества принятых ошибок
  • Возраст проблем.
7. Users. Список пользователей системы.

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

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

1660403824495.png


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

1660403860808.png


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

1660403896327.png


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

1660403922567.png


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

1660403960972.png


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

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

1660404007419.png


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

1660404036298.png


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

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

1660404103948.png


Результат:

1660404131793.png


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

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

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

На этом все, спасибо за внимание и уделенное время!
 
Последнее редактирование модератором:
  • Нравится
Реакции: EvaSpring

AVA

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

zakrush

Well-known member
21.03.2018
81
118
BIT
0
В чате в телеграмме написали, что не раскрыта причина выбора Snyk и чем он лучше остальных инструментов.
Мой косяк, построил предложение так, будто у нас есть выбор, так вот, его у нас нет) Snyk - единственный качественный универсальный инструмент. Кто-то скажет, а как же Dependency Check от Owasp, но он, как и почти все Open Source ПО, просто не дотягивает до уровня коммерческого инструмента.
Dependency Track вполне себе норм продукт. С API вокруг которого можно накрутить автоматизацию и логику. К сожалению в текущих ситуациях в РФ например Snyk не лучший вариант, т.к. проблемы с оплатой + возможные костыли с доступом. Или бан как это сделали Sonatype. Кстати их инструмент один из лучших и имел такие фишки, что он в nexus изначально не пускает уязвимые пакеты пока ты не проанализируешь их.
 

AVA

Green Team
07.01.2022
10
37
BIT
0
Когда они добавили? Не было такого. Надо было пересобирать DefectDojo с доп модулем.
Получается, она все таки есть, просто не из коробки)
В подробная инструкция как это сделать, вроде не должно возникнуть сложностей)

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

robdollard

Green Team
02.05.2018
65
68
BIT
20
Что у нас появилось за это время для менеджмента уязвимостей? Наши как то подсуетились? DefectDojo при нагрузке какойто это просто ад. Snyk подошел бы идеально. Но как мы все знаем в текущих реалиях не подойдет. Есть у кого опыт использования наших оркестраторов в этом направлении?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!