Тема
AI-задачи
AI-задачи помогают разбирать результаты сканирования, когда одних автоматических правил недостаточно для связного вывода. Модель получает подготовленный WebVulnFinder контекст, сопоставляет наблюдения и HTTP-обмены, а затем формирует рекомендацию для проверки пользователем.
AI-анализ дополняет детерминированные проверки. По умолчанию пользователь просматривает объяснение и подтверждающие данные, после чего принимает или отклоняет рекомендацию. Для рекомендаций обычной вкладки «ИИ анализ» можно включить автоматический разбор с ИИ.
Когда использовать
AI-задачи доступны для нескольких практических сценариев:
- произвольный диалог по текущему HTTP-обмену и уже сохранённым свидетельствам проекта;
- анализ чувствительных JavaScript-конструкций и отделение значимых случаев от несущественных совпадений;
- комплексный анализ обнаруженного API с учётом его параметров, сохранённых запросов и результатов проверок;
- исследование связей выбранного API с другими API и поиск более показательного запроса, если сохранённый запрос завершается ошибкой;
- исследование бизнес-логики группы связанных API с проверкой прежних и новых гипотез на стыке запросов;
- проверка шаблона пути выбранного API по уже известным API и оценка допустимости повторных вызовов перед автоматическими тестами;
- исследование кук и заголовков: поиск проблем безопасности по результатам тестов, происхождению и способу формирования значений;
- исследование Host: сбор DNS-адресов и открытых TCP-портов с определением сервисов и версий через локальный nmap, затем описание домена, его роли в проекте и рисков с рекомендацией комментария; при наличии подтверждающего HTTP-запроса ИИ также может предложить отдельное наблюдение обнаруженной версии ПО;
- исследование авторизации Host по данным проекта;
- классификация DetectedString-наблюдений: сопоставление вариантов исходника и оценка обфускации;
- совместный разбор комментариев одного HTML- или JavaScript-ответа;
- восстановление OpenAPI-запросов по группам путей, найденных в JavaScript-ответе;
- проверка найденных в ответах путей и поиск среди них новых API-кандидатов.
При большой истории комплексный анализ API начинает со сводки выполненных проверок и выбранных примеров, затем запрашивает нужные выполнения и сравнения по мере исследования. Полная история остаётся доступной; сводка не означает, что ответы внутри группы эквивалентны.
Для API сначала изучите исходное наблюдение и его уровень доступа. Задача исследования связей сопоставляет выбранное API с уже известными проекту API, при необходимости выполняет разрешённые HTTP-пробы и предлагает изменения связей для проверки. Её диалог можно продолжить. Затем задача проверки шаблона сравнивает пути известных API с тем же методом и доменом. Если есть основания уточнить правило сопоставления, она создаёт отдельную рекомендацию: проверьте совпавшие API и примите или отклоните её до запуска комплексного анализа. Если умеренные повторные вызовы выглядят безопасными, задача может запросить полный доступ; для остальных случаев запрос на доступ показывается вам вместе с HTTP-запросом и объяснением. После этого запустите комплексный анализ API и проверьте его рекомендации по описанию, параметрам и подтверждённым ответам. Для чувствительного JavaScript сначала исключите очевидный шум, а затем передайте оставшиеся конструкции модели и сверьте её вывод с фрагментом исходника.
Для поиска ошибок бизнес-процесса запустите исследование бизнес-логики над любым API, у которого сохранены связи с запросами соседних шагов. Задача сопоставит эти запросы с известными API и изучит их вместе, даже если часть связей не удастся сопоставить. Она проверяет прежние выводы, ищет новые гипотезы на стыке действий и при значимом результате предлагает изменить заключение соответствующего API. Диалог можно продолжить.
Для DetectedString-наблюдения запустите классификацию независимо от формата ответа. Задача ищет сохранённые версии по близким или одинаковым URL и сравнивает их строки независимо от возраста: в старой версии тоже могут остаться полезные API или секреты. К фрагменту исходника она обращается для проверки конкретной строки, требующей внимания. Задача предлагает продолжить анализ исходника с интересными строками, отметить его повторным, если полезные строки покрывает другой исходник, либо закрыть читаемый исходник без интересных строк. Покрывающий исходник может ещё ожидать анализа; для повторного исходника поиск соседних ресурсов не выполняется. При сравнении задача также может предложить отметить повторными другие сопоставленные исходники со ссылкой на выбранный целевой. Прежние комментарии и теги сохраняются в предлагаемых изменениях. Для полезного или неоднозначного исходника она может получить соседние JS, HTML и SourceMap по найденным ссылкам в пределах scope Burp. Каждый загруженный файл можно исследовать позднее отдельно; задача не переходит по его ссылкам в текущем запуске. При обнаружении убедительного секрета она показывает его значение в уведомлении и комментарии рекомендации, чтобы вы могли проверить находку. О сильной обфускации, скрывающей строки за выполняемым кодом, задача тоже сообщает и предлагает отметить исходник; доступное содержимое по-прежнему можно анализировать. Проверьте рекомендации перед их принятием.
При исследовании комментариев WebVulnFinder сразу исключает известные служебные маркеры и передаёт остальные комментарии одного ответа одной ИИ-задаче. При ручном запуске анализируются только выделенные комментарии; выбранные комментарии разных ответов разделяются на группы. Задача проверяет упомянутые файлы и маршруты, старые вызовы API, версии, секреты, динамически сформированные комментарии, а также TODO/FIXME об отключённых проверках и временных обходах. Найденный в комментарии старый код сам по себе не подтверждает доступность API или уязвимость: задача ищет дополнительные свидетельства и помещает вывод в рекомендацию состояния этого наблюдения. Если известны путь и метод старого вызова, она может предложить минимальную OpenAPI-схему, отметив неизвестные детали; при наличии свидетельств о продукте и версии — наблюдение о версии. Проверьте рекомендации перед принятием.


В меню «Создать ИИ задачу» выберите конкретный вид анализа. Для выбранных наблюдений, строк и тестовых запросов меню показывает применимые встроенные задачи. Если выбрано несколько независимых объектов, WebVulnFinder создаёт отдельные задачи там, где результаты должны рассматриваться раздельно.
Подключение модели, ограничения задач, проектный промт и маскирование описаны в главе «Настройка ИИ».
Доступные инструменты
Инструменты позволяют модели запросить дополнительные сведения в пределах текущей задачи. Набор зависит от типа задачи и виден в её строке настроек:
search_exchange_evidence,search_parameter_evidence— поиск HTTP-обменов и значений параметров;search_observation_evidence,get_observation_evidence— поиск и чтение наблюдений, включая типизированные связи с запросами;match_request_observations— поиск API-наблюдений, правилам которых соответствует запрос;find_detected_string_evidence— поиск уже обнаруженных строк и их контекста;find_source_evidence,read_source_evidence— поиск в исходном коде ответа и чтение точного фрагмента. Для каждого найденного ответа помощник получает его сводку, а при поиске строк — отдельные совпадения; отсутствие совпадений видно для каждого ответа. Если модели известны домен и точный путь отсутствующего исходника в scope Burp, поиск может загрузить его и продолжить анализ;get_response_strings— извлечение строк ответа по идентификатору запроса;compare_http_exchanges— сравнение двух HTTP-обменов по UUID: запросов, статусов и заголовков ответов либо извлечённых строк ответов;search_api_test_history— поиск выполненных тестов в истории анализа API и чтение полного значения мутации;execute_api_probe— дополнительный HTTP-запрос в рамках разрешённой проверки;recommend_observation_state,recommend_note,recommend_detected_version— предложения изменить атрибуты наблюдения, создать заметку или зафиксировать обнаруженную версию;recommend_observation_links— предложение типизированных связей API-наблюдения с запросами;recommend_session_capture— правило извлечения переменной, cookie или заголовка из HTTP-ответа с предпросмотром перед принятием;get_preset_lists,recommend_preset_value— чтение списков выбранного типа и предложение добавить новое значение. Если списка этого типа ещё нет, помощник может задать имя создаваемого списка.submit_openapi— передача OpenAPI YAML на проверку операций и создание рекомендации. Доступен в произвольном диалоге; требуется идентификатор сохранённого HTTP-обмена текущего проекта.search_header_evidence,read_exchange_evidence— поиск заголовков и чтение заголовков запроса и ответа выбранного обмена;read_header_values,read_cookie_values— получение ранее встречавшихся значений конкретного заголовка или cookie для проверки гипотез;read_api_observation,read_api_observation_parameter_values— чтение настроек API, определений параметров и их значений;read_host_observation,read_base_url_observation— чтение настроек Host и базового пути;find_observation_strings— чтение строк выбранного DetectedString-наблюдения с фильтрами по тексту и категории;get_collaborator_domain— получение Collaborator-домена для проверки;request_api_full_access— запрос полного доступа к API для тестирования;validate_java_script— инструкции по написанию пользовательских Java-скриптов для WebVulnFinder и проверка подготовленного кода;recommend_detected_string_states— предложение изменить состояние и комментарий отдельных обнаруженных строк;get_session_capture_rules— чтение текущих правил захвата сессии;recommend_session_checker— предложение API для контроля сессии своего сервиса;edit_recommendation— правка текущей ещё не принятой рекомендации;notify_user— отправка пользователю сообщения с выбранной категорией важности.
Описание аргументов и результата каждого инструмента доступно во вкладке «Инструменты».
Произвольный диалог и пользовательские задачи
Повторяющиеся запросы к помощнику можно сохранить как пользовательские ИИ задачи. Задайте название и сообщение, при необходимости — фильтр и предел выборки наблюдений, отдельный запуск для каждого объекта, инструменты и профиль модели. Шаблоны доступны во всех проектах этой установки Burp; фильтр применяется только при запуске шаблона без выбранного объекта.

В меню заголовка вкладки выберите «Создать ИИ задачу»: можно открыть диалог без контекста или выбрать сохранённый шаблон. Если шаблон содержит фильтр, WebVulnFinder отбирает наблюдения, при необходимости спрашивает о доступе и показывает подготовку в очереди задач. Перед запуском открывается форма, где можно проверить контекст и изменить параметры.
В контекстном меню HTTP-редактора, выбранных наблюдений или запросов из истории тестов откройте «Создать ИИ задачу». Можно начать обычный диалог или выбрать сохранённый шаблон: его сообщение, инструменты и настройки модели появятся в форме, а контекст будет подготовлен из выбранных объектов. Для HTTP-редактора можно предварительно выделить интересующий фрагмент. Действие доступно в Proxy, Repeater и редакторах сохранённых обменов WebVulnFinder.
Перед запуском WebVulnFinder показывает уже замаскированный контекст рядом с редактором сообщения. Во вкладке «Контекст» можно отдельно включить или исключить детали каждого наблюдения и HTTP-обмена, а для запроса — изменить лимит символов тела. Идентификатор каждой записи остаётся в контексте, чтобы помощник мог обратиться к сохранённым данным через инструменты. Контекст можно отредактировать вручную; после этого изменения в таблице не перезаписывают пользовательский текст.
Во вкладке «Инструменты» выберите, какие действия доступны помощнику в этом диалоге. По умолчанию включены все инструменты произвольного диалога; можно оставить только необходимые или отключить все. Выбор применяется и к следующим сообщениям того же диалога.
Помощник может предложить связи API-наблюдения с сохранёнными запросами: например, запрос создания объекта для API удаления или место вызова API в JavaScript. Такие предложения появляются в рекомендациях и сохраняются только после принятия пользователем. В кратком контексте диалога видны типы уже сохранённых связей; полный HTTP-обмен можно раскрыть отдельно.

Во вкладке «Настройки модели» можно выбрать профиль, лимит вызовов инструментов, режим рассуждений и поиск в интернете для этого запуска. Флаг отдельной задачи для каждого объекта по умолчанию выключен для обычного диалога; для нового шаблона он включён и затем берётся из его сохранённых настроек. При разделении наблюдение и связанные с ним запросы остаются в одной задаче; при запуске над запросами каждый запрос получает свою задачу. В этом режиме текст контекста нельзя редактировать: выберите строку в таблице, чтобы просмотреть контекст соответствующей задачи, и включайте детализацию отдельно для нужных наблюдений и запросов.
Помощник может исследовать параметры, обнаруженные строки, наблюдения и метаданные сохранённых HTTP-обменов текущего проекта. Найденный фрагмент исходного кода он может уточнить по точному диапазону сохранённого ответа.
По итогам исследования помощник может предложить изменение статуса, цвета, тэгов и комментария наблюдения, создание заметки или наблюдения об обнаруженной версии по выбранным HTTP-обменам, добавление значения в предустановленный список проекта или OpenAPI-спецификацию по сохранённому источнику. У новой заметки и обнаруженной версии можно сразу задать цвет и тэги. Перед предложением значения для списка помощник может прочитать списки нужного типа. Каждое такое действие создаётся как рекомендация: база знаний изменяется только при её принятии. Рекомендации на изменение наблюдения и создание нового наблюдения пользователь рассматривает перед принятием. В рекомендации на изменение наблюдения можно уточнить новые атрибуты и сравнить их с прежними; атрибуты, которых нет в предложении, сохраняют прежние значения. Отмена принятой рекомендации возвращает прежние атрибуты или удаляет созданное наблюдение. Порядок проверки операций описан в главе «OpenAPI».
Задачи анализа API, поиска API в исходниках и проверки чувствительных JavaScript-конструкций также могут предложить наблюдение об обнаруженной версии, если сохранённый HTTP-обмен её подтверждает.
Если для проверки гипотезы нужен новый HTTP-запрос, применяются уровни доступа и подтверждение, описанные выше. Исключение — запросы OPTIONS: они выполняются без проверки уровня доступа и без подтверждения пользователя. Запрос на решение отображается отдельным шагом журнала; пока он ожидает ответа, другие AI-задачи могут выполняться.
При подтверждении HTTP-пробы можно разрешить один запрос, отказать в нём или выбрать «Запретить это API до конца задачи». Последний вариант отклоняет дальнейшие пробы того же API без повторного запроса решения, включая пробы, которые обычно выполняются автоматически, кроме OPTIONS. Другие API и новые задачи остаются доступны.
Для проверок с внешним откликом ИИ может запросить отдельный Burp Collaborator-домен и вставить его в HTTP-нагрузку. Домен содержит фрагменты ID источника; полученные отклики проверяет расширение без обращения к модели и сообщает о них в Telegram. Чтобы найти исходный запрос или наблюдение, прочитайте метку домена и проверьте причину отклика.
После получения итогового ответа выберите завершённую задачу и действие «Продолжить диалог». Следующее сообщение использует тот же контекст разговора. История произвольного диалога хранится только в текущей вкладке Burp и недоступна после её закрытия или перезапуска расширения.
Выполнение и результат
Созданные задачи появляются в панели AI-задач. Их можно запускать, останавливать, повторять и отменять. Когда выбрана задача без отдельного шага, область аргументов показывает её входные данные. Выбор шага открывает его аргументы, результат и «Ход выполнения» с доступными промежуточными сообщениями модели и выполняемыми проверками. Для поддерживаемых объектов вход и содержимое шагов показаны в читаемом виде; остальные данные отображаются как JSON.
Расширение удерживает компьютер от автоматического сна во время фоновой работы; на macOS экран при этом может погаснуть. Условия удержания, исключения и команду ОС см. в настройках активности компьютера. При ошибке задачи бот отправляет в Telegram её название, текст ошибки и раскрываемый стек. Если они не помещаются в одно сообщение, конец текста обрезается.

Итогом анализа становятся независимые рекомендации: например, отдельно можно принять свойство API, проектные списки или текстовое описание. Если во время работы выполнялись дополнительные HTTP-запросы, они также сохраняются в истории тестов и доступны для самостоятельной проверки.
В контекстном меню заголовка «ИИ анализ» пункт «Автоматически разбирать рекомендации ИИ» сразу ставит поддерживаемые новые рекомендации этой вкладки на разбор в отдельной ИИ-задаче. Она может принять или отклонить предложение; решение и его объяснение видны в журнале задач и списке рекомендаций. Настройка действует и для рекомендаций терминальной сессии Codex. Если автоматический разбор выключен, используйте действие «Разобрать с ИИ» для выбранной рекомендации или примите решение вручную. Область исследования управляет разбором своих рекомендаций отдельно.
Доставка уведомлений в Telegram
При временной недоступности Telegram уведомления ИИ и Java-скриптов, ошибки задач, сообщения об остановке автоматизации и отклики Collaborator сохраняются для повторной отправки. После восстановления связи они досылаются; перезапуск Backend не удаляет ожидающие сообщения. Запросы разрешения действий и продления бюджета досылаются, пока ещё ожидают решения. Уже решённые или отменённые запросы пропускаются.
Некорректное сообщение или постоянный отказ Telegram, например блокировка бота, прекращают автоматические попытки. При потере ответа Telegram возможна повторная доставка одного сообщения. Подтверждения прочтения нет. PIN-коды входа, ответы бота на команды и переписка с поддержкой отправляются сразу без отложенной досылки.
Терминальный Codex с инструментами Burp
Если удобнее вести диалог в собственном проекте, откройте контекстное меню заголовка «ИИ анализ» и выберите «Открыть сессию в Codex». В появившемся окне оставьте нужные инструменты; первоначально отмечены все. После подтверждения команда запуска копируется в буфер обмена. Выполните её в терминале из папки нужного проекта: Codex откроется с обычными настройками и контекстом этой папки.
Каждое повторное открытие создаёт независимую сессию. Её вызовы инструментов и запросы подтверждения видны отдельной строкой в «ИИ анализе», а решения можно принимать в Burp или Telegram. Пока решение ожидается, вызов инструмента в терминале остаётся открытым. «Отменить» для этой строки закрывает доступ к инструментам и отменяет её ожидающие подтверждения; сам терминальный Codex продолжает работать. Если просто закрыть Codex, завершите оставшуюся строку вручную в Burp.
Контроль области анализа
Модель работает с контекстом, подготовленным для конкретной задачи. Дополнительные проверки ограничены переданными ей запросами и разрешёнными возможностями задачи. Они служат для сбора подтверждений. Изменения проекта проходят через рекомендации и применяются после ручного или включённого автоматического разбора.
Для наблюдений и строк можно задать уровень доступа:
- Скрыто. Наблюдения с данным уровнем исключаются из доступа в утилитах и при формировании контекста ИИ задач;
- Только чтение. Модель может читать данные по объекту, но не может выполнять активных действий, например вызова АПИ с измененным параметром без явного подтверждения пользователя через BurpSuite или сообщение в телеграмм.
- Полный доступ. Модель может читать данные, а также без запроса пользователя выполнять авторизованные запросы без выхода за границы зафиксированного контракта АПИ. Т.е. не может менять URL в статических узлах, http метод доступа, host:порт целевого сервиса и host заголовок. Остальными параметрами, заголовками и куками может оперировать свободно.
При передаче наблюдения на ИИ анализ, если его уровень доступа отличается от "Полный доступ" плагин ведет диалог предупреждая что проверка будет не полной и предлагает изменить уровень, т.к. по умолчанию у всех наблюдений установлен уровень доступа "Только чтение".
После выдачи полного доступа ранее ограниченному API его анализ снова становится незавершённым на дашборде. Работающий дашборд повторит анализ с новым доступом; если прежний проход ещё выполняется или ожидает решений по рекомендациям, повтор начнётся после него. Пауза сохраняется, ранее полученные результаты и рекомендации остаются доступны.
Если для дополнительного API-запроса требуется подтверждение в Telegram, бот присылает одно сообщение: изображение готового запроса, подпись с применёнными мутациями и кнопки решения. Найденные в готовом запросе значения мутаций выделяются жирным; удалённые элементы указаны в подписи. Длинный список сокращается с указанием числа пропущенных мутаций. Проверьте запрос и изменения перед разрешением вызова.
Уровень доступа "Только чтение" также запрещает активные пробы встроенными тестами плагина над АПИ и без ИИ задач.
Как и остальные активные проверки WebVulnFinder, AI-задачи следует запускать только для систем, входящих в согласованную область тестирования.
Обсуждение истории задачи
В Telegram выберите «Ответить» на сообщение бота по ИИ-задаче и задайте вопрос модели. Она получит историю задачи и ответит в Telegram. Так можно уточнить результат, разобраться в действиях модели или обсудить дальнейшие шаги. В Burp такое же обсуждение запускается через пункт «Обсудить историю задачи» в контекстном меню ИИ-задачи.
Чтобы продолжить разговор в Telegram, ответьте на сообщение модели. Если ответ разбит на несколько сообщений, отвечайте на последнее. Модель сохранит контекст обсуждения. В Burp для этого выберите «Продолжить диалог» в контекстном меню задачи обсуждения.
Для общения через Telegram Burp должен оставаться открытым и подключённым к серверу.