Безопасность DevOps. Автоматизация и новые инструменты

kjwfwaizc__a6jbfjvr6ke0pbi4.jpeg
Цикл популярности понятий из безопасности приложений, 2022 год. Из одноимённого отчёта Gartner. См. также обновление за 2023 год

В процессе внедрения системы безопасности в DevOps можно использовать многие инструменты, которые уже применяются в компании. Какие-то будут плотно интегрированы в процесс, а другие использоваться периодически.

Кроме старых, внедряются новые инструменты, чтобы устранить пробелы в инструментарии и дополнить возможности для автоматизации. Ключевые инструменты и процессы безопасности показаны на схеме вверху (из доклада Gartner).

Рассмотрим подробнее каждый этап автоматизации и внедрения новых инструментов в существующий рабочий процесс.

Этап 1: Планирование


  • На этом этапе определяются ключевые приоритеты безопасности DevOps, включая соответствие нормативным требованиям (если нужно) и сроки внедрения.
  • Совместно с командами безопасности моделируются возможные векторы атаки и риски (модель угроз), чтобы обеспечить разработчикам нормальный старт по внедрению. Проще запустить модель угроз с чего-то готового, чем с нуля.
  • Обучение по вопросам безопасности, включая специфические инструменты и управление техническим долгом.


gzcphlahkanbubqzoodqpykjahi.png
Интеграция инструментов безопасности во все стадии рабочего процесса DevOps. Источник: Gartner

Этап 2: Создание


  • Оценка и внедрение инструментов и продуктов безопасности, которые интегрируются непосредственно в конвейер CI/CD и среду разработчика.
  • Выявление типичных ошибок безопасности путём тестирования безопасности приложений (Application Security Testing, AST). Устранение типичных ошибок.
    gwnbhhsnhgackzfd_v8uxbdulno.png

    Разработчики инструментов AST. Из отчёта Gartner «Магический квадрант тестирования безопасности приложений»
  • Дополнительное моделирование угроз и анализ архитектуры безопасности вместе с инструкторами по безопасности или отделами безопасности (для крупных проектов). Обзор открытых источников по этой теме: статьи и доклады, доступные в интернете.


Этап 3: Проверка


  • Сканирование на наличие известных уязвимостей и неправильных конфигураций в существующем коде. При загрузке опенсорсных компонентов можно использовать инструменты SCA (Software Composition Analysis, анализ состава программного обеспечения).
  • Сканирование уязвимостей в коде с использованием инструментов статической защиты приложений (static application security tools, SAST) и динамической защиты (DAST). Во время тестирования или атаки система генерирует данные, которые можно использовать для повышения безопасности или реагирования на атаки. Интерактивное тестирование безопасности приложений (IAST) выполняется на работающем коде и может быть интегрировано в общий процесс DevOps.
  • Сканирование уязвимостей и неправильных конфигураций в инфраструктуре. Тестирование протоколов и входных данных, безопасности кода, тестирование безопасности мобильных приложений (MAST).
  • Применение этих принципов ко всем конвейерам CI/CD.


Этап 4: Подготовка к выпуску


  • Оценка решений для тестирования приложений, в том числе проверка известных атак и прогон недетерминированных тестов.
  • Недетерминированный тест может работать неделями и не найти уязвимости, а может обнаружить её с первой попытки. Это отражает природу 0day-уязвимостей в реальном мире. Но поскольку DevOps делает упор на итеративную разработку, здесь код тестируется чаще, чем в классической разработке ПО по модели водопада.
  • Не существует конкретных рекомендаций по частоте тестов.
  • Оценка опенсорсных инструментов, которые используются в инфраструктуре.


Этап 5: Выпуск


  • Проверка подписи метки времени — и деплой в CI/CD.
  • Скорее всего, интегрированная среда безопасности потребует нескольких подписей для успешного завершения каждого теста (например, отдельные подписи для SCA, IAST и полного сканирования уязвимостей).
  • Всё это должно быть автоматизировано на основе политик и процессов управления ИТ-рисками.


Этап 6: Предотвращение


Этап 7: Обнаружение


  • Некоторые уязвимости неизбежно попадут в продакшн. Поэтому приложения следует изначально проектировать таким образом, чтобы быстро выявлять проблемы во время работы.
  • Система самозащиты приложений во время выполнения (runtime application self-protection, RASP) реагирует на атаку либо принятием мер защиты приложения, либо безопасным отказом.
  • После деплоя приложения довольно сложно развернуть систему RASP из-за проблем с производительностью и совместимостью. Поэтому лучше спроектировать её на этапе разработки.


Этап 8: Реагирование


  • Внедрение существующих инструментов по обеспечению глубокой защиты приложений. Например, производители маршрутизаторов и коммутаторов зачастую предлагают встроенную систему защиту от DDoS. Эти технологии зависят от файрволов веб-приложений и шлюзов API. Они определяют тип атаки, обеспечивают защиту, предупреждают об атаке и/или регистрируют её.
  • Сбор данных в процессе атаки очень важен для создания правильной защиты и передачи разработчикам информации, как приложение ведёт себя в реальном мире.
  • Эта информация передаётся на этап 1 «Планирование», обеспечивая обратную связь через мониторинг инцидентов и событий безопасности.
  • Обратная связь включается в цепочку инструментов разработки для более эффективного реагирования на инциденты, внесения оперативных корректировок и минимизации технического долга.


Этап 9: Прогнозирование


  • Информация и телеметрия с предыдущих этапов используется для предсказания, какие потребуются контрмеры.
  • Данные об атаке должны быть собраны, проанализированы и включены в цикл планирования продукта. Они улучшат модель угроз и понимание требований безопасности для последующих продуктов.
  • На этапе прогнозирования также важны сторонние источники информации об угрозах и аналитические данные. Например, когда находят новую уязвимость в популярном фреймворке, таком как Apache Struts. На основе этой информации создаётся рабочий процесс по устранению уязвимости. Если и уязвимость, и продукт критически важны, разработчики в приоритетном порядке выпускают новый автоматизированный релиз с использованием обновлённой библиотеки или фреймворка.


Этап 10: Адаптация


  • Неизбежно появляются баги, уязвимости и области для улучшения. Используйте всю собранную информацию от системы и инструментария для формирования следующего раунда требований. Эта информация применяется как на уровне скрама (для событий критического уровня), так и на уровне планирования (для менее срочных проблем).
  • Изменение конфигурации и уточнение тестов безопасности. Специалистам по безопасности следует постоянно пересматривать и совершенствовать свои инструменты и методы работы.
  • Непрерывная обратная связь и развитие — это постоянная мантра для отделов инфраструктуры и безопасности. Они должны использовать все технические средства для получения фидбека — оповещения, логи и статистику — для улучшения процессов, инструментов и практик безопасности.



В целом, автоматизация создаёт более эффективный, бесперебойный рабочий процесс без ущерба для безопасности. Автоматизированные процессы не только поддерживают команды DevSecOps, но и уменьшают риски безопасности за счёт более быстрого сканирования, выявления и устранения брешей в защите.

Автоматизация полезна на всех этапах: от сервиса подписи документов до полноценной платформы PKI-as-a-Service.

Источники данных


Приведённые здесь рекомендации основаны на анализе запросов и ответов по безопасности от клиентов Gartner в 2022 году. Компания получила более 600 ответов от клиентов (индивидуальные встречи на конференциях и письменные опросы), в которых обсуждались DevOps, инициативы, успехи и неудачи по внедрению инструментов безопасности за последнее время. На основе этих данных и составлен данный план.

Термин «DevOps» регулярно входил в пятёрку самых популярных тем клиентских запросов Gartner в области IT-операций с июля 2021-го по июль 2022 года). Он также входил в пятёрку самых популярных поисковых запросов на сайте Gartner.com с 2017-го по 2022 годы.

Предыдущие части:


© Habrahabr.ru