Я достаточно давно занимаюсь темой моделирования угроз и попробовал практически все возможные варианты – от ручной работы до полной автоматизации этой задачи. Сейчас, с появлением искусственного интеллекта, появилось несколько новых вариантов и об одном из них я хотел бы рассказать. Но начну с экскурса в историю.
Сначала многие пользователи начинают с того, что ищут готовые модели угроз в Интернете, который услужливо подбрасывает нам по ключевым словам «модель угроз filetype:pdf» множество совершенно различных примеров, которые можно взять за основу собственной модели или просто поменять титул, выдав за свое творение в расчете на то, что никто не будет вдаваться в детали.
Можете посмотреть на примеры зарубежных моделей угроз — https://github.com/TalEliyahu/Threat_Model_Examples.
Затем вы начинаете писать модели угроз самостоятельно, тратя на это кучу времени и, где-то на третьей-пятой модели начинаете искать способы автоматизации этой задачи. Можно использовать какие-то отечественные инструменты, часто встроенные в SGRC-решения, а можно взять бесплатные продукты из зарубежа. Например, ThreatModeler, у которого есть платная, enterprise, и бесплатная, community, версия.
Я ThreatModeler описывал в нескольких заметках в Telegram-канале (тут и тут).

Можно и другие инструменты автоматизации использовать, коих на Github выложено немало, как общего назначения, так и узкоспециализированных. К примеру последних можно отнести Threat Composer от AWS, который позволяет моделировать угрозы для облачных сервисов Amazon.

Вот вам еще парочка инструментов по моделированию угроз: https://github.com/aws-samples/sample-agentic-attack-tree-generator/tree/main и https://github.com/mike-goodwin/owasp-threat-dragon/blob/master/README.md
Затем вы, погрузившись в тему ИИ, начинаете задумываться, а не задействовать ли вам его для моделирования угроз. Тем более, что есть эксперты, которые подсуетились и автоматизировали эту задачу, создав специализированные GPT, например, StrideGPT или AttackGen.

Но эти инструменты требуют разворачивания их у себя на компьютере или в инфраструктуре, к чему готовы не все. И возникает новая мысль – а может просто GPT попросить в диалоге разработать модель угроз, задавая вам правильные вопросы о границах анализируемой системы, ее описании, ограничениях, нарушителях, ущербе и т.п. После чего современные GPT (я тестировал на Claude, Gemini и ChatGPT) предлагает вам прекрасный документ, который можно реально использовать в работе.
Но помните, что у современных LLM пусть и обширные, но все-таки поверхностные знания по многим темам, часто без глубокой детализации. А в области кибербезопасности и OpenAI, и Anthropic, стали вводить ограничения в своих последних моделях.
Хотя ChatGPT вам даже схемы красиво отрисовывает:

Потом вы можете еще и защитные меры на схему нанести:

Я в свой курс по моделированию угроз тоже включил раздел по использованию ИИ для ускорения и автоматизации этой задачи.
Последний вариант хорош, но у него есть один недостаток – он не всегда дает повторяемый результат, а это плохо для моделирования угроз. Я считаю, что если при одинаковых исходных данных разные эксперты получают разный результат, то это плохая методика, недающая воспроизводимых результатов. Но эту проблему стало возможным решить с помощью так называемых skill’ов (навыков), технологии, которую поддерживают современные ИИ-агенты Claude Code, OpenAI Codex и т.п. Вы описываете процесс моделирования угроз в файле threatmodel.md, при необходимости добавляете к нему нужные скрипты, JSON-файлы, и дальше даете ИИ-агенту задача разработать модель, задавая вам определенный набор вопросов, не выходя за заданные вами ограничения и т.п. Этим skill’ом вы можете делиться с коллегами, которые будут получать те же самые результаты при тех же исходных данных.
У данного подхода есть еще один недостаток – вы должны прекрасно разбираться в процессе моделирования угроз, чтобы создать соответствующий навык.
И вот мы приходим к самому интересному. Можно ли автоматизировать задачу создания скилла, чтобы затем автоматизировать задачу моделирования угроз? Да, можно! Я эту идею украл в одном канале по ИИ, в котором автор описывает метод не просто извлечения знаний из книг, фреймворков, публикаций, стандартов и т.п.; это можно сделать с помощью обычного RAG или создания своей GPT.
Чтобы это работало с локальным RAG, вам сначала надо прогнать нужный вам фреймворк по моделированию угроз через токенизатор, который преобразует текст в токены, а потом уже загоняет все в векторную базу данных, например, LanceDB (можно использовать AnythingLLM).
Если у вас есть подписка Plus на ChatGPT, то у него создание RAG происходит проще – там есть соответствующий конструктор, в который вы загоняете токенизированный фреймворк по моделированию угроз. Потом можно просто делиться ссылкой на готовый RAG со всеми желающими.
С ChatGPT сделать свой RAG по моделированию угроз очень просто – поверьте, я такое проделал в качестве эксперимента. Также можно засунуть туда всю публичную нормативку ФСТЭК и иных регуляторов и делать к ней запросы по необходимости!
Так вот, возвращаясь к созданию скилла по моделированию угроз. Берете готовый скилл book-to-skill с Гитхаба. Он проходит по нужному вам фреймворку или методике (от ФСТЭК, STRIDE, PASTA, LINDDUN и десяткам других) и собирает из нее отдельный и готовый скилл, уже структурированный под моделирование угроз. Выделяются все принципы, примеры и антипримеры, ограничения, техники… Достаточно просто ввести команду
/book-to-skill ~/Documents/ThreatModeling/FSTECapproach2021.pdf
Ну а дальше все просто – вы можете моделировать угрозы по выбранной вами методике в одну команду, после чего ваш ИИ-агент, следуя созданному скиллу, проведет вас пошагово, задавая нужные вопросы и, опираясь на ваши ответы, создаст вам модель угроз. Бинго!
Да я все тоже самое могу сделать с локальной или облачной RAG по нормативке, скажете вы. Если у вас стоит задача понять, в каком нормативном акте встречается то или иное требование (и встречается ли), то да, RAG, работающая по схеме «вопрос — ответ» удобнее. Но когда вам нужно глубоко не просто погрузиться в конкретный НПА, а следовать ему в рамках своей работы, то тут RAG будет менее эффективен, в отличие от скилла.
Вопрос передачи чувствительной информации для моделирования угроз в зарубежные LLM оставляю в стороне 🙂
Вы же понимаете, что такой метод (загнать все в скилл) можно применить к любой ИБ-методике — от безопасной разработки до проектирования отказоустойчивой архитектуры?!








