GitHub Security Lab 基于自家 Taskflow Agent 框架推出 Fuzzing Taskflow(MIT 开源):输入一个 GitHub owner/repo,Agent 自动识别入口函数、分析构建、编写 Harness、运行 AFL++、读覆盖率迭代改进,并对每个去重崩溃生成带根因、可达性和补丁建议的漏洞报告。默认模型为 Claude Sonnet 5,官方提醒须在一次性环境中运行。
核心要点速览
- ✓一条命令启动:
./scripts/fuzzing/run_fuzzing.sh owner/repo,官方推荐直接在 Codespace 里跑 - ✓覆盖率迭代预算逐轮翻倍:30s → 60s → … → 960s,单目标约 32 分钟;连续两轮行覆盖增益 < 1% 即判定平台期停止
- ✓每个 Harness 双编译:
.afl(afl-clang-lto + ASan/UBSan)负责模糊测试,.cov(clang 覆盖率插桩)负责回放出真实行/分支覆盖 - ✓崩溃经 afl-tmin 最小化、ASan 回放、栈顶哈希去重,判为 vulnerability / library_hardening / harness_bug / OOM / timeout / assertion_failure / duplicate 七类之一
- ✓LLM 选择的构建命令直接在宿主机执行、无容器隔离,官方明确要求只在 Codespace 或一次性 VM 中以非特权用户运行
开发者 3 秒速决决策指标
把技术选型换算成你的开发预算
40 款主流编程套餐横向比价,支持输入/输出 Token 真实账单模拟
相关资源与官方项目出处
免代理直达深度技术解析与实战评估
核心背景与行业痛点
持续模糊测试能挖出真实漏洞,但即便接入 OSS-Fuzz 多年的项目仍会漏掉关键 Bug,原因几乎总是同一个:需要有人盯覆盖率、为没人触达的代码写新 Harness、再逐个分诊崩溃。GitHub Security Lab 研究员 Antonio Morales 在官方博客(9 月 24 日发布,GitHub 官方账号 10 月 11 日再次推广)中给出的答案是:把这条人工回路交给 LLM Agent。
架构亮点与底层机制
Fuzzing Taskflow 构建在 Taskflow Agent 框架之上,分三层:Shell 驱动串联各阶段;每个阶段一份 Taskflow YAML(即给 Agent 的提示);一组 MCP 工具负责执行(运行 AFL、编译 Harness、存储崩溃、读覆盖率)。核心原则是「Agent 负责决策,工具负责执行」,Agent 从不直接调用 AFL 或 clang,所有状态存于 SQLite(fuzz_context.db)。覆盖率回路中,Agent 读取未覆盖分支后可选择:构造新种子、修改 Harness 调用更多 API、自动扩充 AFL 字典中的魔数常量,或跳过冷门错误路径。结构感知方面内置 JSON/XML/正则/PNG/TLV 自定义变异器,未知格式则扫描目标源码提取字符串和 32 位常量动态生成字典。
权威 Benchmark 与实测跑分对比
官方博客未公布发现漏洞数量或与人工 Harness 的覆盖率对比数据,本文不做推测。已公开的硬参数:迭代预算 30s 起逐轮翻倍至 960s(单目标约 32 分钟),平台期阈值默认 1% 行覆盖;崩溃按七类判定输出。官方强调补丁建议标注「review required」,判定可能出错,应视为供人审阅的起点。
开发者实战落地与开箱指南
在仓库中开 Codespace,执行 ./scripts/fuzzing/run_fuzzing.sh DaveGamble/cJSON 先做冒烟测试;仪表盘自动在 8765 端口启动,可实时看覆盖率趋势和崩溃热力图。默认模型为 Claude Sonnet 5(官方称其通过全部内部测试),可在 model_config.yaml 中更换。注意:LLM 选定的构建命令直接在宿主机运行,务必使用一次性环境。
即刻查看该技术对应模型与主流工具的实测差异,或一键测算团队 API 调用与 $20/月套餐盈亏平衡点。
讨论与评论
0登录后即可参与深度讨论
与广大 AI 开发者、工程师交流评测心得与前沿洞察