Как защитить Big Data в кластере Kubernetes: лучшие практики, инструменты и приемы DevOps-инженера

DevOps, Kubernetes, администрирование, контейнеризация, безопасность, Security, защита информации, Big Data

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

Лучшие практики cybersecurity для Kubernetes

Комплексную безопасность кластера Kubernetes и больших данных, которые там хранятся и обрабатываются, можно обеспечить совокупностью следующих инструментов:

  • правильная настройка опций cybersecurity на всех ключевых элементах K8s-инфраструктуры;
  • приемы системного и сетевого администрирования;
  • использование специализированных средств для аудита, мониторинга, контроля и управления уровнем безопасности.

Из специфических опций cybersecurity для кубенетис стоит отметить следующие:

  • регулярное обновление Kubernetes до последней версии позволит избежать проблем с вновь обнаруженными уязвимостями, а также использовать новые возможности в области обеспечения cybersecurity;
  • правильная настройка политик управления доступом на основе ролей (RBAC, Role-Based Access Control) и атрибутов (ABAC, Attribute-Based Access Control) помогут предупредить проблему несанкционированного применения привилегий для отдельных приложений, пользователей или команд [1];
  • ограничения на запуск контейнеров под учетной записью суперпользователя (root) позволит предупредить проблему перехвата управления в случае компрометации [2];
  • cторонняя аутентификация для сервер API Kubernetes гарантирует идентичность от удалённой платформы (с защитой вроде двухфакторной аутентификации), избавляет администраторов от необходимости перенастраивать сервер для добавления/удаления пользователей, а также позволяет централизовано управлять правами всей компании [3];
  • скрытие метаданных облачных сервисов поможет избежать проблемы эскалации привилегий в кластере [1];
  • создание отдельных пространств имён поможет установить первый уровень изоляции компонентов, обеспечив логическую изоляцию для разделения команд и проектов, что гораздо предпочтительней физической изоляции отдельных групп или развертываний приложений [4];
  • ограничение рабочих нагрузок на узлы с конфиденциальными данными снизит риски обращения небезопасных приложений к контейнеру с секретной информацией, работающем в той же среде исполнения или на том же хосте [1].
RBAC, DevOps, Kubernetes,аутентификация, авторизация, уровни доступа, администрирование, контейнеризация, безопасность, Security, защита информации
Управление доступом на основе ролей (RBAC) в Kubernetes

Приемы системного и сетевого администрирования для защиты Big Data в кластере K8s

Помимо тонкой настройки каждого из компонентов сложной системы оркестрации контейнеров Kubernetes, для обеспечения информационной безопасности Big Data кластера DevOps-инженер может использовать следующие приемы системного/сетевого администратора:

  • использование сетевых политик кластера для запрета лишнего трафика между подами улучшит контроль доступа к сети в контейнерах и из них [1];
  • применение брандмаэура – скрытие etcd, который является критически важным компонентом Kubernetes, хранящим информацию о состоянии кластера и секретах доступа (токены, сертификаты), за firewall, позволит избежать проблемы эскалации привилегий [3];
  • повсеместное использование шифрования TLS у каждого инфраструктурного компонента K8s, поддерживающего этот протокол, защитит от сниффинга трафика, гарантируя форсирование удостоверения идентичности сервера и удостоверение идентичности клиента [2];
  • непрерывное логгирование (Audit Logging) позволит быстро проанализировать сбои авторизации, а также необычные или нежелательные вызовов API, которые могут свидетельствовать о попытке злоумышленника несанкционированно воспользоваться учетными данными [1];
  • регулярная ротация ключей шифрования и сертификатов безопасности (клиентского и серверного) ограничит «радиус поражения» в случае компрометации [3];
  • обеспечение сетевой безопасности узлов (корректная настройка хоста, минимизация прямого административного доступа к узлам K8s, блокировка доступа к портам, которые использует kubelet, в т.ч. 10250 и 10255, а также ограничение доступа к API-серверу Kubernetes, кроме доверенных сетей) сократят риски возможных хакерских атак [1].
DevOps, Kubernetes,аутентификация, авторизация, уровни доступа, администрирование, контейнеризация, безопасность, Security, защита информации
Аутентификация и авторизация в K8s

Инструменты аудита, мониторинга, контроля и управления уровнем безопасности Kubernetes

Современный рынок ПО предлагает множество решений для комплексного аудита и управления cybersecurity K8s, как с открытым исходным кодом, так и коммерческих продуктов. Эти средства позволяют реализовать большинство вышеуказанных настроек безопасности кубернетес, а также многие из приемов системного и сетевого администрирования.

Среди свободно доступных инструментов под лицензиями Apache, MIT, MPL и некоторыми проприетарными разработками, ориентированными на одно направление информационной безопасности K8s, наиболее популярны следующие [5]:

  • для сканирования образов контейнеров на предмет известных уязвимостей из базы CVE, проверки рисков утечки учетных данных и лицензионных угроз можно использовать Anchore, Clair, Snyk, Dagda, KubeXray, Trivy;
  • для аудита и управления безопасностью сред выполнения контейнеров (runtime) применяется Falco – набор инструментов для обеспечения безопасности облачных сред выполнения, а также «родные» для ядра Linux фреймворки (AppArmor, Seccomp, SELinux, Sysdig);
  • обеспечить сетевую безопасность Kubernetes (шифрование TSL, списки контроля доступа, политики сетевого доступа на основе идентификаторов контейнеров, брандмауэр, HTTPS и RBAC для идентификации и авторизации обмена данными между различными рабочими нагрузками в кластере) помогут Aporeto, Calico, Trireme, Istio, Tigera, Cilium;
  • проверить надежность распространения образов, обеспечить безопасное хранение секретной информации и выстроить целостный DevOpspipeline можно с помощью Grafeas, In-toto, Portieris, Vault;
  • комплексный аудит безопасности Kubernetes (поиск небезопасных параметров конфигурации среди компонентов кластера, незащищенных учетных записей и открытых портов, проверка прав на доступ к файлам, злоупотребления привилегиями) обеспечивают Kube-bench, Kube-hunter, Kubeaudit, Kubesec, Open Policy Agent.

Также стоит отметить коммерческие продукты комплексного управления безопасностью кубернетис, которые единовременно решают все вышеперечисленные задачи: Aqua Security, Capsule8, Cavirin, Google Cloud Security Command Center, Layered Insight (Qualys), NeuVector, StackRox, Sysdig Secure, Tenable Container Security, Twistlock [5].

DevOps, Kubernetes, администрирование, контейнеризация, безопасность, Security, защита информации, Big Data
Сравнение коммерческих систем аудита и обеспечения информационной безопасности Kubernetes

Узнайте больше про обеспечение комплексной безопасности больших данных в корпоративном хранилище (Data Lake) Hadoop и других кластерах (Kafka, Spark, HBase) в образовательном курсе DSEC: Безопасность озера данных Hadoop в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов для руководителей, аналитиков, архитекторов, инженеров и исследователей Big Data в Москве.

расписание компьютерные курсы для руководителей, аналитиков, программистов, администраторов и пользователей Internet of Things, Big Data и Machine Learning Смотреть расписание занятий
регистрация на компьютерные курсы для руководителей, аналитиков, программистов, администраторов и пользователей Internet of Things, Big Data и Machine Learning Зарегистрироваться на курс

Источники

  1. https://habr.com/ru/company/flant/blog/436300/
  2. https://tech-geek.ru/kubernetes-security/
  3. https://habr.com/ru/company/flant/blog/417905/
  4. https://docs.microsoft.com/ru-ru/azure/aks/operator-best-practices-cluster-isolation
  5. https://habr.com/ru/company/flant/blog/465141/