Статья Supply chain атаки на контейнеры: от подменённых образов до зависимостей

1767476679615.webp


Безопасность Kubernetes (k8s) в последние годы перестала быть темой только для SRE и DevOps-инженеров. Это уже не технический вопрос настройки, а комплексная система доверия, формирующаяся задолго до развёртывания приложения. Кластер может быть идеально сконфигурирован, права — строго ограничены, а сетевые политики — образцово заданы. Но стоит злоумышленнику вмешаться на стадии сборки или распространения контейнерного образа, и любая сложная защита теряет смысл.

Так мы приходим к фундаментальному принципу современной кибербезопасности — безопасность Kubernetes начинается с цепочки поставок. Каждый слой инфраструктуры — от исходного кода до реестра образов — формирует звено этой цепочки. Нарушение целостности любого звена способно стать катализатором атаки, последствия которой выходят далеко за рамки одного кластера.

Сейчас supply chain атаки перестали быть редким феноменом. Они стали естественным риском в масштабных DevOps-экосистемах, где микросервисы общаются через десятки внешних зависимостей, а автоматизация сборки превращает доверие в непрерывный поток операций. Это доверие и становится самой уязвимой точкой.


Теоретический фундамент: киберугроза в цепочке поставок​

Термин supply chain в ИТ-контексте означает совокупность всех процессов и артефактов, через которые проходит программный продукт - от написания кода до его развертывания. В контейнерной среде эта цепочка выглядит примерно так: код → CI/CD → контейнерный образ → реестр → кластер.

Каждый этап может быть атакован. Атаки на цепочку поставок часто опираются не на уязвимости в коде, а на уязвимости в доверии. Компрометация CI/CD-сервера, подмена артефакта в реестре или злонамеренная зависимость в пакете - все это пути к внедрению вредоносного кода.

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

Сейчас время, когда угрозы стали структурированными: злоумышленники атакуют не кластеры напрямую, а доверительные процессы вокруг них. Мы видим целые кампании, нацеленные на цепочки обновлений, автоматизированные пайплайны и даже подписи артефактов. CISA в 2024 году отметила supply chain атаки на Kubernetes как одну из топовых угроз для облачных сред.

1767467632934.webp


Схема цепочки поставок показывает ключевые точки риска. Более детальный разбор векторов атак через сторонних вендоров и реальную таблицу инцидентов — в статье "Безопасность цепочки поставок: защита от атак вендоров".

Типовые атаки на цепочку поставок​

Supply chain атаки можно рассматривать как игру с доверием. Злоумышленник редко взламывает систему в прямом смысле. Он вмешивается в процесс, которому вы доверяете.

Подменённые образы.
Наиболее очевидный пример - публикация вредоносного контейнера под именем доверенного образа. Если политика допуска в кластере не проверяет подпись или источник, развёртывание происходит автоматически. Такие атаки особенно эффективны против CI/CD-систем, где образ подтягивается из проверенного реестра, но никто не проверяет, кто разместил его там последних.

1767467660881.webp


Зависимости и инъекции в пакеты.
Другой класс атак -внедрение вредоносного кода в зависимость, которая автоматически попадает в контейнер во время сборки. В эпоху npm, PyPI и других экосистем это стало повседневной реальностью. Случайная библиотека в контейнере способна вызвать цепную реакцию. Февраль 2025 года показал это на примере отравления модулей Go (BoltDB) и npm-пакетов кампании Contagious Interview с 67 вредоносными пакетами.

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

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

Классификация векторов атак может опираться на MITRE ATT&CK для контейнерных сред. Детальный разбор техник компрометации — от скомпрометированных образов до kubeconfig и Service Account — в материале "Kubernetes: матрица угроз и защита контейнерных сред".

SBOM и подписи образов: фундамент доверия​

Ключевые защитные механизмы supply chain - SBOM (Software Bill of Materials) и криптографическая подпись образов. Они не предотвращают атаки сами по себе, но делают их наблюдаемыми и верифицируемыми.

SBOM - это структурированный список всех компонентов образа: библиотек, зависимостей, модулей, версий и лицензий. В теории он должен стать аналогом химического состава на упаковке, чтобы можно было понимать, что именно запускается в кластере. На практике, однако, SBOM часто генерируется «для галочки» и не используется в политике допуска. Зрелые организации начали интегрировать его в процесс проверки развертываний: кластер не принимает образ, если его SBOM не соответствует утверждённой политике безопасности.

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

Эффективность подписи проявляется, когда она интегрирована с политиками Kubernetes: Admission Controller или ImagePolicyWebhook могут отклонять неподписанные или недоверенные образы. Это и есть практическая форма реализации принципа Zero Trust в цепочке поставок.

Подпись образа решает проблему целостности, но не гарантирует безопасность содержимого. Комплексный подход к изоляции контейнеров, сканированию в CI/CD и политикам PodSecurity — в руководстве "Защита Docker и Kubernetes: рекомендации по безопасности".

Кейс-аналитика: атака без взлома​

Один из самых показательных кейсов - SolarWinds (2020г.). Злоумышленники внедрили вредоносный код SUNBURST в обновления Orion IT-мониторинга, затронув тысячи организаций. Атака не требовала взлома: пользователи сами устанавливали доверенное обновление, которое открывало доступ к сети. В контексте Kubernetes это аналогично подмене образа в реестре - кластер доверчиво подтягивает его.

Ещё один урок - XZ backdoor (2024). Разработчик внедрил бэкдор в библиотеку XZ Utils (используемую в OpenSSH), которая распространилась через цепочку обновлений. Обнаружение заняло годы, несмотря на IOCs. Это показало уязвимость автоматизированных зависимостей в контейнерах: вредоносный слой мог бы тихо встроиться в базовый образ.

1767467731032.webp


Архитектура доверия: инструменты и экосистема​

2025 год стал переломным в осмыслении supply chain security. Появились не просто инструменты, но экосистемы, выстроенные вокруг прозрачности.

1767467692498.webp


Важнейшими компонентами стали:
  • Cosign - инструмент для цифровой подписи и проверки контейнерных образов. Он реализует идею простого и независимого доверия, интегрируясь с Kubernetes Admission Controller.
  • in-toto - технология, описывающая весь процесс сборки и доставки артефактов, фиксируя каждое действие в цепочке поставок.
  • Sigstore - платформа открытого доверия, формирующая общую инфраструктуру подписей и журналов прозрачности.
Их объединяет одно: каждый инструмент реализует модель «не верь - проверяй». Это противоположность старой логике DevOps, где доверие оставалось по умолчанию.


Blue Team и новая роль защиты​

В классическом понимании Blue Team защищала инфраструктуру: сети, кластеры, сервисы. В эпоху контейнеров её зона ответственности расширилась до самой логики сборки и доставки.

Современная Blue Team должна понимать, как устроен пайплайн CI/CD, где хранятся ключи подписи, и какие зависимости обновляются автоматически. Важнейшая задача - выстроить наблюдаемость над всей цепочкой поставок. Security Operation Center становится не просто центром реагирования, а центром доверия.

Технологически это выражается в политике «zero trust for builds»:
  • все артефакты должны иметь проверяемое происхождение;
  • все образы должны быть подписанными и верифицированными;
  • все ключи подписи должны храниться вне контекстов сборки;
  • все политики допуска должны автоматически исполняться в admission-контроллерах.
Blue Team больше не ловит угрозы, она формирует инфраструктуру, где угрозы не могут незаметно встроиться.

От DevOps к DevSecOps: культурный поворот​

Ключевая перемена последних лет не в инструментах, а в мышлении. Supply chain безопасность невозможна как «надстройка над DevOps», она должна стать его естественной частью.

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

Путь к зрелости начинается с признания: Kubernetes это уже давно не центр безопасности, а лишь последний потребитель доверия. Настоящая защита рождается раньше - в цепочке поставок.

Заключение​

Supply chain атаки показали, что даже самые защищённые кластеры не спасут слабую цепочку поставок. Kubernetes не способен сам проверить, что запускается внутри. Ответственность за доверие лежит на людях и процессах, которые создают и доставляют образы.

SBOM, цифровые подписи, политики допуска - это не опции безопасности, а основа архитектуры доверия. Именно с них начинается инфраструктура, где злоумышленнику некуда встроиться.

Безопасность Kubernetes - это не борьба с инцидентами, а управление доверием. И чем прозрачнее становится ваша цепочка поставок, тем крепче становится кластер, который на ней стоит.
 
Последнее редактирование:
  • Нравится
Реакции: t0st
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab