Перейти к основному содержимому
Безопасность

Что такое DevSecOps на самом деле? Безопасность как свойство процесса

8 мин чтения

DevSecOps нельзя купить как инструмент или запустить как проверку в самом конце. Это практика, при которой безопасность становится свойством того, как создаётся ПО, и целые классы проблем ловятся ещё на этапе слияния.

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

Какую проблему он решает

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

DevSecOps сдвигает проверки влево, то есть на более ранние этапы: в пул-реквест и конвейер сборки. Так проблемы ловятся в момент появления, пока их дёшево исправить и автор ещё помнит контекст.

Как это выглядит на практике

Конкретно: на проекте, который ведётся по этой модели, безопасность проявляется в нескольких местах, и ни одно из них не тормозит команду:

  • Статический анализ (SAST) каждого изменения, настроенный так, чтобы сигнал был настоящим, а не стеной ложных срабатываний, которую все привыкают игнорировать.
  • Сканирование зависимостей и цепочки поставок с закреплёнными версиями, чтобы библиотеку с известной уязвимостью заметили до выпуска, а не после того, как о ней напишут в новостях.
  • Поиск секретов в коде и CI, чтобы API-ключ или пароль вообще никогда не попадали в коммит.
  • Защищённые конвейеры сборки с минимальными привилегиями на каждом шаге, проверенными зависимостями и подписанными артефактами, чтобы слабым звеном не оказался сам конвейер.
  • Моделирование угроз для новых функций, чтобы риски на уровне архитектуры замечались до того, как их реализуют.
  • Прицельный тест на проникновение перед каждым крупным релизом, который дополняет всё перечисленное, а не тянет всю нагрузку в одиночку.

Сложность не в инструментах

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

Безопасность перестаёт быть разовой проверкой и становится свойством процесса. Целые классы проблем ловятся при слиянии, ещё до того, как кому-то придётся о них думать.

Заменяет ли он тестирование на проникновение?

Нет, но он меняет его назначение. Когда рутинные проблемы уже ловятся непрерывно, пентест перестаёт быть лихорадочной охотой на баги и становится тем, чем должен быть: опытный человек ищет изъяны бизнес-логики, пробелы в управлении доступом и изобретательные цепочки, которые не найдёт ни один сканер. Одно усиливает другое. Непрерывные проверки дают охват, а человек обеспечивает глубину.

С чего начать

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

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