Kubernetes Hardening

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Інструменти для аналізу кластера

Kubescape - це відкритий інструмент K8s, який надає багатохмарний K8s одне вікно, включаючи аналіз ризиків, відповідність безпеці, візуалізатор RBAC та сканування вразливостей зображень. Kubescape сканує кластери K8s, файли YAML та HELM-чарти, виявляючи неправильні конфігурації згідно з кількома фреймворками (такими як NSA-CISA, MITRE ATT&CK®), вразливості програмного забезпечення та порушення RBAC (контроль доступу на основі ролей) на ранніх етапах конвеєра CI/CD, обчислює ризиковий бал миттєво та показує тенденції ризику з часом.

kubescape scan --verbose

Інструмент kube-bench - це інструмент, який перевіряє, чи розгорнуто Kubernetes безпечно, запускаючи перевірки, задокументовані в CIS Kubernetes Benchmark. Ви можете вибрати:

  • запустити kube-bench зсередини контейнера (спільний простір PID з хостом)

  • запустити контейнер, який встановлює kube-bench на хості, а потім запустити kube-bench безпосередньо на хості

  • встановити останні бінарні файли зі сторінки Releases page,

  • скомпілювати його з вихідного коду.

Інструмент kubeaudit - це інструмент командного рядка та пакет Go для перевірки кластерів Kubernetes на різні проблеми з безпекою.

Kubeaudit може виявити, чи він працює всередині контейнера в кластері. У цьому випадку він спробує перевірити всі ресурси Kubernetes у цьому кластері:

kubeaudit all

Цей інструмент також має аргумент autofix для автоматичного виправлення виявлених проблем.

Інструмент kube-hunter шукає вразливості безпеки в кластерах Kubernetes. Інструмент був розроблений для підвищення уваги та видимості проблем безпеки в середовищах Kubernetes.

kube-hunter --remote some.node.com

Kubei - це інструмент для сканування вразливостей та перевірки відповідності стандартам CIS Docker, який дозволяє користувачам отримати точну та миттєву оцінку ризику їх кластерів Kubernetes. Kubei сканує всі образи, які використовуються в кластері Kubernetes, включаючи образи додаткових та системних підсистем.

KubiScan - це інструмент для сканування кластера Kubernetes на наявність ризикованих дозволів у моделі авторизації на основі ролей (RBAC) Kubernetes.

Аудит коду IaC

Popeye - це утиліта, яка сканує живий кластер Kubernetes та повідомляє про потенційні проблеми з розгортаними ресурсами та конфігураціями. Вона очищує ваш кластер на основі того, що розгортано, а не того, що знаходиться на диску. Проводячи сканування вашого кластера, вона виявляє неправильні конфігурації та допомагає вам переконатися, що в ньому дотримуються найкращі практики, тим самим запобігаючи майбутнім проблемам. Вона спрямована на зменшення когнітивного перевантаження, з яким стикається людина при роботі з кластером Kubernetes в дикій природі. Крім того, якщо ваш кластер використовує метричний сервер, вона повідомляє про потенційні перевищення або недостачі ресурсів та намагається попередити вас, якщо ваш кластер вичерпає місткість.

KICS виявляє вразливості безпеки, проблеми відповідності та неправильну конфігурацію інфраструктури в наступних рішеннях Інфраструктури як коду: Terraform, Kubernetes, Docker, AWS CloudFormation, Ansible, Helm, Microsoft ARM та специфікація OpenAPI 3.0

Checkov - це інструмент аналізу статичного коду для інфраструктури як коду.

Він сканує хмарну інфраструктуру, розгортану за допомогою Terraform, Terraform plan, Cloudformation, AWS SAM, Kubernetes, Dockerfile, Serverless або ARM Templates та виявляє неправильні конфігурації безпеки та відповідності за допомогою сканування на основі графів.

kube-score - це інструмент, який виконує аналіз статичного коду визначень об'єктів Kubernetes.

Для встановлення:

РозподілКоманда / Посилання

Готові бінарні файли для macOS, Linux та Windows

Docker

docker pull zegl/kube-score (Docker Hub)

Homebrew (macOS та Linux)

brew install kube-score

Krew (macOS та Linux)

kubectl krew install score

Поради

Контекст безпеки Kubernetes PodSecurityContext та SecurityContext

Ви можете налаштувати контекст безпеки підсистемPodSecurityContext) та контейнерів, які будуть запущені (з SecurityContext). Для отримання додаткової інформації читайте:

pageKubernetes SecurityContext(s)

Захист API Kubernetes

Дуже важливо захищати доступ до сервера API Kubernetes, оскільки зловмисник з достатніми привілеями може зловживати ним та завдати шкоду навколишньому середовищу. Важливо захищати як доступ (біліст походження для доступу до сервера API та відхиляти будь-яке інше підключення), так і аутентифікацію (дотримуючись принципу мінімальних привілеїв). І обов'язково ніколи не дозволяйте анонімні запити.

Загальний процес запиту: Користувач або Сервісний обліковий запис K8s –> Аутентифікація –> Авторизація –> Контроль допуску.

Поради:

  • Закривайте порти.

  • Уникайте анонімного доступу.

  • Обмеження вузлів; Немає доступу з певних вузлів до API.

  • Фактично запобігає kubelets додавати/видаляти/оновлювати мітки з префіксом node-restriction.kubernetes.io/. Цей префікс міток зарезервований для адміністраторів для міток їх об'єктів вузлів для цілей ізоляції навантаження, і kubelets не матимуть дозволу на зміну міток з цим префіксом.

  • Також дозволяє kubelets додавати/видаляти/оновлювати ці мітки та префікси міток.

  • Забезпечте за допомогою міток безпечну ізоляцію робочого навантаження.

  • Уникайте конкретних підсистем доступу до API.

  • Уникайте викладання ApiServer в Інтернет.

  • Уникайте несанкціонованого доступу RBAC.

  • Порт ApiServer з брандмауером та білістингом IP.

apiVersion: v1
kind: Pod
metadata:
name: security-context-demo
spec:
securityContext:
runAsUser: 1000
runAsGroup: 3000
fsGroup: 2000
volumes:
- name: sec-ctx-vol
emptyDir: {}
containers:
- name: sec-ctx-demo
image: busybox
command: [ "sh", "-c", "sleep 1h" ]
securityContext:
runAsNonRoot: true
volumeMounts:
- name: sec-ctx-vol
mountPath: /data/demo
securityContext:
allowPrivilegeEscalation: true

Загальне зміцнення

Вам слід оновлювати своє середовище Kubernetes так часто, як це необхідно, щоб мати:

  • Оновлені залежності.

  • Виправлення помилок та безпеки.

Цикли випуску: Кожні 3 місяці виходить новий дрібний випуск -- 1.20.3 = 1(Основний).20(Дрібний).3(патч)

Найкращий спосіб оновлення кластера Kubernetes (з тут):

  • Оновіть компоненти вузла майстра в такій послідовності:

  • etcd (всі екземпляри).

  • kube-apiserver (всі хости плану управління).

  • kube-controller-manager.

  • kube-scheduler.

  • керуючий контролер хмари, якщо ви використовуєте його.

  • Оновіть компоненти вузла робочого місця, такі як kube-proxy, kubelet.

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated