1.国内外研究现状部分,未能结合本文研究内容对现有工作进行梳理:
答:第一章中的1.2小节研究现状是为了引出1.3小节的研究内容,对所研究的问题和研究现状进行一个整体上的介绍。由于AFL是一个复杂的系统,研究的问题以及造成问题的具体原因比较难介绍清楚,所以放在第二章进行更细致的介绍以及,具体地第2.1节介绍覆盖引导模糊测试的具体流程以及运行逻辑之后,再介绍具体的问题以及成因以及相关研究工作。
2.论文4.4小节,文中提到“将自适应敏感区城变异算法集成到AFL,和AFLFast,扩展实现了SMAFL与SMAFLFast”,而仅对 SMAFL,的工作流程进行描述,要补允对 SMALFast 工作流程的描述。
答:我们在4.4小节有补充说明,AFLFast与AFL大体流程是相同的,主要的区别是能量分配策略和种子选择策略的不同,这一点我们在4.4小节有补充说明。
1.横向对比实现需要进一步加强。该论文横向对比的工具数量非常少,且都不是现在最先进的工具。
答:论文第三章中的比较对象如DARWIN和SeamFuzz均是2023年发表在顶会论文中的工具,但是后续两章中的横向对比比较少。
2.fuzzing在测试不同程序的时候通常会有不同的表现。该论文对少量的benchmmak程序和一些较小的程序进行了实验,缺乏大规模,尤其是针对大型程序的实验。
答:我们选用的benchmark大小从几十KB到几十MB,具有普遍性,该意见可能是指openssl这样的库,大型的库在测试时也是通过接口程序去调用,文中写的都是接口程序。
3.fuzzing 结果的随机性是非常强的,该论文多次提到通过了5次重复实验重复次数是否足够?论文展示的结果是平均值还是最好情况?每一次的差异有多大?结果的置信度有多高?这样有价值的信息在文中均未涉及。
答:当然更多的重复次数能降低随机性,但是实验所需时间将会更长,我先前阅读的论文中来看,大多数重复次数在5-20次不等,所以5次综合考虑是合理的。论文中有提到,所有的数据均是平均值。先前读的论文中,目前没有计算置信度的文章较少,后续将会补充。
4.fuzzing最终是要挖掘漏洞的,该论文只是通过已有数据集和覆盖率来进行对比,但这种价值比较有限。文章提到的方法是否可以更高效的发现新的软件漏洞?
答:我们除了对比覆盖率,还通过复现漏洞来证明挖掘能力,此外,数据集中要包含人工插入或者设计的漏洞,也能从一定程度上体现出漏洞挖掘能力,但目前的实验仍未发现新的软件漏洞。
提问:
1.横向对比实验只和非常少量的现有工具进行了对比,且参与对比的工具不是最先进的工具,这样的对比是否有足够的说服力?
答:第三章横向对比了SeamFuzz(2023年发表在ICSE A会)、DARWIN(2023年发表在NDSS),第四章是对AFL和AFLFast的纵向对比,优化确定变异模块来提升效率,虽然存在提升效率的研究工作,但优化模块不同或是结束了其它技术,横向对比的变量太多,参考意义不大,所以主要采用了纵向对比,对AFL和AFLFast都有明显的提升。第五章有一个研究工作,但是代码没有开源,我们在前期尝试去复现了文章中的解决方案,但是由于论文中并没有提及一些细节实现,所以复现出来的结果跟原文中的数据有些差距,最后我们也没有盲目地进行横向对比。
2、是否用文章实现的新方法在挖掘新漏洞时有更好的表现?例如,发现了其他工具无法发现的新漏洞或者在更短时间内发现了其他工具也能发现的漏洞?
答:在6.2.2节(表6-4)对比了几款模糊测试器对真实漏洞的复现能力,所实现的方案能在更短时间内发现漏洞,并且只有PAMSSAFL和SmartCGF成功复现了9048.
3.fuzzing 结果的随机性如何消除?该论文多次提到通过了5次重复实验。重复次数是否足够?论文展示的结果是平均值还是最好情况?每一次的差异有多大?结果的置信度有多高?
答:当然更多的重复次数能降低随机性,但是实验所需时间将会更长,我先前阅读的论文中来看,大多数重复次数在5-20次不等,所以5次综合考虑是合理的。论文中有提到,所有的数据均是平均值。先前读的论文中,目前没有计算置信度的文章较少,后续将会补充。
(87 匿名)
1.论文摘要中多处提到提升了模糊测试的探素效率、漏洞挖掘能力和覆盖能力等,建议结合实验结果具体说明提升效果,即具体提升比率。在各章节的总结部分,也建议将提升效果量化。
答:我们各章节计算具体的提升比率,此外在每章的总结部分进行量化的表达。
2、学位论文的英文翻译为thesis
答:没找到,想联系问问,但是专家是匿名的。
3.1.2节研究现状部分太短,应对国内外研究现状进行更为全面和细致的综述。
4.表6-3存在跨页,需采用续表格式。
5.建议将图6-3和图6-4对应的图合并,便于对比。
答:首先解释一下6-3表达很快就探索到了绝大部分路径,6-4则是一直探索到新路径,最开始尝试了将两张图合并,但是由于Y轴的数量差太多,合并后表达不出来趋势变化的不同。
6.论文2024年的文献多为网页,建议补充最近两年的高水平文献。
答:论文主要撰写工作年前完成,所以引用文献多为2024年之前的。根据建议我们补充了近两年包括今年的高水平文献,比如文献79.81等等。
提问:
第三章与AFL++作了对比,后续章节为何没有?
答:因为我们是基于AFL的研究,所以实验的比较对象以及扩展对象都是以AFL为主,第三章与AFL++作了对比,因为根据对应的小论文专家建议增加的对比实验。大论文中其他研究点与AFL++的结合和对比也在下一步的工作计划当中,并且计划与更多的优秀工作结合。
(80 匿名)
修改意见:
1、研究现状宜更系统更具体,明确指出AFL存在的主要不足,并分析其主要原因,并与研究内容相对应;这样使得研究工作更系统,同时,也展示了作者对所研究问题的深入理解与把握。
2、论文主题在优化覆盖引导模糊测试器AFL,那么需要更明确优化目标,比如提高测试速度、提高bug发现能力还是降低资源消耗等等,在此基础上制定优化策略,设计优计方法。
答:第三章的直接优化目标是改进现有的变异调度策略,进而提高bug发现能力和覆盖能力;第四章的优化目标是提升整体的测试效率,提升指标包括模糊次数,探索深度等等,效率的提升进而提升bug发现能力和覆盖能力。第五章的优化目标主要是减少哈希冲突,冲突减少后,就能识别出来一部分边,进而提升覆盖率。
3、现有的AFL优化方法也需要进行对比,反映本文工作的优势、特色。
答:第三章横向对比了SeamFuzz、DARWIN,第四章是对AFL和AFLFast的纵向对比,优化确定变异模块来提升效率,虽然存在提升效率的研究工作,但优化模块不同或是结束了其它技术,横向对比的变量太多,参考意义不大,所以主要采用了纵向对比。第五章有一个研究工作,但是代码没有开源,我们在前期尝试去复现了文章中的解决方案,但是由于论文中并没有提及一些细节实现,所以复现出来的结果跟原文中的数据有些差距,最后我们也没有盲目地进行横向对比。
提问:
对于AFL的6个模块,为什么仅对其中四个模块进行优化?
答:AFL是一个非常复杂的系统,每个模块都包含大量的代码以及复杂的逻辑,对每个模块进行优化的工作量非常大,现有的优秀期刊会议的论文也都仅针对一两个模块进行改进。因此,大论文中每个研究点根据需要解决的问题对应一到两个模块,比如研究点1和3对应一个模块,研究点2对应了两个模块。
(78 寇广 军科院创新院)
修改意见:
1.在第三章提出了一种基于强化学习的随机变异调度策略,实验时只采用了4个经典Linux程序作为测试集,建议增加测试集数量。(作为对比,作者在后续三章的模块和总系统分别采用了12个/7个/9个)
2.在第四章-轻量级自适应敏感区域确定变异技术中,关了定义2中的延展变量H,在流程中作者并未说明初始值的取法和原因,以及为什么每次扩展时更新为2H。
3.在第四章的实验中,作者在选取初始种了数量时只选取了1个和5个,建议再增加 1-2组初始值来更好地对比增幅效果以增强说服力。
提问:
1.在第四章.轻量级自适应敏感区域确定变异技术中,关于定义2中的延展变量H,在流程中作者并未说明初始值的取法和原因,以及为什么每次扩展时更新为2H。请详细说明。
答:我们在4.3.2节进行补充说明,H的初始值为8,即初始的敏感区域为8个字节,我们在前期的实验中尝试了多个取值,如H初始值为128或256时,敏感区域过大,后续仍然存在许多无效变异;H的初始值为1或2时,敏感区域又过小,难以通过魔法字节判断进而无法探索到更多路径。此外,每次将敏感区域扩展一倍,因为敏感区域的长度通常在几个字节到几十个字节不等,H初始值为8以及后续每次扩展一倍更适用于大多数情况。
2.在第五章中作者分类讨论 hash冲突并改进了AFL的hash算法,请回答改进的方法与目前成熟的解决hash冲突的方法(如bloom filter)区别和优劣。
答:劣势:1.布隆过滤器存在假阳性,即无法准确判断是否存在冲突;2.其次,布隆过滤器存在多个哈希函数,每次判断都需要计算多个哈希函数,由于插桩的原因,多个哈希函数的计算会降低目标程序的运行速度。
优势:以bit为单位进行存储,所以空间消耗较低。