Конспект "Страх и ненависть DevSecOps Шабалин Юрий"

Суть: хотим предотвращать появление уязвимостей, а не обнаруживать их. Для этого разработчикам можно дать инструменты сканирования.

Application Security

Безопасность приложений. Тестируем приложения, интегрируемся с разработкой. Мы хотим предотвратить появление уязвимостей, а не обнаружить их.

Существующие подходы: OWASP, BSIMM, OpenSAMM. Рекомендуемый: BSIMM

Как сейчас: безопасность это контролирующий орган, который всех пинает в конце релиза. Проблемы:

  • Инструменты ИБ отдельно от разработки
  • Особенности процесса разработки не учитываются
  • Проверки ИБ проходят перед релизом
  • Требования ИБ непонятны

Можно купить кучу инструментов безопасности, вывалить кучу уязвимостей, но это не поможет. Нужен процесс.

ИБ должны использовать те же инструменты, что и разработчики: чаты, документация и т.п. Security Champions.

Security Champions

Чувак в команде, который заинтересован в обеспечении безопасности. Т.е. Это разработчик, который работает с инструментами ИБ, консультирует команду об ИБ, проводить код-ревью и тренинги.

Этапы тестирования

Статический анализ

Анализ кода на наличие уязвимостей, анализ паттернов, датафлоу, анализ конфигураций. Такое сканирование занимает кучу времени, высокий уровень False Nagative/False Positive.

Требование к продукту стат. анализа

  • Низкий уровень False Positive
  • Возможности кастомизации
  • Инкрементальные сканирования
  • Интеграция в CI
  • Интеграция в Code Review
  • Интеграция со средой разработки
  • Понимание Roadmap продукта

Инструменты: PVS-Stidio, Chechmarx, veracode, incode, fortify, coverity, positive technologies

Есть OpenSource решения под конкретные языки, на них можно обкатывать процесс. Интегрировать решение на PR, делать инкрементальные сканы. Запретить мердж, если тест не пройден. Отправлять отчет в SonarQube. Интеграция в CI. Бежит после тестов.

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

Все сканы всегда по дельте, чтобы на разработчика не вывались фиксирует по всему проекту.

Контроль OpenSource

Анализ используемых библиотек на уязвимости в открытых и закрытых источниках Анализ лицензии Контроль библиотек в периметре организации. По определенным политикам мы можем отсечь использованные библиотеки. Например, отсекать все что с критикал уязвимостью. Мониторинг новых уязвимостей в компонентах

Требования к инструменту

  • Низкий уровень False Positive
  • Удобство использования, интеграции
  • Разные политики для разных этапов разработки
  • Мониторинг компонентов в проде и организации
  • Поддержка разных сборок, языков, контейнеров

Инструменты: Sonatype Nexus, Source Clear, BlackDuck, Dependency-check, WhiteSource

Интеграция. В CI как этап тестирования, запрет сборки, если там есть критичные баги или запрет деплить в прод. Интеграция в среду разработки, чтобы знать об уязвимостях до коммита. Мониторим что у нас в проде(Nexus IQ).

Динамический анализ

Анализ уже собранного и развернутого приложения. Имитирует работу пользователя, анализирует ответы приложения. Поиск известных уязвимостей. Fuzzing. Проверка конфигурации сервера.

Риски: высокая нагрузка на сервер, нет интеграций, возможность изменения настроек аналитики, отсутствие поддержки технологий, сложность.

Требования к инструменту

  • Низкий уровень False Positive
  • Наличие интеграций
  • Поддержка технологий
  • Удобноство записи последовательности логина
  • Возможность настройки сканирование(интенсивности и исключение адресов)

Инструменты: Burpsuite, appscan, acunetix, w3af, owasp, microfocus

Интеграция: в CD после установки на стенд. Идеально иметь отдельный стенд для тестирования. До начала тестирования необх записать послед логина. Наличие уязвимостей — не стоппер.

Уязвимости

Тоже самое, что и просто баги. У критичности есть ранжирование по критичности, как и у багов, это позволяет их приоретизировать в одном беклоге, т.к. с точки зрения качества ПО они идентичны.

Процесс

Надо собирать метрички(производственные, инструментов, дефект-трекеры)

Ссылки

Я консультирую о том о чем пишу, связаться со мной можно через telegram @aladmit или по почте [email protected]

Подпишись на Tg канал или RSS, чтобы не пропустить новые статьи.
Заметки