System Design Space
Граф знанийНастройки

Обновлено: 25 июня 2026 г. в 06:16

Безопасность цепочки поставки ПО

средний

Как защищать цепочку поставки ПО: SBOM, SLSA, подпись артефактов, проверка происхождения, усиление CI/CD и проверки политик.

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

Глава связывает спецификацию состава ПО, управление зависимостями, защищённый CI/CD, подпись артефактов и проверку происхождения артефакта в одну линию защиты, которая снижает риск на пути от сборки до развёртывания.

На интервью она помогает говорить о доверии к артефактам, риске внешних зависимостей, сценариях компрометации конвейера и видимости состава системы как о части архитектуры.

Практическая польза главы

Практика проектирования

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

Качество решений

Проверяйте, можно ли доказать происхождение артефакта, состав ПО и неизменность образа перед запуском в промышленной среде.

Аргументация на интервью

Стройте ответ вокруг цепочки: зависимость, сборка, аттестация, подпись, реестр, допуск к развёртыванию.

Формулировка компромиссов

Явно обсуждайте цену строгих проверок: скорость выпуска, стоимость сопровождения, ложные срабатывания и сложность восстановления.

Контекст

Secrets Management Patterns

Захваченный конвейер CI/CD выпускает вредоносную сборку, которая выглядит легитимной, — поэтому защита цепочки поставки начинается с учётных данных и границ доверия.

Открыть главу

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

В этой главе цепочка поставки ПО связывается с , , , , , проверками политик, управлением зависимостями, краткоживущими учётными данными CI/CD и радиусом поражения.

Слои цепочки поставки и меры защиты

Исходный код и зависимости

Фиксация версий зависимостей, разрешённые списки, сканирование уязвимостей, подпись коммитов и тегов, защита веток.

Сборка и CI/CD

Временные runner-ы, минимальные права для , изолированные шаги сборки и .

Артефакты и реестры

, неизменяемые дайджесты, публикация и проверки политик перед продвижением.

Развёртывание и выполнение

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

Ключевые практики

  • Поддерживайте для ключевых сервисов и сверяйте её с фактическими артефактами в промышленной среде.
  • Подписывайте контейнерные образы и бинарные файлы, а на этапе развёртывания обязательно выполняйте .
  • Фиксируйте и : кто, из каких исходников и каким конвейером собрал артефакт.
  • Уменьшайте секретов CI/CD: используйте краткоживущие учётные данные, ограниченные права и отдельные .
  • Регулярно проводите , и обновления по критичности уязвимости.

Типовые сценарии угроз

Компрометация внешней зависимости

Риск: В промышленную среду попадает вредоносный код из внешнего пакета.

Мера защиты: , разрешённый список поставщиков, проверка происхождения артефакта и быстрое исключение опасной версии из релиза.

Подмена артефакта в реестре

Риск: Развёртывается не тот образ или бинарный файл, который прошёл ревью и тесты.

Мера защиты: Обязательная , неизменяемые дайджесты и политики проверки перед развёртыванием.

Захват runner-а CI или токена

Риск: Атакующий выпускает вредоносную сборку, которая выглядит легитимной.

Мера защиты: , краткоживущие токены CI, ограниченные права, разделение зон доверия и отдельные каналы доставки секретов.

Компрометация автоматизации выпуска

Риск: Проверки политик обходятся, и непроверенный артефакт продвигается дальше по цепочке.

Мера защиты: Обязательные , журнал аудита и для критичных операций продвижения.

Проверки политик по этапам конвейера

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

CI/CD-конвейер с проверками политик

Коммит и запрос на слияние

Подписанные коммиты, обязательное ревью, SAST и проверка лицензий

При провале: Заблокировать слияние и открыть задачу по безопасности.

Сборка

Воспроизводимая сборка, спецификация состава ПО, происхождение артефакта

При провале: Остановить конвейер и не публиковать артефакт.

Реестр артефактов

Подпись, неизменяемый дайджест и политика для критичных CVE

При провале: Поместить артефакт в карантин и запретить продвижение.

Развёртывание

Политика допуска, проверка подписи и происхождения артефакта

При провале: Отклонить развёртывание и оставить предыдущую версию.

Среда выполнения

Мониторинг целостности, аномалии и готовность к откату

При провале: Запустить сдерживание, откатить и отозвать учётные данные.

Контрольные точки:

Исходный код
Сборка
Реестр
Развёртывание
Выполнение

Операционные метрики

Доля подписанных артефактов

Цель: >= 95%

Показывает, какая часть кандидатов на выпуск реально проходит доверенную цепочку поставки.

Покрытие спецификацией состава ПО для критичных сервисов

Цель: 100%

Без спецификации состава ПО команда слишком медленно оценивает радиус поражения при новом CVE.

Среднее время восстановления после инцидента в цепочке поставки

Цель: < 2 часов

Ограничивает время присутствия скомпрометированного артефакта в промышленной среде.

Время реакции на критичную CVE

Цель: < 24 часов

Показывает, работают ли управление зависимостями, триаж CVE и цикл обновлений на практике.

Проверка

Тестирование распределённых систем

Учения по безопасности и симуляции компрометации так же важны, как функциональные тесты.

Открыть главу

Модель зрелости

Каждый уровень добавляет новые механизмы контроля. Пропускать ступени рискованно: резкие скачки зрелости обычно ломаются на операционных деталях.
1

Уровень 1: Видимость

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

2

Уровень 2: Контроль

Проверки политик в CI/CD, обязательное ревью кода, неизменяемость артефактов, гигиена секретов.

3

Уровень 3: Проверяемость

Подпись, аттестации и проверка при развёртывании, полная прослеживаемость от коммита до выполнения.

4

Уровень 4: Устойчивость

Регулярные учения, симуляции компрометации, быстрое сдерживание и откат без ручного хаоса.

План внедрения

1

Фаза 1 (0-30 дней)

Фокус: Инвентаризация и прозрачность

Результат: Каталог зависимостей, базовая спецификация состава ПО и владельцы критичных цепочек поставки.

2

Фаза 2 (30-60 дней)

Фокус: Обязательные проверки политик

Результат: Проверки политик в CI/CD и блокировка неподписанных или непроверенных артефактов.

3

Фаза 3 (60-90 дней)

Фокус: Сквозная проверяемость

Результат: Подпись артефактов, аттестация сборки и проверка при развёртывании для всех критичных сервисов.

4

Фаза 4 (90+ дней)

Фокус: Операционная устойчивость

Результат: Регулярные учения, и измеримые цели уровня сервиса для безопасности цепочки поставки ПО.

Типичные антипаттерны

CI/CD с долгоживущими административными токенами без сегментации прав.

Развёртывание артефактов без подписи, происхождения артефакта и аттестации сборки.

Использование `latest`-тегов и незафиксированных зависимостей в критичных сервисах.

Спецификация состава ПО создаётся для отчётности, но не участвует в политиках выпуска.

Источники

Связанные главы

  • The Untold Story of Log4j and Log4Shell - Показывает реальный инцидент в цепочке поставки ПО и последствия компрометации уязвимой зависимости.
  • Secrets Management Patterns - Связана с защитой CI/CD: безопасное хранение и ротация секретов снижают риск захвата конвейера.
  • API Security Patterns - Дополняет защиту после доставки артефакта: авторизация, ограничение частоты запросов и контроль злоупотреблений.
  • Data Governance & Compliance - Расширяет тему требованиями к аудиту, прослеживаемости и контролю обработки чувствительных данных.
  • Security Engineering Overview - Даёт общий каркас безопасности на этапе проектирования, куда встраиваются SLSA, спецификация состава ПО, подпись артефактов и проверки политик.

Чтобы отмечать прохождение, включи трекинг в Настройки