Агентство по национальной безопасности и Агентство по кибербезопасности и защите инфраструктуры США опубликовали совместный отчет — «Руководство по усилению безопасности 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 в контексте безопасности.

Пример интеграции Service Mesh для логирования сети с использованием SIEM-системы

Резюме

Kubernetes Hardening Guidance — неплохое пособие по введению в безопасность «ванильного» Kubernetes. Документ можно брать на вооружение начинающим DevOps- и SRE-инженерам. Впрочем, надо понимать: чтобы обеспечить надежную защиту «боевых» кластеров, чаще всего одними лишь встроенными инструментами K8s и базовыми настройками не обойтись.

P.S.

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