AI-Powered Fuzzing: как нейросетка находит 0-day быстрее тебя
AI-фаззинг — это уже не хайп. В январе 2026 один AI-агент нашёл 12 новых zero-day в OpenSSL — в кодовой базе, которую фаззили миллионы CPU-часов и аудировали 25 лет. Добро пожаловать в новую эпоху.
Что такое фаззинг и зачем ему AI
Классический фаззинг — это «бомбардировка» приложения случайными или полу-случайными данными, пока оно не крашнется. Работает, но медленно и тупо: большинство мусорных инпутов программа просто игнорирует ещё на стадии парсинга.
AI меняет правила игры. Вместо «случайного шума» модель изучает грамматику валидных входных данных — структуру PDF, протокол, API-схему — и генерирует умные мутации, которые попадают прямо в edge-кейсы. Это не просто ускорение — это смена парадигмы.
Числа, от которых у пентестера потеют ладони
Сравнение классического и AI-фаззинга по ключевым метрикам:
| Метрика | Классический фаззинг | AI-фаззинг |
|---|---|---|
| Покрытие кода | baseline | +300% |
| Скорость нахождения багов | baseline | +180% |
| Снижение числа ложных срабатываний | baseline | −33% |
| Среднее время до эксплойта (часы) | 72 | 24 |
Ручная разработка эксплойта раньше занимала ~168 часов. AI укладывается в сутки.
Механика: как это работает под капотом
AI-фаззер — это не просто «ChatGPT генерирует баг-репорты». Внутри — сложный пайплайн:
1. Coverage-Guided Fuzzing + нейросеть
Классический AFL/libFuzzer трекает, какие базовые блоки и рёбра графа исполнения были покрыты. AI-агент анализирует этот feedback и приоритизирует мутации, ведущие к новым путям исполнения, а не случайно блуждает. Система PROFUZZ, например, буст покрытия на 11.66% и throughput в 2.76x по сравнению с лучшими directed-фаззерами.
2. LLM-based семантический анализ
Модель понимает смысл кода. Проект FirmAgent — гибридная система для IoT-прошивок: фаззинг находит точки входа (taint sources), а LLM-агент проводит контекстно-зависимый taint-анализ по потенциальным путям и генерирует PoC-тесткейсы.
3. Автоматическая генерация эксплойтов
Нашёл краш — начинай разрабатывать эксплойт. AI анализирует crash dump, определяет тип уязвимости (buffer overflow, use-after-free, etc.), пишет шеллкод и конструирует инпут, который не только триггерит переполнение, но и перенаправляет execution flow.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# Упрощённая схема AI-фаззера на Python import subprocess, random from openai import OpenAI client = OpenAI() def ai_mutate(seed_input: bytes, crash_log: str) -> bytes: """LLM мутирует инпут на основе контекста краша""" prompt = f""" Target crashed with this input (hex): {seed_input.hex()} Crash log: {crash_log} Generate a new test input that explores similar code paths. Output ONLY raw hex bytes, nothing else. """ response = client.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": prompt}] ) return bytes.fromhex(response.choices[0].message.content.strip()) def coverage_guided_fuzz(target_binary: str, seeds: list[bytes]): corpus = seeds.copy() crashes = [] for _ in range(10000): seed = random.choice(corpus) try: result = subprocess.run( [target_binary], input=seed, capture_output=True, timeout=5 ) # Если новое покрытие — добавляем в корпус if result.returncode != 0: crashes.append(seed) # AI анализирует краш и генерирует умную мутацию mutated = ai_mutate(seed, result.stderr.decode()) corpus.append(mutated) except subprocess.TimeoutExpired: crashes.append(seed) return crashes |
Реальный кейс: OpenSSL и 12 zero-days за одну кампанию
В январе 2026 года AI-система AISLE ответственна за нахождение всех 12 новых zero-day в OpenSSL — в кодовой базе, которую фаззили миллионы CPU-часов и аудировали команды в том числе из Google. Среди находок — CVE-2025-15467: stack buffer overflow в парсере CMS-сообщений, потенциально удалённо эксплуатируемый без валидных ключей, CVSS 9.8 (CRITICAL). Три бага существовали с 1998–2000 годов, один — унаследован ещё от оригинальной библиотеки SSLeay до OpenSSL. В пяти из двенадцати случаев AI сам предложил патчи, принятые в официальный релиз.
Топовые инструменты прямо сейчас
- Google Big Sleep — AI-агент от Google, перехвативший CVE-2025-6965 до эксплуатации в дикой природе
- FirmAgent — первая гибридная система fuzzing+LLM для IoT firmware, обнаруживает уязвимости в реальных прошивках 14 устройств
- FlashFuzz — AI-фаззер для Deep Learning библиотек (PyTorch, TensorFlow), нашедший 42 ранее неизвестных бага, 8 из которых уже пофикшено; обеспечивает ускорение генерации инпутов до 1182x
- Claude Opus 4.6 — Anthropic публично подтвердили, что модель способна находить значимые 0-day в хорошо протестированных кодовых базах без специализированного скаффолдинга
Атака и защита: двойное использование
CrowdStrike предсказывает в 2026 году взрыв числа zero-day, обусловленный AI. GenAI оптимизирует фаззинг-методологии и анализирует crash-репорты в масштабе, молниеносно выявляя эксплуатируемые флоу.
Парадокс в том, что тот же инструментарий работает в обе стороны:
- Защитник интегрирует AI-фаззинг в SDLC и находит баги до релиза
- Атакующий использует те же техники и должен повезти лишь однажды
Атакующий структурно в выигрыше: он ищет одну точку входа и концентрирует ресурсы, тогда как защитник обязан закрыть всё. Злоумышленники, использующие AI fuzzing, уже активно таргетируют браузеры и их расширения — успешный эксплойт через браузер даёт persistency внутри корпоративной сети.
Быстрый старт: собираем AI-фаззер за 30 минут
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# 1. Ставим AFL++ с поддержкой LLM-мутаций git clone https://github.com/AFLplusplus/AFLplusplus cd AFLplusplus && make distrib && sudo make install # 2. Инструментируем бинарь afl-clang-fast -o target_fuzz ./target.c # 3. Базовый запуск с corpus mkdir in out echo "AAAA" > in/seed1 afl-fuzz -i in -o out -- ./target_fuzz @@ # 4. Подключаем Nautilus (grammar-based fuzzer для структурированных форматов) pip install nautilus-fuzzer # 5. LLM-мутатор через кастомный мутатор AFL++ # custom_mutator.py — используй OpenAI/local LLM для генерации умных мутаций |
Для максимального эффекта — комбинируй coverage-guided фаззинг (AFL++) с LLM-анализом (GPT-4o / Claude / local Qwen) для семантически осмысленных мутаций. Это именно та связка, которую используют топовые bug bounty hunters прямо сейчас.
Что дальше
В 2026 мы уже наблюдаем, как AI находит уязвимости в скомпилированных бинарях без исходников — через динамический анализ и инструментацию. Следующий рубеж — полностью автономные агенты, которые: находят краш → классифицируют уязвимость → разрабатывают PoC → оценивают эксплуатируемость → готовят патч. И всё это — без человека в петле. Скорость этого цикла сейчас определяет, кто выигрывает гонку вооружений.

На этом все. Всем хорошего дня!
