Cyber Security Academy · Урок

Защита цепочки поставок и секретов

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

Урок 4 из 413 шагов

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

Цепочка поставок программного обеспечения

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

  • Скомпрометированные базовые образы или зависимости.
  • Изменённые образы в реестре.
  • Вредоносные этапы конвейера непрерывной интеграции и доставки.

Уязвимости образов

Образы часто поставляются с пакетами, для которых известны уязвимости. Сканирование выявляет их до развёртывания.

  • Старые базовые образы накапливают известные уязвимости.
  • Раздутые образы расширяют поверхность атаки.
  • Встроенные секреты в слоях образа раскрывают учётные данные.
# Scan an image for vulnerabilities
trivy image myorg/app:1.4.2

# Scan filesystem and secrets too
trivy image --scanners vuln,secret myorg/app:1.4.2

Минимальные и доверенные базовые образы

Уменьшайте поверхность атаки, начиная с небольшого проверенного образа.

  • Используйте образы без дистрибутива или минимальные базовые образы (без оболочки и менеджера пакетов).
  • Закрепляйте базовые образы по дайджесту, а не по изменяемым тегам.
  • Отдавайте предпочтение официальным или проверенным внутри организации базовым образам.

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

# Pin by digest for immutability
# FROM gcr.io/distroless/static@sha256:<digest>

Подпись образов и сведения о происхождении

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

  • Cosign подписывает образы и проверяет их подписи.
  • Создавайте SBOM, чтобы отслеживать каждый компонент.
  • Добавляйте подтверждения происхождения сборки.
# Sign and verify with cosign
cosign sign myorg/app:1.4.2
cosign verify --key cosign.pub myorg/app:1.4.2

Проверка при допуске

Обеспечьте запуск только подписанных и проверенных сканированием образов. Контроллер допуска отклоняет неподписанные или уязвимые образы во время развёртывания.

# Kyverno policy: verify image signatures before admission
kubectl apply -f verify-image-signature.yaml

# Restrict pulls to a trusted registry only
kubectl apply -f allowed-registries.yaml

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

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

  • Ограничивайте область действия учётных данных конвейера принципом минимальных привилегий и устанавливайте короткие сроки действия.
  • Закрепляйте версии и проверяйте сторонние действия и плагины конвейера.
  • Изолируйте исполнители сборки; не используйте их повторно между уровнями доверия.
  • Защищайте реестр с помощью аутентификации и неизменяемости.

Что на самом деле представляют собой секреты Kubernetes

Секреты Kubernetes по умолчанию закодированы в base64, но не зашифрованы. Любой, кто может прочитать их или получить доступ к etcd, увидит данные в открытом виде.

# A 'Secret' is trivially decoded
kubectl get secret db -o jsonpath='{.data.password}' | base64 -d

Шифрование секретов в состоянии покоя

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

  • Включите шифрование в состоянии покоя с помощью EncryptionConfiguration.
  • Подключите поставщика облачного KMS для конвертного шифрования.
  • Ограничивайте прямой доступ к etcd и проводите его аудит.

Внешние менеджеры секретов

Самый надёжный подход — вообще не хранить секреты в хранилище кластера.

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

Безопасное обращение с секретами

Рабочие практики снижают риск раскрытия секретов.

  • Никогда не встраивайте секреты в образы и не добавляйте их в систему контроля версий.
  • Проверяйте репозитории и образы на наличие утёкших учётных данных.
  • Регулярно меняйте секреты и делайте это при подозрении на раскрытие.
  • Ограничивайте в RBAC разрешения get/list secrets необходимым минимумом.
# Detect committed secrets in source
gitleaks detect --source .

Проверка цепочки поставок

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

Сообщайте о каждом недостатке и указывайте конкретный механизм, который его устраняет (политика подписей, шифрование с помощью KMS, внешний менеджер).

Быстрая проверка

Подтвердите знания о цепочке поставок и секретах.

Итоги

Вы усилили защиту цепочки поставок образов и работу с секретами.

  • Сканируйте образы, используйте минимальные образы с закреплёнными версиями и подписывайте их с помощью Cosign.
  • При допуске применяйте требования к подписанным и проверенным сканированием образам и доверенным реестрам.
  • Секреты Kubernetes используют только кодировку base64; включите шифрование в состоянии покоя с помощью KMS.
  • Отдавайте предпочтение внешним менеджерам секретов и идентификации рабочих нагрузок; соблюдайте правила безопасного обращения с секретами.

На этом завершаются курс по безопасности Kubernetes и этот набор уроков.

Можно начать бесплатно

Изучай Cyber Security Academy с ИИ-репетитором — бесплатно

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

Курсы
76
Уроки
303

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

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

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

Чему я научусь в уроке «Защита цепочки поставок и секретов»?

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

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

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

Сколько времени занимает урок «Защита цепочки поставок и секретов»?

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

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

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

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

  1. Модель угроз Kubernetes
  2. RBAC и служебные учётные записи
  3. Безопасность подов и сетевые политики
  4. Защита цепочки поставок и секретов
← Назад к Cyber Security Academy