Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Анализ тактики MITRE ATT&CK Initial Access (TA0001) в Kubernetes

MITRE ATT&CK Kubernetes Статус

Исследование векторов начального доступа к Kubernetes-кластерам, практическое воспроизведение техники T1078 и разработка мер защиты.


Оглавление


Описание проекта

В работе проведён всесторонний анализ тактики Initial Access (TA0001) в среде Kubernetes на основе матрицы MITRE ATT&CK для контейнеров. Исследованы основные техники начального доступа, реальные примеры атак (включая группировку Lazarus, уязвимость React2Shell и атаки через открытые API), а также в лабораторной среде воспроизведена техника T1078 (Valid Accounts) — кража и использование токена сервисного аккаунта для получения несанкционированного доступа к кластеру.

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


Ключевые результаты

  • Рост атак на Kubernetes — количество операций, связанных с кражей токенов, увеличилось на 282% за последний год (данные Unit 42, 2026).
  • Самый частый вектор начального доступа — скомпрометированные учётные данные (T1078) используются в большинстве реальных инцидентов.
  • Один токен с избыточными правами может привести к полной компрометации кластера и выходу в облачную инфраструктуру (кейс Lazarus).
  • Скорость эксплуатации уязвимостей — критическая RCE (CVE‑2025‑55182) начала эксплуатироваться в течение 2 дней после раскрытия.

Изученные техники

В рамках тактики Initial Access (TA0001) были рассмотрены следующие техники:

ID Название Краткое описание
T1078 Valid Accounts Использование скомпрометированных токенов, kubeconfig, учётных данных облачных провайдеров.
T1078.001 Default Accounts Анонимный доступ к API-серверу при неправильной настройке RBAC.
T1133 External Remote Services Открытые наружу компоненты: Kubernetes Dashboard, незащищённый API (порт 6443), kubelet (10250).
T1190 Exploit Public-Facing Application Эксплуатация уязвимостей веб-приложений, запущенных в кластере (например, React2Shell).
T1199 Trusted Relationship Компрометация цепочки поставок через CI/CD или реестры образов.
T1552.007 Unsecured Credentials Кража секретов из переменных окружения, Kubernetes Secrets, образов и файлов конфигурации.
T1610 Deploy Container Развёртывание вредоносных контейнеров для дальнейшей эскалации или криптомайнинга.

Практическая демонстрация

В лабораторной среде (kind + kubectl) была воспроизведена техника T1078 (Valid Accounts):

  1. Создан тестовый кластер kind с одним узлом.
  2. Создан сервисный аккаунт attacker-sa с завышенными правами (cluster-admin).
  3. Токен сервисного аккаунта извлечён (имитация кражи).
  4. С использованием токена выполнены:
    • аутентификация в API-сервере (curl, kubectl);
    • получение списка секретов и подов во всех namespace;
    • создание вредоносного пода malicious-pod для выполнения произвольных команд.
  5. Подтверждена работоспособность пода через просмотр логов.

Скриншоты всех этапов доступны в папке screenshots/.


Рекомендации по защите

Технические меры

  • Строгое RBAC — принцип наименьших привилегий, избегать wildcard-разрешений.
  • Краткосрочные токены — использовать ротацию и ограниченное время жизни для сервисных аккаунтов.
  • Аудит и мониторинг — внедрение Falco для обнаружения подозрительных API-запросов и чтения токенов.
  • Network Policies — ограничение доступа к API-серверу и критическим компонентам.
  • Сканирование образов — проверка контейнеров на уязвимости перед развёртыванием.

Организационные меры

  • Регулярное патчирование — оперативное обновление кластера и компонентов (например, для CVE-2025-55182).
  • Обучение персонала — повышение осведомлённости о социальной инженерии и фишинге.
  • Регулярные аудиты — проверка конфигурации RBAC, политик безопасности и образа системы.

Как воспроизвести эксперимент

Все команды для создания кластера, создания сервисного аккаунта, извлечения токена и эксплуатации приведены в разделе 4 отчёта (report/report.md). Вы также можете использовать готовые скрипты из папки scripts/ для автоматизации.

Быстрый старт:

# 1. Создать кластер kind
kind create cluster --name attck-lab

# 2. Создать сервисный аккаунт с правами
kubectl create namespace demo
kubectl create serviceaccount attacker-sa -n demo
# ... (далее см. отчёт)

# 3. Извлечь токен
TOKEN=$(kubectl create token attacker-sa -n demo --duration=1h)

# 4. Использовать токен для доступа
kubectl --server=$(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}') \
        --insecure-skip-tls-verify --token=$TOKEN get pods --all-namespaces

Внимание! Эксперимент проводится только в изолированной лабораторной среде. Никогда не применяйте подобные действия в боевых кластерах без явного разрешения.


Структура репозитория

kubernetes-mitre-attack-initial-access/
├── docs/
│   └── RepositoryStructure.md
├── report/
│   ├── report.md
│   └── report.pdf
├── screenshots/
│   ├── step1-cluster-created.png
│   ├── step2-serviceaccount.png
│   ├── step3-token-extracted.png
│   ├── step4-curl-access.png
│   ├── step4-kubectl-access.png
│   └── step5-malicious-pod.png
├── scripts/
│   ├── attack.ps1
│   ├── clusterrole.yaml
│   ├── serviceaccount.ps1
│   ├── step1.ps1
│   ├── step2.ps1
│   ├── step3.ps1
│   ├── step4.ps1
│   └── step5.ps1
├── README.md
└── .gitignore

Источники


Лицензия

Данный проект предоставлен в образовательных целях. Использование материалов допускается при условии указания авторства и ссылки на исходный репозиторий:
https://github.com/F-L-git/kubernetes-mitre-attack-initial-access


Автор: Федор Луцкий
Дата: Июль 2026
Связаться: GitHub

About

Исследование тактики Initial Access (TA0001) из матрицы MITRE ATT&CK для Kubernetes

Topics

Resources

Stars

Watchers

Forks

Used by

Contributors

Languages