GitHub Security Lab 开源 Fuzzing Taskflow让 LLM 智能体自己跑完 C/C 模糊测试原文GitHub Blog - AI-powered fuzzing with the GitHub Security Lab Taskflow Agenthttps://github.blog/security/application-security/ai-powered-fuzzing-with-the-github-security-lab-taskflow-agent模糊测试做安全研究的人都懂写 harness、跑 AFL、盯覆盖率、分诊崩溃每一环都枯燥且重复。GitHub Security Lab 的 Antonio Morales 最近开源了 Fuzzing Taskflow把这条流水线整个交给 LLM 智能体只要指向一个 GitHub 仓库它就能自动识别入口点、分析构建系统、编写 harness、运行 AFL、读取覆盖报告、改进 harness、分诊每一个崩溃并为每个唯一 bug 写出漏洞报告全程无需人盯着。一、三层架构决策与执行分离这个项目最值得 Agent 开发者看的不是模糊测试本身而是它的架构。整个系统分三层Shell driverrun_fuzzing.sh 脚本把各个 pipeline stage 串起来。Taskflow YAML每个 stage 对应一份 YAML本质上是告诉 LLM 智能体每一步该做什么的 prompt。MCP tools智能体实际调用的工具集比如运行 AFL、编译 harness、存储 crash、读取覆盖报告。官方强调的设计原则是一句话LLM agent owns the decisions, and the MCP tools own the execution。智能体决定 fuzz 什么、写什么 harness、追哪个覆盖缺口但它从不直接调用 AFL 或 clang只能调用工具暴露的原语。另一个容易被忽略的细节所有状态存在 SQLite 数据库 fuzz_context.db 中各 stage 之间通过数据库交互而不是靠内存传递。这意味着流水线可以断点续跑stage 之间彻底解耦。二、全流程拆解1. 双二进制构建每个 harness 会被编译两次各干各的活.afl 二进制用 afl-clang-lto 加 -fsanitizeaddress,undefined 编译负责实际跑 fuzzing.cov 二进制用 clang 加 -fprofile-instr-generate -fcoverage-mapping 编译负责事后重放 AFL 队列生成真实的源码行和分支覆盖报告。一个跑性能一个跑精度这个拆分思路在覆盖率敏感的场景里可以复用。2. 覆盖反馈循环这是整条管线的核心把工程师手动的跑一轮、看覆盖、改一改循环自动化了。每轮迭代中智能体对每个 harness 在时间预算内运行 AFL用 .cov 二进制重放队列拿真实覆盖报告读出未覆盖的分支列表然后自主选择行动造一个专门命中未覆盖分支的新种子修改 harness 源码让它多调用一个 API把守卫比较的 magic constants 自动补进 AFL 字典如果是冷错误路径或第三方 vendor 代码直接跳过。时间预算按 30s → 60s → 120s → 240s → 480s → 960s 逐轮翻倍每个目标累计约 32 分钟早期短轮次抓低垂果实后期长轮次突破硬守卫。停止条件是 plateau 检测——连续两轮迭代各自增益低于阈值默认 1% 绝对行覆盖就判定收益递减移步下一个目标。3. 结构感知模糊测试针对常见格式管线提供四种互补机制生成结构化输入预建的 AFL 字典和 LLVMFuzzerCustomMutator 变异器覆盖 JSON、XML、正则、PNG、长度前缀 TLV扫描目标源码提取字符串字面量和 32 位数值常量的源码级字典覆盖驱动的动态字典——每轮覆盖后检查 strncmp、memcmp、case 分支等守卫并追加新 token数值常量同时给出大小端两种表示以及把语料目录文件随机拼接子区域的 corpus-splice 算子。4. 语料库演进与崩溃分诊每个 harness 拥有稳定的语料目录跨迭代、跨 campaign 保留。每轮结束把 AFL 队列合并进语料并用 afl-cmin 去重限大小。fuzzing 结束后自动进入三阶段分诊先用 afl-tmin 最小化每个崩溃输入在 ASan 下重放捕获栈回溯按归一化栈顶帧哈希去重再对已知崩溃在新二进制上重放检测上游是否已修复最后智能体阅读 harness 源码与崩溃函数回溯到公开 API 调用链为每个崩溃写 markdown 报告。报告的 verdict 分为 vulnerability、library_hardening、harness_bug、OOM、timeout、assertion_failure、duplicate 几类内容包括 file:line 级别的根因分析、可达性论证、可利用性评估以及 unified diff 形式的修复建议和回归测试草案。三、怎么跑起来最简单的方式是打开官方仓库 seclab-taskflows-fuzzing 的 Codespace然后./scripts/fuzzing/run_fuzzing.sh tukaani-project/xz ./scripts/fuzzing/run_fuzzing.sh DaveGamble/cJSON参数就是 GitHub 的 owner/repo 名。启动 campaign 后8765 端口会自动开放一个实时仪表板展示每个 harness 的运行状态、带迷你走势图的覆盖率表格、崩溃热力图和迭代时间线Codespace 会自动转发端口。必须原样转述官方的安全警告这个 taskflow 直接在宿主机上运行 afl-fuzz、clang 和 LLM 选定的任意构建命令中间没有任何容器隔离。一个被 prompt injection 的智能体原则上可以做你的用户账号能做的一切。所以务必只在一次性环境Codespace 或临时虚拟机中、以非特权身份运行。四、模型选择与局限默认模型是 Claude Sonnet 5原因是它通过了全部内部测试部分前沿模型因为对输出施加安全护栏反而不适合这个 taskflow。想换模型可以改 src/seclab_taskflows_fuzzing/configs/model_config.yaml以仓库最新文档为准未验证最新版本。局限也要说清楚目前只支持 C/C 项目智能体的分析受限于模型对目标代码的理解确实会出错作者建议所有补丁标记 review requiredverdict 只是人工分析的起点而非结论fuzzing 仍然需要 human in the loop这套工具只是把最重复的劳动交了出去。五、给 Agent 开发者的四个可复用模式抛开模糊测试这个项目里有四个模式值得搬回你自己的 Agent 项目决策与执行分离。智能体只做决策工具只暴露原语出问题时边界清晰也更容易做权限收敛。状态外置到数据库。stage 之间靠 SQLite 而不是内存传状态长任务天然获得断点续跑能力。预算递增加 plateau 检测。时间预算逐轮翻倍、连续低增益就止损换目标这是 Agent 长循环里很通用的停止条件设计。输出带 unified diff。让智能体给出可 diff、可 review 的建议而不是一段散文人工介入成本会低一个数量级。
企业数字化 ERP 产品动态
相关推荐
从通路假说到定稿:药理人的 AI 搭子怎么选 ✨ 先把场景说具体:我是医学 / 基础医学 / 基础药理学与分子药理学方向的学生,最近要完成一项很典型的毕业任务——围绕“某候选药物是否通过 TLR4/NF-κB 信号通路抑制 LPS 诱导的巨噬细胞炎症反应”完成开题报告和论文综述,后续还要衔接 qPCR、… · 2026/9/27 22:54:14
技能不是更聪明的 AI,是被写下来的流程 开篇:同一天的两条消息2025 年 10 月 16 日,Anthropic 发布了一个新东西,叫"技能"(Skills)。它的定义简单到近乎可疑:技能就是一个文件夹,里面装着指令、脚本和资源,模型需… · 2026/9/27 22:54:14
python开发基于什么系统开发 开发工作可以基于各种操作系统来进行, 这些系统当然包括了Linux和Mac OS等等。它是一种跨平台的编程语言, 它的代码能够在多种不同的操作系统上面直接运行, 不过前提条件是这些计算机系统内部已经安装了解释器组件。正是由于这种跨级别的运行特性, 它被越来越多地选作许多开发人… · 2026/9/27 22:54:14
基于ROS与Gazebo的AGV工业运输系统仿真实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:30:07
硅碳相变:大模型API选型技术剖析,模型多为何项目更慢 硅碳相变:大模型API选型技术剖析,模型多为何项目更慢
如果你是一位后端工程师或AI应用开发者,大概率在某个深夜对着十几家AI API聚合平台的文档页反复切换过标签。每家都宣称自己接入了几百个模型,价格表长得像一份汇率牌价。真正… · 2026/9/27 23:30:07
Java面试被问Spring循环依赖,这样答加分 三级缓存不是重点,AOP代理才是二级缓存就能解决普通对象的循环依赖:A实例化后放入二级缓存,B创建时能从二级缓存拿到A的早期引用。那为什么还要第三级?因为如果A需要被AOP代理,早期引用必须是代理对象,而不… · 2026/9/27 23:29:54
ab173 JSON懒人工具:零配置、离线、高安全的格式化校验神器 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:29:54
Windows 10下CH340驱动安装与文件替换实战指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:29:54
wordpress做微商城设计对比评测:备案不卡壳的5条黄金法则 wordpress做微商城设计对比评测:备案不卡壳的5条黄金法则 很多老板一上来就问我:为什么我的wordpress做微商城,代码写得很漂亮,后台也配置好了,但就是没法正常访问?答案往往不在代码,而在 备案流程一头雾水 。… · 2026/9/27 23:29:54
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01