“ 随着 PyTorch、TensorFlow、JAX 等深度学习框架成为 AI 基础设施,其 API的稳定性与安全性正面临前所未有的挑战。然而,传统 Fuzzing技术在测试DL框架时逐渐暴露瓶颈:随机变异难以覆盖复杂API参数空间、手工规则难以构造“非直觉但合法”的极端输入、大量真实漏洞隐藏在 Edge Case(边界用法)中。
针对这些问题,研究者提出FuzzGPT,利用大语言模型(LLM)作为“边界用例生成器” 的新型Fuzzing方法,系统性挖掘深度学习 API 中潜藏的异常行为与崩溃漏洞。 ”
📄论文标题:FuzzGPT: Large Language Models are Edge-Case Generators Crafting Unusual Programs for Fuzzing Deep Learning Libraries
📅发表时间: IEEE/ACM International Conference on Software Engineering, 2024
🏫作者单位:伊利诺伊香槟分校
💡开源代码: https://github.com/ise-uiuc/FuzzGPT
01—方法介绍
FuzzGPT 的核心洞察在于:LLM 并不只是代码生成器,而是天然的“异常用法想象器”。整体框架由三个关键阶段组成:
① API 语义理解
引导 LLM 学习 DL 框架 API 的参数语义与使用约束。
② 边界程序生成
通过 Prompt 设计,驱动 LLM 生成不常见但合法的 API 组合与参数配置。
③ 执行与反馈
运行生成程序,监测崩溃、异常、数值错误等潜在漏洞。
图 1. FuzzGPT整体框架
图 2. 有错误的API注释的提示
小结:FuzzGPT 将“生成策略”从随机变异提升为语义驱动的异常探索。
02—关键机制
- 首次系统性验证 LLM 的 Edge-Case 生成能力。
- 从“随机变异”转向“语义异常探索”。
- 无需源码插桩即可发现深层 API Bug。
模块 | 实现方式 | 主要作用 |
|---|---|---|
LLM 引导生成 | 基于 Prompt 的程序合成 | 生成非直觉、非常规的 API 使用方式 |
Edge-Case 构造 | 极端参数组合、嵌套调用、异常形状 | 触发传统 Fuzzer 难以覆盖的路径 |
执行监测 | 运行时错误、崩溃、异常输出检测 | 识别潜在安全与稳定性缺陷 |
反馈驱动迭代 | 基于执行结果优化生成策略 | 持续放大漏洞触发概率 |
小结:LLM 在 FuzzGPT 中不负责“覆盖更多”,而是专注于“更刁钻”。
03—实验结果
实验在PyTorch(v1.12)和TensorFlow(v2.10)上的进行了相关工作比较。主要实验结果如下。
表1显示了不同学习范式的比较结果。实验分别在少样本、零样本和微调(分别记为FuzzGPT-FS、FuzzGPT-ZS和FuzzGPT-FT)设置下运行FuzzGPT,以评估它们在模糊测试中的各自有效性。
表1. 不同学习范式的比较
表2显示了不同相关工作的比较结果。将FuzzGPT-FS/-ZS/-FT与最先进的模糊测试工具TitanFuzz以及其他近期深度学习库模糊测试工具进行比较。所有技术均在其默认配置下应用。
表2. 不同相关工作的比较
Bug统计汇总见表3。总的来说,FuzzGPT检测到了76个漏洞,其中61个已确认,包括49个之前未知的漏洞(其中6个已修复)。
表3. 检测到的bug数量总结
小结:FuzzGPT完全自动化,具有泛化能力,展示了ChatGPT在没有任何历史信息的情况下生成边缘情况程序的潜力。实验结果表明,FuzzGPT的性能显著优于现有的DL库模糊测试工具,并且能够检测PyTorch和TensorFlow中的各种错误。
📌 总结
FuzzGPT 展示了一种全新的 Fuzzing 思路:不再只是跑得更快、变得更多,而是“想得更怪”。通过引入大语言模型,FuzzGPT 成功突破了传统 DL 框架测试在 Edge Case 覆盖上的瓶颈,为未来 AI 系统安全测试 提供了新的研究方向。
📣 欢迎留言讨论
你认为 LLM 会成为未来 Fuzzing 的“默认生成器”吗?
在安全测试中,语义驱动是否比覆盖率驱动更重要?
📌 点赞 + 收藏 + 分享,你的支持,是我们持续解析高水平软件安全论文的最大动力!