GitHub Security Lab 发布 LLM 驱动的 Fuzzing Taskflow,自动完成 C/C++ 项目漏洞挖掘
📌 One-Sentence Summary
GitHub Security Lab 发布了 Fuzzing Taskflow,这是一个由 LLM 驱动的 C/C++ 项目自主模糊测试流水线,可自动完成测试桩创建、覆盖率反馈循环、语料库演进及崩溃分诊。
📝 Summary
本文介绍了由 GitHub Security Lab 为 C/C++ 项目开发的自主模糊测试流水线 Fuzzing Taskflow。该工具基于 seclab-taskflow-agent 框架,使用 LLM 智能体(默认采用 Claude Sonnet 5)进行决策,并利用 Model Context Protocol (MCP) 工具执行操作,完全通过 SQLite 数据库后端运行而无需内存数据传递。该流水线具备结构感知模糊测试机制,包括自定义变异器、基于源码的字典、动态覆盖率驱动字典以及语料库重组。它实现了模糊测试全生命周期的自动化:识别入口点、编写测试桩、以指数级增长的时间预算运行 AFL++、通过双二进制编译策略跟踪分支覆盖率、检测平台期、通过栈顶哈希对崩溃进行去重,并生成包含根因分析和建议补丁的漏洞报告。
💡 Main Points
LLM 智能体与 MCP 执行工具的职责清晰分离
LLM 智能体负责战略决策(测试什么、如何编写测试桩、针对哪些覆盖率缺口),而 MCP 工具执行底层操作(运行 AFL、编译、存储崩溃)。所有阶段间的状态均通过 SQLite 数据库传递。
具备平台期检测的自主覆盖率反馈循环
流水线迭代运行 AFL,通过在源码覆盖率二进制文件 (.cov) 上重放队列来评估分支覆盖率,并根据指数级增长的时间预算动态调整。当增量收益低于 1% 的阈值时,将停止优化。
四位一体的结构感知模糊测试机制
为了克服传统字节级变异在结构化格式上的限制,该流水线集成了特定格式的自定义变异器、源码级字面量/常量提取、动态扩展的覆盖率驱动字典以及语料库重组算子。
自动化的崩溃去重与分诊报告
崩溃经过最小化处理,并使用规范化帧的栈顶哈希进行去重,随后由 LLM 分析以生成 Markdown 报告,将实际漏洞与测试桩 Bug 区分开,并提供根因分析和统一 diff 补丁。
💬 Key Quotes
我一直在问自己一个自然而然的问题:这些手动繁琐的工作中,究竟有多少可以真正委交给 LLM 智能体?
我的核心架构设计原则是严格的关注点分离:LLM 智能体做决策,MCP 工具干活。
发现漏洞只是成功的一半。任何做过根因分析的人都知道,分诊通常是整个过程中最枯燥的部分。
📊 Article Meta
AI Screening: 89
Source: AIHOT — 精选
Author: noreply@aihot.news (GitHub Blog)
Category: 软件编程
Language: 英文
Read Time: 16 min
Word Count: 3941
Tags:
编程与工程 , AI 编程 , 安全 , AI Agent , 测试与质量
暂无评论,快来抢沙发~