国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:张文,陈锦富,蔡赛华,张翅,刘一松
单位:张文,江苏大学 计算机科学与通信工程学院, 江苏 镇江 212013;江苏省工业网络安全技术重点实验室(江苏大学), 江苏 镇江 21201311,陈锦富,江苏大学 计算机科学与通信工程学院, 江苏 镇江 212013;江苏省工业网络安全技术重点实验室(江苏大学), 江苏 镇江 21201302,蔡赛华,江苏大学 计算机科学与通信工程学院, 江苏 镇江 212013;江苏省工业网络安全技术重点实验室(江苏大学), 江苏 镇江 21201303,张翅,江苏大学 计算机科学与通信工程学院, 江苏 镇江 212013;江苏省工业网络安全技术重点实验室(江苏大学), 江苏 镇江 21201304,刘一松,江苏大学 计算机科学与通信工程学院, 江苏 镇江 21201305
关键词:模糊测试;软件安全;聚类分析;种子调度;能量分配
基金:国家自然科学基金(62172194,62202206,U1836116);江苏省自然科学基金(BK20220515,BK20202001);中国博士后科学基金(2023T160275);江苏省研究生科研与实践创新计划(KYCX21_3375,SJCX23_2092);江苏省青蓝工程项目(2022JSDX001)
作为当前被广泛应用的自动化软件测试技术, 模糊测试的首要目标是尽可能多地探索被测程序的代码区域以达到更高的覆盖率, 从而检测出更多的漏洞或者错误. 现有的模糊测试方法大多是根据种子的历史突变数据来调度种子, 实现起来比较简单, 但忽略了种子所探索程序空间的分布情况, 导致测试工作可能会陷入只对程序的某单一区域进行探测, 造成测试资源的浪费. 提出一种基于聚类分析驱动种子调度的模糊测试方法Cluzz. 首先, Cluzz结合种子执行路径覆盖的分布来分析种子在特征空间上的区别, 使用聚类分析对种子在程序空间中的执行分布情况进行划分. 然后, 根据不同种子簇群的路径覆盖模式与聚类分析结果对种子进行优先级评估, 探索稀有代码区域并优先调度评估得分较高的种子. 其次, 通过种子评估得分为种子分配能量, 将突变得到的有趣输入保留并进行归类以更新种子簇群信息. Cluzz根据更新后的种子簇群重新评估种子, 以确保测试过程中种子的有效性, 从而在有限时间内探索更多的未知代码区域, 提高被测程序的覆盖率. 最后, 将Cluzz实现在3个当前主流的模糊器上, 并在8个流行的真实程序上进行大量测试工作. 结果表明: Cluzz检测独特崩溃的平均数量是普通模糊器的1.7倍, 在发现新边缘数量方面, 平均优于基准模糊器22.15%. 此外, 通过与现有种子调度方法进行对比, Cluzz的综合表现要优于其他基准模糊器.
来源:2024年第7期
《软件学报》期刊编辑部