BD hunt-k8s
Поиск уязвимостей Kubernetes и Docker — анонимный доступ к API, kubelet 10250 exec (SPDY/WebSocket, НЕ простой POST) и более простой примитив /run, etcd 2379 без аутентификации, обход входа в dashboard, неправильная конфигурация RBAC, злоупотребление SA-токенами secret/SA, побег с docker.sock, побег из контейнера runc/container (Leaky Vessels CVE-2024-21626), RCE через API-сервер на узлы/прокси, EphemeralContainers node-shell, злоупотребление SA-токенами с ограниченной аудиторией/проекцией + сроком действия, обход admission-controller, остатки Helm/Tiller. Используйте, когда целевая система использует контейнеризованную инфраструктуру, открывает порты K8s (6443/10250/10255/2379/8443) или метаданные облака раскрывают сервисные учетные записи K8s.
машинный переводПоказать оригиналСкрыть оригинал«Hunt Kubernetes & Docker — API anonymous access, kubelet 10250 exec (S…»
Hunt Kubernetes & Docker — API anonymous access, kubelet 10250 exec (SPDY/WebSocket, NOT plain POST) and the simpler /run primitive, etcd 2379 unauth, dashboard skip-login, RBAC misconfig, secret/SA-token abuse, docker.sock host escape, runc/container-escape (Leaky Vessels CVE-2024-21626), API-server-mediated nodes/proxy RCE, EphemeralContainers node-shell, bound/projected SA-token audience+expiry abuse, admission-controller bypass, Helm/Tiller remnants. Use when target runs containerized infra, exposes K8s ports (6443/10250/10255/2379/8443), or cloud metadata reveals K8s service accounts.
Поиск уязвимостей Kubernetes и Docker — анонимный доступ к API, kubelet 10250 exec (SPDY/WebSocket, НЕ простой POST) и более простой примитив /run, etcd 2379…
Как процесс D 45/100 · Процесс не доведён — слабые места: результат и критерий готовности, когда включается, входы и предусловия
Как улучшить
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 7
✓ Критических и высоких находок нет
Средние и низкие: 7
-
низкая Секреты в коде
secret-high-entropy-tokenSKILL.md:52Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)TOK=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aw…ds: 60") # IMDSv2
в кавычках -
низкая Утечка данных
net-credential-useSKILL.md:139Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (документация security-скилла)NODE=$(curl -sk -H "Authorization: Bearer $TOKEN" "$SRV/api/v1/nodes" | grep -o '"name":"[^"]*"' | head -1 | cut -d'"' -f4)
security-скилл -
низкая Утечка данных
net-credential-useSKILL.md:142Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (документация security-скилла)curl -sk -X POST -H "Authorization: Bearer $TOKEN" \
security-скилл -
низкая Утечка данных
net-credential-useSKILL.md:146Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (документация security-скилла)curl -sk -H "Authorization: Bearer $TOKEN" "$SRV/api/v1/nodes/$NODE/proxy/pods"
security-скилл -
низкая Утечка данных
net-credential-useSKILL.md:193Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (документация security-скилла)curl -sk "$API/api/v1/namespaces/$NS/secrets" -H "Authorization: Bearer $TOKEN"
security-скилл -
низкая Утечка данных
net-credential-useSKILL.md:246Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (документация security-скилла)curl -sk "$SRV/apis/admi….io/v1/validatingwebhookconfigurations" -H "Authorization: Bearer $TOKEN"
security-скилл -
низкая Рискованное назначение
intent-offensive-securitySKILL.md:258Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)| Kubelet 10250 `/run` | exec in any pod → steal SA token → API | Cluster privilege escalation |
Просканировано файлов: 1. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- заметка
frontmatter-keyнеизвестное поле фронтматтера "sources" - заметка
frontmatter-keyнеизвестное поле фронтматтера "report_count"
Процессный рейтинг: все десять параметров 45/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 30Повторный запуск. Изменяющих операций: 6, без проверки текущего состояния
- 55Ошибки и развилки. Развилок: 1
- 60Инструменты и файлы. Используются инструменты (bash, web, node), но во frontmatter они не объявлены
- 70Стоимость исполнения. Тело инструкции 4813 токенов
- 85Шаги. Шагов: 33, расплывчатых формулировок: 1
- 100Согласованность. Имя и обязательные поля на месте
- low Разделов верхнего уровня: 14. Похоже на несколько доменов в одном скилле
- low Ответ описан самодельной разметкой (6 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- -2Ссылки на localhost: у другого пользователя не заработает
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 596 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 15 заголовков
- +3Пошаговые инструкции: 33 пунктов
- +4Есть примеры (9 блоков кода)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 80.