BC senior-security
Используйте, когда пользователь запрашивает моделирование угроз STRIDE, оценку рисков DREAD, анализ угроз диаграммы потоков данных или быстрый скан секретов — или когда запрос безопасности требует маршрутизации к нужному специалисту (тестирование на проникновение, реагирование на инциденты, облачная безопасность, red team, безопасность ИИ, поиск угроз, проверка безопасности кода). Этот навык отвечает за моделирование угроз; все остальное маршрутизируется к смежному.
машинный переводПоказать оригиналСкрыть оригинал«Use when the user asks for STRIDE threat modeling, DREAD risk scoring,…»
Use when the user asks for STRIDE threat modeling, DREAD risk scoring, data-flow-diagram threat analysis, or a quick secret scan — or when a security request needs routing to the right specialist skill (pen-testing, incident response, cloud posture, red team, AI security, threat hunting, secure code review). This skill owns threat modeling; everything else routes to a sibling.
Используйте, когда пользователь запрашивает моделирование угроз STRIDE, оценку рисков DREAD, анализ угроз диаграммы потоков данных или быстрый скан секретов —…
Как процесс C 63/100 · Есть пробелы — слабые места: результат и критерий готовности, входы и предусловия, отчётность по ходу
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
В файлах лежит чужой ключ или токен. Если он живой, ваш агент начнёт ходить в чужие сервисы от чужого имени; если ключ уже отозван, скрипты скилла просто сломаются. Такой ключ мог попасть в скилл вместе с целым рабочим пространством автора, включая личные данные.
Ключ виден всем, кто скачал скилл, и уже мог быть скопирован ботами, которые сканируют каталоги. Отзовите его сейчас, проверьте счета и логи доступа, а потом перевыпустите.
Как улучшить
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 11
✓ Критических и высоких находок нет
Средние и низкие: 11
-
средняя Секреты в коде
secret-private-keyscripts/secret_scanner.py:165Приватный ключ (определение детектора / чёрного списка; заголовок ключа без тела)regex=r'-----BEGIN PRIVATE KEY----- …
детектортолько заголовок -
средняя Секреты в коде
secret-private-keyscripts/secret_scanner.py:174Приватный ключ (определение детектора / чёрного списка; заголовок ключа без тела)regex=r'-----BEGIN PRIVATE KEY----- …
детектортолько заголовок -
средняя Секреты в коде
secret-private-keyscripts/secret_scanner.py:183Приватный ключ (определение детектора / чёрного списка; заголовок ключа без тела)regex=r'-----BEGIN PRIVATE KEY----- …
детектортолько заголовок -
средняя Секреты в коде
secret-private-keyscripts/secret_scanner.py:192Приватный ключ (определение детектора / чёрного списка; заголовок ключа без тела)regex=r'-----BEGIN PGP PRIVATE KEY BLOCK-----',
детектортолько заголовок -
низкая Секреты в коде
secret-password-literalreferences/cryptography-implementation.md:453Захардкоженный пароль / ключ (возможно, пример)password = "user…123!"
-
низкая Секреты в коде
secret-password-literalreferences/security-architecture-patterns.md:347Захардкоженный пароль / ключ (возможно, пример)password: constr(min_length=12, max_length=128)
-
низкая Секреты в коде
secret-password-literalreferences/security-architecture-patterns.md:583Захардкоженный пароль / ключ (возможно, пример) (значение-заглушка)API_KEY = "sk-1…def"
заглушка -
низкая Рискованное назначение
intent-offensive-securityreferences/threat-modeling-guide.md:221Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)- KeyLog: Keylogger
-
низкая Рискованное назначение
intent-offensive-securityreferences/threat-modeling-guide.md:237Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение) (определение детектора / чёрного списка)| JWT forgery → Privilege escalation | High | Low | Critical |
детектор -
низкая Рискованное назначение
intent-offensive-securityreferences/threat-modeling-guide.md:469Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)| A01 | Broken Access Control | E | IDOR, privilege escalation |
-
низкая Рискованное назначение
intent-offensive-securitySKILL.md:3Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)description: Use when the user asks for STRIDE threat modeling, DREAD risk scoring, data-flow-diagram threat analysis, or a quick secret scan — or when a security request needs routing to the right sp
Просканировано файлов: 6. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
✓ По спецификации Agent Skills замечаний нет
Процессный рейтинг: все десять параметров 63/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 55Ошибки и развилки. Развилок: 1
- 70Когда включается. Сказано, когда применять, но не сказано, когда не стоит
- 85Шаги. Шагов: 5, расплывчатых формулировок: 1
- 100Инструменты и файлы. Внешние инструменты не нужны
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 1181 токенов
- 100Повторный запуск. Изменяющих операций нет
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 379 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 6 заголовков
- +3Пошаговые инструкции: 5 пунктов
- +4Есть примеры (2 блоков кода)
- +4Справочные файлы упоминаются в инструкциях (3 из 3)
- +3Все 2 скриптов описаны в инструкциях
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 91.