Что такое DevSecOps и концепция Shift-left

Рассказываем в серии статей, как встроить автоматизированные проверки безопасности в цикл разработки и находить уязвимости на самых ранних этапах. Сегодня вы узнаете, зачем сдвигать проверки в левую часть пайплайна, а также о структуре DevSecOps-процесса.

DevSecOps — актуальное направление в разработке, благодаря которому организации могут быстро создавать и выпускать защищенные приложения. Этот подход помогает обеспечивать безопасность на всех этапах цикла разработки и доставки программного обеспечения и соблюдать требования ИБ.

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

Эта статья будет полезна руководителям и сотрудникам отделов информационной безопасности, разработки и DevOps-командам. Она поможет оценить зрелость вашего DevSecOps-пайплайна, разработать дорожную карту его развития, выбрать правильные инструменты для каждой задачи и просто лучше понять, как управлять проектами в соответствии с философией DevSecOps.

Рекомендуем пройти курс «DevSecOps в облачном CI/CD». Он поможет вам глубже погрузиться в тему и научиться практическому применению инструментов.

Концепция Shift-left

Главная цель методологии DevSecOps — внедрение автоматизированных проверок безопасности в DevOps-пайплайн, то есть в сам процесс разработки ПО.

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

Посмотрите схему ниже. На ней видно, что стоимость исправления ошибок растёт с каждым этапом.

Экономика обеспечения безопасности при разработке

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

Исправить проблемы на этапе сборки артефактов дороже минимум в два раза. Придётся вносить изменения в процесс сборки, например редактировать Dockerfile. А это значит, что потребуется помощь DevOps-инженеров.

Если ошибка обнаружилась во время интеграционного тестирования, её исправление будет в десятки раз дороже. Ведь в этом случае придётся перезапускать цикл разработки заново и привлекать разработчиков, DevOps-инженеров и тестировщиков.

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

Отсюда главный вывод — проверки безопасности нужно выполнять как можно раньше. Если представить это визуально — перенести их в левую сторону пайплайна. Это и есть концепция Shift-left, о которой так любят говорить безопасники.

Концепция Shift-left

Структура DevSecOps-пайплайна

DevSecOps-пайплайн — это автоматизированная цепочка процессов и инструментов, которые позволяют создавать, тестировать и доставлять приложения в производственную среду, а также обеспечивать их безопасность на каждом этапе.

Структура DevSecOps-пайплайна

На рисунке выше изображена структура DevSecOps-пайплайна со всеми основными фазами проверки безопасности. Несколько слов о каждой из них.

Pre-commit — проверка безопасности исходного кода до того, как разработчик закоммитит код в систему контроля версий. Проверка позволяет обнаружить незашифрованную конфиденциальную информацию: пароли или API-ключи.

Pre-build — проверка безопасности исходного кода после того, как он попал в систему контроля версий. Инструменты выполняют статический анализ исходного кода и его зависимостей, чтобы обнаружить распространённые уязвимости, например из списка OWASP Top Ten.

Post-build — проверка безопасности артефакта, собранного из исходного кода, например Docker-файла, RPM-пакета или JAR-архива. Инструменты анализируют окружение и зависимости приложения, отыскивая устаревшие версии пакетов и библиотек, уже имеющих исправления в более новых версиях.

Test-time — проверка безопасности приложения, которое запущено из собранного артефакта. Инструменты в этой фазе пытаются «сломать» приложение, имитируя действия злоумышленников.

Post-deploy — проверка безопасности приложения после развёртывания в production-среде. Инструменты в режиме реального времени мониторят открытые реестры известных уязвимостей и отправляют уведомление, обнаружив угрозу для приложения.

Что в итоге

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

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

author
Алексей Колосков
Ведущий DevOps/Cloud инженер Hilbert Team
author
Михаил Кажемский
Ведущий DevOps/Cloud инженер Hilbert Team.

В этой статье мы расскажем:

DevSecOps на практике

Из серии статей вы узнаете об основных этапах DevSecOps-пайплайна, автоматизированных проверках безопасности при разработке ПО, бесплатных и опенсорс-инструментах.

Напишите нам

Начать пользоваться Yandex Cloud

Тарифы

Узнать цены и рассчитать стоимость

Мероприятия

Календарь событий Yandex Cloud
Что такое DevSecOps и концепция Shift-left
Войдите, чтобы сохранить пост