Что такое безопасность контейнеров?

tball

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

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

При обеспечении безопасности контейнеров следует учесть следующее:

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

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

Познакомьтесь с некоторыми из них: Docker®, Kubernetes®, Amazon Web Services™ (AWS) и Microsoft®.

Docker

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

Kubernetes

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

Amazon Web Services и безопасность контейнеров

Переходим к Amazon Web Services (AWS). AWS понимает, что использование контейнеров расширяет возможности разработчиков, которые смогут создавать приложения быстрее и стабильнее. Для этого предназначена Amazon Elastic Container Service (Amazon ECS) — масштабируемая высокопроизводительная служба оркестрации, которая поддерживает контейнеры Docker. Она освобождает от необходимости управления собственными виртуальными машинами и контейнерной средой, позволяя легко запускать и масштабировать контейнерные приложения AWS. Однако, чтобы воспользоваться всеми преимуществами этой службы, вам также необходимо позаботиться о безопасности. Подробнее о безопасности контейнеров AWS.

Обеспечение безопасности экземпляров контейнеров Microsoft Azure

Напоследок скажем пару слов о Microsoft® Azure™ Container Instances (ACI). Это решение позволяет развертывать контейнеры в общедоступном облаке Microsoft® Azure™, снимая необходимость самостоятельно управлять инфраструктурой для них. Контейнеры можно запускать через специальный портал, где Microsoft® Azure™ уже будет автоматически предоставлять и масштабировать вычислительные ресурсы. Достоинства ACI заключаются в скорости и гибкости, однако безопасность придется обеспечивать дополнительными средствами. Узнайте больше о защите экземпляров Microsoft Azure Container Instances.

Теперь, когда вы знаете об основных сервисах, давайте поговорим о том, как их защитить.

Защита хостов

Обеспечение безопасности хоста начинается с выбора его операционной системы. Если есть возможность, лучше использовать ОС, оптимизированную для контейнеров. Если же вы используете стандартные дистрибутивы Linux® или Microsoft® Windows®, нужно отключить или убрать все ненужные сервисы и в целом минимизировать риски безопасности. Затем добавьте уровень безопасности и средства мониторинга, которые гарантируют, что хост будет работать, как надо. В этой ситуации очень полезны такие инструменты, как контроль приложений и система предотвращения вторжений (IPS).

Когда контейнер работает в среде эксплуатации, ему необходимо взаимодействовать с другими контейнерами и ресурсами. Чтобы обеспечить мониторинг и защиту для внутреннего трафика, весь трафик от контейнеров должен проходить через систему предотвращения вторжений. В таком случае меняется способ ее развертывания. Вместо нескольких крупных традиционных модулей для предотвращения вторжений по периметру сети система предотвращения вторжений нужна на каждом хосте, чтобы анализировать трафик без значительного снижения производительности.

Обеспечение безопасности приложений в контейнерах

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

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

Мониторинг приложений

При запуске контейнеризированного приложения будет не лишним задействовать инструмент RASP. Такой инструмент работает внутри приложения и при необходимости блокирует вызовы. RASP обеспечивает мониторинг SQL, проверяет зависимости, временно закрывает уязвимости, проверяет URL-адреса и т. п. Кроме того, такой инструмент помогает решить одну из самых трудных задач безопасности: определение первопричины.

Благодаря работе внутри приложения RASP может выявить связь между проблемой безопасности и строкой кода, из-за которой возникла эта проблема. Это большое преимущество, которое сильно повышает общий уровень безопасности.

Безопасность инструментов управления

При обеспечении безопасности инструменты, задействованные в работе с контейнерами, часто обходят стороной. В любой организации, где решили применять контейнеры на постоянной основе, в конце концов появятся две ключевых части инфраструктуры: частный реестр контейнеров, вроде Amazon ECR, и инструмент для оркестрации контейнеров — обычно это Kubernetes.

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

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

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

Что касается оркестрации, после запуска Kubernetes вы получаете множество возможностей сделать работу с контейнерами более удобной, в том числе и внедрив различные средства управления и безопасности — например, можно снизить уровень риска с помощью политики для подов (кластерных ресурсов) и сетей.

Безопасность строительных блоков приложений: сканирование контейнеров

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

Правильно внедренное сканирование становится естественной составляющей процесса программирования. Этот полностью автоматизированный процесс позволяет быстро и легко выявить любые проблемы, возникающие при разработке приложения и его контейнеров.

Защищенность процесса сборки

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

Требуется организовать строгий контроль доступа на протяжении всего процесса непрерывной интеграции и доставки, начиная от репозитория кода и стратегии ветвления и до хранилища образов. При этом следует придерживаться принципа наименьших привилегий (предоставлять пользователям только те возможности доступа, которые необходимы им для выполнения задач) и регулярно проверять, выполняется ли он.

Иллюстрация DevOps

Где получить помощь в обеспечении безопасности контейнеров?

В обеспечении безопасности контейнеров необходим комплексный подход. Вы должны удовлетворить потребности всех специалистов вашей организации. Убедитесь, что выбранный вами подход можно автоматизировать в соответствии с процессами DevOps, что вы сможете уложиться в сроки и обеспечить быструю доставку приложений, защищая при этом и разработчиков, и специалистов по сопровождению. В современном мире нельзя пренебрегать безопасностью или думать, что ее можно обеспечить в последний момент. Trend Vision One™ Container Security позволяет настраивать политики безопасности и наборы правил сканирования во время выполнения, отслеживать обнаружение уязвимостей и события безопасности, а также использовать сканер артефактов для сканирования кластеров Kubernetes перед выполнением. Разным командам будет легче работать вместе, если надежные защитные средства и автоматизированные процессы будут обеспечивать безопасность разработки с самого начала. 

fernando

Вице-президент по управлению продуктами

pen

Фернандо Кардосо занимает должность вице-президента по управлению продуктами в Trend Micro. Особое внимание он уделяет постоянно меняющимся технологиям ИИ и облаков. Он начал карьеру как инженер по сетям и инженер по продажам в сфере центров обработки данных, облака, DevOps и кибербезопасности. Эти темы по-прежнему увлекают его.

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

Expand all Hide all

Что такое контейнер в системе безопасности контейнеров?

add

Контейнеры — это технология виртуализации, которая объединяет приложение и его зависимости (код, среду выполнения, системные инструменты, библиотеки и настройки) в единый переносимый модуль.  

Какие аббревиатуры используются в сфере безопасности контейнеров?

add

Наиболее распространенными аббревиатурами, используемыми в сфере безопасности контейнеров, являются CVE (common vulnerabilities and exposures — распространенные уязвимости и риски) и CI/CD (continuous integration/continuous deployment — непрерывная интеграция/непрерывное развертывание). 

Как лучше всего защитить контейнер?

add

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

Как работает система безопасности контейнеров?

add

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

Каковы три основных требования к безопасности контейнеров?

add

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

Какие четыре компонента требуют защиты при использовании Kubernetes?

add

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

Как обеспечить безопасность контейнеров?

add

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

Какой инструмент используется для обеспечения безопасности контейнеров?

add

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

Как лучше всего предотвратить дрифт контейнеров?

add

Лучший способ предотвратить дрейф контейнеров — постоянно контролировать приложение, которое использует контейнер после его запуска.

Что является основой безопасности контейнеров?

add

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