郑州大学学报(理学版)  2023, Vol. 55 Issue (1): 1-7  DOI: 10.13705/j.issn.1671-6841.2021425

引用本文  

严飞, 瞿铸枫, 张立强. 面向HDF5格式预训练模型的模糊测试方法[J]. 郑州大学学报(理学版), 2023, 55(1): 1-7.
YAN Fei, QU Zhufeng, ZHANG Liqiang. Fuzz Testing Framework for HDF5 Format Pre-trained Model[J]. Journal of Zhengzhou University(Natural Science Edition), 2023, 55(1): 1-7.

基金项目

国家自然科学基金项目(61272452);国家重点基础研究发展计划(973计划)项目(2014CB340601);湖北省重点研发计划项目(2020BAA003);苏州市前瞻性应用研究项目(SYG201845)

通信作者

张立强(1979—),男,副教授,主要从事系统安全测评研究,E-mail: zhanglq@whu.edu.cn

作者简介

严飞(1980—),男,副教授,主要从事系统安全和可信计算研究,E-mail: yanfei@whu.edu.cn

文章历史

收稿日期:2021-10-11
面向HDF5格式预训练模型的模糊测试方法
严飞, 瞿铸枫, 张立强    
武汉大学 国家网络安全学院 空天信息安全与可信计算教育部重点实验室 湖北 武汉 430072
摘要:使用模糊测试对HDF5文件格式的相关程序与工具集进行漏洞检测,并对模糊测试在HDF5输入上的性能优化方案进行研究。通过轻量级文件结构分析,精简模糊测试的确定性变异阶段,从而将模糊测试的注意力集中在更有价值的区域,减少无意义的变异与执行尝试次数;提出一系列HDF5文件格式敏感的变异策略,在模糊测试的随机变异阶段,使变异生成的输入更可能被程序的解析逻辑所接受,从而探索更深层代码。相比传统模糊测试框架,实现的原型框架HDFL可以保证极小的覆盖率与崩溃数量损耗,提高模糊测试的效率。
关键词模糊测试    HDF5    深度学习模型    漏洞检测    
Fuzz Testing Framework for HDF5 Format Pre-trained Model
YAN Fei, QU Zhufeng, ZHANG Liqiang    
Key Laboratory of Aerospace Information Security and Trusted Computing of Ministry of Education, School of Cyber Science and Engineering, Wuhan University, Wuhan 430072, China
Abstract: The fuzz testing was used to detect the vulnerabilities of related programs and toolsets of the HDF5 file format. And the performance optimization strategies of fuzz testing on HDF5 input was studied. Through lightweight analysis of the file structure, the deterministic variation stage of fuzzy test was simplified, so as to focus the attention of fuzz testing on the more valuable areas, and to reduce the number of meaningless mutations and execution attempts.A series of HDF5 file format sensitive mutation strategies were proposed, which made the input generated by the mutation more likely to be accepted by the checking logic of the program during the havoc mutation stage of the fuzz testing, so as to explore deeper code. Compared with the traditional fuzz testing framework, the realized prototype framework HDFL could guarantee extremely small coverage and crash loss, and improve the efficiency of fuzz testing.
Key words: fuzz testing    HDF5    deep learning model    vulnerability detection    
0 引言

近年来,深度学习技术不仅应用在自然语言处理、图像识别等传统场景中,还开始应用在自动驾驶、语音指令识别等新场景中。随着对可信运行环境要求的日益提高以及可信服务技术的不断发展,深度学习系统也被提出了更高的可信性与安全性要求。HDF5文件格式可以存储大型复杂数据,其文件结构包含数据集和群组两种对象类型。同时,HDF5使用B树索引对象,形成一个分层的文件结构。深度学习库Keras[1]使用HDF5文件格式进行模型序列化,存储模型的权重数值,实现模型在其他工程中的快速部署。此外,其他开发者可以通过互联网方式获取预训练HDF5模型文件并在工程中导入模型,省去训练开销。这使得HDF5文件成为机器学习系统的一个攻击面,如果开发者获取被恶意篡改的HDF5文件,那么深度学习系统可能面临被攻击的风险。

目前,对深度学习系统的模糊测试目标集中在预测准确性上[2-8],意图通过对图像进行变换等操作发现深度学习模型中存在的漏洞,并实现类似对抗样本的攻击方式。传统的对抗样本攻击不会影响机器学习系统的基础功能,只有在遇到某些特定输入时机器学习系统才会有预期以外的表现。加载恶意HDF5模型文件引发的安全问题,不仅有可能修改模型参数导致深度学习系统预测精度的下降,还有可能影响系统的稳定性、可靠性。

模糊测试是公认的最有效的漏洞挖掘与安全测试技术之一,已经在各种应用程序[9-10]、系统内核[11]、通信协议[12]、智能合约[13]等领域表现出优异的漏洞挖掘性能。AFL是目前最流行的灰盒模糊测试工具之一[14],可以在不同类型的测试目标上快速实施模糊测试。但是AFL缺乏对输入文件格式结构的关注,导致其在不同的模糊测试任务中的表现存在较大差异,并且对输入格式有较严格约束的对象效果较差。

本文结合HDF5的官方文档,对输入的模型文件进行轻量级文件结构识别,并生成扩展影响图。根据扩展影响图,在确定性阶段对种子文件中特定区域着色,以此减少不必要的尝试次数。而后定义了扩展影响图的变异策略,使得输入文件在经过小幅度位翻转、数值加减以及内容增删之后,扩展影响图仍具有较高的指导作用。在变异输入文件时,同步操作扩展影响图,并且对操作区域作一定程度的扩散,在下一轮测试中使用新扩展影响图进行指导,对扩展影响图上新增标记位进行考察,撤销无价值的新标记位。在对HDF5文件进行模糊测试时,本文工作能在保持不大量损失覆盖率、崩溃触发等收益的前提下更快速地完成一轮测试,探索程序的深层路径。

1 相关工作 1.1 HDF5

HDF5是一种分层数据存储结构[15-16]。HDF5文件以有向图的形式向用户开放,其文件结构和对象结构如图 1所示。HDF5以树状结构存储在磁盘中,这也是HDF5工具集以及深度学习框架加载模型时直接接触到的存储格式。HDF5使用底层对象组成用户可以接触到的上层对象,在树形结构中将底层对象分为三个层级。其中,0级定义了文件的元数据, 1级以B树结构定义了文件的基础结构,这两层构成了数据对象存储框架;2级为数据对象,存储了用户最终将接触到的所有数据。

图 1 HDF5文件结构和对象结构 Fig. 1 HDF5 file structure and object structure
1.2 文件格式模糊测试

文件格式模糊测试通常不需要提供种子文件作为初始的测试用例,而是根据一个模板生成测试用例。Peach是一个经典的开源文件格式模糊测试框架[17],被广泛应用于挖掘各种文件解析软件的漏洞,近年来也被应用于对工业控制网络协议进行安全分析[18]。Peach使用XML格式的输入模型详细地记录输入的文件结构,然后根据模型生成新的输入,对输入进行建模使得Peach能生成合法的输入。但是,Peach生成的初始种子的质量,高度依赖于给予的XML模型质量。而文件建模通常必须经由人工分析文件格式进而编写得出,当输入文件格式没有官方文档可供参考(如生僻、私有格式等)时,人工成本会大幅增加,并且生成文件的建模质量会下降,进而导致模糊测试性能不佳。

由于Peach只关注了输入的文件结构,缺少灰盒模糊测试的覆盖反馈[19],这使得Peach在实验中的性能甚至低于AFL。因此,AFLSmart将Peach与AFL相结合,同样使用XML模型生成输入,以确保生成的输入具有较高的有效性,利用AFL的灰盒模糊测试策略对输入进行测试与变异,并且提出基于有效性的能量调度策略,为具有更高有效性的输入分配更多能量。在输入建模方面,AFLSmart引入了十六进制编辑器010Editor[20],丰富文件结构模板,进而简化人工分析的工作量。尽管010Editor提供了202个常见文件格式的结构模板[21],但是它依然不支持解析HDF5文件格式。

ProFuzzer[22]不同于传统的文件格式的模糊测试,该方法不需要文件格式的先验知识,而是在模糊测试过程中增加一个探测过程。该过程尝试根据每个字节的不同取值对程序执行路径的影响来推断该字节的数据类型,并将相邻同类型的字节合并为该类型的字段。接着,ProFuzzer将探测过程得到的推断结果传递给正式的模糊测试过程来指导未来的输入变异。但是,整个探测过程需要遍历文件的每个字节,并且每个字节都要尝试0x00~0xFF的取值,如果文件很大,测试目标执行速率又低,探测过程将相当漫长。

1.3 AFL

AFL通过变异用户提供的种子文件生成新的测试用例来到达程序中未探索过的新路径,提高测试的覆盖率指标。为了避免过大的开销影响模糊测试的效率,AFL使用轻量级的编译时代码插桩技术,以捕获分支覆盖率并粗粒度地记录分支命中计数。AFL的变异主要分为确定性阶段以及非确定性阶段。在确定性阶段,AFL按字节序对测试用例执行不同长度与步长的位翻转、小数值的加减、有趣数值(0,1,最大整数等)的覆写;在非确定性阶段,AFL会随机叠加多次位翻转、块插入、块删除、数值加减和不同测试用例间的块拼接等变异操作。确定性阶段倾向于生成紧凑的测试用例,并且察觉崩溃输入与未崩溃输入之间的细小差异[23],而非确定性阶段则引入更多的随机性,尝试生成更分散的输入。由于确定性阶段需要对测试用例空间进行遍历,导致该阶段会占用一次模糊测试过程中的大部分时间[24]。Zong等[25]指出,在一个完整的模糊测试过程中,极大比例的测试执行都是无收益的。EcoFuzz则直接删除了整个确定性变异阶段,完全使用非确定性阶段对目标程序进行模糊测试[10]

AFL在对一个测试用例的一次确定性模糊测试中维护一个影响图。在进行逐字节翻转阶段中,AFL筛选出能到达新路径或程序状态的字节并在影响图中置位。在接下来的多字节翻转以及数值加减阶段中,当AFL正在测试的位未在影响图中置位时,AFL会跳过对这个位的剩余确定性阶段测试而向后探索测试用例的后续位。该策略使得AFL在对某些冗长的文件进行测试时,削减了10%~30%的无用执行。

2 方法概述

本文提出一种HDF5文件格式敏感的灰盒模糊测试方法,对初始种子文件进行结构分析,筛除重复类型对象以及冗余数据块;使用分析结果指导模糊测试框架削减确定性变异阶段的无效变异尝试次数,并增加非确定性变异阶段中对测试输入文件结构的关注。

2.1 面向HDF5模型文件的确定性变异阶段削减

HDF5文件格式被Keras用于存储深度学习模型。一个经验性结论是: 在HDF5格式的模型文件中,全零字节的预留字段以及浮点数类型的权重参数字段占比较大,但翻转这些数值位并不会对程序执行状态产生影响。即在模糊测试过程中对这些字段进行突变并不能获得良好收益,而且会消耗不必要的计算资源和时间成本。

2.1.1 扩展影响图

扩展影响图定义了当前正测试用例中值得进行测试的字节,其大小与测试用例相同,且随着测试用例的变化同步更新。扩展影响图中每个字节的值代表了测试用例中对应字节的变异价值,即MAP[offset]=Valuable(Testcase[offset])。

2.1.2 轻量级HDF5文件结构识别

对于给定的种子输入,根据HDF5 V1.1规范文档,从测试用例中提取关键非数据集结构体,在结构体对应位进行标记,并生成扩展影响图。结合官方文档提供的详细数据结构信息,识别出HDF5文件中的超级块、B树节点、组节点、本地堆、全局堆等基础结构对象,并分别记录其起始地址以及对象大小,接着从识别出的组节点符号表中提取出数据对象的地址。提取数据对象中存储的数据类型,剔除HDF5模型文件中用于存储各个层权重参数的大数据块,将其余识别出的结构在扩展影响图中进行标记,认为其是有探索价值的。

2.1.3 测试用例变异空间缩减

对HDF5文件中同类型对象的相同字段进行同样的变异,对执行路径的影响是几乎相同的。AFL依据边覆盖情况来判断一个崩溃是否不同于已经发现的崩溃,即当且仅当:①崩溃路径中包含一个未在已有崩溃中出现过的边;②崩溃路径中缺少一个已有崩溃中时常出现的边时,AFL会将其识别为两种不同的崩溃,即记录为两个唯一崩溃。由于程序对同类型对象的处理存在先后差异,导致AFL将本质相同的崩溃识别为不同的崩溃。同时,不加约束的输入变异空间也导致了极长的模糊测试确定性阶段。

本文通过对扩展影响图进行着色,收缩模糊测试确定性变异阶段的测试用例变异空间。对于HDF5格式的测试用例中相同类型的对象,随机选择小部分在确定性变异阶段进行变异尝试。换言之,对测试用例变异探测范围的树状结构进行修剪,在一轮模糊测试的确定性阶段忽略这部分重复类型的对象。随机选取测试用例t中不同类型的若干对象,在扩展影响图的对应比特位置位,即着色。在确定性变异阶段,使用扩展影响图指导模糊测试框架仅对测试用例着色区域进行位翻转、字节翻转等确定性变异,从而降低对测试用例t中冗余或重复部分的关注,将计算资源集中在扩展影响图标记的更具变异尝试价值的位置,减少无用执行次数以及重复崩溃数量。

2.2 HDF5格式敏感的对象变异策略

原始的AFL变异策略不考虑测试用例的格式与结构。受AFLSmart中以结构块为单位进行变异的启发,设计了HDF5文件结构敏感的以对象为单位的变异策略:对象删除、对象复制、对象覆写。

2.2.1 对象删除

图 2所示,给定一个HDF5格式的测试用例,随机选择并删除一个对象。分析当前队列中测试用例t的结构,从中随机选择任一类型的一个对象O。接着从内存中删除对象O的对应区域,将对象O前后两块内存拼接生成新的测试用例new_t。对新测试用例new_t进行评估,选择是否保留。如果保留,则同步更新扩展影响图,删除扩展影响图中的对应区域。

图 2 对象删除 Fig. 2 Object deletion
2.2.2 对象复制

图 3所示,给定一个HDF5格式的测试用例,随机选择并复制一个对象,插入随机位置中。与智能对象删除策略类似,随机选择测试用例t中任一类型的一个对象O和一个随机位置insert_pos,将对象O插入该位置中,生成新的测试用例new_t。对新测试用例new_t进行评估,选择是否保留。如果保留,则同步更新扩展影响图,复制扩展影响图中的对应区域进同一位置insert_pos

图 3 对象复制 Fig. 3 Object clone
2.2.3 对象覆写

图 4所示,给定一个HDF5格式的测试用例,随机选择源对象O1与目标对象O2,将对象O1复制到O2位置并覆写对象O2区域。该变异策略首先决定源对象与目标对象是否为相同类型,以及以等概率选择本次变异为同类型对象间覆写或跨类型对象间覆写。然后,考虑源对象与目标对象长度差异的三种情况,分别提出不同情况下的处理策略: ①当两对象长度相同时,直接进行覆写即可;②如果源对象O1的长度O1.size大于目标对象O2的长度O2.size,随机选择仅覆写源对象O1的前O2.size长度内容,或是完整覆写源对象O1内容;③如果源对象O1的长度O1.size小于目标对象O2的长度O2.size,随机选择保留覆写后剩余的(O2.size-O1.size)长度的内容,或者以随机字符填充该剩余区域。

图 4 对象覆写 Fig. 4 Object overwrite
3 系统实现

在AFL2.57b基础上加入确定性变异阶段削减、对象变异策略等模块,实现了原型模糊测试框架HDFL。HDFL保留了原始AFL中的预处理、输入生成、输入评估等组件结构,增加了确定性变异阶段削减与HDF5格式敏感的变异策略模块。HDFL框架如图 5所示。

图 5 HDFL框架 Fig. 5 Framework of HDFL
4 实验与评估 4.1 实验设置

实验机器为Intel I5-9400处理器,16 G内存;实验平台为64位Ubuntu20.04操作系统的虚拟机;使用的种子文件为互联网上可获取的HDF5格式模型参数文件[26]。通过与AFL进行比较,对HDF5 1.13版本提供的工具集程序进行测试,对比8 h内HDFL与AFL、EcoFuzz分别获得的覆盖率以及挖掘得到的唯一漏洞数。实验中的HDFL、AFL、EcoFuzz以及目标程序h5debug、h5dump、h5ls均使用gcc9.3.0编译。

4.2 实验结果

首先分析了HDFL生成的扩展影响图的着色规模。在大小为48 544字节的测试用例扩展影响图中共标记了3 200字节,仅为原测试用例大小的6.59%。图 6图 7分别为AFL、EcoFuzz、HDFL对h5debug、h5dump、h5ls经过8 h的模糊测试获得的覆盖率结果和崩溃数量结果。结果表明,与AFL相比,本文提出的对确定性阶段的精简方法并不会引起覆盖率或崩溃数量的严重缺失,反而因为HDFL压缩了确定性变异阶段,减少了一次确定性变异过程所需要的时间,使得HDFL比AFL有更多的时间进行更具随机性的非确定性变异环节,以探索更多的程序空间。

图 6 覆盖率结果 Fig. 6 Coverage results

图 7 崩溃数量结果 Fig. 7 Crash number results

图 6可知,原型系统HDFL在对h5debug、h5dump、h5ls的测试中均获得了接近甚至略高于AFL的覆盖率结果。由于h5debug和h5ls的代码逻辑较简单,对测试输入中结构的约束不强,在这两个程序上并没有得到很好的收益。而在对输入文件整体有较高结构完整性要求的h5dump程序中,得益于HDFL中更简短的确定性变异阶段以及更关注HDF5文件格式的智能对象变异策略,原型框架提前约5.25 h达到了AFL测试8 h获得的覆盖率。由图 7可知,原型系统HDFL发现的崩溃数量比AFL多出约30%。此外,可以观察到,除h5dump的覆盖率收益,HDFL在其他程序上得到的覆盖率与崩溃收益均略低于EcoFuzz。经分析,这是由于EcoFuzz跳过了确定性变异阶段,直接使用高度随机化的非确定性变异去探索程序的执行路径,借助自定义的能量调度策略,实现了更高的覆盖率与崩溃数量。而后尝试了使用跳过确定性变异阶段的AFL(AFL-d模式)对h5dump进行测试,得到了高于原始AFL和EcoFuzz的覆盖率收益,结果如图 8所示。这在一定程度上反映了确定性变异阶段中存在相当多的冗余或无意义测试执行。

图 8 h5dump额外实验覆盖率结果 Fig. 8 Extra coverage result of h5dump

但是,跳过确定性变异阶段而直接进行充满随机性的变异会导致测试结果也充满了不确定性。在分析了EcoFuzz和HDFL在h5dump上发现的每个崩溃的栈回溯信息后可以看出,尽管EcoFuzz发现了更多的崩溃,但是由于EcoFuzz复用了AFL中对唯一崩溃的评判标注,其中大量的崩溃实际上是输入文件中不同对象的相同类型字段导致的相同原因的崩溃。此外,由于EcoFuzz的策略大大增加了模糊测试的随机性,在多次重复实验中,EcoFuzz时常会遗漏HDFL记录的崩溃。因此,对本实验对象而言,完全跳过确定性变异阶段并不是一个明智的选择。本次测试中使用HDFL挖掘了多个首次发现的漏洞,并报告给HDF5组织。

5 结束语

本文提出一种面向HDF5文件格式的深度学习模型模糊测试方法。与传统的模糊测试方法相比,该方法在避免投入大量人工成本对模型文件结构进行分析的同时,用轻量级的结构分析方法标记测试用例中有变异价值的字节,并筛除文件树状结构中相似度较高的重复结点,生成扩展影响图,接下来的变异探索依靠扩展影响图指导模糊测试框架精简确定性变异阶段。考虑HDF5文件结构的智能变异策略,分别对HDF5模型文件中的对象结构进行删除、复制与覆写。搭建模糊测试原型框架HDFL,对HDF5配套工具进行测试,实验结果表明,本文方法在有效减少确定性变异阶段无价值执行的同时,不会造成覆盖率与崩溃数量的大幅度减少。目前,本文方法初步实现了对HDF5格式的深度学习模型文件的测试,后续可以考虑增加对其他模型文件格式的支持,以提高本工作的通用性。

参考文献
[1]
Keras. Keras中文文档[EB/OL]. [2021-07-30]. https://keras.io/zh/.
Keras. Keras Chinese documents[EB/OL]. [2021-07-30]. https://keras.io/zh/. (0)
[2]
GUO J M, JIANG Y, ZHAO Y, et al. DLFuzz: differential fuzzing testing of deep learning systems[C]//Proceedings of the 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. New York: ACM Press, 2018: 739-743. (0)
[3]
MA L, JUEFEI-XU F, ZHANG F Y, et al. DeepGauge: multi-granularity testing criteria for deep learning systems[C]//Proceedings of the 33rd IEEE International Conference on Automated Software Engineering. Piscataway: IEEE Press, 2018: 120-131. (0)
[4]
XIE X F, MA L, XU J F, et al. DeepHunter: a coverage-guided fuzz testing framework for deep neural networks[C]//Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis. Piscataway: IEEE Press, 2019: 146-157. (0)
[5]
ZHANG P C, DAI Q Y, PELLICCIONE P. CAGFuzz: coverage-guided adversarial generative fuzzing testing of deep learning systems[EB/OL]. [2021-09-11]. https://www.researchgate.net/publication/337386502. (0)
[6]
ODENA A, GOODFELLOW I. TensorFuzz: debugging neural networks with coverage-guided fuzzing[C]//Proceedings of the International Conference on Machine Learning. New York: ACM Press, 2019: 4901-4911. (0)
[7]
GAO X, SAHA R K, PRASAD M R, et al. Fuzz testing based data augmentation to improve robustness of deep neural networks[C]//Proceedings of the 42nd International Conference on Software Engineering. Piscataway: IEEE Press, 2020: 1147-1158. (0)
[8]
LUO W S, CHAI D, RUAN X Y, et al. Graph-based fuzz testing for deep learning inference engines[C]//Proceedings of the 43rd International Conference on Software Engineering. Piscataway: IEEE Press, 2021: 288-299. (0)
[9]
ZHONG R, CHEN Y H, HU H, et al. SQUIRREL: testing database management systems with language validity and coverage feedback[C]//Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. New York: ACM Press, 2020: 955-970. (0)
[10]
YUE T, WANG P F, TANG Y, et al. EcoFuzz: adaptive energy-saving greybox fuzzing as a variant of the adversarial multi-armed bandit[C]//Proceedings of the 29th USENIX Security Symposium (USENIX Security 20). Berkeley: USENIX Association, 2020: 2307-2324. (0)
[11]
SCHUMILO S, ASCHERMANN C, GAWLIK R, et al. KAFL: hardware-assisted feedback fuzzing for OS kernels[C]//Proceedings of the 26th USENIX Security Symposium (USENIX Security 17). Berkeley: USENIX Association, 2017: 167-182. (0)
[12]
PENG H, PAYER M. USBFuzz: a framework for fuzzing USB drivers by device emulation[C]//Proceedings of the 29th USENIX Security Symposium (USENIX Security 20). Berkeley: USENIX Association, 2020: 2559-2575. (0)
[13]
HE J X, BALUNOVI C ' M, AMBROLADZE N, et al. Learning to fuzz from symbolic execution with application to smart contracts[C]//Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. New York: ACM Press, 2019: 531-548. (0)
[14]
GitHub Inc. Google/AFL[EB/OL]. [2021-07-30]. https://github.com/google/AFL. (0)
[15]
HDF Group. Introduction to HDF5[EB/OL]. [2021-07-30]. https://support.hdfgroup.org/HDF5/doc1.6/H5.intro.html. (0)
[16]
HDF Group. HDF5 file format specification version 1.1[EB/OL]. [2021-07-30]. https://support.hdfgroup.org/HDF5/doc1.6/H5.format.html. (0)
[17]
MOZILLA W. Security/Fuzzing/Peach[EB/OL]. [2021- 07-30]. https://wiki.mozilla.org/Security/Fuzzing/Peach. (0)
[18]
伊胜伟, 张翀斌, 谢丰, 等. 基于Peach的工业控制网络协议安全分析[J]. 清华大学学报(自然科学版), 2017, 57(1): 50-54.
YI S W, ZHANG C B, XIE F, et al. Security analysis of industrial control network protocols based on Peach[J]. Journal of tsinghua university (science and technology), 2017, 57(1): 50-54. (0)
[19]
PHAM V T, BÖHME M, SANTOSA A E, et al. Smart greybox fuzzing[J]. IEEE transactions on software engineering, 2021, 47(9): 1980-1997. (0)
[20]
SweetScape Software Inc. 010Editor-hex editor[EB/OL]. [2021-07-30]. https://www.sweetscape.com/010editor. (0)
[21]
SweetScape Software Inc. 010Editor-templates[EB/OL]. [2021-07-30]. https://www.sweetscape.com/010editor/repository/templates. (0)
[22]
YOU W, WANG X Q, MA S Q, et al. ProFuzzer: on-the-fly input type probing for better zero-day vulnerability discovery[C]//Proceedings of the IEEE Symposium on Security and Privacy. Piscataway: IEEE Press, 2019: 769-786. (0)
[23]
AFL Inc. AFL-fuzz technical_details. txt[EB/OL]. [2021-07-30]. https://lcamtuf.coredump.cx/afl/technical_details.txt. (0)
[24]
LYU C, JI S L, ZHANG C, et al. MOPT: optimized mutation scheduling for fuzzers[C]//Proceedings of the 28th USENIX Security Symposium (USENIX Security 19). Berkeley: USENIX Association, 2019: 1949-1966. (0)
[25]
ZONG P Y, LV TAO, WANG D W, et al. FuzzGuard: filtering out unreachable inputs in directed grey-box fuzzing through deep learning[C]//Proceedings of the 29th USENIX Security Symposium (USENIX Security 20). Berkeley: USENIX Association, 2020: 2255-2269. (0)
[26]
GitHub Inc. peikexin9/deepxplore[EB/OL]. [2021-07-30]. https://github.com/peikexin9/deepxplore. (0)