0Pricing
Cyber Security Academy · Урок

Защита конвейеров CI/CD

Усиление защиты пути сборки и выпуска

«Защита конвейеров CI/CD» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.

Конвейер как цель атаки

Конвейер CI/CD имеет привилегированный доступ к исходному коду, секретам и рабочей среде. Его компрометация позволяет злоумышленнику внедрить лазейки в каждую будущую сборку, обходя проверку кода. Это одна из самых ценных целей в современной разработке.

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

Ненадежные входные данные в сборках

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

  • Отравленное определение конвейера в ответвлении может попытаться похитить секреты
  • Ненадежный код может выполняться с теми же разрешениями, что и доверенные сборки

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

Закрепляйте действия и образы

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

# BAD: mutable tag can be moved under you
uses: some/action@v3

# GOOD: pinned to an immutable commit SHA
uses: some/action@a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0

# pin container steps by digest too
image: build-tools@sha256:9f86d081884c7d659a2feaa0c55ad015...

Принцип наименьших привилегий для токенов

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

# scope the default token to read-only, grant more only where needed
permissions:
  contents: read

jobs:
  publish:
    permissions:
      contents: read
      packages: write   # only this job can publish

Гигиена секретов

Секреты, жестко заданные в коде или широко используемые совместно, — основной путь утечки. Соблюдайте строгие правила обращения с ними:

  • Храните секреты в менеджере секретов или хранилище секретов CI, никогда не помещайте их в код
  • Отдавайте предпочтение федерации OIDC с коротким сроком действия вместо статических облачных ключей
  • Маскируйте секреты в журналах и блокируйте их вывод
  • Ограничивайте область действия каждого секрета минимальным набором заданий и сред

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

Эфемерные изолированные исполнители

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

  • Одна чистая среда для каждой сборки, после чего она удаляется
  • Отсутствие общего состояния между доверенными и ненадежными заданиями
  • Исходящий сетевой трафик ограничен необходимыми конечными точками

Это непосредственно поддерживает цели изоляции SLSA L3.

Защищайте ветку исходного кода

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

  • Требуйте проверку запроса на слияние перед слиянием
  • Обеспечьте наличие подписанных фиксаций в защищенных ветках
  • Требуйте успешного прохождения проверок состояния (тестов, сканирований)
  • Запретите принудительную отправку изменений и прямую отправку в main
# require signed commits on a branch
git config commit.gpgsign true

# verify a commit signature locally
git verify-commit HEAD

Сканируйте внутри конвейера

Встраивайте защитные этапы непосредственно в CI, чтобы проблемы приводили к сбою сборки, а не попадали в рабочую среду.

# secret leak detection
gitleaks detect --source . --redact

# dependency vulnerabilities
osv-scanner --lockfile=package-lock.json

# IaC and config misconfig
trivy config .

# fail the job on critical findings (non-zero exit stops CI)

Контроль выпуска двумя участниками

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

  • Правила защиты среды требуют проверки перед развертыванием
  • Разделяйте идентификацию для сборки и идентификацию для развертывания
  • Ни один участник не должен иметь возможности одновременно написать код и отправить его в рабочую среду без проверки

Это ограничивает как риск со стороны сотрудников, так и масштаб последствий компрометации одной учетной записи.

Аудит и защита от незаметной подмены

Вы должны иметь возможность восстановить последовательность действий конвейера. Централизуйте его журналы и защищайте их.

  • Передавайте журналы CI в хранилище с режимом только добавления и контролем доступа
  • Записывайте, кто и когда изменил определения конвейера
  • Создавайте подписанные сведения о происхождении, чтобы можно было связать артефакты с конкретной сборкой
  • Оповещайте об аномалиях: новый самостоятельно размещенный исполнитель, неожиданный доступ к секретам, изменение конфигурации вне процесса проверки

Контрольный список усиления защиты конвейера

Защищенный конвейер объединяет меры контроля исходного кода, сборки и выпуска:

  • Защита веток, проверенные и подписанные фиксации
  • Действия и образы, закрепленные по дайджесту
  • Токены OIDC с наименьшими привилегиями и коротким сроком действия
  • Эфемерные изолированные исполнители
  • Сканирование секретов, зависимостей и конфигурации внутри конвейера
  • Одобрение выпуска двумя участниками
  • Подписанные артефакты, SBOM и сведения о происхождении с журналированием аудита

Быстрая проверка: разрешения токена

Определите подходящую меру контроля для привилегированного токена сборки.

Повторение: защита конвейеров CI/CD

Вы научились усиливать защиту всего пути сборки и выпуска.

  • Относитесь к конвейеру как к рабочей среде: он может внедрить лазейки в каждую будущую сборку
  • Изолируйте сборки ненадежных PR от секретов
  • Закрепляйте действия и образы по дайджесту; используйте токены OIDC с наименьшими привилегиями и коротким сроком действия
  • Используйте эфемерные изолированные исполнители и защищайте ветку исходного кода
  • Сканируйте внутри конвейера, требуйте одобрения выпуска двумя участниками и храните журналы аудита с защитой от незаметной подмены

Курс завершен: теперь вы можете защищать цепочку поставок программного обеспечения от начала до конца.

Часто задаваемые вопросы

Урок «Защита конвейеров CI/CD» бесплатный?

Да — полный текст урока «Защита конвейеров CI/CD» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.

Чему я научусь в уроке «Защита конвейеров CI/CD»?

Усиление защиты пути сборки и выпуска Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cyber Security Academy?

Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Защита конвейеров CI/CD»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cyber Security Academy?

Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Угрозы цепочке поставок
  2. Перечень компонентов программного обеспечения (SBOM)
  3. Подпись зависимостей и артефактов
  4. Защита конвейеров CI/CD
← Назад к Cyber Security Academy