Область и цели пентеста 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, отсутствие шифрования данных или уязвимости в контексте безопасности подов. Обеспечьте процесс повторного тестирования после внедрения исправлений для подтверждения их эффективности.
- Предоставьте подробный отчёт с классификацией уязвимостей
- Дайте практические рекомендации по исправлению
- Спланируйте повторное тестирование после внедрения исправлений