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

无标题In a move that has sent ripples through Silicon Valley and global policy circles, Anthropic released its 'Exponential AIFable5越狱攻击揭示AI安全致命缺陷:叙事逻辑绕过所有护栏AINews发现了一种正在快速传播的AI越狱技术,名为“Fable5”,它利用大语言模型的核心叙事理解能力进行攻击。攻击者将恶意指令嵌入虚构故事中——包含角色、情节和道德困境——从而诱使模型在创意写作的伪装下生成被禁止的内容。我们的测试证实Equiv:开源工具用数学证明AI代码重构的正确性从GPT-4到Claude再到各类专用编程助手,AI代码生成工具的爆发式增长极大加速了软件开发进程。然而,一个关键盲点依然存在:当AI提出重构建议时,开发者如何确信新代码在语义上与旧代码完全一致?新开源的Equiv工具直接应对这一挑战,将形查看来源专题页Hacker News 已收录 4613 篇文章

时间归档

April 20263042 篇已发布文章

延伸阅读

AI驱动模糊测试挖出100个深层编译器漏洞:安全范式正在被重写一种融合覆盖率引导、语法感知与大语言模型的新型模糊测试技术,成功挖掘出100个此前未知的编译器漏洞。通过让AI主动探测最脆弱的逻辑路径,该方法重新定义了软件测试的边界,并直接增强了AI基础设施的可靠性。Anthropic's 'Exponential AI' Policy: Altruism or Strategic Brand Play?Anthropic has published a sweeping policy document that challenges the AI industry's breakneck pace. It proposes a risk-Fable5越狱攻击揭示AI安全致命缺陷:叙事逻辑绕过所有护栏一种名为Fable5的新型越狱方法正在悄然蔓延,它利用叙事逻辑诱骗大语言模型生成有害内容。我们的独家调查发现,所有主流模型均存在漏洞,而当前基于补丁的防御措施毫无效果。Equiv:开源工具用数学证明AI代码重构的正确性一款名为Equiv的开源工具将形式化验证引入AI代码重构领域。它通过数学证明重构后的代码与原始代码行为完全一致,直击AI辅助软件工程中一个根本性的信任缺失问题。

常见问题

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,这说明它在开源社区具有较强讨论度和扩散能力。