Управляемый LLM конвейер фаззинга на базе GitHub Security Lab Taskflow Agent
Управляемый LLM конвейер фаззинга в стиле OSS-Fuzz для нативных проектов на C/C++. AFL++ для выполнения, clang+lcov для покрытия, LLM-агент для написания харнессов, решений на основе обратной связи по покрытию, триажа и отчётности.
Этот репозиторий содержит taskflow фаззинга для
GitHub Security Lab Taskflow Agent.
Он зависит от сопутствующего репозитория
seclab-taskflows
для нескольких общих строительных блоков
(taskflow fetch_source_code, тулбоксы local_file_viewer / gh_file_viewer
и конфигурация model_config по умолчанию) — они устанавливаются
автоматически как зависимость Python.
Вклад приветствуется! См. CONTRIBUTING.md для рекомендаций.
aptgh)pip install git+https://github.com/GitHubSecurityLab/seclab-taskflows-fuzzing
Это транзитивно подтягивает seclab-taskflow-agent и seclab-taskflows (родительский),
поэтому каждая точечная ссылка вида
seclab_taskflows.taskflows.audit.*,
seclab_taskflows.toolboxes.local_file_viewer,
seclab_taskflows.toolboxes.gh_file_viewer и
seclab_taskflows.configs.model_config разрешается из родительского
дистрибутива во время выполнения.
Этот taskflow представляет собой полностью автономный пайплайн фаззинга. Получив GitHub-репозиторий нативного проекта на C/C++, он:
.afl, инструментированный CMPLOG AFL++ бинарник .cmplog
и инструментированный покрытием clang бинарник .cov,Пайплайн в духе OSS-Fuzz: он использует многие из тех же техник (мутаторы и словари для каждого формата, структурно-осведомлённую склейку токенов, улучшения харнессов на основе покрытия, машиночитаемые отчёты, дедуплицированные краши со стековым хешированием), но он гораздо меньше и самодостаточен.
# Inside the codespace (or a host with python + git available):
./scripts/fuzzing/run_fuzzing.sh tukaani-project/xz
Это весь интерфейс. Скрипт автономен; при первом запуске он установит AFL++,
а затем будет управлять остальным рабочим процессом. Выходные файлы записываются
в ~/.local/share/seclab-taskflow-agent/seclab-taskflows/.
Панель управления автоматически запускается в фоновом режиме; в Codespace порт 8765
автоматически перенаправляется — откройте его в любом браузере, чтобы наблюдать за прогрессом в реальном времени.
Для быстрой проверки работоспособности используйте небольшую цель:
./scripts/fuzzing/run_fuzzing.sh DaveGamble/cJSON
Три слоя, сверху вниз:
┌────────────────────────────────────────────────────────────────────┐
│ scripts/fuzzing/run_fuzzing.sh │
│ shell driver; chains the taskflow stages with `set +e` │
└────────────────────┬───────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────────┐
│ src/seclab_taskflows/taskflows/fuzzing/*.yaml │
│ LLM agent prompts; one YAML per pipeline stage │
└────────────────────┬───────────────────────────────────────────────┘
│ (calls MCP tools)
▼
┌────────────────────────────────────────────────────────────────────┐
│ src/seclab_taskflows/mcp_servers/ │
│ ├ fuzz_context.py persistence (SQLite via SQLAlchemy) │
│ └ fuzz_runner.py subprocess wrappers (AFL, clang, lcov, ...) │
│ │
│ scripts/fuzzing/dashboard.py │
│ read-only HTML view of fuzz_context.db │
└────────────────────────────────────────────────────────────────────┘
Ключевые правила проектирования: