作者对论文创新点的综述(不超过5项,并标注对应的论文章节)、取得的主要成果及有待改进之处的评述:
一、创新点
模糊测试是最有效的漏洞挖掘技术之一,覆盖引导模糊测试是其主要分支,最经典的覆盖引导模糊测试器AFL包括六个模块:预处理、种子选择、确定变异、随机变异、执行追踪和反馈指导,对以上任意一个模块进行合理的优化可以提高模糊测试器的速度、效率或针对性,本文结合发展现状对预处理、种子选择、确定变异和随机变异进行优化研究,旨在提升模糊测试器的漏洞挖掘能力,促进覆盖引导模糊测技术生态圈的发展。本文的主要创新点如下:
1.提出一种基于强化学习的随机变异调度策略(对应第三章)。针对现有随机变异调度策略无法为种子的不同变异位置选取最有效的变异算子的问题,设计位置自适应的变异调度策略,该策略通过一种双层多臂老虎机模型为变异位置和变异算子建立联系,并采用置信区间上界算法解决模糊测试场景中的多臂老虎机问题。实现位置自适应的模糊测试器PAMSSAFL,该模糊测试器能为每个变异位置选择出最有效的变异算子。实验结果表明位置自适应的变异调度策略在bug发现能力和路径覆盖能力方面优于已有的变异调度策略。
2.提出一种轻量级自适应敏感区域确定变异技术(对应第四章)。针对覆盖引导模糊测试的确定变异模块存在大量无效变异问题,提出一种自适应敏感区域变异算法,该算法基于种子的小部分区域影响着大部分程序行为的现象,将变异后执行新路径的字节标记为敏感字节,并基于敏感字节延展形成敏感区域,将后续变异限制在敏感区域内,从而减少无效变异,并根据执行结果自适应地调整敏感区域。为了更深入的探索敏感区域,提出基于敏感区域的种子选择和修剪策略。将自适应敏感区域变异算法以及新的种子选择和修剪策略集成到AFL和AFLFast上,实现了SMAFL和SMAFLFast,实验结果表明,集成了自适应敏感区域变异算法的模糊测试器在路径探索能力、代码覆盖率、模糊次数、探索深度和bug发现能力五个方面均有明显提升。
3.提出一种基于位运算的覆盖信息记录方案(对应第五章)。针对预处理模块中为目标程序插入的记录边命中次数的桩代码中存在哈希冲突的问题,首先系统地分类讨论造成哈希冲突的三种情况并定量分析各种情况发生的概率,然后在定量分析的基础上结合现有覆盖引导模糊测试器的特点设计基于位运算的覆盖信息记录方案。具体地,将目标程序分为小型程序和大型程序,对小型程序采用位运算消除哈希冲突,对大型程序采用再哈希法缓解哈希冲突。扩展AFL的插桩代码实现BitAFL,实验结果表明对于小型程序,基于位运算的覆盖信息记录方案能够完全消除哈希冲突,对于大型程序,在吞吐量轻微下降的同时大幅度减少哈希冲突。
4.实现了新的覆盖引导模糊测试器SmartCGF(对应第六章)。将基于强化学习的随机变异调度策略、轻量级自适应敏感区域确定变异技术和基于位运算的覆盖信息记录方案进行有机融合,实现了新的覆盖引导模糊测试器SmartCGF。实验结果表明在可接受的额外开销的前提下,SmartCGF的漏洞挖掘能力和覆盖能力提升显著。
二、取得的主要成果
1.基于强化学习的位置自适应变异调度策略,《电子与信息学报》,2024年4月,第二作者兼通讯作者(导师第一作者),已录用。
2.基于自适应敏感区域变异的覆盖引导模糊测试,《计算机应用》,2023年11月,第一作者,已录用。
3.BitAFL: Provide More Accurate Coverage Information for Coverage-guided Fuzzing,In Proceedings of the 3rd International Conference on Management Science and Software Engineering (ICMSSE 2023),EI会议,2023年7月,第一作者,已见刊,DOI: 10.2991/978-94-6463-262-0_54。
4.Analysis of the expressive power of DIFC model based on temporal logic,In Proceedings of the 7th International Conference on Signal and Image Processing(ICSIP2022),EI会议,2022年5月,第三作者,已检索,检索号: 20224112863905,DOI: 10.1109/ICSIP55141.2022.9886686。
三、进一步的工作
1.工作成果的有机结合。覆盖引导模糊测试器是一个完整的系统,包含多个模块,而且技术生态圈中的许多模糊测试器都对AFL的某一个模块进行优化,所以本文的研究工作与大多数已有的优化工作并不冲突。因此,考虑将本文的研究成果与其他的优秀研究成果进行结合,从整体上提升模糊测试器的漏洞挖掘能力,但模糊测试器中的各个模块是相互影响的,简单的拼凑并不能实现一加一等于二的效果,需要对各个模块有深入的理解并进行有机地结合。
2.多平台多语言的模糊测试。模糊测试技术通过大量运行目标程序并监控异常实现漏洞挖掘,AFL利用Linux平台特有的fork server技术快速运行目标程序,但在Windows和Android等平台上,无法像Linux一样快速运行目标程序,所以整体的测试速度缓慢。此外,现有的程序通常由多种编程语言编写而成,而现有模糊测试器难以处理多语言程序。因此,考虑结多种技术实现多平台多语言的模糊测试器,从而提高模糊测试技术的适用性。
|