DevSecOps (акроним от англ. development, security и operations) — методология, дополняющая практики DevOps, которая подразумевает не только тесное взаимодействие команд разработки и эксплуатации, но и применение лучших практик безопасности на всех этапах жизненного цикла программного обеспечения.
DevSecOps не предполагает фундаментального изменения процессов, принятых в DevOps, но предусматривает их рассмотрение сквозь призму безопасности. В частности, DevSecOps позволяет отойти от практики проверки уже готового кода на соответствие политикам безопасности и внедрить механизмы контроля на каждом этапе разработки.
DevOps и проблема безопасности
Методология DevOps направлена на оптимизацию процесса создания и обновления программных продуктов. В частности, одна из основных задач DevOps — ускорить выпуск новых версий приложений без потери качества.
Проверки безопасности в рамках DevOps часто рассматривают как замедляющий фактор и откладывают или исключают их из производственного цикла, чтобы не отстать от конкурентов. При этом уязвимости могут возникать на разных этапах производства и эксплуатации продукта. В результате на выходе получается уязвимое ПО, на исправление которого тратится большое количество ресурсов. Задача DevSecOps — вернуть контроль безопасности в цикл DevOps, не усложняя существенно процесс.
Принципы DevSecOps
DevSecOps опирается на следующие принципы:
- Сотрудничество команд разработки, эксплуатации и безопасности. Между участниками процесса — разработчиками, IT- и ИБ-отделами и т. д. — нет конфронтации. Напротив, все объединены общей целью — сделать качественный и безопасный продукт.
- За безопасность продукта отвечают все. Каждый член команды отвечает за безопасность продукта на своем этапе работы и отчитывается о соблюдении стандартов безопасности.
- Стандартизация и автоматизация. Требования к безопасности на каждом этапе стандартизируются, необходимые проверки по возможности автоматизируются.
- Повышение грамотности команд разработки и эксплуатации в области ИБ. Знания сотрудников в области безопасности поддерживаются на актуальном уровне вне зависимости от их задач.
- Измерение, мониторинг, отчетность, реализация. Параметры безопасности, время на каждый из этапов разработки, частота релизов, объем работы по тестированию продукта и т. д. переводятся в цифры, на которые сотрудники могут ориентироваться при построении и совершенствовании процессов. При этом метрики для оценки эффективности работы на разных этапах не противоречат друг другу.