山石说AI|突破模糊测试极限:大模型驱动的软件漏洞深度挖掘

admin 2025年1月2日15:22:08评论9 views字数 3252阅读10分50秒阅读模式

山石说AI|突破模糊测试极限:大模型驱动的软件漏洞深度挖掘

山石说AI|突破模糊测试极限:大模型驱动的软件漏洞深度挖掘

【山石说AI】第15篇

大模型在网络安全中的最新应用进展(四)

山石说AI|突破模糊测试极限:大模型驱动的软件漏洞深度挖掘

软件漏洞的发现向来是一场与时间的赛跑,而大模型的引入为模糊测试注入了全新的智慧动力。跳脱传统随机变异的局限,大模型精准的语言和逻辑推理能力正重新定义模糊测试的效率与深度,助力安全团队快速定位潜在威胁,为软件安全提供更强的护盾。

传统的模糊测试技术在揭示软件漏洞方面虽有效,但其固有的局限性可能会影响测试的效率和效果。一个显著缺点是传统模糊测试器主要以随机或半随机的方式运行,这导致测试过程可能耗时且效果不佳,因为它们无法探索所有可能的执行路径。此外,用于变异的种子通常由人类手工构造,耗时较长。尽管多年来已对此类问题进行了研究,并提出了许多缓解方法,但大模型的出现为模糊测试领域带来了全新的思维方式。

大模型模糊测试相较于传统方法的优势有哪些?

山石说AI|突破模糊测试极限:大模型驱动的软件漏洞深度挖掘

Ying Z等人 [1]评估了ChatGPT在直接生成测试用例(无微调)方面的表现,并将其与两种传统测试工具(SIEGE和TRANSFER)进行了比较。他们的实验表明,当提供了漏洞的详细描述、可能的攻击方式以及代码上下文时,大模型的表现优于传统方法。以下是大模型相较传统工具的优势描述。一个重要因素在于大模型的出现使得模糊测试从随机变异转向引导式变异。Jie H等人 [2]向传统灰盒模糊测试添加了一个基于GPT的种子变异器,从种子池中选择种子并请求ChatGPT生成的变体以生成更高质量的输入。

另一个优势是大模型具备良好的跨编程语言理解能力,因此能够在多个编程语言中执行测试任务。Chunqiu S X等人 [3]充分利用了大模型对不同编程语言的理解。大多数传统方法只能模糊测试特定的编程语言,而基于大模型的模糊测试可以涵盖不同的语言。他们使用名为Fuzz-Loop的方法测试了6种编程语言(C、C++、Go、SMT2、Java和Python)的代码,该方法能自动变异测试用例。大多数传统模糊测试方法难以覆盖所有代码,而掌握了代码逻辑的大模型可以针对低覆盖率代码生成更具针对性的测试用例。例如,Caroline L等人 [4]在SBST(基于搜索的软件测试,一种传统的模糊测试方法)达到覆盖率瓶颈时,使用Codex生成针对低覆盖率函数的测试用例。具体来说,Codex生成的原始字符序列被反序列化为SBST的内部测试用例表示,以利用SBST的变异操作和适应性函数。

根据测试对象的不同,在使用大模型时策略可能需要适当调整。

山石说AI|突破模糊测试极限:大模型驱动的软件漏洞深度挖掘

对于一般API的测试,Cen Z等人 [5]分析方法进行了比较,发现大模型可以在较少的人工干预下自动生成大量有效的模糊测试驱动程序。该研究引入了查询策略、迭代改进和使用示例来提升大模型的表现。尽管这主要涉及API测试,但对于深度学习库的测试策略则需要进行调整。调用深度学习库的程序通常对张量维度有严格要求,否则模糊测试器会执行大量无意义的测试。

Yinlin D等人 [6]提出了TitanFuzz,一种用于深度学习库的测试用例生成工具。他们的训练语料库包含大量调用深度学习库API的代码片段,因此可以隐式学习语言的语法/语义和复杂的深度学习API约束,以高效生成深度学习程序。另一项研究FuzzGPT(同样由Yinlin D等人进行)也关注深度学习库的模糊测试,与前一项研究不同,FuzzGPT侧重于利用历史触发错误的代码片段来指导大模型生成测试用例。

除了上述研究外,我们还收集了一些针对其他测试对象的文献。针对协议的测试,Ruijie M等人 [7]讨论了如何在缺少机器可读的协议规范情况下查找协议实现中的安全漏洞。他们通过大量人类可读的协议文档对大模型进行训练,并要求大模型对协议交互消息进行变异,以实现协议模糊测试(如HTTP)。针对BusyBox的测试,Asmita等人 [8]专门针对在基于Linux的设备上广泛使用的BusyBox,提出了两种方法:利用大模型生成目标特定的初始种子以进行模糊测试,这显著提高了识别崩溃和潜在漏洞的效率;以及“崩溃重用”,利用之前获得的崩溃数据来优化新目标的测试流程。

向上滑动,查看所有参考文献

1.Ying Zhang, Wenjia Song, Zhengjie Ji, Danfeng, Yao, and Na Meng. How well does llm generate security tests? arXiv preprint arXiv:2310.00710, 2023.

2.Jie Hu, Qian Zhang, and Heng Yin. Augmenting greybox fuzzing with generative ai. arXiv preprint arXiv:2306.06782, 2023.

3.Chunqiu Steven Xia, Matteo Paltenghi, Jia Le Tian, Michael Pradel, and Lingming Zhang. Fuzz4all: Universal fuzzing with large language models. arXiv preprint arXiv:2308.04748, 2024.

4.Caroline Lemieux, Jeevana Priya Inala, Shuvendu K. Lahiri, and Siddhartha Sen. Codamosa: Escaping coverage plateaus in test generation ·with pre-trained large language models. In 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE), pages 919–931, 2023.

5.Cen Zhang, Mingqiang Bai, Yaowen Zheng, Yeting Li, Xiaofei Xie, Yuekang Li, Wei Ma, Limin Sun, and Yang Liu. Understanding large language model based fuzz driver generation. arXiv preprint arXiv:2307.12469, 2023.

6.Yinlin Deng, Chunqiu Steven Xia, Haoran Peng, Chenyuan Yang, and Lingming Zhang. Large language models are zero-shot fuzzers: Fuzzing deep-learning libraries via large language models. In Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2023, page 423–435, New York, NY, USA, 2023. Association for Computing Machinery.

7.Ruijie Meng, Martin Mirchev, Marcel Böhme, and Abhik Roychoudhury. Large language model guided protocol fuzzing. In Proceedings of the 31st Annual Network and Distributed System Security Symposium (NDSS), 2024.

8.Asmita, Yaroslav Oliinyk, Michael Scott, Ryan Tsang, Chongzhou Fang, and Houman Homayoun. Fuzzing busybox: Leveraging llm and crash reuse for embedded bug unearthing. arXiv preprint arXiv:2403.03897, 2024.

山石说AI|突破模糊测试极限:大模型驱动的软件漏洞深度挖掘

山石说AI|突破模糊测试极限:大模型驱动的软件漏洞深度挖掘

“码”上阅读

【山石说AI】全系列文章 

山石说AI|突破模糊测试极限:大模型驱动的软件漏洞深度挖掘

原文始发于微信公众号(山石网科新视界):山石说AI|突破模糊测试极限:大模型驱动的软件漏洞深度挖掘

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月2日15:22:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   山石说AI|突破模糊测试极限:大模型驱动的软件漏洞深度挖掘https://cn-sec.com/archives/3584483.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息