Цепочка поставок: SBOM, подписи, защита конвейера
AppSec и DevSecOps: безопасность в конвейере разработкиКак сделать сборку прозрачной и защитить её от подмены: состав, происхождение, подписи, права.
Зачем это нужно
- Атаки на цепочку поставок дают доступ к множеству систем сразу.
- Прозрачность состава и происхождения артефактов сокращает время реакции на чужие уязвимости.
- Защита конвейера — часть защиты всей инфраструктуры.
Теория
Состав программного обеспечения (SBOM) описывает компоненты, входящие в артефакт, и их версии. Форматы SPDX и CycloneDX поддерживаются инструментами сборки. Наличие SBOM позволяет мгновенно ответить на вопрос «затронуты ли мы новой уязвимостью библиотеки», а также выявлять лицензионные риски. SBOM нужно генерировать автоматически и хранить вместе с артефактом.
Происхождение сборки: SLSA описывает уровни гарантий — от базовой документации до защищённой сборки, которую нельзя подменить, с подписанными метаданными и изолированным исполнителем. Практические шаги: фиксировать зависимости по хешам, собирать в чистом окружении, подписывать артефакты, проверять подписи при развёртывании. Это защищает от подмены зависимостей и артефактов.
Защита конвейера: минимальные права у задач сборки, разделение окружений, отсутствие долгоживущих ключей (предпочтительно краткосрочные учётные данные), изоляция исполнителей, контроль доступа к секретам, журналирование действий, защита веток и обязательные ревью, запрет на запуск произвольного кода из непроверенных источников. Отдельно: контроль внешних подрядчиков и сторонних интеграций, у которых есть доступ к вашему конвейеру.
Ключевые концепции
- SBOM
- Машиночитаемый перечень компонентов артефакта: основа управления риском зависимостей.
- SPDX и CycloneDX
- Распространённые форматы описания состава программного обеспечения.
- SLSA
- Модель уровней гарантий целостности сборки и происхождения артефактов.
- Подпись артефакта
- Криптографическое подтверждение авторства и неизменности сборки.
- Краткосрочные учётные данные
- Временные ключи вместо долгоживущих: снижают ущерб от утечки.
- Изоляция исполнителя
- Сборка выполняется в чистом окружении без лишних прав и данных.
Инструменты
- Генераторы SBOM, встроенные в сборку (SPDX, CycloneDX).
- Средства подписи артефактов и проверки подписей.
- Инструменты проверки происхождения сборки.
- Платформы конвейеров с ролевым доступом и защитой веток.
- Реестры артефактов с контролем доступа и проверкой подписей.
Практика в легальных лабораториях
- Сгенерируйте SBOM для учебного проекта и проверьте его содержимое.
- Найдите в SBOM компонент с известной уязвимостью и оцените влияние.
- Настройте подпись артефакта и проверку подписи перед развёртыванием.
- Ограничьте права задачи сборки и убедитесь, что сборка продолжает работать.
- Составьте чек-лист защиты конвейера из десяти пунктов.
Защита, детект и защитные меры
- Генерируйте SBOM автоматически и храните рядом с артефактом.
- Подписывайте артефакты и проверяйте подписи при развёртывании.
- Давайте задачам сборки минимальные права и краткосрочные учётные данные.
- Защищайте ветки и требуйте ревью изменений в конвейере.
Правовая рамка и этика
- SBOM может раскрывать внутренние детали: распространяйте его с учётом конфиденциальности.
- Требования к составу и происхождению могут быть обязательными по нормам регуляторов и заказчиков.
Типичные ошибки
- Генерировать SBOM, но не использовать его при реагировании на уязвимости.
- Хранить долгоживущие ключи в конвейере.
- Позволять запуск произвольного кода из внешних источников.
- Не проверять подписи при развёртывании.
Чек-лист «умею»
- Умею генерировать и использовать SBOM.
- Понимаю уровни гарантий происхождения сборки.
- Настраиваю подпись и проверку артефактов.
- Ограничиваю права конвейера и использую краткосрочные учётные данные.
- Защищаю ветки и ревью изменений.
Вопросы на интервью
- Как SBOM помогает при появлении новой критической уязвимости?
- Что даёт подпись артефактов и что она не защищает?
- Как вы защитите конвейер от компрометации?