GitHub Security Lab 推出基于 AI 的自动化模糊测试任务流

2026/09/25 02:26阅读量 3

GitHub Security Lab 发布了基于 LLM 驱动的 Fuzzing Taskflow,旨在将模糊测试中的重复性人工工作自动化。该工具能自动识别入口点、编写 Harness、运行 AFL++ 并处理崩溃报告,显著降低 C/C++ 项目安全审计的人力成本。目前默认使用 Claude Sonnet 5 模型,建议仅在隔离环境中运行以确保安全。

事件概述

GitHub Security Lab 推出了名为 Fuzzing Taskflow 的自主模糊测试管道,该管道基于 GitHub Security Lab Taskflow Agent 框架构建。这一创新旨在解决持续模糊测试中仍需大量人工介入的问题,如覆盖率监控、新 Harness 编写及崩溃分类等。通过引入大语言模型(LLM)代理,该工具实现了从代码分析到漏洞报告生成的全流程自动化。

核心功能与工作流程

Fuzzing Taskflow 专为 C/C++ 项目设计,用户只需提供 GitHub 仓库地址,系统即可自动执行以下操作:

  1. 环境准备与分析:自动安装必要软件(如 AFL)、克隆仓库,并利用 LLM 识别代码中最相关的函数作为入口点。
  2. Harness 生成与优化:为选定函数创建模糊测试目标(fuzz targets),编写初始 Harness,并根据覆盖率报告自动改进 Harness 质量。
  3. 执行与监控:运行 AFL++ 进行模糊测试,实时读取覆盖率数据。
  4. 结果处理:对产生的崩溃进行分类(triage),并为每个唯一 bug 自动生成漏洞报告。

整个流程无需人工“ babysitting ”(监护),实现了端到端的自主运行。

技术架构

该任务流由三层结构组成:

  • Shell 驱动层:run_fuzzing.sh 脚本负责串联各个管道阶段。
  • Taskflow YAML 配置层:每个阶段对应一个 YAML 文件,实质上是指导 LLM 代理执行特定任务的提示词(Prompts)。
  • MCP 工具层:代理调用的具体执行工具,包括运行 AFL、编译 Harness、存储崩溃样本和读取覆盖率报告等。

使用指南与安全警告

快速启动:
用户可以通过 GitHub Codespace 快速体验该工具。访问 GitHubSecurityLab/seclab-taskflows-fuzzing 并运行以下命令:

bash
./scripts/fuzzing/run_fuzzing.sh <OWNER/REPO>

示例:

./scripts/fuzzing/run_fuzzing.sh tukaani-project/xz

对于快速烟雾测试,建议使用小型仓库,如 DaveGamble/cJSON。

重要安全提示:
该任务流直接在宿主机上运行 afl-fuzz、clang 以及由 LLM 选择的任意构建命令,未使用容器隔离。这意味着如果遭遇提示注入攻击,代理可能执行有害操作。因此,强烈建议仅在可丢弃的环境(如 Codespace 或临时虚拟机)中运行,且不要使用 elevated privileges(高权限)。

模型选择:
默认情况下,系统使用 Claude Sonnet 5,因其通过了内部所有安全测试且未触发输出限制。用户可通过修改 src/seclab_taskflows_fuzzing/configs/model_config.yaml 文件来切换其他模型。

准备好启动您的定制项目了吗?

现在咨询,即可获得免费的业务梳理与技术架构建议方案。