Гид по технологиям

Kubescape: как быстро сканировать Kubernetes и автоматизировать проверку безопасности

6 min read Kubernetes Обновлено 13 Dec 2025
Kubescape: сканирование безопасности Kubernetes
Kubescape: сканирование безопасности Kubernetes

Быстрые ссылки

  • Скачивание Kubescape
  • Сканирование кластера
  • Результаты сканирования
  • Сканирование манифестов
  • Офлайн-сканы
  • Форматы вывода
  • Заключение

Фотография увеличительного стекла на фоне логотипа Kubernetes на экране компьютера

Введение

Kubescape — инструмент от ARMO, который автоматизирует проверку конфигурации Kubernetes-кластеров на соответствие рекомендациям по жёсткой настройке, опубликованным NSA и CISA. Он фокусируется на конфигурационных рисках control plane и ресурсах Kubernetes, но не на уязвимостях внутри образов контейнеров.

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

Скачивание Kubescape

Kubescape распространяется как готовый бинарник для Windows, macOS и Ubuntu. Самый быстрый способ установить — воспользоваться автоматическим скриптом, который подберёт подходящую сборку и добавит её в PATH:

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

После установки выполните команду kubescape без аргументов, чтобы убедиться, что утилита доступна — вы увидите синопсис доступных команд.

Примечания по платформам:

  • macOS/Linux: скрипт выше обычно подходит.
  • Windows: используйте WSL или загрузите соответствующий релиз с GitHub и положите бинарник в папку, включённую в PATH.

Скриншот выполнения команды Kubescape без аргументов

Сканирование кластера

Kubescape использует стандартные kubeconfig-файлы для подключения к кластеру. Перед запуском укажите переменную окружения KUBECONFIG в вашей оболочке:

export KUBECONFIG=.kube/my-cluster.yaml

Если переменная не задана или файл некорректен, Kubescape сообщит: “failed to load Kubernetes config”. Обновляйте переменную KUBECONFIG перед каждым сканированием, если вы работаете с несколькими кластерами.

Запуск сканирования производится командой scan. На момент написания этой инструкции в качестве фреймворка поддержан nsa:

kubescape scan framework nsa --exclude-namespaces kube-system,kube-public

Флаг --exclude-namespaces полезен, чтобы пропускать системные пространства имён, где вы, скорее всего, не будете исправлять найденные проблемы.

Первый запуск может занимать больше времени — инструмент скачивает определения фреймворка (набор тестов). После сканирования вы увидите цветной вывод в терминале с деталями найденных проблем.

Скриншот сводной таблицы сканирования Kubescape

Результаты сканирования

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

Некоторые из проверок, которые выполняет Kubescape (на основе списка NSA):

  • Возможности эскалации привилегий
  • Контейнеры в режиме privileged
  • Контейнеры с опасными capabilities
  • Открытая панель Kubernetes Dashboard
  • Контейнеры, запускаемые как root
  • Утечки учётных данных в конфигурациях
  • Неправильно защищённая control plane

Запуск Kubescape даёт базовую картину соответствия кластера текущим лучшим практикам и помогает приоритизировать исправления.

Пример структуры вывода (без реальных значений):

  • Название теста
    • Описание проблемы
    • Список ресурсов (Namespace/Kind/Name)
    • Подсказка по исправлению

Критерии приёмки

  • Выполнен скан по фреймворку nsa без ошибок загрузки конфигурации.
  • Для всех найденных критических проблем созданы задачи в трекере.
  • Сформирован отчёт в формате JSON/JUnit и сохранён в артефакты CI.

Сканирование манифестов

Kubescape умеет сканировать YAML-манифесты локально без подключения к кластеру. Это удобно для проверки конфигураций на этапе разработки и CI:

kubescape scan framework nsa k8s/*.yaml

Можно указать URL (например, файл в Git), и Kubescape скачает его и просканирует. Для комплексного аудита всё же лучше сканировать сам кластер; манифесты применяются как дополняющий способ — «shift-left» в pipeline.

Рекомендация: включайте проверку манифестов в CI, чтобы предотвращать попадание новых проблем в репозиторий.

Офлайн-сканы

Kubescape по умолчанию работает онлайн, так как ему требуется загрузить определения тестов. Для защищённых сетей можно заранее скачать фреймворк и использовать его локально:

kubescape download framework nsa --output nsa.json

Затем сканируйте, указывая локальный файл:

kubescape scan framework nsa --use-from nsa.json

Флаг --use-from заставляет Kubescape загрузить определения из указанного файла. Есть также --use-default, который пытается использовать локальный кеш в стандартном пути, если файл доступен. При отсутствии локального файла Kubescape попытается скачать свежие определения.

Советы по офлайн-режиму:

  • Периодически обновляйте скачанный файл, чтобы тесты соответствовали актуальным рекомендациям.
  • Храните файл в защищённом хранилище конфигураций и контролируйте доступ.

Форматы вывода

По умолчанию Kubescape выводит результаты в терминал, но поддерживает JSON и JUnit для интеграции со сторонними инструментами.

JSON:

kubescape scan framework nsa -f json

Junit (XML):

kubescape scan framework nsa -f junit

Вывод отправляется в stdout независимо от формата. Чтобы сохранить отчёт в файл, используйте флаг -o:

kubescape scan framework nsa -f json -o report.json

Для тихого режима (без прогресс-баров и лишних сообщений), полезного в CI, используйте флаг -s.

Интеграция в CI (пример GitHub Actions)

Ниже простой пример job, который запускает Kubescape и сохраняет JSON-отчёт как артефакт:

name: kubescape-scan

on: [push, pull_request]

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install Kubescape
        run: curl -s https://raw.githubusercontent.com/armosec/kubescape/master/install.sh | /bin/bash
      - name: Run Kubescape
        run: kubescape scan framework nsa -f json -o kubescape-report.json
      - name: Upload report
        uses: actions/upload-artifact@v3
        with:
          name: kubescape-report
          path: kubescape-report.json

Советы для CI:

  • Запускайте скан в PR-пайплайе и блокируйте мерж при обнаружении критических проблем.
  • Сохраняйте исторические отчёты для трендов и анализа регрессий.
  • Для приватных CI используйте предварительно скачанный фреймворк.

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

  1. Запустите скан на продакшн-кластерах и стейджинг.
  2. Экспортируйте отчёт в JSON и загрузите в систему трекинга.
  3. Классифицируйте находки по приоритету: Critical / High / Medium / Low.
  4. Назначьте владельцев для каждой High/Critical задачи.
  5. Запланируйте исправления и тесты регрессии.
  6. Повторно сканируйте исправленные ресурсы и закрывайте задачи только после валидации.
  7. Храните отчёты и метрики для анализа трендов.

Чек-листы по ролям

Администратор кластера:

  • Запустить полное сканирование кластера еженедельно.
  • Проверить и отключить контейнеры в privileged-mode.
  • Ограничить capabilities и применить PodSecurityPolicy/Pod Security Admission.

Разработчик:

  • Проверять манифесты через kubescape в локальной сборке/CI.
  • Не запускать контейнеры как root без веской причины.
  • Стремиться к наименьшим привилегиям для сервис-аккаунтов.

Инженер безопасности:

  • Интегрировать отчёты в систему трекинга и визуализации.
  • Настроить оповещения при появлении Critical-выводов.
  • Проводить периодические ревью фреймворков тестов.

Ментальные модели и эвристики

  • Shift-left: проверяйте конфигурации до деплоя (CI).
  • Defense-in-depth: Kubescape покрывает конфигурацию Kubernetes; комбинируйте с анализом образов и SCA.
  • Приоритизация по Blast Radius: сначала исправляйте находки, которые дают наибольшую возможность доступа/эскалации.

Матрица рисков и возможные смягчения

  • Критично (например, открытая Dashboard с RBAC=нет): немедленно ограничить доступ, включить аутентификацию/авторизацию, назначить задачу на исправление.
  • Высокая (контейнеры как root, privileged): пересобрать/переконфигурировать под non-root, удалить privileged.
  • Средняя (легкие конфигурационные нарушения): плановые исправления, мониторинг.
  • Низкая (рекомендации по hardening): регламентные улучшения.

Дополнения и альтернативные подходы

  • Контейнерные сканеры: Kubescape не ищет уязвимости в образах. Для этого используйте Trivy или docker scan и интегрируйте результаты в общий процесс.
  • Дополнительные политики: можно комбинировать Kubescape с Open Policy Agent (OPA/Gatekeeper) для блокировки опасных конфигураций на этапе Admission.
  • Аудит доступа: используйте логи аудита kube-apiserver и SIEM для обнаружения аномалий в поведении.

Когда Kubescape не подходит (ограничения)

  • Если вам нужно сканировать только уязвимости в слоях образа — используйте специализированный инструмент для анализа образов.
  • Для очень специфичных политик безопасности может потребоваться написание кастомных проверок либо использование OPA.

Глоссарий (в одну строку)

  • kubeconfig — файл с конфигурацией доступа к Kubernetes-кластеру.
  • PodSecurityPolicy / Pod Security Admission — механизмы для ограничения прав подов.
  • JUnit — формат XML-отчётов для тестовых систем.
  • CI — непрерывная интеграция (Continuous Integration).

Примеры тест-кейсов и приёмки

  • Тест: запуск Kubescape с фреймворком nsa и сохранение JSON-отчёта. Критерий приёмки: Exit code 0 (если нет критических находок) или генерация отчёта и загрузка в артефакты CI.

  • Тест: проверка, что в продакшн-кластере нет запущенных контейнеров в privileged-mode. Критерий приёмки: список упавших ресурсов пуст.

Заключение

Kubescape предоставляет простой и быстрый способ оценить безопасность конфигурации ваших Kubernetes-кластеров по рекомендациям NSA/CISA. Это не заместитель проверки образов, но ценный инструмент в наборе средств защиты: он обнаруживает конфигурационные риски, помогает автоматизировать их обнаружение в CI и формализовать процесс исправления.

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

Резюме:

  • Установите Kubescape и запустите сканирование по nsa.
  • Интегрируйте проверки в CI и используйте офлайн-файлы для изолированных сред.
  • Применяйте чек-листы и SOP для ускорения реагирования на найденные проблемы.

Скриншот отчёта Kubescape с таблицей результатов

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Компьютер завис на экране загрузки — как исправить
Компьютеры

Компьютер завис на экране загрузки — как исправить

Копирование масок в Camera Raw и Lightroom
Photo Editing

Копирование масок в Camera Raw и Lightroom

Как убрать зелёный треугольник в Excel
Excel

Как убрать зелёный треугольник в Excel

Как понять, что видеокамеру взломали и как реагировать
Безопасность

Как понять, что видеокамеру взломали и как реагировать

Защита от троянов на Android
Безопасность

Защита от троянов на Android

Как исправить поп-ин в играх
Игры

Как исправить поп-ин в играх