Kubernetes Hardening
Інструменти для аналізу кластера
Kubescape - це відкритий інструмент K8s, який надає багатохмарний K8s одне вікно, включаючи аналіз ризиків, відповідність безпеці, візуалізатор RBAC та сканування вразливостей зображень. Kubescape сканує кластери K8s, файли YAML та HELM-чарти, виявляючи неправильні конфігурації згідно з кількома фреймворками (такими як NSA-CISA, MITRE ATT&CK®), вразливості програмного забезпечення та порушення RBAC (контроль доступу на основі ролей) на ранніх етапах конвеєра CI/CD, обчислює ризиковий бал миттєво та показує тенденції ризику з часом.
Інструмент kube-bench - це інструмент, який перевіряє, чи розгорнуто Kubernetes безпечно, запускаючи перевірки, задокументовані в CIS Kubernetes Benchmark. Ви можете вибрати:
запустити kube-bench зсередини контейнера (спільний простір PID з хостом)
запустити контейнер, який встановлює kube-bench на хості, а потім запустити kube-bench безпосередньо на хості
встановити останні бінарні файли зі сторінки Releases page,
скомпілювати його з вихідного коду.
Інструмент kubeaudit - це інструмент командного рядка та пакет Go для перевірки кластерів Kubernetes на різні проблеми з безпекою.
Kubeaudit може виявити, чи він працює всередині контейнера в кластері. У цьому випадку він спробує перевірити всі ресурси Kubernetes у цьому кластері:
Цей інструмент також має аргумент autofix
для автоматичного виправлення виявлених проблем.
Інструмент kube-hunter шукає вразливості безпеки в кластерах Kubernetes. Інструмент був розроблений для підвищення уваги та видимості проблем безпеки в середовищах Kubernetes.
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 |
|
Homebrew (macOS та Linux) |
|
Krew (macOS та Linux) |
|
Поради
Контекст безпеки 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.
Загальне зміцнення
Вам слід оновлювати своє середовище Kubernetes так часто, як це необхідно, щоб мати:
Оновлені залежності.
Виправлення помилок та безпеки.
Цикли випуску: Кожні 3 місяці виходить новий дрібний випуск -- 1.20.3 = 1(Основний).20(Дрібний).3(патч)
Найкращий спосіб оновлення кластера Kubernetes (з тут):
Оновіть компоненти вузла майстра в такій послідовності:
etcd (всі екземпляри).
kube-apiserver (всі хости плану управління).
kube-controller-manager.
kube-scheduler.
керуючий контролер хмари, якщо ви використовуєте його.
Оновіть компоненти вузла робочого місця, такі як kube-proxy, kubelet.
Last updated