Хабрахабр

[Перевод] 33+ инструмента для безопасности Kubernetes

Прим. перев.: Если вы задаётесь вопросами безопасности в инфраструктуре, основанной на Kubernetes, этот замечательный обзор от компании Sysdig станет отличной отправной точкой для беглого знакомства с актуальными на сегодняшний день решениями. В него включены и комплексные системы от известных игроков рынка, и значительно более скромные утилиты, закрывающие ту или иную проблему. А в комментариях мы как всегда будем рады узнать о вашем опыте использования этих инструментов и увидеть ссылки на другие проекты.

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

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

Категории

Чтобы упростить навигацию по списку, инструменты разбиты по основным функциям и областям применения. Получились следующие разделы:

  • Сканирование образов Kubernetes и статический анализ;
  • Безопасность runtime;
  • Сетевая безопасность Kubernetes;
  • Распространение образов и управление секретами;
  • Аудит безопасности Kubernetes;
  • Комплексные коммерческие продукты.

Перейдем к делу:

Сканирование образов Kubernetes

Anchore

  • Сайт: anchore.com
  • Лицензия: свободная (Apache) и коммерческое предложение

Пакет Anchore анализирует образы контейнеров и позволяет проводить проверки безопасности на основе политик, задаваемых пользователем.

д.), лицензии ПО и многое другое. Помимо привычного сканирования образов контейнеров на предмет известных уязвимостей из базы CVE, Anchore проводит множество дополнительных проверок в рамках политики сканирования: проверяет Dockerfile, утечку учетных данных, пакеты используемых языков программирования (npm, maven и т.

Clair

  • Сайт: coreos.com/clair (теперь под опекой Red Hat)
  • Лицензия: свободная (Apache)

Он широко известен как сканер безопасности, лежащий в основе реестра образов Quay (тоже от CoreOS — прим. Clair был одним из первых Open Source-проектов для сканирования образов. Clair умеет собирать информацию о CVE из большого числа источников, включая списки специфических для Linux-дистрибутивов уязвимостей, которые ведут команды по безопасности Debian, Red Hat или Ubuntu. перев.).

Впрочем, продукт предлагает пользователям некоторые возможности для расширения функций с помощью подключаемых драйверов. В отличие от Anchore, Clair преимущественно занимается поиском уязвимостей и сопоставлением данных с CVE.

Dagda

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

От других похожих инструментов пакет Dagda отличают две примечательные особенности:

  • Он отлично интегрируется с ClamAV, выступая не только как инструмент для сканирования образов контейнеров, но и как антивирус.
  • Также обеспечивает runtime-защиту, в реальном времени получая события от демона Docker’а и интегрируясь с Falco (см. ниже) для сбора событий безопасности во время работы контейнера.

KubeXray

  • Сайт: github.com/jfrog/kubexray
  • Лицензия: свободная (Apache), но требует получения данных от JFrog Xray (коммерческого продукта)

KubeXray «слушает» события API-сервера Kubernetes и с помощью метаданных от JFrog Xray следит за тем, чтобы запускались только pod'ы, соответствующие текущей политике.

KubeXray не только проводит аудит новых или обновленных контейнеров в deployment'ах (по аналогии с admission controller в Kubernetes), но также динамически проверяет работающие контейнеры на соответствие новым политикам безопасности, удаляя ресурсы, ссылающиеся на уязвимые образы.

Snyk

  • Сайт: snyk.io
  • Лицензия: свободная (Apache) и коммерческая версии

Snyk — это необычный сканер уязвимостей в том смысле, что он специально нацелен на процесс разработки и продвигается как «незаменимое решение» для разработчиков.

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

Trivy

Его примечательная особенность — простота установки и работы: приложение состоит из единственного бинарника и не требует установки базы данных или дополнительных библиотек. Trivy — простой, но мощный сканер уязвимостей для контейнеров, легко интегрируемый в CI/CD-пайплайн.

Обратная сторона простоты Trivy состоит в том, что придется разбираться, как парсить и пересылать результаты в формате JSON, чтобы ими могли воспользоваться другие инструменты безопасности Kubernetes.

Безопасность runtime в Kubernetes

Falco

  • Сайт: falco.org
  • Лицензия: свободная (Apache)

Входит в семейство проектов CNCF. Falco — набор инструментов для обеспечения безопасности облачных сред выполнения.

Его механизм runtime-правил способен обнаруживать подозрительную активность в приложениях, контейнерах, базовом хосте и оркестраторе Kubernetes. Используя инструментарий Sysdig для работы на уровне ядра Linux и профилирование системных вызовов, Falco позволяет глубоко погрузиться в поведение системы.

В результате отпадает необходимость модифицировать контейнеры, внедряя в них сторонний код или навешивая sidecar-контейнеры. Falco обеспечивает полную прозрачность в работе runtime'а и обнаружение угроз, ставя для этих целей специальных агентов на узлах Kubernetes.

Фреймворки безопасности Linux для runtime

Эти родные для ядра Linux фреймворки не являются «инструментами безопасности Kubernetes» в привычном смысле, однако заслуживают упоминания, поскольку выступают важным элементом в контексте безопасности в runtime, что включается в Kubernetes Pod Security Policy (PSP).

Это система на основе мандатного управления доступом (Mandatory Access Control, MAC). AppArmor подключает профиль безопасности к процессам, запущенным в контейнере, определяя привилегии файловой системы, правила сетевого доступа, подключение библиотек и т.д. Другими словами, она предотвращает выполнение запрещенных действий.

SELinux превосходит AppArmor по мощности, гибкости и тонкости настроек. Security-Enhanced Linux (SELinux) — это модуль расширенной безопасности в ядре Linux, в некоторых аспектах похожий на AppArmor и часто сравниваемый с ним. Его недостатки — длительное освоение и повышенная сложность.

Seccomp в некоторых моментах похож на Falco, хотя и не знает специфики контейнеров. Seccomp и seccomp-bpf позволяют фильтровать системные вызовы, блокировать выполнение тех из них, что потенциально опасны для базовой ОС и не нужны для нормальной работы пользовательских приложений.

Sysdig open source

Его можно использовать для сбора детальной информации, проверки и криминальной экспертизы (forensics) базовой системы и любых контейнеров, работающих на ней. Sysdig — полноценный инструмент для анализа, диагностики и отладки Linux-систем (также работает на Windows и macOS, но с ограниченными функциями).

Существует несколько способов анализа кластера Kubernetes с помощью Sysdig: можно провести захват на определенный момент времени через kubectl capture или же запустить интерактивный интерфейс на базе ncurses с помощью плагина kubectl dig. Также Sysdig изначально поддерживает исполняемые среды для контейнеров и метаданные Kubernetes, добавляя дополнительные измерения и метки ко всей собираемой информации о поведении системы.

Сетевая безопасность Kubernetes

Aporeto

Это означает, что сервисы Kubernetes не только получают локальный ID (то есть ServiceAccount в Kubernetes), но и универсальный идентификатор/отпечаток, который можно использовать для безопасного и взаимно проверяемого взаимодействия с любым другим сервисом, например, в кластере OpenShift. Aporeto предлагает «безопасность, отделенную от сети и инфраструктуры».

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

Calico

Помимо этой базовой сетевой функциональности проект Calico работает с Kubernetes Network Policies и своим собственным набором профилей сетевой безопасности, поддерживает ACL (списки контроля доступа) endpoint'ов и основанные на аннотациях правила сетевой безопасности для Ingress- и Egress-трафика. Calico обычно разворачивают во время установки оркестратора контейнеров, что позволяет создать виртуальную сеть, связывающую контейнеры.

Cilium

  • Сайт: www.cilium.io
  • Лицензия: свободная (Apache)

Cilium использует новую технологию ядра Linux под названием BPF (Berkeley Packet Filter) для фильтрации, мониторинга, перенаправления и корректировки данных. Cilium выступает в качестве брандмауэра для контейнеров и предоставляет функции по обеспечению сетевой безопасности, изначально адаптированные к Kubernetes и рабочим нагрузкам микросервисов.

Cilium также понимает и фильтрует различные протоколы 7-го уровня, такие как HTTP или gRPC, позволяя определять набор вызовов REST, которые, например, будут разрешены между двумя deployment'ами Kubernetes. Cilium способен развертывать политики сетевого доступа на основе идентификаторов контейнеров, используя метки Docker или Kubernetes и метаданные.

Istio

  • Сайт: istio.io
  • Лицензия: свободная (Apache)

Istio пользуется этим передовым представлением всех микросервисов и контейнеров для реализации различных стратегий сетевой безопасности. Istio широко известен как реализация парадигмы service mesh путем развертывания независимой от платформы control plane и перенаправления всего управляемого сервисного трафика через динамически конфигурируемые прокси Envoy.

Возможности Istio по обеспечению сетевой безопасности включают в себя прозрачное шифрование TLS для автоматического улучшения протокола коммуникаций между микросервисами до HTTPS и собственную систему RBAC для идентификации и авторизации для разрешения/запрета обмена данными между различными рабочими нагрузками в кластере.

перев.: Подробнее о возможностях Istio, ориентированных на безопасность, читайте в этой статье. Прим.

Tigera

  • Сайт: www.tigera.io
  • Лицензия: коммерческая

В этом решении, называемом «брандмауэром Kubernetes», делается упор на подход к сетевой безопасности с нулевым доверием.

По аналогии с другими родными для Kubernetes сетевыми решениями, Tigera полагается на метаданные при идентификации различных сервисов и объектов в кластере и обеспечивает обнаружение проблем в runtime, непрерывную проверку на соответствие и прозрачность сети для многооблачных или гибридных монолитно-контейнеризованных инфраструктур.

Trireme

Самой примечательной особенностью является то, что — в отличие от похожих продуктов для сетевой безопасности Kubernetes — оно не требует центральной control plane для координации сетки (mesh). Trireme-Kubernetes — это простая и понятная реализация спецификации Kubernetes Network Policies. В Trireme это достигается путем установки агента на каждый узел, который напрямую подключается к TCP/IP-стеку хоста. Это делает решение тривиально масштабируемым.

Распространение образов и управление секретами

Grafeas

  • Сайт: grafeas.io
  • Лицензия: свободная (Apache)

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

Этот централизованный источник истины помогает ответить на вопросы вроде:

  • Кто собрал и подписал конкретный контейнер?
  • Прошел ли он все сканеры безопасности и проверки, предусмотренные политикой безопасности? Когда? Какими были результаты?
  • Кто развернул его в production? Какие именно параметры использовались при развертывании?

In-toto

При развертывании In-toto в инфраструктуре сначала задается план, описывающий различные шаги в пайплайне (репозиторий, инструменты CI/CD, инструменты QA, сборщики артефактов и т.д.) и пользователей (ответственных лиц), которым разрешено их инициировать. In-toto — это фреймворк, разработанный для обеспечения целостности, аутентификации и аудита всей цепочки поставки программного обеспечения.

In-toto контролирует выполнение плана, проверяя, что каждая задача в цепочке выполняется должным образом исключительно авторизованным персоналом и в процессе движения с продуктом не проводились никакие несанкционированные манипуляции.

Portieris

Portieris использует сервер Notary (мы писали про него в конце этой статьи — прим. Portieris — это admission controller для Kubernetes; применяется для принудительных проверок на доверие к контенту. перев.) в качестве источника истины для подтверждения доверенных и подписанных артефактов (то есть одобренных контейнерных образов).

При создании или изменении рабочей нагрузки в Kubernetes Portieris загружает информацию о подписи и политику доверия к контенту для запрошенных образов контейнеров и при необходимости на лету вносит изменения в JSON-объект API для запуска подписанных версий этих образов.

Vault

Vault поддерживает многие продвинутые функции, такие как аренда эфемерных токенов безопасности или организация ротации ключей. Vault — это безопасное решение для хранения закрытой информации: паролей, токенов OAuth, PKI-сертификатов, учётных записей для доступа, секретов Kubernetes и т.д.

Он поддерживает родные ресурсы Kubernetes вроде токенов ServiceAccount и даже может выступать хранилищем секретов Kubernetes по умолчанию. С помощью Helm-чарта Vault можно развернуть как новый deployment в кластере Kubernetes с Consul'ом в качестве backend-хранилища.

перев.: Кстати, буквально вчера компания HashiCorp, разрабатывающая Vault, анонсировала некоторые улучшения для использования Vault в Kubernetes и в частности они касаются Helm-чарта. Прим. Подробности читайте в блоге разработчика.

Аудит безопасности Kubernetes

Kube-bench

Kube-bench — приложение на Go, проверяющее, безопасно ли развернут Kubernetes, выполняя тесты из списка CIS Kubernetes Benchmark.

Kube-bench ищет небезопасные параметры конфигурации среди компонентов кластера (etcd, API, controller manager и т.д.), сомнительные права на доступ к файлам, незащищенные учетные записи или открытые порты, квоты ресурсов, настройки ограничения числа обращений к API для защиты от DoS-атак и т.п.

Kube-hunter

Kube-hunter можно запускать как удаленный сканер — в этом случае он оценит кластер с точки зрения стороннего злоумышленника — или как pod внутри кластера. Kube-hunter «охотится» на потенциальные уязвимости (вроде удаленного выполнения кода или раскрытия данных) в кластерах Kubernetes.

Так что пользуйтесь с осторожностью! Отличительной особенностью Kube-hunter'а является режим «активной охоты», во время которого он не только сообщает о проблемах, но и пытается воспользоваться уязвимостями, обнаруженными в целевом кластере, которые потенциально могут нанести вред его работе.

Kubeaudit

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

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

Kubesec

  • Сайт: kubesec.io
  • Лицензия: свободная (Apache)

Kubesec — особенный инструмент в том смысле, что напрямую сканирует YAML-файлы с описанием ресурсов Kubernetes в поисках слабых параметров, способных повлиять на безопасность.

Еще одна интересная возможность Kubesec — доступный в онлайне демо-сервис, в который можно загрузить YAML и сразу провести его анализ. Например, он может обнаруживать избыточные привилегии и разрешения, предоставленные pod'у, запуск контейнера с root'ом в качестве пользователя по умолчанию, подключение к пространству имен сети хоста или опасные монтирования вроде /proc хоста или сокета Docker'а.

Open Policy Agent

Концепция OPA (Open Policy Agent) состоит в том, чтобы отделить политики безопасности и лучшие практики в области безопасности от конкретной runtime-платформы: Docker, Kubernetes, Mesosphere, OpenShift или любой их комбинации.

Таким образом агент OPA сможет проверять, отклонять и даже изменять запросы на лету, обеспечивая соблюдение заданных параметров безопасности. Например, можно развернуть OPA как бэкенд для admission controller'а Kubernetes, делегируя ему решения по безопасности. Политики безопасности в OPA написаны на его собственном DSL-языке Rego.

перев.: Подробнее про OPA (и SPIFFE) мы писали в этом материале. Прим.

Комплексные коммерческие инструменты для анализа безопасности Kubernetes

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


* Продвинутая экспертиза и post mortem-анализ с полным захватом системных вызовов.

Aqua Security

Он обеспечивает: Этот коммерческий инструмент предназначен для контейнеров и облачных рабочих нагрузок.

  • Сканирование образов, интегрированное с реестром контейнеров или CI/CD-пайплайном;
  • Runtime-защиту с поиском изменений в контейнерах и другой подозрительной активности;
  • Родной для контейнеров брандмауэр;
  • Безопасность для serverless в облачных сервисах;
  • Проверку на соответствие требованиям и аудит, объединенные с журналированием событий.

Capsule8

  • Сайт: capsule8.com
  • Лицензия: коммерческая


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

Capsule8 умеет загружать уточненные правила безопасности прямо на детекторы в ответ на недавно обнаруженные угрозы и уязвимости ПО. Команда Capsule8 видит своей задачей раннее обнаружение и предотвращение атак, использующих свежие (0-day) уязвимости.

Cavirin

Он не только может сканировать образы, но и интегрироваться в CI/CD-пайплайн, блокируя не соответствующие стандартам образы до их попадания в закрытые репозитории. Cavirin выступает контрагентом на стороне компании для различных ведомств, занимающихся стандартами безопасности.

Пакет безопасности Cavirin использует машинное обучение для оценки состояния кибербезопасности, предлагает советы по увеличению безопасности и повышению соответствия стандартам безопасности.

Google Cloud Security Command Center

Cloud Security Command Center помогает командам по безопасности собирать данные, выявлять угрозы и устранять их до того, как они нанесут вред компании.

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

Интероперабельный API, предлагаемый Google Cloud SCC, облегчает интеграцию событий в области безопасности, поступающих из различных источников, таких как Sysdig Secure (контейнерная безопасность для cloud-native приложений) или Falco (Open Source-система безопасности runtime).

Layered Insight (Qualys)

После сканирования оригинального образа на наличие уязвимостей с использованием методов статистического анализа и осуществления проверок по CVE, Layered Insight заменяет его на инструментированный образ, включающий в себя агента в виде бинарника. Layered Insight (ныне часть Qualys Inc) построен на концепции «встраиваемой безопасности».

Кроме того, он может осуществлять дополнительные проверки безопасности, заданные администратором инфраструктуры или командами DevOps. Этот агент содержит тесты безопасности runtime для анализа сетевого трафика контейнера, I/O потоков и деятельности приложения.

NeuVector

  • Сайт: neuvector.com
  • Лицензия: коммерческая

Он также может самостоятельно блокировать угрозы, изолируя подозрительную активность за счет изменения правил локального firewall'а. NeuVector проводит проверку безопасности контейнера и осуществляет runtime-защиту путем анализа сетевой активности и поведения приложения, создавая индивидуальный профиль безопасности для каждого контейнера.

Сетевая интеграция NeuVector, известная как Security Mesh, способна проводить глубокий анализ пакетов и фильтрацию на 7-ом уровне для всех сетевых соединений в service mesh.

StackRox

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

Кроме того, StackRox анализирует конфигурации Kubernetes, используя CIS Kubernetes и другие своды правил для оценки соответствия контейнеров.

Sysdig Secure

Он сканирует образы контейнеров, обеспечивает runtime-защиту по данным машинного обучения, выполняет крим. Sysdig Secure защищает приложения на протяжении всего жизненного цикла контейнера и Kubernetes. экспертизу для выявления уязвимостей, блокирует угрозы, следит за соответствием установленным стандартам и проводит аудит активности в микросервисах.

Он также обеспечивает всестороннюю runtime-безопасность, включая: Sysdig Secure интегрируется с инструментами CI/CD, такими как Jenkins, и контролирует образы, загружаемые из реестров Docker, предотвращая появление опасных образов в production.

  • runtime-профилирование на основе ML и обнаружение аномалий;
  • runtime-политики, основанные на системных событиях, API K8s-audit, совместных проектах сообщества (FIM — file integrity monitoring; cryptojacking) и фрейморке MITRE ATT&CK;
  • реагирование и устранение инцидентов.

Tenable Container Security

До появления контейнеров Tenable была широко известна в отрасли как компания, разработавшая Nessus — популярный инструмент для поиска уязвимостей и аудита безопасности.

Tenable Container Security использует опыт компании в области компьютерной безопасности для интеграции CI/CD-пайплайна с базами уязвимостей, специализированными пакетами обнаружения вредоносных программ и рекомендациями по устранению угроз безопасности.

Twistlock (Palo Alto Networks)

Twistlock поддерживает различных облачных провайдеров (AWS, Azure, GCP), оркестраторы контейнеров (Kubernetes, Mesospehere, OpenShift, Docker), serverless-среды выполнения, mesh-фреймворки и инструменты CI/CD. Twistlock продвигает себя как платформу, ориентированную на облачные сервисы и контейнеры.

Помимо обычных методов обеспечения безопасности корпоративного уровня, таких как интеграция в CI/CD-пайплайн или сканирование образов, Twistlock использует машинное обучение для генерации поведенческих паттернов и сетевых правил, учитывающих особенности контейнеров.

Пока не известно, как именно эти три платформы будут интегрированы в PRISMA от Palo Alto. Некоторое время назад Twistlock купила компания Palo Alto Networks, владеющая проектами Evident.io и RedLock.

Помогите создать лучший каталог инструментов по обеспечению безопасности Kubernetes!

Мы стремимся сделать этот каталог максимально полным, и для этого нам нужна ваша помощь! Свяжитесь с нами (@sysdig), если на примете есть крутой инструмент, достойный включения в этот список, или вы обнаружили ошибку/устаревшую информацию.

Также вы можете подписаться на нашу ежемесячную рассылку с новостями экосистемы cloud-native и рассказами об интересных проектах из мира безопасности Kubernetes.

P.S. от переводчика

Читайте также в нашем блоге:

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть