Область и цели пентеста Kubernetes

Пентест Kubernetes требует чёткого определения области тестирования перед началом работы. Необходимо получить письменное разрешение от владельца инфраструктуры и документировать все компоненты, входящие в область оценки: API-сервер, kubelet, контейнерная среда выполнения, хранилище etcd, сетевые политики и управление доступом на основе ролей (RBAC).

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

  • Определите границы тестирования и получите письменное согласие
  • Задокументируйте все компоненты кластера в области тестирования
  • Установите критерии успеха для каждого этапа оценки

Тестирование механизмов аутентификации и авторизации

Аутентификация в Kubernetes может быть реализована через сертификаты X.509, токены Bearer, прокси-аутентификацию или другие методы. Пентестер должен проверить, правильно ли настроены цепочки сертификатов, истекают ли токены и требуется ли их ротация. Особое внимание следует уделить проверке учётных данных по умолчанию и слабых паролей в сервис-аккаунтах.

RBAC — это основной механизм контроля доступа в Kubernetes. Необходимо проверить привязки ролей (RoleBinding и ClusterRoleBinding), убедиться, что права предоставлены только необходимым субъектам и что не используются избыточные разрешения. Проверьте, не содержат ли роли разрешения на действия с ресурсами, требующие повышенных привилегий, такие как создание privilleged-подов или доступ к узлам.

  • Проверьте конфигурацию и ротацию сертификатов
  • Оцените сильность и сроки действия токенов Bearer
  • Убедитесь, что RBAC ограничивает доступ согласно принципу наименьших привилегий

Оценка безопасности API-сервера

API-сервер Kubernetes — это критический компонент, требующий защиты от несанкционированного доступа. Проверьте, используется ли TLS для всех соединений, включены ли необходимые плаги безопасности (такие как PodSecurityPolicy или Pod Security Admission), и настроена ли корректно аудит событий. Убедитесь, что API-сервер недоступен из неуправляемых сетей.

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

  • Проверьте наличие и конфигурацию TLS на API-сервере
  • Оцените плаги безопасности подов и политики сетевого доступа
  • Проверьте, полностью ли аудитируются события API-сервера

Тестирование изоляции рабочих нагрузок и контейнеров

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

Проверьте управление секретами и убедитесь, что конфиденциальные данные не внедрены в переменные окружения в текстовом виде, а используются хранилища (в том числе внешние, такие как HashiCorp Vault). Оцените механизмы контроля ресурсов (CPU, память) и убедитесь, что поды не могут исчерпать ресурсы узла, вызывая отказ в обслуживании для других рабочих нагрузок.

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

Оценка безопасности хранилища и etcd

Etcd — это компонент, хранящий всё состояние кластера, включая конфигурации и секреты. Проверьте, шифруются ли данные в покое (encryption at rest), используется ли TLS для связи между компонентами, и ограничен ли доступ к etcd. Убедитесь, что резервные копии etcd защищены и хранятся безопасно, а доступ к ним ограничен авторизованными администраторами.

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

  • Проверьте наличие шифрования данных в покое для etcd
  • Убедитесь, что доступ к etcd ограничен и требует аутентификацию
  • Оцените безопасность хранилища и управление жизненным циклом данных

Анализ сетевых политик и сегментации

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

Оцените сегментацию сети на уровне узлов и проверьте, используется ли сетевой плагин (CNI) с поддержкой политик безопасности. Проверьте, изолированы ли служебные пространства имён (например, kube-system) от пользовательских рабочих нагрузок и ограничен ли доступ к критическим сервисам из подов с более низким уровнем привилегий.

  • Убедитесь, что сетевые политики требуют явного разрешения входящего трафика
  • Проверьте покрытие политик всеми критическими компонентами
  • Оцените изоляцию служебных пространств имён

Документирование результатов и рекомендации

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

Рекомендации должны быть практичными и учитывать контекст использования кластера. Приоритизируйте исправление критических проблем, таких как неправильная настройка RBAC, отсутствие шифрования данных или уязвимости в контексте безопасности подов. Обеспечьте процесс повторного тестирования после внедрения исправлений для подтверждения их эффективности.

  • Предоставьте подробный отчёт с классификацией уязвимостей
  • Дайте практические рекомендации по исправлению
  • Спланируйте повторное тестирование после внедрения исправлений

Источники

PENTEST.RED / RED JOURNAL