mutagen

Exploitation активный

ИИ-фаззер с авто-патчингом и генерацией эксплойтов: находит memory safety и supply-chain бэкдоры, проверяет фиксы атакой на пропатченный бинарник.


Установка
git clone https://github.com/Bunny-sysd/mutagen
показать оригинал переведено ИИ

Mutagen Logo

Mutagen

ИИ-файзер нулевого дня и автопатчер

Первый в мире агентный ИИ-фаззер, который читает исходный код, находит уязвимости,
генерирует эксплойты, патчит баги и доказывает, что исправление работает — полностью автономно.


Quick Start MIT License Python 3.10+ CI/CD



Возможности • Как это работает • Быстрый старт • Провайдеры LLM • Профили сканирования • Участие в разработке


Заявление об отказе от ответственности

Только для образовательных и оборонительных целей. Mutagen создан для помощи разработчикам в поиске и исправлении уязвимостей в их собственном коде. Не используйте этот инструмент против целей, для тестирования которых у вас нет явного разрешения.


Почему Mutagen?

Традиционные фаззеры (AFL, libFuzzer, Honggfuzz) полагаются на случайные мутации и покрытие кода для поиска крашей. Они эффективны, но требуют огромного процессорного времени и часто не могут обойти сложную логику вроде проверок аутентификации или SASL-хендшейков.

Mutagen работает иначе. Он использует агентную большую языковую модель для:

  1. Чтения и понимания исходного кода цели (или дизассемблированного бинарника)
  2. Математического расчёта точных полезных нагрузок для триггера повреждения памяти
  3. Обучения на ошибках — если полезная нагрузка не вызывает краш, ИИ анализирует вывод и пробует снова
  4. Автоматического патчинга уязвимости и генерации доказательства концепции (PoC) эксплойта

Результат? Краши находятся за секунды, а не часы. Уязвимости патчатся автоматически. Эксплойты генерируются для регрессионного тестирования.

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 компилирует пропатченный код, запускает по нему эксплойт и математически доказывает, что уязвимость устранена.

Возможности

  • Анализ на базе ИИ — Понимает семантику кода и цепочки вызовов AST, а не просто случайные бит-флипы
  • Предварительная верификация типа находки — Разрешает раскрытие макросов #define в заголовках и приведения 64-битных size_t до триажа для устранения исторических ложных срабатываний
  • Токен-эффективная разведка угроз — Ранжирует сигнатуры CVE/CWE по оценке CVSS и дедуплицирует кандидаты для минимизации потребления токенов LLM-промптами
  • Универсальный проход ремонта бинарников — Динамическая инспекция магических байтов (\x89PNG, \x7fELF, PK\x03\x04, MZ) и автоматизированный ремонт CRC32/заголовков для бинарников образов, архивов, системных ELF и ядерных PE

  • Изолированная песочница в контейнерах — Запускает фаззинг внутри изолированных контейнеров Docker (--network=none) с ограничениями CPU/памяти и защитой хоста
  • Агентские повторные попытки — Обучается на состоянии выполнения stdout/stderr для обхода логики аутентификации и сложных рукопожатий
  • Автопатчинг и верификация — Генерирует безопасные патчи на C и математически доказывает исправление, атакуя пропатченный бинарный файл
  • Генерация PoC эксплойта — Синтезирует автономные Python-скрипты для регрессионного тестирования
  • Интерактивные HTML и структурированные JSON-отчёты — Дашборды для руководства и JSON-отчёты с полными аннотациями верификации типов и метаданными контейнеров
  • Мульти-LLM движок — Нативная поддержка Gemini, Anthropic Claude, OpenAI и локальных моделей Ollama
  • Безголовая декомпиляция бинарников — Интеграция с Ghidra для декомпиляции и фаззинга бинарных файлов без исходного кода
  • Аудит цепочки поставок и вредоносного ПО — Обнаруживает бэкдоры, утечки учётных данных, циклы шифрования (ransomware) и C2-импланты
  • Локальный конфиг .env — Хранит провайдера, модель и API-ключи в локальном файле конфигурации
  • CI/CD интеграция — Шаблон GitHub Actions workflow для автоматизированного фаззинга при каждом pull request

Поддерживаемые классы уязвимостей

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-сокеты

Фаззинг бинарников (Ghidra)

Mutagen может фаззить скомпилированные бинарники без исходного кода, интегрируясь с Ghidra:

# Decompile and fuzz a compiled binary
mutagen --target path/to/program.exe --binary

Ghidra запускается в безголовом режиме для декомпиляции бинарника в C-псевдокод. Mutagen затем передаёт это ИИ со специальной контекстной заметкой об именах переменных в декомпилированном коде, чтобы анализ оставался точным.


Поддерживаемые LLM

Провайдер Модель Настройка Стоимость
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 помог вам, поставьте звезду

```

Войдите, чтобы оставить комментарий