← 最新论文
💻 computer science

SAFuzz: Semantic-Guided Adaptive Fuzzing for LLM-Generated Code

本文提出了 SAFuzz,一种利用大语言模型引导的自适应模糊测试框架,通过语义感知和动态资源分配,显著提升了针对 AI 生成代码中算法漏洞的检测精度与效率。

原作者: Ziyi Yang, Kalit Inani, Keshav Kabra, Vima Gupta, Anand Padmanabha Iyer

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

原作者: Ziyi Yang, Kalit Inani, Keshav Kabra, Vima Gupta, Anand Padmanabha Iyer

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

这篇论文介绍了一个名为 SAFUZZ 的新系统,它的核心任务是:帮我们在 AI 写的代码里,更聪明、更快速地找出“地雷”(漏洞)。

想象一下,现在的软件开发就像是在用 AI 助手(比如 Copilot)疯狂地写代码。AI 写得很快,但有时候会犯一些很隐蔽的错误,比如“死循环”(程序卡死)、“内存溢出”(内存爆掉)或者“逻辑错误”。传统的测试方法要么太慢,要么像“撒网捕鱼”一样,不管鱼大不大,都花同样的力气去试,效率很低。

SAFUZZ 就像是一个拥有“读心术”和“智能调度员”的超级质检员。它通过三个步骤来工作:

1. 换个问法,看看 AI 会不会“露馅” (提示词变异)

  • 比喻:想象你在面试一个候选人(AI)。如果你只问“请写个排序算法”,他可能表现得很完美。但如果你换个问法:“请用一种特别慢的方法写排序,或者故意用很小的数据类型”,他可能就会写出有漏洞的代码。
  • SAFUZZ 的做法:它不会只问一次。它会把同一个编程题目,用 12 种不同的“语气”和“侧重点”重新问一遍(比如强调“大数字”、强调“边界情况”)。这样就能诱导出 AI 在不同情境下可能犯的各种错误,把潜在的“地雷”都挖出来。

2. 定制“捕鼠夹”,而不是乱撒网 (智能生成测试工具)

  • 比喻:传统的测试就像在森林里随便扔石头,看能不能砸中老鼠。如果老鼠(漏洞)很狡猾,石头就砸不中。SAFUZZ 则是先研究老鼠的习性(题目的具体要求),然后专门制作一个定制的捕鼠夹
  • SAFUZZ 的做法
    • 它会分析题目要求(比如:数字不能超过 100 万,不能死循环)。
    • 然后,它利用 AI 生成专门的“测试脚本”(Harness)。这个脚本不仅会乱输入数据,还会专门盯着那些容易出错的地方(比如:专门测试会不会数字太大导致溢出,或者会不会因为递归太深导致内存爆炸)。
    • 如果生成的脚本有语法错误,它还会像“修理工”一样自动修复,直到完美运行。

3. 聪明地分配时间,好钢用在刀刃上 (自适应资源分配)

  • 比喻:这是 SAFUZZ 最厉害的地方。想象你有 100 块钱的“测试时间预算”。
    • 旧方法(GreenFuzz):不管代码看起来多安全,给每个代码都发 10 块钱去测试。结果,很多安全的代码被浪费了时间,而真正危险的代码时间不够,没测出来。
    • SAFUZZ 方法:它先派一个“侦探”(AI 预测模型)快速扫一眼代码。
      • 如果侦探觉得:“这代码看着很安全,没问题”,那就直接跳过,不花一分钱。
      • 如果侦探觉得:“这代码有点危险,可能是个定时炸弹”,那就砸重金,给它分配更多的时间去“折磨”它,直到把它测穿为止。
      • 如果测试了一段时间,发现“地雷”已经被挖得差不多了(覆盖率不再增加),它就立刻停止,把省下的时间留给下一个可疑目标。

它的成果怎么样?

  • 更准:它能更精准地分辨出哪些代码是安全的,哪些是有问题的(准确率从 77.9% 提升到了 85.7%)。
  • 更快:在发现同样数量漏洞的情况下,它比之前的最先进方法(GreenFuzz)快了近 1.7 倍,省下了大量时间和算力。
  • 更全面:如果把它和传统的“单元测试”(检查功能对不对)结合起来,发现漏洞的能力能从 67.3% 提升到 79.5%

总结

简单来说,SAFUZZ 就是给 AI 生成的代码做体检时,不再“一刀切”地乱测,而是先通过“读心”预测风险,再“量身定制”测试方案,最后“看人下菜碟”分配时间。它让测试过程变得像一位经验丰富的老侦探,既快又准,确保 AI 写出来的代码在真正上线前,把那些隐蔽的“定时炸弹”都排掉。

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

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

试用 Digest →