Журнал "Information Security/ Информационная безопасность" #3, 2025
постепенно и осознанно, чтобы не нарушить выстроенные процессы разработки. Безопасность CI/CD-конвейера CI/CD-конвейер автоматизирует сбор- ку и доставку: здесь компилируется код, формируются образы, запускается раз- вертывание в CRI и выполняются основ- ные проверки безопасности. Однако стоит помнить: полноправный владе- лец этого процесса – DevOps-инже- нер. Он может обойти любую неуспешную проверку безопасности просто дописав в строке запуска скани- рования "ignore_errors: true" или "|| true". Это значит, что если безопасность цели- ком завязана на CI/CD, она становится ненадежной. Оптимальный подход – двухуровневый контроль: первичные про- верки безопасности можно проводить в CI/CD, но результаты этих проверок необходимо хранить снаружи или делать дополнительную проверку. Такой подход реализован, например, в Kaspersky Container Security: сканиро- вание запускается в CI/CD, но результаты сохраняются вне конвейера – в Kaspersky Container Security. Перед развертыванием в оркестраторе KCS повторно проверяет образ на соответствие политикам, что снижает риски обхода. Для CI/CD-конвейера можно выделить следующие основные риски: l подмена базового образа перед сбор- кой и подмена собранного (child) образа перед деплоем; l встраивание вредоносного ПО или ПО с эксплуатируемыми уязвимостями в код или в собираемые компоненты в образе; l несанкционированный доступ к сек- ретам (пароли, ключи, токены и пр.) в случае хранения их в репозитории в открытом виде. Для закрытия данных рисков можно реализовать следующие меры: l подписывать базовый и дочерний образы, например в системах Cosign или Notary; l анализировать импортируемые биб- лиотеки и их поведения в динамике с использованием решений класса SAST/DAST; l фиксировать вер- сии базового образа и отказаться от использования lat- est-версий; l о т с л е ж и в а т ь цепочку поставок для добавляемых биб- лиотек с использо- ванием Supply Chain Management-систем; l п р о в е р я т ь собранные дочерние образы на вредонос- ные файлы, секреты, ошибки конфигура- ции и уязвимости с использованием систем контейнерной безопасности; l хранить секреты либо во встроенных хранилищах секретов CI/CD, либо во внешних Vault-системах; l использовать решения для контроля CI/CD-конвейера на обязательные шаги (например, проверки безопасности) и соответствие лучшим практикам с помо- щью таких инструментов, как Quality Gate, Open Policy Agent (OPA) / Rego и пр. Контроль безопасности в CRI и оркестраторах Если на этапах сборки и развертыва- ния мы имеем дело со статичными обра- зами, то в рантайме появляются уже "живые" сущности – контейнеры и поды. Их нужно защищать так же, как и обыч- ные хосты, включая мониторинг в реаль- ном времени. Контейнер, пусть даже минимальный, ведет себя как полно- ценная виртуальная машина: у него есть сеть, файловая система, память, CPU и консоль. Внутрь можно установить как системное, так и прикладное ПО – и все это нуждается в контроле. Контейнеры несут два типа рисков: l при запуске – уязвимые или вредо- носные образы, секреты и ошибки в кон- фигурациях (манифесты, Compose- файлы); l в рантайме – сетевые атаки, запуск вредоносного ПО, эксплуатация уязви- мостей, эскалация прав и нелегитимный доступ к данным. В связи с этим меры защиты также делятся на два сценария: l контроль запуска контейнеров и подов, например с помощью Admission Controller в случае использования орке- стратора; l контроль уже работающих контейне- ров и подов. Для первого сценария можно предло- жить следующие конкретные меры: l контролировать выполнение различ- ных Best Practice для IoC при запуске подов; l контролировать контекст безопасно- сти в манифесте до запуска пода: отлич- ный перечень рекомендаций есть в справке для Kubernetes 1 ; l контролировать реестр, из которого скачивается образ; l запускать только безопасные образы, то есть те, которые признаны безопас- ными согласно вашей политике без- опасности образов; l использовать подписи или контроль хеша при запуске пода, чтобы исключить подмену образа. Это только базовые меры по контролю запуска пода, так как полный перечень мер довольно обширен, он сильно зависит от особенностей используемой инфра- структуры. Поэтому лучшим решением будет предварительное проведение ауди- та с дальнейшей консультацией по реко- мендуемым мерам контроля и защиты. Для защиты запущенных подов можно реализовать следующие меры защиты: l контролировать файловую систему кон- тейнера/пода на вредоносную активность: в контейнер может попасть вредоносный файл (особенно если он создан для работы с файлами, например веб-сервер); l контролировать доступ к файловой системе и отслеживать возможный доступ к конфиденциальной информации внутри контейнера; l контролировать сетевые взаимодей- ствий с помощью Network Policy или механизма eBPF; l контролировать запуск исполняемых файлов внутри контейнера с использо- ванием eBPF или других механизмов. Защита рантайма и запущенных подов является более сложной задачей в тех- ническом и организационном плане, поэтому и доступных для использования систем автоматизации значительно меньше. Для реализации части мер можно использовать, например, Falco. Защита сети может быть закрыта CNI- системами. Но для реализации всех мер защиты в одном решении лучшей прак- тикой будет использование специали- зированных систем, например Kaspersky Container Security. Итоги Контейнеризация и оркестрация – относительно новые области ИТ, со своими рисками и требованиями к без- опасности. На старте экосистему защи- щали в основном Open Source-инстру- менты, созданные самими разработчи- ками. Со временем появились зрелые коммерческие продукты, такие как Aqua Security, Palo Alto Prisma Cloud и Kasper- sky Container Security. Вендорские решения предлагают ком- плексный подход: встроенные лучшие практики, регулярные обновления, тех- поддержку и развитие функционально- сти. Это снижает нагрузку на команду и повышает отдачу от инвестиций в ИБ. С учетом санкционных рисков Open Source-подходы становятся все менее жизнеспособны, а отечественные реше- ния с продуманным интерфейсом поз- воляют эффективно работать даже без глубокой технической подготовки. l • 67 БЕЗОПАСНАЯ РАЗРАБОТКА www.itsec.ru Рис. 2. Пример сканирования образа в CI/CD-конвейере. Источник: Kaspersky Container Security 1 https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
Made with FlippingBook
RkJQdWJsaXNoZXIy Mzk4NzYw