Контейнеры вошли в число последних тенденций в разработке ПО, потому что они позволяют компаниям быстрее и без лишних усилий разрабатывать, тестировать и развертывать приложения, которые возникали при смене сред. Такие инструменты как Kubernetes и Container Registries теперь известны практически каждому разработчику, потому что они облегчают создание и развертывание контейнеров. Тем не менее, ряд разработчиком только сейчас начинают понимать необходимость использования инструментов обеспечения безопасности контейнеров для защиты контейнерного приложения на протяжении жизненного цикла контейнера.
При работе с контейнерами нам нужно понимать, что угрозы, с которыми они сталкиваются, отличаются от угроз традиционного ПО. У контейнеров есть целый набор преимуществ, которые делают его ценным оружием в арсенале разработчика, но нужно понимать, как пользоваться им безопасно.
Рассмотрим некоторые плюсы и минусы работы с контейнерами с точки зрения кибербезопасности, а затем подумаем, какие инструменты безопасности контейнеров могли бы минимизировать эти потенциальные угрозы.
Проблемы безопасности контейнеров
Несмотря на все преимущества контейнеров, их использование вызывает ряд вопросов, требующих ответа.
Начнем с того, что контейнеры предоставляют атакующему большую площадь атаки. Контейнеры содержать специальные структурные и обслуживающие элементы, которые требуют особого внимания. Это касается, главным образом, совместного использования контейнерами ядра, что помимо обеспечения безопасности хоста требует поддержания стандартных конфигураций и профилей контейнера.
Большую обеспокоенность вызывает отсутствие прозрачности, что может скрывать уязвимости, затрудняя, соответственно, устранение их последствий. В контейнеризованных средах компании постоянно добавляются образы в частный реестр или хаб, развертываются и удаляются контейнеры, запускающие образы. Этот поток чередующихся сред выполнения означает, что образы или контейнеры, которые не используются во время сканирования на стадии Kubernetes, будет труднее идентифицировать. Поэтому необходимо выполнить сканирование безопасности контейнера на более ранних этапах процесса сборки, если мы хотим быть уверены, что ничего не пропущено.
Итак, какие инструменты могут помочь нам убедиться, что ничто опасное не попадет в контейнер незамеченным? Ниже приводится список из 5 лучших инструментов, которые мы считаем полезными и рекомендуем к включению в число ваших инструментов обеспечения безопасности контейнеров.
№1 Alcide
Как уже говорилось выше, Kubernetes в последнее время является предметом обсуждений, занимая первое место среди инструментов оркестровки для тех, кто работает с облачными приложениями, поэтому практически для каждого.
Добрые люди из Alcide хотят помочь вам сохранить ритм рабочих процессов Kubernetes с помощью своей платформы. Инструмент Kubernetes Advisor предоставляет решение для сканирования, настройки и общего повышения прозрачности вашего кластера Kubernetes для улучшения контроля и повышения безопасности.
Команда Alcide также делает сильный акцент на том, чтобы позволить администраторам устанавливать права доступа конкретных лиц к конкретным ресурсам на основе принципа наименьшего доступа, поэтому этот инструмент занимает первое место в нашем списке.
№2 WhiteSource for Containers
Компоненты open source являются строительными блоками ПО, составляя 60-80% всего кода практически во всех современных приложениях. Учитывая большую площадь атаки, становится важно принимать меры по управлению open source в вашем ПО, в том числе при использовании контейнеров.
WhiteSource предлагает специализированное решение для обеспечения безопасности контейнеров с говорящим названием WhiteSource for Containers по всей цепочке SDLC. Пользователи могут получить полную прозрачность по всем компонентам open source в своих контейнерах на всех этапах, в том числе в реестрах контейнеров и кластерах Kubernetes. Решение включает встроенную поддержку реестров популярных контейнеров, таких как Docker Hub, Amazon ECR, Azure Container Registry, Google Cloud Registry и JFrog Artifactory.
Этот инструмент безопасности контейнеров позволяет администраторам устанавливать автоматические политики управления уязвимостями безопасности и лицензиями, которые применяются на всех этапах жизненного цикла контейнера, гарантируя обнаружение и блокирование при необходимости потенциально опасных open source компонентов.
№3 Portshift
Это решение интегрированной цифровой идентификации в конвейерах CI/CD является надежным инструментом защиты контейнеров, предназначенным для управления процессами приложений в ваших кластерах Kubernetes. Эта технология создает уникальный идентификатор для каждого рабочего процесса, который, по словам разработчиков, не зависит от традиционных маркеров, таких как IP-адреса и другие, так что вы можете быть уверены, что каждый рабочий процесс действительно принадлежит вашему конвейеру CI/CD. Это похоже на выдачу значков сотрудникам организации, что объединяет идеи DevSecOps с моделью нулевого доверия, которую мы обычно видим в решениях сетевой безопасности.
Это решение, основанное на идентификаторах, предоставляет прозрачность контейнеров и подов (pods) Kubernetes, позволяя командам выполнять политики безопасности по всему конвейеру Kubernetes, начиная с написания кода и заканчивая запуском.
Более подробную информацию о практическом использовании продукта можно найти здесь.
№4 Anchore Enterprise
Этот инструмент безопасности контейнеров предоставляет пользователям хорошие возможности управления и комплайнса посредством глубокого анализа образов контейнера и установления администраторами политик обеспечения безопасности ПО.
Решение Anchore для управления корпоративным конвейером CI/CD представляет собой мощное решение с возможностями неограниченного числа пользователей и поддержки до 50 репозиториев образов, что более чем достаточно в большинстве случаев. Компания также предоставляет услуги как для пользователей on-prem, так и для публичных облаков – гибкость, которая покажется привлекательной для многих клиентов. Для юристов Anchore предусмотрела возможности комплайнса в соответствии со множеством стандартов, включая стандарты NIST и СНГ, простое генерирование отчетов при необходимости. И, конечно же, это решение помогает обеспечить безопасность Kubernetes.
Что интересно и еще более приятно, Anchore поддерживает open source проект, в котором работают многие возможности корпоративной версии.
№5 Clair
Последний, но не менее полезный инструмент - Clair. Это open source проект, который предоставляет командам статический анализ для поиска уязвимостей в контейнерах Docker или appc.
Инструменты статического анализа, такие как SAST, стали широко распространенными в AppSec. Такие инструменты используют набор правил для автоматической проверки кода на наличие потенциальных угроз. Тем не менее, цена на эти технологии может «кусаться», они не всегда подходят для контейнеров, поэтому было бы неплохо иметь такой инструмент для open source.
Clair собирает данные из множества источников данных об уязвимостях, постоянно обновляясь с появлением новых данных. У проекта есть много полезных интеграций с другими open source проектами, что еще больше облегчает работу с Clair, как с одним из инструментом безопасности контейнеров. В число интеграций входят и такие реестры контейнеров как Quay.io и Dockyard.
Посетите их страницу на GitHub для получения дополнительной информации или для тестирования.
Ищите дополнительные возможности защиты контейнеров?
Если этих пяти инструментов безопасности контейнеров не хватает для удовлетворения потребностей вашей компании, взгляните на списки, которые мы нашли, подготавливая список топ-5.
В этом списке предлагаются лучшие инструменты безопасности контейнеров open source для Docker, а в этом списке собраны инструменты для популярного Kubernetes. Если вам нужен общий список без ограничений по технологиям, посмотрите этот список топ-10 на 2019.
Не имеет значения, какие инструменты вы выберете, главное – использовать во время разработки лучшие практики обеспечения безопасности приложений, чтобы избежать потенциальных болезненных ошибок. Контейнеры помогают работать быстрее и эффективнее, но их безопасность зависит от нас.