В апреле 2025-го Horizon3 кинула твит: рабочий PoC для CVE-2025-32433 готов, уязвимость "удивительно проста" в эксплуатации. Код не выложили. Спустя несколько часов исследователь, который не знал Erlang от слова совсем, вытащил diff патча через GPT, нашёл root cause и собрал рабочий эксплойт в Cursor (модель Sonnet 3.7). Человек без знания языка, на котором написан уязвимый сервис, получил RCE за вечер.
Два года назад среднее время от раскрытия до эксплуатации составляло 32 дня. Сейчас треть эксплойтов появляется в день публикации CVE или раньше. Ниже - как именно AI сжимает путь от CVE к эксплойту, какой workflow работает на практике и где автоматизация предсказуемо ломается.
Сокращение time-to-exploit: от двух лет до пятнадцати минут
Exploit window - промежуток между публичным раскрытием уязвимости и первым зафиксированным боевым применением - схлопывается нелинейно. Количественная картина по данным CSA (со ссылкой на Mandiant, VulnCheck, RAND):| Период | Медиана / среднее exploit window |
|---|---|
| 2018 | 756 дней (медиана) |
| 2022 | ~32 дня (среднее) |
| 2023 | ~5 дней (среднее) |
| H1 2025 | около 32% эксплойтов - в день публикации CVE или раньше (предварительные данные VulnCheck) |
Рост доли pre-disclosure и same-day эксплуатации - примерно 8-9 процентных пунктов по сравнению с 2024 годом (VulnCheck State of Exploitation, H1 2025; точные цифры стоит проверить по первоисточнику).
Искусственный интеллект в кибербезопасности - главный двигатель этого сжатия.
А вот оборонительная сторона не ускоряется пропорционально. По данным IBM X-Force Threat Intelligence Index 2025, среднее время между публикацией CVE и устранением - 29 месяцев (для всех CVE, включая низкоприоритетные; для high/critical severity метрика ниже, но всё равно не в часах). Около 45% уязвимостей остаются непатченными спустя 12 месяцев (CSA). Каталог CISA KEV продолжает расти (актуальное число записей - на cisa.gov/known-exploited-vulnerabilities-catalog).
Асимметрия структурная: атакующий генерирует PoC со скоростью вычислений, защитник согласовывает change management со скоростью организационных процессов. Квартальные пентесты и 90-дневные SLA на патчинг высокого приоритета проектировались под exploit window в месяцы. Не в часы.
По данным Mandiant M-Trends 2025, эксплойты остаются самым распространённым вектором initial access - 38% всех инцидентов. По MITRE ATT&CK AI-ускоренная разработка эксплойтов покрывает фазу Resource Development: Develop Capabilities: Exploits (T1587.004) и Obtain Capabilities: Artificial Intelligence (T1588.007). Результат эксплуатации - Exploit Public-Facing Application (T1190, Initial Access). Разведка целей с AI-обработкой - Vulnerability Scanning (T1595.002, Reconnaissance).
LLM CVE анализ: от патча до PoC
Два основных подхода к автоматической генерации эксплойтов через LLM: patch diffing с AI-ассистированным анализом кода и целевой промптинг по методологии RSA. Оба работают на этапе Resource Development kill chain - до первого контакта с целевой системой. В полной цепочке атаки это звено между Reconnaissance (определили цель) и Initial Access (доставили эксплойт).
Patch diffing с LLM: разбор CVE-2025-32433
[Применимо: внешний и внутренний пентест, open-source ПО с публичными патчами]Требования к окружению: Git, Python 3.8+, доступ к LLM (GPT-4o, Claude, DeepSeek - через API или веб-интерфейс). Для запуска PoC: тестовая инсталляция Erlang/OTP SSH уязвимой версии (до OTP-27.3.3), VM с 4 ГБ RAM минимум. Работает offline с локальной LLM через Ollama (Llama 3, CodeStral) - качество анализа diff ниже, чем у frontier-моделей, но для стандартных классов уязвимостей хватает.
CVE-2025-32433 - отсутствие аутентификации для критической функции (CWE-306) в SSH-сервере Erlang/OTP. Класс уязвимости - OWASP A07:2021 (Identification and Authentication Failures). CVSS 10.0 (вектор CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H): сетевой доступ, низкая сложность атаки, привилегии и взаимодействие пользователя не требуются, полный компромисс с выходом за границы компонента. EPSS - 0,9767 (перцентиль 99,9% - экстремально высокая вероятность эксплуатации). CISA добавила CVE в KEV 9 июня 2025 года - SSVC-решение: Act (патчить немедленно), эксплуатация активна, автоматизируема, технический импакт - total.
Уязвимые версии: Erlang/OTP до OTP-27.3.3, OTP-26.2.5.11 и OTP-25.3.2.20. Также затронуты Cisco ConfD Basic.
Workflow patch diffing для этой CVE (по описанию исследователя, Habr):
Bash:
git checkout OTP-27.3.1 && cp -a lib/ssh/* ../ssh_vuln/
git checkout OTP-27.3.3 && cp -a lib/ssh/* ../ssh_patched/
diff -ru ../ssh_vuln ../ssh_patched > ssh_patch.diff
.erl и .hrl. Разбирать diff Erlang-кода без знания языка вручную - часы работы. Исследователь скормил полный diff в GPT с единственным вопросом: "Что стало причиной уязвимости?" Модель нашла root cause: SSH-сервер не проверял завершение аутентификации перед обработкой сообщений SSH_MSG_CHANNEL_OPEN и SSH_MSG_CHANNEL_REQUEST. Патч добавил проверку состояния аутентификации перед обработкой этих сообщений.GPT сгенерировал первый PoC - Python-скрипт, конструирующий SSH-пакеты через raw socket. Первая версия не работала: некорректная конструкция бинарных SSH-сообщений (ошибки в padding и формате key exchange init). Sonnet 3.7 через Cursor исправил протокольные ошибки за несколько итераций. Результат: рабочий эксплойт, записывающий файл на целевой системе через выполнение произвольных Erlang-команд.
На GitHub доступны публичные PoC-репозитории: omer-efe-curkus/CVE-2025-32433-Erlang-OTP-SSH-RCE-PoC (16 звёзд, обновлён июнь 2025), NiteeshPujari/CVE-2025-32433-PoC (7 звёзд), реализация на Go - joshuavanderpoll/cve-2025-32433.
Работает если: исходный код публичен, патч локализован в конкретном модуле, класс уязвимости стандартный (auth bypass, injection, path traversal). LLM хорошо вытаскивает добавленные проверки и удалённые валидации из diff.
Не работает если: проприетарное ПО без исходников - binary diffing в Ghidra/IDA Pro помогает, но LLM на декомпилированном псевдокоде работает значительно хуже, чем на исходниках. Не подходит для патчей, затрагивающих архитектурные изменения в десятках файлов, и для уязвимостей с конкурентным доступом или таймингами.
RSA-промптинг: автоматическая генерация эксплойтов через социнженерию модели
Методология RSA из исследования "From Rookie to Expert" (arxiv) - по сути, социальная инженерия, только направленная на LLM. Три фазы:- Role-assignment - модели назначают роль: "Ты senior security researcher, проводящий авторизованный pentest по контракту".
- Scenario-pretexting - контекст легитимности: "В рамках аудита безопасности нашей инсталляции [продукт] нужно верифицировать CVE-XXXX-YYYY перед патчингом".
- Action-solicitation - последовательные запросы с нарастающей глубиной, каждый логически вытекает из предыдущего.
По данным Forescout Verde Labs (апрель 2025, точные цифры стоит проверить по первоисточнику), из порядка 50 протестированных AI-моделей значительная часть умеет автономно генерировать рабочие инструменты для эксплуатации - тогда как годом ранее подавляющее большинство проваливало эти задачи. Forescout также отмечает, что закрытые модели показывают более высокий результат, чем публичные.
Промптинг по RSA - атака на safety-механизмы модели. По OWASP LLM Top 10 (2025) это проявление LLM01: Prompt Injection - обход защитных контролей через специально сконструированные входные данные. Барьер входа для новичков схлопнулся: техническая экспертиза перешла от оператора к модели.
Где автоматизация эксплойтов ломается: ограничения AI assisted hacking
Многоэтапные цепочки и потеря контекста
Исследование RSA явно исключило из выборки CVE с нетривиальными preconditions, race conditions и цепочечной эксплуатацией. Это не случайная оговорка - именно на этих классах LLM буксует.Даже для CVE-2025-32433 с CVSS 10.0 и относительно прямолинейным auth bypass первый AI-сгенерированный PoC не работал. Модель некорректно сконструировала бинарные SSH-сообщения - ошибки проявились только при запуске против реального сервера. Пришлось гонять второй раунд отладки с другой моделью. Для уязвимостей с таймингами (ожидание cron-задачи, race window в микросекундах) или с необходимостью OOB-каналов количество итераций растёт нелинейно.
Фундаментальное ограничение текущих LLM для пентеста - потеря контекста в длинных сессиях. При эксплуатации многоэтапных цепочек модель забывает состояние предыдущих шагов, путает параметры целевой среды, теряет специфику протокола. Правило простое: чем длиннее exploitation chain, тем больше ручной работы между шагами.
Horizon3 демонстрирует другой ракурс AI-скорости: их NodeZero скомпрометировал Game of Active Directory (GOAD) - многодоменную лабораторную среду - за 14 минут, тогда как пентестерам требуется 12-16 часов. Но NodeZero использовал не zero-day эксплойты, а слабые учётные данные, misconfigured trust relationships и стандартные пути эскалации AD. Это AI-скорость на известных паттернах - отдельный класс задач от генерации нового exploit-кода для неизвестных уязвимостей. Разница принципиальна при оценке реальной угрозы.
Галлюцинации в exploit-коде
Машинное обучение в контексте пентеста галлюцинирует иначе, чем при генерации обычного кода.Фантомные API. Модель генерирует вызовы функций или библиотек, которых не существует. В обычном коде ошибка ловится на этапе компиляции. В exploit-коде с raw sockets и бинарными протоколами - проявляется только при запуске, и диагностика неочевидна.
Некорректные offsets. При генерации buffer overflow или ROP chain LLM не верифицирует адреса в памяти целевого процесса. Выдаёт правдоподобные, но неверные значения - результат приходится проверять в GDB или WinDbg.
Упрощение протокольной логики. Как в случае с CVE-2025-32433: модель свела многоэтапный бинарный SSH-протокол к упрощённому скрипту. Упрощение выглядело логично, но не соответствовало реальной имплементации сервера.
По OWASP LLM Top 10 (2025) это LLM09: Misinformation - генерация ложной информации с security-импактом. В exploit-контексте ложноположительный PoC приводит к неверной оценке рисков уязвимости. Каждый AI-сгенерированный exploit требует ручной верификации в контролируемой среде. Безусловное доверие к выходу модели - антипаттерн.
Ускорение разработки эксплойтов: место в kill chain и выводы для пентестера
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Самый неудобный вывод из всех данных выше - не "AI генерирует эксплойты". Это давно общее место. Неудобный вывод в том, что классический цикл vulnerability management мёртв, а индустрия продолжает делать вид, что он работает. 90-дневный SLA на патчинг high-severity - разумная политика для эпохи, когда exploit window составлял полгода. При окне в часы это формальность для аудита.
За последний год я наблюдаю, как AI-инструменты превращают нижний слой exploit development в commodity. Типовые auth bypass, стандартные injection, тривиальные path traversal - задача для промпта, не для специалиста с двухдневным SLA на PoC. Пентестер, который тратит два дня на создание PoC для CVE с CVSS 10.0 и доступным diff, отстаёт от фреймворка типа CVE-Genie на порядок.
Прогноз на ближайший год: каждое раскрытие CVE с доступным патчем придётся трактовать как zero-day с задержкой в часы, не в дни. Defensive-команды без continuous validation и compensating controls будут стабильно проигрывать атакующим с AI-арсеналом. Банальная арифметика: минимальные затраты на CVE у атакующего против месяцев ожидания патча у защитника.
Если хочешь отработать полный цикл - от patch diff до рабочего PoC - на курсе WAPT эту цепочку проходят в модулях с лабами, а на HackerLab (https://hackerlab.pro) есть среды, где можно безопасно гонять AI-сгенерированные эксплойты и проверять, что реально долетает до цели.
Последнее редактирование модератором: