← 最新论文
💻 computer science

SeedSmith: LLM-Driven Seed Synthesis for Directed Fuzzing

SeedSmith 是一个智能体 LLM 流水线,它通过迭代解析间接调用和崩溃前置条件来合成针对性的初始种子,从而显著加速定向模糊测试,并实现跨多种输入格式发现此前无法触达的漏洞。

原作者: Junmin Zhu, Siyu Liu, Jie Hu, Fabio Gritti, Ati Priya Bajaj, Hulin Wang, Wenbo Guo, Tiffany Bao, Christopher Kruegel, Giovanni Vigna

发布于 2026-07-13
📖 1 分钟阅读☕ 轻松阅读

原作者: Junmin Zhu, Siyu Liu, Jie Hu, Fabio Gritti, Ati Priya Bajaj, Hulin Wang, Wenbo Guo, Tiffany Bao, Christopher Kruegel, Giovanni Vigna

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你正试图在一个巨大的、黑暗的城堡里寻找一个隐藏的宝箱。你有一个机器人(一个“模糊测试器/fuzzer”)可以在其中四处游荡、撞墙并尝试开门。通常情况下,这个机器人只是随机游走,希望能偶然撞见宝箱。但有时,你确切知道宝箱的位置(代码中的一个特定“汇点/sink”函数),并且你希望机器人能直奔那里。这就是所谓的定向模糊测试(Directed Fuzzing)

问题在于?机器人经常会迷路或被困住。为什么?因为它的地图是不完整的(它看不见锁着的门后隐藏的秘密通道),而且即使它找到了藏有宝箱的房间,它也不知道开启它所需的特殊暗号。它只是用棍子不停地戳那个宝箱,希望能把它弄坏,但这需要耗费极长的时间。

于是有了 SeedSmith,这是一个全新的系统,它在机器人开始移动之前,扮演了一个超级聪明的侦探角色。SeedSmith 不再让机器人盲目游走,而是先利用一种特殊的智能体(LLM/大语言模型)来进行侦察工作。

SeedSmith 解决的两个重大问题

1. 看不见的地图(间接调用/Indirect Calls)
想象一下,城堡里有一条走廊,门上没有名字,只写着一张纸条:“跟着卫兵指的方向走。”机器人的地图只显示直接的连接,所以它认为这条走廊是一个死胡同。在现实世界中,这发生在代码中的“间接调用”上。论文指出,如果不解决这个问题,机器人永远无法看到通往宝藏的路径。SeedSmith 的侦探 AI 会阅读代码,搞清楚哪个卫兵指向哪扇门,并在地图上补全缺失的路径。

2. 特殊的暗号(崩溃前置条件/Crash Preconditions)
有时机器人找到了正确的房间,但宝箱被复杂的谜题锁住了。也许你需要按照特定的顺序按下三个按钮,同时还要按住某个特定的键。机器人的随机乱戳(变异/mutation)就像是在钢琴上乱按键的猴子;它可能最终会按对音符,但可能需要花上一百万年。SeedSmith 的侦探会阅读指令,推导出精确的组合,并打造一把完美的钥匙。

SeedSmith 如何运作:侦探与构建者

SeedSmith 不仅仅是靠猜测,它分两个阶段工作,就像一个两人协作的团队:

  • 分析智能体(侦探/The Analysis Agent): 这部分系统从宝箱开始向后回溯。它使用一种特殊的工具来“搜索”代码,像人类安全专家一样阅读函数体和类型定义。它不仅仅看静态地图;它还会提问,例如:“谁调用了这个函数?”以及“这个变量需要什么值?”它会不断挖掘,直到找到触发崩溃所需的精确路径和精确条件。
  • 种子生成智能体(构建者/The Seed Generation Agent): 一旦侦探写好了报告,构建者就会接手。它编写一个 Python 脚本来创建完美的“种子”(初始输入)。如果宝藏需要一个复杂的图像文件或特定的网络数据包,构建者会使用库(类似于数字画笔)来完美地构造它,而不是仅仅投掷随机字节。

如果第一次尝试未能打开宝箱,系统会检查结果,从错误中学习,并尝试最多十次,直到成功为止。

SeedSmith 证明了什么(以及它没能做什么)

研究人员在两个大型挑战集上测试了它:Magma(23 个特定漏洞)和 ARVO(来自 26 个项目的 115 个真实世界漏洞)。

结果如下:

  • 速度: 使用 SeedSmith 的种子时,机器人发现崩溃的速度比使用默认初始种子快了 11.51 倍(使用流行的工具 AFL++ 时)以及 14.66 倍(使用 AFLGo 时)。
  • 新发现: 在 ARVO 挑战中,SeedSmith 帮助机器人发现了 16 个以前从未发现过的漏洞,即使在运行了 24 小时之后也是如此。这些漏洞存在于 10 个不同的项目中,且具有非常不同的文件格式。
  • 一击即中(One-Shot Wonders): 对于某些漏洞,SeedSmith 构建的种子非常完美,以至于机器人在进行任何变异之前就立即触发了崩溃。这在 Magma 数据集中发生了 5 次。

SeedSmith 不是:

  • 不是修复机器人本身的魔杖。论文明确指出,SeedSmith 并没有改变机器人(模糊测试器)内部的工作方式。它只是给了机器人一个更好的起点。
  • 不是所有模糊测试的替代品。论文指出,对于某些漏洞,机器人在获得种子后仍需要进行一些工作。
  • 并不声称能解决所有问题。论文承认,有时机器人仍然会超时(耗时过长),特别是当崩溃条件极其复杂时。

核心结论

可以将 SeedSmith 理解为 GPS 与高级锁匠的结合体。在你把机器人送入黑暗城堡之前,SeedSmith 会规划出精确的路线并打造完美的钥匙。论文表明,这种方法是经过衡量并得到证实的,它能显著加快寻找软件漏洞的速度,并帮助发现那些此前无法触及的漏洞。它将一场盲目的运气游戏变成了一场智慧的策略游戏,让通用的机器人也能像定向寻宝者一样高效。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →