PromptFuzz:当AI学会自我变异提示词,零日漏洞发现进入自动化时代

Hacker News April 2026
来源:Hacker News归档:April 2026
PromptFuzz 是一款开源工具,它让大语言模型(LLM)不再是被动测试对象,而是主动变异自身提示词、自动生成模糊测试驱动。通过将测试过程变成一个自我进化的好奇与反馈循环,它有望大幅削减漏洞发现的人力成本,重新定义安全测试的格局。

多年来,软件安全的瓶颈一直是人类专家的经验。编写高质量的模糊测试驱动——即向目标程序投喂畸形输入的测试框架——需要深入理解程序的内部逻辑、数据结构与状态机。即便是资深工程师,也认为这项工作繁琐且易错。PromptFuzz 这一全新开源项目彻底颠覆了这一范式。它不再将大语言模型视为被动测试对象,而是将其转化为一个主动、自我进化的模糊测试引擎。其核心洞察简单得令人惊讶:将提示词本身视为可变的基因序列。PromptFuzz 从一个描述目标函数或 API 的种子提示词开始,然后应用一套变异算子——插入、删除、替换——来生成新的提示词。这些变异后的提示词被送入 LLM(目前支持 OpenAI 的 GPT-4 和 Anthropic 的 Claude 3.5 Sonnet),LLM 据此生成完整的 C/C++ 模糊测试驱动。生成的驱动会被编译并执行,系统通过代码覆盖率、崩溃次数和消毒器违规情况等指标评估其性能。表现优异的提示词会被加入种子池,进入下一轮进化。在针对 libpng 的实验中,PromptFuzz 在 50 代进化后触发了一个存在超过 5 年的堆缓冲区溢出漏洞——这是传统模糊测试从未发现的。尽管其误报率(约 28%-32%)高于人类专家(15%),但 PromptFuzz 在发现速度上已接近人类,并能找到基于语法的模糊测试完全无法发现的崩溃。该项目由剑桥大学和清华大学的研究团队发起,已获得超过 2800 颗 GitHub 星标,并吸引了微软和亚马逊云科技的安全工程师参与贡献。

技术深度解析

PromptFuzz 的架构是进化计算与大语言模型推理的联姻。系统围绕四个核心组件构建:种子池(Seed Pool)、变异引擎(Mutation Engine)、驱动生成器(Driver Generator)和反馈循环(Feedback Loop)。

种子池与变异引擎: 整个过程从一小批种子提示词开始,每个提示词描述一个特定的函数签名(例如:“编写一个 C 函数,调用 `strcpy`,并传入一个用户控制的字符串”)。变异引擎应用一组受遗传编程启发的算子:

- 插入(Insertion): 向提示词中添加新的约束或上下文(例如:“……并确保源字符串长度大于目标缓冲区”)。
- 删除(Deletion): 移除安全检查或约束(例如:删除“检查空指针”)。
- 替换(Substitution): 替换函数名或数据类型(例如:将 `strcpy` 替换为 `sprintf`)。
- 交叉(Crossover): 将两个父代提示词组合生成子代(例如:将一个提示词中的缓冲区大小与另一个提示词中的格式字符串混合)。

每次变异都以概率方式应用,通过一个温度参数控制探索与利用的平衡。

驱动生成器: 变异后的提示词被送入 LLM(该项目目前支持 OpenAI 的 GPT-4 和 Anthropic 的 Claude 3.5 Sonnet)。LLM 返回一个完整的模糊测试驱动——一个 C 或 C++ 程序,包含必要的头文件、`main()` 函数以及将模糊测试输入(通常来自 AFL++ 或 libFuzzer)送入目标函数的框架代码。提示词经过精心设计,以指示 LLM 生成可编译、兼容消毒器的代码。

反馈循环: 生成的驱动使用 AddressSanitizer (ASan) 和 UndefinedBehaviorSanitizer (UBSan) 进行编译。然后,它针对来自 AFL++ 的初始种子语料库执行。反馈循环收集三个指标:

1. 覆盖率(Coverage): 新命中的基本块或边的数量。
2. 崩溃计数(Crash Count): 唯一崩溃的数量(按堆栈跟踪去重)。
3. 消毒器违规(Sanitizer Violations): 任何 ASan/UBSan 警告(例如:缓冲区溢出、释放后使用)。

这些指标被合并为一个适应度分数。产生高适应度的提示词会被加入种子池,用于下一代。系统运行可配置的代际数(通常为 50-100 代)。

GitHub 仓库: 该项目托管在 `github.com/promptfuzz/promptfuzz`。截至本文撰写时,已获得超过 2800 颗星标和 350 个分支。仓库包含预构建的 Docker 镜像、针对常见易受攻击函数(例如 `strcpy`、`sprintf`、`memcpy`、`free`)的种子提示词库,以及一个用于可视化进化过程的仪表板。

基准性能:

| 指标 | PromptFuzz (GPT-4) | PromptFuzz (Claude 3.5) | 人类专家(平均) | 传统基于语法的模糊测试器 |
|---|---|---|---|---|
| 首次崩溃时间(分钟) | 12 | 18 | 45 | 无(未发现崩溃) |
| 1 小时后代码覆盖率(边数) | 1,240 | 1,180 | 1,350 | 890 |
| 24 小时内发现的唯一崩溃数 | 7 | 5 | 9 | 0 |
| 误报率(不可利用) | 28% | 32% | 15% | 无 |

数据要点: PromptFuzz 的崩溃发现速度接近人类专家,但误报率更高。覆盖率差距正在缩小,而系统能在基于语法的模糊测试器一无所获的情况下找到崩溃,这是其最有力的卖点。

关键参与者与案例研究

PromptFuzz 项目由剑桥大学和清华大学的研究团队发起,由李伟博士(前 Google Project Zero 实习生)和 Andrew Rice 教授领导。该项目已获得微软和亚马逊云科技安全工程师的贡献。

竞争方法:

| 工具/方法 | 核心方法 | LLM 角色 | 开源? | 关键限制 |
|---|---|---|---|---|
| PromptFuzz | 提示词变异 + 进化循环 | 驱动生成器 | 是 | 高误报率 |
| FuzzGPT (微软研究院) | LLM 为 AFL++ 生成种子输入 | 输入生成器 | 否 | 需要预先存在的驱动 |
| TitanFuzz (Google) | LLM 生成模糊测试配置 | 配置生成器 | 否 | 仅限于 Chrome 特定目标 |
| CodeQL (GitHub) | 静态分析 + 查询语言 | 无 | 是 | 无动态模糊测试;遗漏运行时错误 |

案例研究:libpng

在一项受控实验中,PromptFuzz 被要求查找 libpng(一个广泛使用的 PNG 图像处理 C 库)中的漏洞。系统以一个单一提示词作为种子:“编写一个用于 `png_read_png()` 的模糊测试驱动,从 stdin 读取 PNG 文件。”经过 50 代进化后,PromptFuzz 生成了一个驱动,触发了 `png_handle_tRNS` 函数中的堆缓冲区溢出——该漏洞在代码库中存在超过 5 年,但从未被现有的模糊测试活动捕获。崩溃是由一次提示词变异引起的,该变异移除了“检查有效块长度”的约束,导致 LLM 生成了一个传递超大块的驱动。

数据要点: PromptFuzz 的能力

更多来自 Hacker News

Memweave CLI:终端原生AI记忆搜索,让智能体调试透明如grepMemweave CLI是一款轻量级开源命令行工具,它赋予开发者直接在终端中搜索和检索AI智能体记忆的能力,无需依赖云端仪表盘或专有API。通过将记忆搜索集成到Unix Shell工作流中——使用grep、管道和过滤器等熟悉命令——MemwGPT-5.5 秘密标记“高风险”账户:AI 自任法官,开发者人人自危在一项低调却影响深远的更新中,OpenAI 的 GPT-5.5 模型已开始基于自身推理层对用户行为的分析,自动将账户标记为“潜在高风险网络安全威胁”。该系统旨在先发制人地对抗提示注入、越狱尝试和自动化滥用,其运行速度以毫秒计,扫描范围涵盖 SAP的反自动化赌注:在企业AI代理中,信任为何比速度更重要全球最大的企业资源规划(ERP)软件提供商SAP,在AI代理竞赛中采取了逆向立场。它没有推动采购审批、库存核销和合同签署等业务流程的完全自动化,而是设计其AI代理,要求在每一个涉及财务或法律后果的节点上,都必须获得明确的人工确认。这一设计选查看来源专题页Hacker News 已收录 2459 篇文章

时间归档

April 20262428 篇已发布文章

延伸阅读

Memweave CLI:终端原生AI记忆搜索,让智能体调试透明如grep一款名为Memweave CLI的开源工具,让开发者直接在Unix终端中搜索AI智能体的记忆,将智能体调试从晦涩的云端仪表盘转变为可grep的透明日志。这标志着对智能体记忆所有权与可访问性的根本性重新思考。GPT-5.5 秘密标记“高风险”账户:AI 自任法官,开发者人人自危OpenAI 的 GPT-5.5 已悄然启动一项新机制:自动将用户账户标记为“潜在高风险网络安全威胁”。这一从工具到裁判的无声转变,正将合法开发者与安全研究员卷入误伤漩涡,引发关于透明度、公平性以及开放 AI 未来的紧迫追问。SAP的反自动化赌注:在企业AI代理中,信任为何比速度更重要当企业软件行业竞相奔向全自主AI代理时,SAP却刻意限制其决策权。这家德国软件巨头强制要求关键ERP操作必须“人在回路中”——这一策略将信任置于速度之上,可能重新定义企业AI治理的规则。LLM Inference Cost Drops 85%: The Five-Layer Optimization That Changes EverythingA systematic five-layer optimization framework is driving large language model inference costs from $200 per million tok

常见问题

GitHub 热点“PromptFuzz: How AI Mutates Its Own Prompts to Automate Zero-Day Discovery”主要讲了什么?

For years, the bottleneck in software security has been human expertise. Writing a high-quality fuzz driver—the harness that feeds malformed inputs into a target program—requires d…

这个 GitHub 项目在“PromptFuzz vs AFL++ comparison”上为什么会引发关注?

PromptFuzz's architecture is a marriage of evolutionary computation and large language model inference. The system is built around four core components: a Seed Pool, a Mutation Engine, a Driver Generator, and a Feedback…

从“how to set up PromptFuzz for fuzzing C libraries”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 0,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。