SKILLEMALL.ai

CD hunt-k8s

Искать уязвимости Kubernetes и Docker

машинный переводПоказать оригиналСкрыть оригинал«Hunt Kubernetes & Docker…»

Hunt Kubernetes & Docker

sickn33/agentic-awesome-skills Agent Skills автор: sickn33 MIT 1 файл тело ≈ 6 046 токенов Открыть источникgithub.com↗ проанализирован 5 дн назад

Искать уязвимости Kubernetes и Docker

Как процесс D 42/100 · Процесс не доведён — слабые места: результат и критерий готовности, когда включается, входы и предусловия

ПроцедураDockerKubernetesAWSБезопасностьтип и темы размечены автоматически по тексту скилла
JSON
Технический рейтинг
C
79/100
безопасность, качество, тесты
Безопасность 60%
93
Качество 40%
59
Прогон на моделях
не было
Процессный рейтинг
D
42/100
Процесс не доведён
Результат и критерий готовности вес 14
0
Когда включается вес 12
0
Входы и предусловия вес 11
0
три самых слабых из десяти параметров · все десять

Такой же скилл встречается ещё в 2 местах: agentic-awesome-skills, agentic-awesome-skills

Как улучшить

  1. Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
Для прогона на моделях — необязательно
  • Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
  • spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.

Находки guard · 7

✓ Критических и высоких находок нет

Средние и низкие: 7
  • низкая Секреты в коде secret-high-entropy-token SKILL.md:76
    Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)
    TOK=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aw…ds: 60") # IMDSv2
    в кавычках
  • низкая Утечка данных net-credential-use SKILL.md:109
    Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (документация security-скилла)
    curl -sS --cacert "$K8S_CA" "$SRV/api/v1/namespaces/$NS/secrets/$TEST_SECRET" | python3 -c 'import sys,json;d=json.load(sys.stdin);print(len(d.get("items",[])),"secrets")'
    security-скилл
  • низкая Утечка данных net-credential-use SKILL.md:163
    Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (документация security-скилла)
    NODE=$(curl -sS --cacert "$K8S_CA" -H "Authorization: Bearer $TOKEN" "$SRV/api/v1/nodes" | grep -o '"name":"[^"]*"' | head -1 | cut -d'"' -f4)
    security-скилл
  • низкая Утечка данных net-credential-use SKILL.md:166
    Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (документация security-скилла)
    curl -sS --cacert "$K8S_CA" -X POST -H "Authorization: Bearer $TOKEN" \
    security-скилл
  • низкая Утечка данных net-credential-use SKILL.md:170
    Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (документация security-скилла)
    curl -sS --cacert "$K8S_CA" -H "Authorization: Bearer $TOKEN" "$SRV/api/v1/nodes/$NODE/proxy/pods"
    security-скилл
  • низкая Утечка данных net-credential-use SKILL.md:217
    Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (документация security-скилла)
    curl -sS --cacert "$K8S_CA" "$API/api/v1/namespaces/$NS/secrets" -H "Authorization: Bearer $TOKEN"
    security-скилл
  • низкая Рискованное назначение intent-offensive-security SKILL.md:282
    Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)
    | Kubelet 10250 `/run` | exec in any pod → steal SA token → API | Cluster privilege escalation |

Просканировано файлов: 1. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.

По спецификации Agent Skills

  • предупреждение description-short description короче 40 символов: модели не хватит сигнала для срабатывания
  • предупреждение body-long тело SKILL.md ≈ 6046 токенов (рекомендуется < 5000); вынесите детали в references/
  • заметка frontmatter-key неизвестное поле фронтматтера "risk"
  • заметка frontmatter-key неизвестное поле фронтматтера "source"
  • заметка frontmatter-key неизвестное поле фронтматтера "source_repo"
  • заметка frontmatter-key неизвестное поле фронтматтера "source_type"
  • заметка frontmatter-key неизвестное поле фронтматтера "date_added"
  • заметка frontmatter-key неизвестное поле фронтматтера "license_source"
  • заметка frontmatter-key неизвестное поле фронтматтера "sources"
  • заметка frontmatter-key неизвестное поле фронтматтера "report_count"

Процессный рейтинг: все десять параметров 42/100

  • 0Результат и критерий готовности. Не сказано, что считать результатом
  • 0Когда включается. Не сказано, при каком запросе скилл включается
  • 0Входы и предусловия. Не сказано, что нужно иметь на входе
  • 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
  • 30Повторный запуск. Изменяющих операций: 6, без проверки текущего состояния
  • 55Ошибки и развилки. Развилок: 1
  • 60Инструменты и файлы. Используются инструменты (bash, web, node), но во frontmatter они не объявлены
  • 70Стоимость исполнения. Тело инструкции 6046 токенов
  • 85Шаги. Шагов: 38, расплывчатых формулировок: 1
  • 100Согласованность. Имя и обязательные поля на месте
  • low Разделов верхнего уровня: 17. Похоже на несколько доменов в одном скилле
  • low Ответ описан самодельной разметкой (6 тегов): типизированный вызов надёжнее

Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.

Сигналы качества

  • +5В description нет примеров фраз, по которым скилл должен срабатывать
  • +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
  • +3Длина description 24: рекомендуется 120–800 символов
  • +3Формат ответа не описан: модель каждый раз решает сама
  • -2Ссылки на localhost: у другого пользователя не заработает
  • +2Инструкции на одном языке
  • +4Структура: 19 заголовков
  • +3Пошаговые инструкции: 38 пунктов
  • +4Есть примеры (10 блоков кода)
  • +1Лицензия указана

База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 59.