灰盒模糊测试通过最大化代码覆盖率来揭示软件缺陷,是当前最有效的软件测试技术之一。传统灰盒模糊测试技术往往忽略了函数重要性的不均衡现象,导致无法准确判定执行代码区域的重要程度。这使得在能量调度过程中,重要种子和一般种子可能被分配相似的测试资源,严重制约了模糊测试的有效性。
iSE实验室博士生钱瑞祥聚焦被测函数的重要程度,引入函数重要度指标( FS )对待测函数的重要性进行量化,在灰盒模糊测试中区分重要种子和一般种子并合理开展能量调度,从而提升灰盒模糊测试的有效性。提出了一种高效灰盒模糊测试技术 FunFuzz,能够根据种子实际取得的重要度得分与线性模型预测得到的重要度得分的比率对种子能量进行调整,从而为过高( 或过低 )估计显著性分数的种子分配更多( 或更少 )能量。FunFuzz 在 15 个真实世界程序上进行了超过 40,800 个 CPU 小时的大规模实验。实验结果表明,FunFuzz 不仅在代码覆盖方面超过了其他七个前沿的灰盒模糊测试工具,还成功发现了 114 个真实程序崩溃和 25 个 CVE 漏洞,展现了其卓越的有效性和潜在的应用价值。
本研究深入探索了灰盒模糊测试中的函数重要性问题,围绕函数重要度设计并实现了首个基于函数重要度的高效灰盒模糊测试技术FunFuzz,能够在扩大代码覆盖的同时发现更多的缺陷。相关成果《 FunFuzz: Greybox Fuzzing with Function Significance 》软件工程领域顶级国际期刊 ACM Transactions on Software Engineering and Methodology( TOSEM, CCF-A类期刊 )全文录用,南京大学为第一单位。
钱瑞祥同学由陈振宇教授和房春荣副教授共同指导,研究方向为程序分析驱动的高效模糊测试技术。钱瑞祥同学的研究成果已经先后先后发表在 ISSTA、Internetware、FUZZING、TOSEM 等权威国际学术期刊和会议,将在博士生后期集中模糊测试的大规模工业应用,支撑我国软件高质量发展。