Всем DevOps! 🖖
Собрали 10 сканеров для поиска уязвимостей безопасности и неправильных конфигураций в Kubernetes, делимся!
Часть 1
▪️ Kube-bench
Репозиторий: https://github.com/aquasecurity/kube-bench
Kube-bench — это сканер, который проверяет, развернут ли Kubernetes в соответствии с best practices безопасности, определенными в CIS Kubernetes Benchmark. Kube-bench был удостоен награды InfoWorld Basic Award 2018.
Тесты настраиваются с помощью файлов YAML, что позволяет легко обновлять этот инструмент по мере развития спецификаций тестов.
Quick start
• Внутри контейнера:
Репозиторий: https://github.com/aquasecurity/kube-hunter
Kube-hunter ищет слабые места безопасности в кластерах Kubernetes. Этот инструмент был разработан для повышения осведомленности и наглядности проблем безопасности в средах Kubernetes. НЕ следует запускать kube-hunter в кластере Kubernetes, которым вы не владеете! Находясь за пределами кластера, kube-hunter сканирует домен или диапазон адресов на наличие открытых портов, связанных с Kubernetes, и проверяет наличие проблем конфигурации, которые делают ваш кластер уязвимым для злоумышленников.
Quick start
• На любой машине выберите удаленное сканирование и укажите IP-адрес или доменное имя вашего
кластера Kubernetes. Это даст вам обзор вашей настройки Kubernetes с точки зрения злоумышленника:
Репозиторий: https://github.com/Shopify/kubeaudit
Kubeaudit — это инструмент командной строки и пакет Go для аудита кластеров Kubernetes на предмет различных проблем безопасности.
Kubeaudit поставляется с большим списком «аудиторов», которые проверяют различные аспекты, такие как SecurityContext подов. Полный список аудиторов есть в репозитории.
Quick start
• Через Homebrew:
Репозиторий: https://github.com/octarinesec/kube-scan
С помощью Kube-scan можно получить оценку риска ваших рабочих нагрузок. Kube-scan дает оценку риска от 0 (нет риска) до 10 (высокий риск) для каждой рабочей нагрузки. Kube-scan предназначен для того, чтобы помочь понять, какие из рабочих нагрузок подвергаются наибольшему риску и почему, а также позволяет определить приоритетность обновлений политики безопасности вашего модуля, определений модулей и файлов манифеста, чтобы держать риск под контролем.
Quick start
Репозиторий: https://github.com/controlplaneio/kubesec
Kubesec — это open-source инструмент для оценки риска безопасности рабочих нагрузок Kubernetes на основе их конфигурации YAML.
Kubesec количественно оценивает риск для ресурсов Kubernetes, проверяя файлы конфигурации и файлы манифеста, используемые для развертываний и операций Kubernetes.
Quick start
• Docker Container:
• Kubernetes Admission Controller: https://github.com/controlplaneio/kubesec-webhook
• Kubectl Plugin: https://github.com/controlplaneio/kubectl-kubesec
Пример использования командной строки:
#open_source
Собрали 10 сканеров для поиска уязвимостей безопасности и неправильных конфигураций в Kubernetes, делимся!
Часть 1
▪️ Kube-bench
Репозиторий: https://github.com/aquasecurity/kube-bench
Kube-bench — это сканер, который проверяет, развернут ли Kubernetes в соответствии с best practices безопасности, определенными в CIS Kubernetes Benchmark. Kube-bench был удостоен награды InfoWorld Basic Award 2018.
Тесты настраиваются с помощью файлов YAML, что позволяет легко обновлять этот инструмент по мере развития спецификаций тестов.
Quick start
• Внутри контейнера:
docker run - pid=host -v /etc:/etc:ro -v /var:/var:ro -t aquasec/kube-bench:latest - version 1.18• Внутри Kubernetes-кластера:
kubectl apply -f https://github.com/aquasecurity/kube-bench/blob/main/job.yaml▪️ Kube-hunter
Репозиторий: https://github.com/aquasecurity/kube-hunter
Kube-hunter ищет слабые места безопасности в кластерах Kubernetes. Этот инструмент был разработан для повышения осведомленности и наглядности проблем безопасности в средах Kubernetes. НЕ следует запускать kube-hunter в кластере Kubernetes, которым вы не владеете! Находясь за пределами кластера, kube-hunter сканирует домен или диапазон адресов на наличие открытых портов, связанных с Kubernetes, и проверяет наличие проблем конфигурации, которые делают ваш кластер уязвимым для злоумышленников.
Quick start
• На любой машине выберите удаленное сканирование и укажите IP-адрес или доменное имя вашего
кластера Kubernetes. Это даст вам обзор вашей настройки Kubernetes с точки зрения злоумышленника:
pip install kube-hunter• На машине в кластере:
docker run -it — rm — network host aquasec/kube-hunter• В поде внутри кластера:
kubectl create -f https://github.com/aquasecurity/kube-hunter/blob/main/job.yaml▪️ Kubeaudit
Репозиторий: https://github.com/Shopify/kubeaudit
Kubeaudit — это инструмент командной строки и пакет Go для аудита кластеров Kubernetes на предмет различных проблем безопасности.
Kubeaudit поставляется с большим списком «аудиторов», которые проверяют различные аспекты, такие как SecurityContext подов. Полный список аудиторов есть в репозитории.
Quick start
• Через Homebrew:
brew install kubeaudit• Через Helm:
helm upgrade — install kubeaudit secureCodeBox/kubeaudit▪️ Kube-scan
Репозиторий: https://github.com/octarinesec/kube-scan
С помощью Kube-scan можно получить оценку риска ваших рабочих нагрузок. Kube-scan дает оценку риска от 0 (нет риска) до 10 (высокий риск) для каждой рабочей нагрузки. Kube-scan предназначен для того, чтобы помочь понять, какие из рабочих нагрузок подвергаются наибольшему риску и почему, а также позволяет определить приоритетность обновлений политики безопасности вашего модуля, определений модулей и файлов манифеста, чтобы держать риск под контролем.
Quick start
kubectl apply -f https://raw.githubusercontent.com/octarinesec/kube-scan/master/kube-scan.yamlЗатем установите для браузера значение
kubectl port-forward --namespace kube-scan svc/kube-scan-ui 8080:80
http://localhost:8080
▪️ KubesecРепозиторий: https://github.com/controlplaneio/kubesec
Kubesec — это open-source инструмент для оценки риска безопасности рабочих нагрузок Kubernetes на основе их конфигурации YAML.
Kubesec количественно оценивает риск для ресурсов Kubernetes, проверяя файлы конфигурации и файлы манифеста, используемые для развертываний и операций Kubernetes.
Quick start
• Docker Container:
docker.io/kubesec/kubesec:v2 https://hub.docker.com/r/kubesec/kubesec/tags• Linux/MacOS/Win binary: https://github.com/controlplaneio/kubesec/releases
• Kubernetes Admission Controller: https://github.com/controlplaneio/kubesec-webhook
• Kubectl Plugin: https://github.com/controlplaneio/kubectl-kubesec
Пример использования командной строки:
kubesec scan k8s-deployment.yaml
#open_source
🔥13👍4❤1
Часть 2
▪️ Kube-score
Репозиторий: https://github.com/zegl/kube-score
Kube-score выполняет статический анализ кода для всех определений объектов Kubernetes. Результатом является список рекомендаций о том, что можно улучшить, чтобы сделать приложение более безопасным и отказоустойчивым.
Онлайн-демо
Quick start
• Docker:
▪️ KubiScan
Репозиторий: https://github.com/cyberark/KubiScan
KubiScan сканирует кластеры Kubernetes на наличие рискованных разрешений в модели разрешений управления доступом на основе ролей (RBAC) Kubernetes. KubiScan может сканировать поды, содержащие токены привилегированных сервисных учетных записей, которые можно использовать для атак с целью повышения привилегий или для компрометации кластера.
Quick start
Установка:
• Поиск подов с привилегированной учетной записью:
Репозиторий: https://github.com/Shopify/krane
Krane — это инструмент командной строки, написанный на Ruby. Krane — простой инструмент для статического анализа Kubernetes RBAC. Он выявляет потенциальные риски безопасности в конструкции RBAC K8 и дает предложения по их снижению. Панель управления Krane отображает текущее состояние безопасности RBAC и позволяет перемещаться по определению.
Quick start
Установка:
Репозиторий: https://github.com/inovex/illuminatio
Illuminatio — утилита для автоматического тестирования сетевых политик Kubernetes. Просто запустите illuminatio clean run, и illuminatio просканирует ваш кластер Kubernetes на наличие сетевых политик, создаст соответствующие тестовые примеры и выполнит их, чтобы определить, действуют ли политики.
Quick start
Установка:
Репозиторий: https://github.com/Erezf-p/kubei
В кластере Kubernetes Kubei используется для анализа непосредственных угроз. Большая часть Kubei написана на языке программирования Go.
Kubei — это инструмент сканирования уязвимостей и сравнительного анализа CIS Docker, который позволяет пользователям получить точную и немедленную оценку рисков своих кластеров Kubernetes.
Quick start
Для развертывания Kubei в кластере:
Чтобы проверить состояние Kubei и ход текущего сканирования, выполните следующую команду:
#open_source
▪️ Kube-score
Репозиторий: https://github.com/zegl/kube-score
Kube-score выполняет статический анализ кода для всех определений объектов Kubernetes. Результатом является список рекомендаций о том, что можно улучшить, чтобы сделать приложение более безопасным и отказоустойчивым.
Онлайн-демо
Quick start
• Docker:
docker pull zegl/kube-score• Homebrew:
brew install kube-score• Krew:
kubectl krew install scoreПолный список проверок см. в README_CHECKS.md
▪️ KubiScan
Репозиторий: https://github.com/cyberark/KubiScan
KubiScan сканирует кластеры Kubernetes на наличие рискованных разрешений в модели разрешений управления доступом на основе ролей (RBAC) Kubernetes. KubiScan может сканировать поды, содержащие токены привилегированных сервисных учетных записей, которые можно использовать для атак с целью повышения привилегий или для компрометации кластера.
Quick start
Установка:
- alias kubiscan='python3 https://github.com/cyberark/KubiScan/blob/master/KubiScan.pyПримеры
• Поиск подов с привилегированной учетной записью:
kubiscan -rp• Проверка наличия этой учетной записи в списке рискованных:
kubiscan -rs• Поиск всех правил, которые есть в этой учетной записи службы:
kubiscan -aaes “risky-sa” -ns “default” -k “ServiceAccount”▪️ Krane
Репозиторий: https://github.com/Shopify/krane
Krane — это инструмент командной строки, написанный на Ruby. Krane — простой инструмент для статического анализа Kubernetes RBAC. Он выявляет потенциальные риски безопасности в конструкции RBAC K8 и дает предложения по их снижению. Панель управления Krane отображает текущее состояние безопасности RBAC и позволяет перемещаться по определению.
Quick start
Установка:
gem install kraneЗатем:
krane deploy <app’s namespace> <kube context>
▪️ IlluminatioРепозиторий: https://github.com/inovex/illuminatio
Illuminatio — утилита для автоматического тестирования сетевых политик Kubernetes. Просто запустите illuminatio clean run, и illuminatio просканирует ваш кластер Kubernetes на наличие сетевых политик, создаст соответствующие тестовые примеры и выполнит их, чтобы определить, действуют ли политики.
Quick start
Установка:
pip3 install illuminatioИли через плагин Kubectl:
-> ln -s $(which illuminatio) /usr/local/bin/kubectl-illuminatioМожно проверять:
-> kubectl plugin list — name-only | grep illuminatio
illuminatio clean run
▪️ KubeiРепозиторий: https://github.com/Erezf-p/kubei
В кластере Kubernetes Kubei используется для анализа непосредственных угроз. Большая часть Kubei написана на языке программирования Go.
Kubei — это инструмент сканирования уязвимостей и сравнительного анализа CIS Docker, который позволяет пользователям получить точную и немедленную оценку рисков своих кластеров Kubernetes.
Quick start
Для развертывания Kubei в кластере:
kubectl apply -f https://raw.githubusercontent.com/Portshift/kubei/master/deploy/kubei.yamlЗатем перенаправьте порты в веб-приложение Kubei:
kubectl -n kubei port-forward $(kubectl -n kubei get pods -lapp=kubei -o jsonpath=’{.items[0].metadata.name}’) 8080В браузере перейдите по адресу
http://localhost:8080/view/
и нажмите «GO», чтобы запустить сканирование.Чтобы проверить состояние Kubei и ход текущего сканирования, выполните следующую команду:
kubectl -n kubei logs $(kubectl -n kubei get pods -lapp=kubei -o jsonpath=’{.items[0].metadata.name}’)Обновите страницу (
http://localhost:8080/view/
), чтобы обновить результаты.#open_source
🔥5👍4