Защита цепочки поставок и секретов
Усиление защиты образов и секретов
«Защита цепочки поставок и секретов» — бесплатный урок 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 — локальная установка не требуется.
Все уроки этого курса
- Модель угроз Kubernetes
- RBAC и служебные учётные записи
- Безопасность подов и сетевые политики
- Защита цепочки поставок и секретов