Агентство по национальной безопасности и Агентство по кибербезопасности и защите инфраструктуры США опубликовали совместный отчет — «Руководство по усилению безопасности Kubernetes» (Kubernetes Hardening Guidance, 50+ страниц в PDF). В отчете описаны потенциальные угрозы для инфраструктуры Kubernetes, даны рекомендации по снижению рисков, а также примеры безопасных настроек компонентов кластера.
Документ в первую очередь ориентирован на системных администраторов и разработчиков информационных систем национальной безопасности (NSS). Основная задача руководства — помочь администраторам защитить кластер от актуальных угроз. Авторы отмечают, что обычно Kubernetes атакуют из трех побуждений: украсть данные, украсть вычислительные мощности или вывести из строя сервис. Кража данных традиционно самый распространенный мотив. Из атак, набирающих популярность, — использование инфраструктуры K8s для майнинга криптовалюты.
Как устроено руководство
Kubernetes Hardening Guidance предлагает 7 стратегий, которые помогают избежать типичных ошибок при настройке кластера:
-
проверка pod’ов и узлов на предмет наличия уязвимостей и некорректных конфигураций;
-
запуск контейнеров и pod’ов с наименьшими возможными привилегиями;
-
сегментация сети для контроля степени ущерба, который может быть вызван компрометацией (чего именно, не уточняется);
-
использование фаерволов, чтобы ограничивать необязательные сетевые соединения, и шифрования для обеспечения конфиденциальности;
-
строгие правила аутентификации и авторизации, чтобы ограничивать права доступа пользователей и администраторов, а также чтобы уменьшить поверхность атаки;
-
аудит и логирование, которые помогают администраторам предотвращать возможную вредоносную активность;
-
периодический анализ всех настроек Kubernetes и использование сканеров уязвимостей, чтобы выявлять риски и применять исправления безопасности.
Отчет включает несколько тематических блоков: «Модели угроз», «Безопасность pod’ов», «Сегментация и защита сети», «Аутентификация и авторизация», «Аудит», «Обновление и работа с приложениями». Также приводятся примеры создания и настройки различных компонентов кластера.
В каждом тематическом блоке кратко описываются сущности K8s (pod’ы, контейнеры, пространства имен, RBAC и т. д.), даются рекомендации по настройкам и выбору оптимального рабочего процесса. При этом авторы в основном рассматривают встроенные механизмы и методы обеспечения безопасности Kubernetes. Другие Open Source-решения упоминаются лишь кратко — как дополнительные инструменты для повышения уровня безопасности кластера; для мониторинга, например, упоминаются Prometheus, Grafana и ELK.
Среди примеров конфигураций:
-
создание Dockerfile для сборки и деплоя приложений от имени обычного пользователя (не root);
-
настройка Pod Security Policy;
-
настройка роли типа
pod-reader
с помощью RBAC; -
настройка
LimitRange
.
Также в руководстве говорится о плюсах применения Service Mesh в контексте безопасности.
Резюме
Kubernetes Hardening Guidance — неплохое пособие по введению в безопасность «ванильного» Kubernetes. Документ можно брать на вооружение начинающим DevOps- и SRE-инженерам. Впрочем, надо понимать: чтобы обеспечить надежную защиту «боевых» кластеров, чаще всего одними лишь встроенными инструментами K8s и базовыми настройками не обойтись.