Алгоритмы автономного поиска уязвимостей

Пока готовился к заключительному модулю, в котором разбираем сценарии использования LLM в appsec-задачах, встретил еще одно успешное внедрение ИИ для поиска уязвимостей.

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

1. Сбор контекста о приложении. 2. Генерация промежуточного представления в виде AST, чтобы лучше оценивать контекст и повысить точность анализа. Из AST можно получить граф вызовов, который упрощает навигацию по коду приложения. 3. Обогащение графа дополнительным контекстом, например, HTTP-методами и состоянием механизмов аутентификации и авторизации. 4. Поиск уязвимостей и их валидация. Вот тут самое интересное: авторы применяют свой фреймворк Tree of Thoughts (ToT), который основан на “цепочке мыслей” (Chain of Thoughts, CoT). То есть шаг за шагом модель рассуждает об уязвимости, разбивая сложную задачу на последовательность более простых логических шагов.

Фреймворк ToT дает цепочку решений, и уже эта цепочка передается в алгоритм самоулучшения дерева Монте-Карло. Основа успеха в применении этого алгоритма - четко определенная и описанная “функция победы”. Функция определяет, является ли текущее состояние в дереве поиска выигрышным, проигрышным или нейтральным. И эта функция становится еще одним объектом рассуждения для LLM.

LLM рассуждает о функции победы 👉 LLM рассуждает о способах достижения этой победы 👉 LLM собирает контекст исполнения для этих способов 👉 Исследователь собирает деньги на покупку видео-карт 😎

Алгоритмы автономного поиска уязвимостей | Сетка — социальная сеть от hh.ru