Проанализировав самые критичные уязвимости 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].
Приемы системного и сетевого администрирования для защиты 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].
Инструменты аудита, мониторинга, контроля и управления уровнем безопасности Kubernetes
Современный рынок ПО предлагает множество решений для комплексного аудита и управления cybersecurity K8s, как с открытым исходным кодом, так и коммерческих продуктов. Эти средства позволяют реализовать большинство вышеуказанных настроек безопасности кубернетес, а также многие из приемов системного и сетевого администрирования.
Среди свободно доступных инструментов под лицензиями Apache, MIT, MPL и некоторыми проприетарными разработками, ориентированными на одно направление информационной безопасности K8s, наиболее популярны следующие [5]:
- для сканирования образов контейнеров на предмет известных уязвимостей из базы CVE, проверки рисков утечки учетных данных и лицензионных угроз можно использовать Anchore, Clair, Snyk, Dagda, KubeXray, Trivy;
- для аудита и управления безопасностью сред выполнения контейнеров (runtime) применяется Falco – набор инструментов для обеспечения безопасности облачных сред выполнения, а также «родные» для ядра Linux фреймворки (AppArmor, Seccomp, SELinux, Sysdig);
- обеспечить сетевую безопасность Kubernetes (шифрование TLS, списки контроля доступа, политики сетевого доступа на основе идентификаторов контейнеров, брандмауэр, HTTPS и RBAC для идентификации и авторизации обмена данными между различными рабочими нагрузками в кластере) помогут Aporeto, Calico, Trireme, Istio, Tigera, Cilium;
- проверить надежность распространения образов, обеспечить безопасное хранение секретной информации и выстроить целостный DevOps—pipeline можно с помощью 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].
Узнайте больше про обеспечение комплексной безопасности больших данных в корпоративном хранилище (Data Lake) Hadoop и других кластерах (Kafka, Spark, HBase) в образовательном курсе DSEC: Безопасность озера данных Hadoop в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов для руководителей, аналитиков, архитекторов, инженеров и исследователей Big Data в Москве.
Источники
- https://habr.com/ru/company/flant/blog/436300/
- https://tech-geek.ru/kubernetes-security/
- https://habr.com/ru/company/flant/blog/417905/
- https://docs.microsoft.com/ru-ru/azure/aks/operator-best-practices-cluster-isolation
- https://habr.com/ru/company/flant/blog/465141/