ИИ-фаззер с авто-патчингом и генерацией эксплойтов: находит memory safety и supply-chain бэкдоры, проверяет фиксы атакой на пропатченный бинарник.
Бесплатный фреймворк для обратной разработки от АНБ США. Поддерживает дизассемблирование, декомпиляцию в псевдо-C, анализ графа вызовов, …
Автономные AI-агенты для пентестинга, которые динамически запускают код, находят уязвимости и подтверждают их работающими proof-of-concept эксплойтами, …
Декомпилятор Android DEX/APK в читаемый Java-код. GUI для анализа приложений: навигация по классам, поиск строк, дизассемблер …
Автономный white-box AI-пентестер для веб-приложений и API, который анализирует исходный код, выявляет векторы атак и выполняет …
git clone https://github.com/Bunny-sysd/mutagen

ИИ-файзер нулевого дня и автопатчер
Первый в мире агентный ИИ-фаззер, который читает исходный код, находит уязвимости,
генерирует эксплойты, патчит баги и доказывает, что исправление работает — полностью автономно.
Возможности • Как это работает • Быстрый старт • Провайдеры LLM • Профили сканирования • Участие в разработке
Только для образовательных и оборонительных целей. Mutagen создан для помощи разработчикам в поиске и исправлении уязвимостей в их собственном коде. Не используйте этот инструмент против целей, для тестирования которых у вас нет явного разрешения.
Традиционные фаззеры (AFL, libFuzzer, Honggfuzz) полагаются на случайные мутации и покрытие кода для поиска крашей. Они эффективны, но требуют огромного процессорного времени и часто не могут обойти сложную логику вроде проверок аутентификации или SASL-хендшейков.
Mutagen работает иначе. Он использует агентную большую языковую модель для:
Результат? Краши находятся за секунды, а не часы. Уязвимости патчатся автоматически. Эксплойты генерируются для регрессионного тестирования.
| Функция | AFL/libFuzzer | Honggfuzz | Mutagen |
|---|---|---|---|
| Стратегия мутации | Случайный бит-флип | Случайная + обратная связь | Направляемая ИИ |
| Понимание исходного кода | Нет | Нет | Да, полный анализ |
| Бинарный / дизассемблированный код | Нет | Нет | Да, интеграция Ghidra |
| Обход авторизации/логики | Нет | Нет | Да, агентные повторы |
| Автогенерация патчей | Нет | Нет | Да |
| Генерация эксплойта (PoC) | Нет | Нет | Да |
| Верификация патча | Нет | Нет | Да |
| Аудит цепочки поставок | Нет | Нет | Да |
| Триаж вредоносного ПО | Нет | Нет | Да |
| Безопасен для корпоративных сетей | Нет | Нет | Да, фоллбэк HTTP/1.1 |
| Время до первого краша | Часы/Дни | Часы | Секунды |
| Сложность настройки | Высокая | Средняя | pip install |
Mutagen выполняет полностью автономный 5-фазный цикл охоты на нулевые дни:
graph LR
A["Phase 1\nAI Code Analysis"] --> B["Phase 2\nCompilation"]
B --> C["Phase 3\nAgentic Fuzzing"]
C -->|"Crash Found"| D["Phase 4\nAuto-Patch + Exploit"]
C -->|"No Crash"| C2["Agentic Retry\n(learns from output)"]
C2 --> C
D --> E["Phase 5\nPatch Verification"]
style A fill:#1a1a2e,stroke:#00ccff,color:#00ccff
style B fill:#1a1a2e,stroke:#00ccff,color:#00ccff
style C fill:#1a1a2e,stroke:#ff4d4d,color:#ff4d4d
style C2 fill:#1a1a2e,stroke:#ffb84d,color:#ffb84d
style D fill:#1a1a2e,stroke:#00ff88,color:#00ff88
style E fill:#1a1a2e,stroke:#00ff88,color:#00ff88
| Фаза | Что происходит |
|---|---|
| 1. Анализ кода ИИ | ИИ читает целевой файл .c (или Ghidra-декомпилированный бинарник), выполняет цепочку рассуждений (Chain-of-Thought), идентифицирует уязвимости (переполнения буфера, форматные строки, UAF и др.) и генерирует целевые полезные нагрузки. |
| 2. Компиляция | Цель компилируется с внедрённым обработчиком крашей Mutagen, который захватывает состояние регистров (EIP/RIP) в момент краша. |
| 3. Агентный фаззинг | Полезные нагрузки внедряются конкурентно. Если нагрузка не срабатывает, ИИ анализирует stdout, stderr и коды выхода, затем генерирует уточнённые нагрузки. Это агентный цикл повторных попыток. |
| 4. Автопатч и эксплойт | ИИ пишет безопасный патч на C И отдельный Python-скрипт PoC-эксплойта для регрессионного тестирования. |
| 5. Верификация патча | Mutagen компилирует пропатченный код, запускает по нему эксплойт и математически доказывает, что уязвимость устранена. |
#define в заголовках и приведения 64-битных size_t до триажа для устранения исторических ложных срабатываний\x89PNG, \x7fELF, PK\x03\x04, MZ) и автоматизированный ремонт CRC32/заголовков для бинарников образов, архивов, системных ELF и ядерных PE--network=none) с ограничениями CPU/памяти и защитой хостаstdout/stderr для обхода логики аутентификации и сложных рукопожатий.env — Хранит провайдера, модель и API-ключи в локальном файле конфигурации| CWE | Уязвимость | Критичность |
|---|---|---|
| CWE-120 | Переполнение буфера | Критическая |
| CWE-134 | Ошибка форматной строки | Критическая |
| CWE-190 | Целочисленное переполнение | Высокая |
| CWE-416 | Использование после освобождения | Критическая |
| CWE-193 | Ошибка на единицу (Off-by-One) | Высокая |
| CWE-415 | Двойное освобождение | Критическая |
| CWE-78 | Внедрение команд | Критическая |
| CWE-506 | Встроенный вредоносный код | Критическая |
# Clone
git clone https://github.com/Bunny-sysd/mutagen.git
cd mutagen
# Install
pip install -e .
# Set your API key
export GEMINI_API_KEY="your_key_here" # Linux/macOS
$env:GEMINI_API_KEY="your_key_here" # Windows PowerShell
.env)Создайте файл .env в корне проекта, чтобы не передавать флаги каждый раз:
```markdown
# Default provider (gemini, openai, or ollama)
MUTAGEN_PROVIDER=gemini
MUTAGEN_MODEL=gemini-2.5-flash
# API Keys
MUTAGEN_API_KEY=your_key_here
# Alternatively, provider-specific keys:
# GEMINI_API_KEY=your_gemini_key
# OPENAI_API_KEY=your_openai_key
# Fuzz a single source-code target
mutagen --target targets/01_buffer_overflow.c
# Fuzz a compiled binary (requires Ghidra)
mutagen --target path/to/binary.exe --binary
# Run the fuzzer in Multi-Agent Swarm Mode (recommends: agents mode)
mutagen --target targets/22_asyn_signal_uaf.c --mode agents
# Run with more AI payloads
python -m mutagen --target targets/01_buffer_overflow.c --max-payloads 5
# Fuzz ALL targets automatically
python run_all.py --max-payloads 3
Mutagen создаёт:
- JSON-отчёт о падении в crashes/
- Интерактивный HTML-отчёт в crashes/
- 🩹 Пропатченный C-код в patches/
- Python-скрипт эксплойта в exploits/
Mutagen поддерживает три специализированных режима сканирования, выбираемых через --profile:
# Default — finds classic memory safety bugs
mutagen --target targets/01_buffer_overflow.c --profile legacy-audit
# Supply-Chain — finds backdoors, credential leaks, unauthorized sockets
mutagen --target third_party_lib.c --profile supply-chain
# Malware Triage — identifies ransomware, keyloggers, C2 implants
mutagen --target suspicious_binary.exe --binary --profile malware-triage
| Профиль | Фокус |
|---|---|
legacy-audit (по умолчанию) |
Переполнения буферов, форматные строки, UAF, целочисленные баги |
supply-chain |
Бэкдоры, захардкоженные секреты, неавторизованные сетевые вызовы, эксфильтрация окружения |
malware-triage |
Циклы шифрования, механизмы персистентности, паттерны кейлоггеров, C2-сокеты |
Mutagen может фаззить скомпилированные бинарники без исходного кода, интегрируясь с Ghidra:
# Decompile and fuzz a compiled binary
mutagen --target path/to/program.exe --binary
Ghidra запускается в безголовом режиме для декомпиляции бинарника в C-псевдокод. Mutagen затем передаёт это ИИ со специальной контекстной заметкой об именах переменных в декомпилированном коде, чтобы анализ оставался точным.
| Провайдер | Модель | Настройка | Стоимость |
|---|---|---|---|
| Google Gemini (по умолчанию) | gemini-2.5-flash |
export GEMINI_API_KEY=... |
Доступен бесплатный тариф |
| Anthropic Claude | claude-3-5-sonnet-latest |
export ANTHROPIC_API_KEY=... |
Оплата за использование |
| OpenAI | gpt-4o |
pip install openai + export OPENAI_API_KEY=... |
Оплата за использование |
| Ollama (локально) | llama3.2, codellama и др. |
Установите Ollama | Бесплатно (запускается локально) |
# Use Anthropic Claude 3.5 Sonnet
mutagen --target targets/01_buffer_overflow.c --provider claude --model claude-3-5-sonnet-latest
# Use OpenAI GPT-4o
mutagen --target targets/01_buffer_overflow.c --provider openai --model gpt-4o
# Используйте локальный Ollama (API-ключ не нужен!)
mutagen --target targets/01_buffer_overflow.c --provider ollama --model llama3.2### Удаление цензуры у локальных LLM (поддержка Heretic)
При использовании локальных моделей через Ollama для поиска уязвимостей и генерации эксплойтов стандартные модели иногда отказываются выполнять запросы из-за выравнивания безопасности.
Для решения этой проблемы мы рекомендуем использовать Mutagen вместе с **[Heretic](https://github.com/p-e-w/heretic)** — инструментом с открытым исходным кодом, который использует **направленную аблацию (аблитерацию)** для автоматического удаления цензурных garde-rails из локальных трансформерных моделей (например, Llama, Qwen, Mistral).
1. Склонируйте и установите Heretic:
```bash
git clone https://github.com/p-e-w/heretic.git
cd heretic
pip install -r requirements.txt
```
2. Запустите автоматический оптимизатор Heretic на ваших локальных весах модели для аблятерации векторов отказа, сохраняя интеллект и способности модели к рассуждению.
3. Импортируйте нецензурированную модель в Ollama и запустите Mutagen:
```bash
mutagen --target targets/01_buffer_overflow.c --provider ollama --model your-abliterated-model
```
### Совместимость с корпоративными сетями
Mutagen создан для надежной работы в корпоративных и энтерпрайз-средах:
- **Только HTTP/1.1** — отключает HTTP/2, чтобы избежать зависаний TLS-прокси за брандмауэрами глубокого инспектирования пакетов
- **Быстрый таймаут подключения** — завершается с ошибкой менее чем за 5 секунд вместо бесконечного ожидания
- **Автоматический офлайн-режим** — если API заблокирован или превышен лимит запросов, Mutagen бесшовно переключается на традиционное фаззинг на основе мутаций, чтобы ваш пайплайн никогда не останавливался
---
## CI/CD Интеграция
Mutagen поставляется с готовым к использованию workflow для GitHub Actions в [`.github/workflows/mutagen-action.yml`](https://github.com/Bunny-sysd/mutagen/blob/master/.github/workflows/mutagen-action.yml):
```yaml
# Автоматически тестирует каждый PR — выявляет сбои до слияния
on: [pull_request]
Это позволяет автоматически обнаруживать новые уязвимости в тот момент, когда разработчик открывает PR — тот же подход, который используют лучшие команды безопасности в крупных технологических компаниях.
⚠️ Безопасность песочницы в CI/CD: При запуске в CI или неинтерактивных средах (
CI=1или non-TTY), Mutagen строго требует работающий Docker-демон. Непесочничное выполнение на хосте строго блокируется в CI-режиме и немедленно прерывается с кодом выхода 1, даже если установленыMUTAGEN_ALLOW_UNSANDBOXED=1или--no-sandbox.## Структура проекта
mutagen/
├── mutagen/ # Core Python package
│ ├── cli.py # Command-line interface
│ ├── core.py # 5-phase fuzzing orchestration
│ ├── compiler.py # C compilation + crash handler injection
│ ├── executor.py # Payload execution + crash detection
│ ├── reporter.py # JSON/HTML report generation
│ ├── models.py # Pydantic payload schemas
│ └── engines/ # LLM provider integrations
│ ├── base.py # Abstract engine interface
│ ├── gemini.py # Google Gemini (with resilient error handling)
│ ├── openai_engine.py # OpenAI GPT
│ └── ollama.py # Local Ollama
├── targets/ # Intentionally vulnerable C programs (20+ CVE targets)
├── tests/ # Unit test suite (130+ tests)
├── docs/ # Documentation & architecture
├── .github/workflows/ # CI/CD GitHub Actions
├── pyproject.toml # Python packaging config
└── run_all.py # Batch fuzzer for all targets
# Install dev dependencies
pip install -e ".[dev]"
# Run all tests
pytest tests/ -v
# Run with coverage
pytest tests/ -v --cov=mutagen
# Lint
ruff check mutagen/
Вклад приветствуется! Смотрите CONTRIBUTING.md для руководств.
Простые способы помочь:
- Добавить новые уязвимые C-таргеты в targets/
- Добавить новые интеграции LLM-движков
- Улучшить документацию
- Сообщить об ошибках или запросить функции
Этот проект лицензирован под MIT License.
Создано Bunny-sysd
Если Mutagen помог вам, поставьте звезду
```