Модуль 5.4: Інструменти безпеки
Складність:
[СЕРЕДНЯ]- Обізнаність щодо інструментівЧас на виконання: 25-30 хвилин
Передумови: Модуль 5.3: Безпека часу виконання
Що ви зможете робити
Розділ «Що ви зможете робити»Після завершення цього модуля ви зможете:
- Визначити ключові інструменти безпеки за категоріями: сканування (Trivy), політики (OPA/Kyverno), виконання (Falco), аудит (kube-bench)
- Оцінити які інструменти адресують які фази життєвого циклу безпеки (збірка, розгортання, виконання)
- Порівняти рушії політик (OPA Gatekeeper проти Kyverno) за архітектурою та варіантами використання
- Оцінити стек інструментів безпеки на предмет прогалин покриття поверхні атак Kubernetes
Чому цей модуль важливий
Розділ «Чому цей модуль важливий»Екосистема безпеки Kubernetes має багатий набір інструментів для сканування, моніторингу, забезпечення та аудиту безпеки. Знання того, які інструменти існують, що вони роблять та коли їх використовувати, допомагає побудувати комплексну програму безпеки.
KCSA перевіряє вашу обізнаність щодо поширених інструментів безпеки та їхнього призначення.
Категорії інструментів безпеки
Розділ «Категорії інструментів безпеки»┌─────────────────────────────────────────────────────────────┐│ ІНСТРУМЕНТИ БЕЗПЕКИ KUBERNETES │├─────────────────────────────────────────────────────────────┤│ ││ БЕЗПЕКА ОБРАЗІВ ││ ├── Сканування: Trivy, Grype, Clair ││ ├── Підписування: Cosign, Notary ││ └── SBOM: Syft, Trivy ││ ││ ЗМІЦНЕННЯ КЛАСТЕРА ││ ├── Бенчмарки: kube-bench ││ ├── Аудит: kubeaudit, Polaris ││ └── Тестування на проникнення: kube-hunter ││ ││ ПРИМУСОВЕ ВИКОНАННЯ ПОЛІТИК ││ ├── Admission: OPA/Gatekeeper, Kyverno ││ ├── Мережа: Політики CNI, Cilium ││ └── Час виконання: Seccomp, AppArmor ││ ││ БЕЗПЕКА ЧАСУ ВИКОНАННЯ ││ ├── Виявлення: Falco, Tetragon ││ ├── Ізоляція: gVisor, Kata ││ └── Платформи: Aqua, Sysdig, Prisma ││ ││ УПРАВЛІННЯ СЕКРЕТАМИ ││ ├── Зовнішні: Vault, AWS Secrets Manager ││ └── Шифрування: SealedSecrets, SOPS ││ │└─────────────────────────────────────────────────────────────┘Інструменти сканування образів
Розділ «Інструменти сканування образів»Trivy
Розділ «Trivy»┌─────────────────────────────────────────────────────────────┐│ TRIVY │├─────────────────────────────────────────────────────────────┤│ ││ ЩО: Комплексний сканер безпеки ││ ВІД: Aqua Security (відкритий код) ││ ││ СКАНУЄ: ││ ├── Образи контейнерів (ОС + пакети мов) ││ ├── Файлові системи та репозиторії ││ ├── Маніфести Kubernetes (неправильні конфігурації) ││ ├── IaC (Terraform, CloudFormation) ││ └── Генерація SBOM ││ ││ КОМАНДИ: ││ trivy image nginx:1.25 ││ trivy fs . ││ trivy k8s --report summary ││ trivy config Dockerfile ││ │└─────────────────────────────────────────────────────────────┘Cosign — Підписування образів
Розділ «Cosign — Підписування образів»┌─────────────────────────────────────────────────────────────┐│ COSIGN │├─────────────────────────────────────────────────────────────┤│ ││ ЩО: Підписування та верифікація образів контейнерів ││ ВІД: Проєкт Sigstore (Linux Foundation) ││ ││ РОБОЧИЙ ПРОЦЕС: ││ # Генерація пари ключів ││ cosign generate-key-pair ││ ││ # Підписання образу ││ cosign sign --key cosign.key myregistry/myimage:v1 ││ ││ # Верифікація підпису ││ cosign verify --key cosign.pub myregistry/myimage:v1 ││ ││ # Підпис без ключів (використовує OIDC) ││ cosign sign myregistry/myimage:v1 ││ │└─────────────────────────────────────────────────────────────┘Оцінка безпеки кластера
Розділ «Оцінка безпеки кластера»kube-bench
Розділ «kube-bench»┌─────────────────────────────────────────────────────────────┐│ KUBE-BENCH │├─────────────────────────────────────────────────────────────┤│ ││ ЩО: Перевірка відповідності CIS Kubernetes Benchmark ││ ВІД: Aqua Security (відкритий код) ││ ││ ПЕРЕВІРЯЄ: ││ ├── Конфігурацію компонентів площини управління ││ ├── Конфігурацію etcd ││ ├── Файли конфігурації площини управління ││ ├── Конфігурацію робочих вузлів ││ └── Політики Kubernetes ││ ││ ЗАПУСК: ││ # На вузлі площини управління ││ kube-bench run --targets master ││ ││ # На робочому вузлі ││ kube-bench run --targets node ││ ││ # Як Job у кластері ││ kubectl apply -f job.yaml ││ │└─────────────────────────────────────────────────────────────┘Управління секретами
Розділ «Управління секретами»HashiCorp Vault
Розділ «HashiCorp Vault»┌─────────────────────────────────────────────────────────────┐│ VAULT З KUBERNETES │├─────────────────────────────────────────────────────────────┤│ ││ ЩО: Корпоративне управління секретами ││ ВІД: HashiCorp ││ ││ МЕТОДИ ІНТЕГРАЦІЇ: ││ ││ 1. VAULT AGENT INJECTOR ││ ├── Sidecar автоматично впроваджує секрети ││ ├── Анотації контролюють, які секрети впроваджувати ││ └── Секрети записуються у спільний том ││ ││ 2. CSI DRIVER ││ ├── Монтує секрети як томи ││ └── Стандарт Kubernetes CSI ││ ││ 3. EXTERNAL SECRETS OPERATOR ││ ├── Синхронізує секрети Vault із K8s Secrets ││ └── Автоматична ротація ││ ││ ПЕРЕВАГИ: ││ • Динамічні секрети (автоматично генеровані) ││ • Автоматична ротація ││ • Детальне журналювання аудиту ││ • Гранулярний контроль доступу ││ │└─────────────────────────────────────────────────────────────┘Sealed Secrets
Розділ «Sealed Secrets»┌─────────────────────────────────────────────────────────────┐│ SEALED SECRETS │├─────────────────────────────────────────────────────────────┤│ ││ ЩО: Шифрування секретів для GitOps ││ ВІД: Bitnami ││ ││ ВИРІШЕНА ПРОБЛЕМА: ││ • Не можна комітити K8s Secrets у Git (base64) ││ • Потрібні секрети у системі контролю версій для GitOps ││ ││ ЯК ПРАЦЮЄ: ││ 1. Встановити контролер у кластер ││ 2. Контролер генерує пару публічного/приватного ключів ││ 3. Використати kubeseal CLI для шифрування секретів ││ 4. Закомітити зашифрований SealedSecret у Git ││ 5. Контролер розшифровує у звичайний Secret у кластері ││ ││ SealedSecret → Git → Кластер → Secret ││ │└─────────────────────────────────────────────────────────────┘Посібник з вибору інструментів
Розділ «Посібник з вибору інструментів»┌─────────────────────────────────────────────────────────────┐│ ВИБІР ІНСТРУМЕНТУ ЗА ВИПАДКОМ ВИКОРИСТАННЯ │├─────────────────────────────────────────────────────────────┤│ ││ "Мені потрібно сканувати образи на вразливості" ││ → Trivy (комплексний), Grype (швидкий) ││ ││ "Мені потрібно перевірити кластер за CIS benchmark" ││ → kube-bench ││ ││ "Мені потрібно аудитувати конфігурації навантажень" ││ → kubeaudit, Polaris ││ ││ "Мені потрібно блокувати небезпечні конфігурації" ││ → Kyverno (простіший), OPA/Gatekeeper (гнучкіший) ││ ││ "Мені потрібне виявлення загроз часу виконання" ││ → Falco (зрілий), Tetragon (для користувачів Cilium) ││ ││ "Мені потрібно підписувати та верифікувати образи" ││ → Cosign (Sigstore) ││ ││ "Мені потрібне управління секретами за межами K8s" ││ → Vault (корпоративний), Sealed Secrets (GitOps) ││ ││ "Мені потрібна безпека між сервісами" ││ → Istio (повний mesh), Linkerd (простіший) ││ │└─────────────────────────────────────────────────────────────┘Чи знали ви?
Розділ «Чи знали ви?»-
Trivy може сканувати більше, ніж образи — він обробляє файлові системи, Git-репозиторії, кластери Kubernetes та IaC, наприклад Terraform.
-
kube-bench базується на CIS Kubernetes Benchmark, який оновлюється з кожним релізом Kubernetes.
-
Falco був створений у Sysdig та переданий CNCF. Зараз це graduated-проєкт CNCF.
-
Cosign підпис без ключів використовує вашу ідентичність GitHub/Google/Microsoft замість управління ключами — роблячи підписування набагато доступнішим.
Поширені помилки
Розділ «Поширені помилки»| Помилка | Чому це шкодить | Рішення |
|---|---|---|
| Забагато інструментів | Складність, перетини | Обрати цілеспрямований стек |
| Сканування без дій | Хибна безпека | Визначити SLA, автоматизувати |
| Політика без тестування | Ламає розгортання | Спочатку тестувати в режимі аудиту |
| Час виконання без реагування | Сповіщення ігноруються | Створити рунбуки інцидентів |
| Без базової лінії | Неможливо виміряти покращення | Спочатку запустити оцінку |
Перевірка знань
Розділ «Перевірка знань»-
Яка різниця між Trivy та kube-bench?
Відповідь
Trivy сканує образи контейнерів та код на вразливості. kube-bench перевіряє конфігурацію кластера відповідно до CIS Kubernetes Benchmark. Trivy зосереджений на тому, що ви розгортаєте; kube-bench — на тому, як ваш кластер налаштований. -
Коли використовувати Kyverno проти OPA/Gatekeeper?
Відповідь
Kyverno використовує YAML для політик (легше для команд, знайомих з Kubernetes), тоді як Gatekeeper використовує Rego (потужніший, крутіша крива навчання). Обирайте Kyverno для простіших випадків і команд, які хочуть залишатися в YAML; обирайте Gatekeeper для складних політик або якщо вже використовуєте OPA. -
Що робить Cosign?
Відповідь
Cosign підписує та верифікує образи контейнерів. Він зберігає підписи в OCI-реєстрах поруч із образами та підтримує підпис без ключів за допомогою OIDC-ідентичностей. Він є частиною проєкту Sigstore для безпеки ланцюга постачання програмного забезпечення. -
Як Sealed Secrets забезпечує GitOps для секретів?
Відповідь
Sealed Secrets шифрує Kubernetes Secrets за допомогою специфічного для кластера публічного ключа. Зашифрований SealedSecret можна безпечно комітити в Git. При застосуванні до кластера контролер Sealed Secrets розшифровує його назад у звичайний Secret. -
Яка різниця між Falco та Tetragon?
Відповідь
Обидва використовують eBPF для моніторингу безпеки часу виконання. Falco є зрілішим з більшою бібліотекою правил і зосереджений на виявленні. Tetragon (від Cilium) більше зосереджений на примусовому виконанні та має тіснішу інтеграцію з мережевими політиками Cilium. Обирайте залежно від існуючого стеку та потреб у примусовому виконанні.
Підсумок
Розділ «Підсумок»Інструменти безпеки Kubernetes служать різним цілям:
| Категорія | Інструменти | Призначення |
|---|---|---|
| Сканування | Trivy, Grype | Знаходити вразливості |
| Підписування | Cosign | Перевіряти автентичність образів |
| Оцінка | kube-bench, kubeaudit | Перевіряти конфігурації |
| Політика | Kyverno, Gatekeeper | Забезпечувати стандарти |
| Час виконання | Falco, Tetragon | Виявляти загрози |
| Секрети | Vault, Sealed Secrets | Управляти чутливими даними |
Ключові принципи:
- Обирайте інструменти, які добре інтегруються
- Почніть з основного: сканування, політика, час виконання
- Автоматизуйте все в CI/CD
- Майте процедури реагування на сповіщення
- Вимірюйте та покращуйте з часом
Наступний модуль
Розділ «Наступний модуль»Модуль 6.1: Фреймворки відповідності — Розуміння стандартів відповідності безпеки для Kubernetes.