iSE实验室博士生钱瑞祥在灰盒模糊测试优化方面取得新进展

发布日期:2024-03-15 浏览次数:


灰盒模糊测试是一种强大的软件测试技术。给定一组种子输入,灰盒模糊测试以代码覆盖率为反馈驱动测试过程,持续生成测试输入反复执行被测程序。种子排序是其中一个关键步骤,能够帮助灰盒模糊算法选择高质量的种子进行输入生成,从而优化测试过程。然而,当前主流灰盒模糊器往往忽略了种子排序的重要性,直接根据种子的入队顺序或采用随机顺序挑选种子,限制了代码覆盖和缺陷检测能力。


为了提升灰盒模糊测试的效率,iSE 实验室博士生钱瑞祥从自适应随机测试基础假设出发,从空间分布的角度分析了种子输入对灰盒模糊测试的引导作用,提出了以一种基于距离的灰盒模糊测试种子排序方法 DiPri。该方法以覆盖距离为依据对评估种子优先级,能够引导灰盒模糊测试优先选择远离其他种子的离群种子,从而提高未探索代码区域被执行的概率,达到优化灰盒模糊测试的目的。为了评估方法,本研究在 AFL++ 和 Zest 两款宿主灰盒模糊器上对 DiPri 进行了原型实现,利用来自 FuzzBench、Magma 等4个典型基准集的 29 个真实 C/C++ 和 Java 程序开展了超过 50,000 个 CPU 小时的大规模实验。实验结果表明,DiPri 不仅能够有效提升宿主灰盒模糊器在覆盖代码和揭露漏洞方面的能力,还能够适配 C/C++ 和 Java 两种不同的语言环境,具有很强的通用性。



该研究深入探索了灰盒模糊测试的种子排序问题,提出并设计实现了第一个基于距离灰盒模糊测试种子排序方法,在能够有效优化灰盒模糊测试的同时兼具通用性。该工作相关成果《 DiPri: Distance-based Seed Prioritization for Greybox Fuzzing 》已被软件工程领域顶级国际期刊 ACM Transactions on Software Engineering and Methodology( TOSEM, CCF-A类期刊 )全文录用,南京大学为唯一单位。


钱瑞祥同学由陈振宇教授和房春荣助理研究员共同指导,研究方向为程序分析驱动的高效模糊测试技术。钱瑞祥同学的研究成果已经先后先后发表在 ISSTA、Internetware、FUZZING、TOSEM 等权威国际学术期刊和会议,将在博士生后期集中大规模工业应用,支撑我国软件高质量发展。