← Все гайды AI Release
EN Подписаться на @ai_release1

Как провести threat modeling для ИИ-агента: настройка grim-prompter и готовые промпты

Обновлено: 29.10.2026 · AI Release · @ai_release1
Как провести threat modeling для ИИ-агента: настройка grim-prompter и готовые промпты

TL;DR

Требования и подготовка

Иллюстрация к разделу «Требования и подготовка»
Иллюстрация к разделу «Требования и подготовка»

Модель угроз (threat model) — это документ «что мы защищаем, от кого и какими контрмерами». Кодинг-агент — CLI-программа, которая читает файлы репозитория и пишет по ним текст/код по вашему указанию.

Что такое grim-prompter по фактам из анонса:

ПараметрЗначение
Что этонабор промптов для кодинг-агентов
Сценарии архитектур36
Методики моделирования угроз29
ЛицензияMIT
Поддерживаемые агентыClaude Code, Codex CLI, другие кодинг-агенты
Где работаеттолько локальный macOS/Linux-шелл
Куда пишет отчётыотдельная папка в репозитории (в анонсе её имя обрезано — сверьтесь с документацией/README)

Проверьте до старта:

Пример: целевой проект — /Users/ivan/projects/support-bot, это ИИ-агент поддержки на Python. Если ваш репозиторий — как раз такой агент, но вы ещё не разобрались с его устройством, начните с как превратить обычный чат с LLM в полноценного AI-агента — модель угроз строится поверх понятной архитектуры.

Поток работы: репозиторий → агент читает манифесты зависимостей, точки входа, конфиги → выбирает один из 36 архитектурных сценариев → применяет одну из 29 методик → пишет отчёт в папку.

Шаг 1. Развернуть grim-prompter локально

Иллюстрация к разделу «Шаг 1. Развернуть grim-prompter локально»
Иллюстрация к разделу «Шаг 1. Развернуть grim-prompter локально»

Что сделать: склонировать репозиторий и убедиться, что каталог skills/threat-model существует.

Зачем: агент подхватывает инструкции из файлов этого каталога; без клона подключать нечего.

mkdir -p ~/tools
git clone <URL-репозитория-grim-prompter> ~/tools/grim-prompter
cd ~/tools/grim-prompter
ls -la
ls -la skills/

<URL-репозитория-grim-prompter> — адрес страницы проекта на GitHub (берётся из анонса/README, не угадывается).

Как проверить: в выводе ls есть skills/, внутри skills/ — каталог threat-model, а также файл лицензии. Плюс проверка целостности:

test -d ~/tools/grim-prompter/skills/threat-model && echo OK || echo NO

Ожидаемый вывод: OK. Если NO — клон неполный или вы не в корне репозитория.

Пример: ls skills/ печатает threat-model; git -C ~/tools/grim-prompter log -1 --oneline печатает одну строку с хешем коммита — значит клон живой.

Почему это работает: скилл — обычный каталог с текстовыми инструкциями, агенту достаточно пути к нему.

Шаг 2. Подключить скилл к агенту через симлинк

Что сделать: создать симлинк (ссылка на каталог, не копия) на skills/threat-model в каталоге skills вашего агента.

Зачем: агент ищет скиллы в фиксированных путях; симлинк избавляет от копирования при обновлениях grim-prompter.

Для Claude Code:

mkdir -p ~/.claude/skills
ln -s ~/tools/grim-prompter/skills/threat-model ~/.claude/skills/threat-model
ls -l ~/.claude/skills/threat-model
readlink -f ~/.claude/skills/threat-model

Для прочих агентов, читающих ~/.agents/skills (в том числе Codex CLI):

mkdir -p ~/.agents/skills
ln -s ~/tools/grim-prompter/skills/threat-model ~/.agents/skills/threat-model
ls -l ~/.agents/skills/threat-model

Для агентов без механизма skills анонс предлагает другой путь — сниппет в AGENTS.md. Создайте/дополните файл AGENTS.md в корне целевого репозитория:

## Модель угроз
При запросе «построй модель угроз» используй инструкции из каталога
~/tools/grim-prompter/skills/threat-model (36 архитектурных сценариев,
29 методик). Отчёт сохраняй в папку отчётов, указанную в README grim-prompter.

Как проверить: ls -l печатает строку со стрелкой -> и путём ~/tools/grim-prompter/skills/threat-model, а readlink -f — абсолютный путь без ошибок. Ожидаемый вид:

lrwxr-xr-x  1 ivan  staff  52 12 мая 10:14 threat-model -> /Users/ivan/tools/grim-prompter/skills/threat-model

Пример: если вы подключили только ~/.agents/skills, а работаете в Claude Code — скилл не увидит никто. Создавайте симлинк ровно в тот каталог, который читает ваш агент.

Почему это работает: симлинк — та же директория, только по другому пути; git pull в ~/tools/grim-prompter обновляет промпты без перенастройки.

Шаг 3. Провести моделирование угроз и проверить отчёт

Иллюстрация к разделу «Шаг 3. Провести моделирование угроз и проверить отчёт»
Иллюстрация к разделу «Шаг 3. Провести моделирование угроз и проверить отчёт»

Что сделать: запустить агента в корне целевого репозитория и дать два последовательных промпта — выбор архитектурного сценария и построение модели угроз по методике.

Зачем: сначала нужно «примерить» репозиторий к одному из 36 сценариев (иначе агент смешает несвязанные допущения), и только потом применять методику.

cd /Users/ivan/projects/support-bot
claude    # или: codex

Промпт №1 — выбор сценария:

Работаем в репозитории /Users/ivan/projects/support-bot.
Прочитай манифесты зависимостей (requirements.txt, pyproject.toml), точки входа
(HTTP-роуты, CLI-команды), конфиги и места, где вызываются LLM и хранятся секреты.
Выбери ОДИН из 36 архитектурных сценариев grim-prompter, который точнее всего
описывает этот репозиторий. Ответ: название сценария, 5 строк обоснования,
список прочитанных файлов.

Промпт №2 — модель угроз:

Примени к выбранному сценарию одну из 29 методик grim-prompter, наиболее
подходящую для ИИ-агента с внешними вызовами LLM. Зафиксируй: активы,
границы доверия, векторы атаки (включая prompt injection и утечку системного
промпта), приоритет каждой угрозы, контрмеры с привязкой к файлам репозитория.
Сохрани отчёт в папку отчётов из README grim-prompter.

Как проверить: найдите созданный отчёт и убедитесь, что в нём есть все четыре блока.

ls -lt | head
find . -maxdepth 2 -type d -newermt '-15 minutes'

Имя папки отчётов в анонсе обрезано (threat…) — сверьтесь с README grim-prompter. Ожидаемый результат — новый каталог, а внутри файл вида threat-model-<дата>.md; в тексте присутствуют разделы «Активы», «Границы доверия», «Угрозы» с приоритетами, «Контрмеры».

Пример готового фрагмента отчёта, который считается успехом:

Актив: системный промпт агента поддержки (файл prompts/system.txt)
Граница доверия: HTTP-вход /api/chat -> LLM-провайдер
Угроза: prompt injection через поле user_message, приоритет High
Контрмера: валидация ввода в app/routes.py + фильтр исходящих вызовов

Дополнительно прогоните сценарии атак на сам агент по методике из как проверить LLM-приложение на джейлбрейки — модель угроз без проверки гипотез остаётся списком предположений.

Почему это работает: два шага разделяют «понять архитектуру» и «перечислить угрозы», поэтому в отчёте видно, из какого допущения выросла каждая угроза.

Возможные проблемы и решения

Проблема. Симлинк не создаётся, потому что путь уже занят

ln -sfn ~/tools/grim-prompter/skills/threat-model ~/.claude/skills/threat-model
readlink -f ~/.claude/skills/threat-model

Проблема. Агент отвечает, что скилла нет

mkdir -p ~/.claude/skills ~/.agents/skills
ln -sfn ~/tools/grim-prompter/skills/threat-model ~/.claude/skills/threat-model
ln -sfn ~/tools/grim-prompter/skills/threat-model ~/.agents/skills/threat-model
ls -l ~/.claude/skills/threat-model ~/.agents/skills/threat-model

Проблема. Отчёт не появился, агент не видит репозиторий

pwd
ls requirements.txt pyproject.toml 2>/dev/null
uname -s

Ожидаемо: pwd печатает путь проекта, uname -s — Darwin (macOS) или Linux.

Резюме и следующие шаги

Разверните grim-prompter, подключите skills/threat-model симлинком или сниппетом в AGENTS.md, затем двумя промптами получите отчёт с активами, границами доверия и приоритезированными угрозами. Дальше закройте High-угрозы контрмерами в коде и повторите прогон, чтобы сравнить отчёты до и после правок.

FAQ

Сколько стоит grim-prompter?

Проект распространяется по лицензии MIT, то есть бесплатно; точные условия — в файле лицензии репозитория.

Работает ли на Windows?

По анонсу — только в локальном macOS/Linux-шелле. Для Windows используйте WSL либо Linux-машину.

Чем отличаются 36 сценариев от 29 методик?

Сценарии описывают тип архитектуры (что за система перед нами), методики — способ перечисления угроз. Агент сначала выбирает сценарий, затем применяет методику.

Можно ли использовать не с Claude Code, а со своим агентом?

Да. Для агентов без механизма skills анонс предлагает сниппет в AGENTS.md со ссылкой на каталог skills/threat-model; остальным достаточно симлинка в ~/.agents/skills/threat-model.

🤖 Кратко для ИИ