Сканирование Kubernetes RBAC с помощью Kubescape и Kubiscan

Сканирование Kubernetes RBAC с помощью Kubescape и Kubiscan

3 ноября 2022 г.

Управление доступом на основе ролей (RBAC) в целом представляет собой подход к ограничению доступа к системе для авторизованных пользователей. Система управления доступом на основе ролей Kubernetes считается сложной и трудной для восприятия многими специалистами в области технологий. В следующей статье мы рассмотрим инструменты экосистемы Kubernetes, такие как Kubiscan и Kubescape, которые помогают специалистам по кибербезопасности и администраторам Kubernetes сканировать и оценивать RBAC. В следующих сценариях мы развернем кластер Google Kubernetes Engine GKE и проанализируем его управление доступом на основе ролей с помощью KubiScan и Kubescape.

Предпосылки

:::информация В следующем сценарии мы будем использовать Google Cloud и его управляемый кластер Kubernetes. Однако вы можете сканировать модель RBAC любого кластера Kubernetes, используя машину Linux с доступом kubectl к кластеру.

:::

  • Аккаунт GCP
  • Включить API для Google Kubernetes Engine API

Создать кластер GKE

Для развертывания кластера мы будем использовать облачную оболочку и gcloud cli. Настройте идентификатор проекта для gcloud cli:

gcloud config set project PROJECT_ID

Следующая команда создаст кластер в регионе us-west1:

gcloud container clusters create-auto my-test-cluster 
    --region=us-west1

:::информация Раскрутка кластера займет несколько минут

:::

Настройте доступ к kubectl с помощью следующей команды:

gcloud container clusters get-credentials my-test-cluster  
    --region us-west1

you can check GKE access by running kubectl commands


КубиСкан

KubiScan – это инструмент с открытым исходным кодом для сканирования кластеров Kubernetes на наличие рискованных разрешений в авторизации K8s RBAC (управление доступом на основе ролей). модель. KubiScan был создан и поддерживается CyberArk.

Установка

Его можно запустить с помощью контейнера Docker или скрипта Python. В этом уроке мы будем использовать Python3. На вашем компьютере с Linux выполните следующие команды, чтобы установить необходимые компоненты KubiScan:

apt-get update  
apt-get install -y python3 python3-pip 
pip3 install -r requirements.txt  

Для удобства вы можете настроить псевдоним для запуска python-скрипта kubiscan:

alias kubiscan='python3 /<KubiScan_folder>/KubiScan.py'

:::подсказка Если вы хотите, чтобы псевдоним сохранялся, добавьте его в файл .bashrc или .profile в домашнем каталоге пользователя.

:::

Сканировать

С помощью KubiScan мы можем искать модули с привилегированными учетными записями:

kubiscan -rp

kubiscan -rp

В выводе мы видим, что модуль gmp-operator в пространстве имен gke-gmp-system помечен как КРИТИЧЕСКИЙ приоритет.

Следующая команда выведет список опасных тем в вашем кластере:

kubiscan -rs

kubiscan -rs

Чтобы получить информацию обо всех привилегированных PodsContainers, работающих в вашем кластере Kubernetes, выполните следующую команду:

kubiscan --privleged-pods

Чтобы получить как можно больше информации, вы можете запустить команду kubiscan --all. Он выведет таблицы «Рискованные контейнеры», «Рискованные пользователи», «Рискованные роли и кластерные роли», «Рискованные привязки ролей и привязки кластерных ролей».

kubiscan --all

kubiscan --all

KubiScan также позволяет перечислить все модули с доступом к секретным данным через том или переменные среды:

kubiscan --pods-secrets-env
kubiscan -psv

Вы можете найти много других полезных команд KubiScan в меню «помощь»:

kubiscan -h

Как работает КубиСкан

В репозитории KubiScan вы можете найти файл risky_roles.yaml, содержащий самоуверенные шаблоны. для рискованных ролей с приоритетами. KubiScan проверяет, соответствуют ли роли кластера правилам рискованной роли, и помечает их соответствующим образом в выходной электронной таблице.

Вы можете изменить файл, чтобы добавить шаблоны ролей и удалить их, которые больше подходят для вашей среды.


Кьюбскейп

Kubescape – это швейцарский инструмент с открытым исходным кодом, который предоставляет визуализатор RBAC, анализ рисков сканирования уязвимостей изображений и соответствие требованиям безопасности. Kubescape может обнаруживать нарушения RBAC, уязвимости программного обеспечения и неправильные конфигурации на ранних этапах конвейера CI/CD, мгновенно вычисляет оценку риска и показывает тенденции риска с течением времени. Он имеет встроенную интеграцию с инструментами DevOps, такими как CircleCi, Jenkins, GitLab CICD, GitHub Actions и т. д. Kubescape был создан и поддерживается ARMO.

Kubescape предлагает подробные документы здесь

Установка

Есть несколько способов установить Kubescape в Linux:

Он также доступен на Mac и Windows.

Чтобы быстро настроить KubeScape в Linux с помощью сценария установки, выполните следующую команду:

curl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash

Сканировать

Когда Kubescape готов, мы можем приступить к сканированию кластера:

kubescape scan

kubescape scan

Kubescape оценивает ваш кластер по различным параметрам, а не только по управлению доступом на основе ролей. Вы можете видеть, какой контроль прошел и не прошел. Он также покажет, какой ресурс не прошел проверку в каждом тесте

С точки зрения RBAC, Kubescape помогает упростить управление доступом к базе ролей Kubernetes

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

Чтобы использовать визуализатор Kubescape RBAC, вам необходимо создать бесплатную учетную запись Kubescape Cloud Platform. Все результаты сканирования могут быть отправлены на платформу.

Kubescape Cloud

После создания учетной записи вы можете перейти к «визуализатору RBAC» в меню слева и скопировать идентификатор учетной записи. При запуске сканирования с параметром идентификатора учетной записи все результаты сканирования будут отправлены в облачную платформу.

kubescape scan --submit --account=[account-id]

Если вы хотите использовать только возможности визуализатора RBAC и отправлять только данные, связанные с RBAC, вы можете использовать следующую команду:

kubescape submit rbac --account [account-id]

В Kubescape Cloud перейдите к «RBAC Visualizer» в меню слева. Во всплывающем меню выберите свой кластер k8s. После этого вы сможете увидеть визуализацию RBAC вашего кластера.

RBAC Visualizer

RBAC Visualizer zoomed

Вы можете изменить представление с помощью встроенных запросов и выбрать «раскладку по типу»:

Группировать по глаголам:

Следующий встроенный запрос может показать «кто может запускать модули»:

Если вы не хотите, чтобы результаты сканирования отправлялись в ARMO, добавьте --keep-local

флажок, если вы ранее использовали команду --submit. Таким образом, вы можете распечатать вывод в консоли. Результаты сканирования также можно выводить в форматах JSON, PDF, HTML и многих других, что очень удобно для конвейеров CICD и автоматизации.

Пользовательский фреймворк Kubescape

Kubescape позволяет сканировать кластер с помощью популярных платформ, таких как NSA, MITRE, CIS и других. Это также позволяет вам создавать свои собственные рамки. Существуют десятки элементов управления, которые можно использовать в любой среде. Каждый элемент управления проверяет определенный аспект кластера.

Мы можем настроить собственную структуру, которая будет проверять только вещи, связанные с RBAC. Для этого перейдите к сканированию конфигурации в меню слева, выберите «Frameworks» и нажмите «Customize your own Framework».

Укажите «Имя платформы». Затем найдите и выберите элементы управления, связанные с RBAC, с помощью раздела «Поиск». Когда все будет готово, нажмите «Применить».

Custom framework

После того как пользовательская среда RBAC настроена на облачной платформе, мы можем запустить сканирование с помощью kubescape cli:

kubescape scan framework rbac

kubescape scan framework rbac

Каждая строка в электронной таблице представляет контроль. В столбце «Неудачные ресурсы» вы можете увидеть количество отказавших ресурсов.

Исправление и ссылку на документацию можно найти в выводе консоли, если вы добавите флаг --verbose.

kubescape scan framework rbac -v

kubescape scan framework rbac -v

В выходных данных вы можете увидеть URL-адрес, который перенаправит вас на результат сканирования в Kubescape Cloud.

Configuration scanning results of the scan in the Kubescape cloud

Вы можете увидеть предлагаемые действия по исправлению в столбце «Исправление». В разделе «Ресурсы» вы увидите список всех ресурсов вашего кластера.

Resources view in the Configuration Scanning

Если щелкнуть небольшой значок «инструмент» справа от строки «EndpointSlice», произойдет перенаправление к определению YAML ресурса с выделенными строками, не прошедшими контроль. В этом примере CIS-5.7.4 контролирует использование пространства имен по умолчанию.

YAML definition of the K8s resource with potential issue highlighted

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

Обзор

Мы изучили два инструмента, которые администраторы Kubernetes или специалисты по кибербезопасности могут использовать для анализа и оценки управления доступом на основе ролей (RBAC) кластера Kubernetes. KubiScan — это специальный инструмент для анализа RBAC, который можно легко настроить с помощью файла risky_roles.yaml. С другой стороны, у нас есть Kubescape, который обеспечивает гораздо более полный анализ кластера K8s помимо RBAC с помощью модной облачной платформы Kubescape и визуализатора RBAC. Kubescape получил более широкое сообщество и лучше поддерживается, имеет интеграцию с различными платформами и популярными инструментами DevOps.

С моей точки зрения, Kubescape — это инструмент для оценки кластера Kubernetes и понимания его управления доступом на основе ролей. Однако, если вам нужно только сканировать модель RBAC K8s по определенному шаблону или правилу без каких-либо других действий, попробуйте KubiScan.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE