本申请涉及物联网信息安全,尤其涉及一种模糊测试方法、装置、设备以及存储介质。
背景技术:
1、物联网的快速发展,使人们的生活变得越来越便利。与此同时,物联网设备中存在的安全问题也得到了关注。发现物联网设备的潜在隐患和漏洞,并及时进行修复能够提高物联网设备的安全性。其中,模糊测试技术是一种自动化的软件安全性测试技术,通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。模糊测试是一种很有效的漏洞挖掘方法,因为其具有良好的扩展性和适应性,是目前比较流行的软件测试技术。
2、深度学习在模糊测试的应用场景中其关注点并不是物联网中的设备,且深度学习中的数据集来源于网络收集,直接应用到物联网设备的模糊测试可行性不大。虽然某些变异策略或者路径收集方式能在一定程度上提高模糊测试的效率,但已有的技术方案主要是针对开源软件的模糊测试,同时对于生成测试用例的变异负载主要于模糊测试工具本身,不具有漏洞针对性及导向性。因此,针对物联网中的设备如何生成具有针对性和导向性的模糊测试用例是模糊测试的一个挑战,也是提高模糊测试效率的一个难题。
技术实现思路
1、本申请提出一种模糊测试方法、装置、设备以及存储介质,能够自动生成具有针对性和导向性的测试用例,减少人工编写模糊测试文件的繁琐性和错误概率,同时提高模糊测试的效率。
2、为达到上述目的,本申请的技术方案是这样实现的:
3、第一方面,本申请实施例提供了一种模糊测试方法,所述方法包括:
4、获取待处理数据包;
5、将待处理数据包输入预设模型,通过预设模型生成满足第一语法结构的模糊测试文件;
6、根据模糊测试文件以及预设知识库中的漏洞信息,生成具有导向性的测试用例,并利用测试用例进行模糊测试。
7、在一些实施例中,获取待处理数据包,包括:
8、获取所采集的多个功能数据包;
9、对多个功能数据包进行过滤处理,得到待处理数据包。
10、在一些实施例中,预设模型包括预处理单元和特征提取单元;将待处理数据包输入预设模型,通过预设模型生成满足第一语法结构的模糊测试文件,包括:
11、通过预处理单元对待处理数据包进行过滤处理,得到有效数据包;以及对有效数据包进行数据处理,得到向量数据集;
12、通过特征提取单元对向量数据集进行特征提取,得到符合第一语法结构的第一特征向量和符合第二语法结构的第二特征向量;并根据第一特征向量和第二特征向量生成模糊测试文件。
13、在一些实施例中,所述方法还包括:
14、设置第一语法结构为boofuzz语法结构,以及
15、设置第二语法结构为http语法结构。
16、进一步地,预设模型还包括模型训练单元;所述方法还包括:
17、根据第一特征向量和第二特征向量对预设模型进行训练,将训练后的模型更新为预设模型。
18、在一些实施例中,所述方法还包括:
19、收集原始漏洞信息以及通过固件单元所获得的固件敏感信息和功能关键字;
20、基于预设脚本对原始漏洞信息、固件敏感信息和功能关键字进行分析与提取,得到目标漏洞信息;
21、基于目标漏洞信息,创建预设知识库。
22、在一些实施例中,固件单元包括固件解包单元和固件仿真单元;所述方法还包括:
23、获取多个固件;
24、通过固件解包单元对多个固件进行解包,确定固件敏感信息;
25、通过固件仿真单元对多个固件进行仿真,确定功能关键字。
26、在一些实施例中,根据模糊测试文件以及预设知识库中的漏洞信息,生成具有导向性的测试用例,包括:
27、将模糊测试文件中的目标功能函数与预设知识库中的漏洞信息进行匹配;
28、若目标功能函数与预设知识库的漏洞信息相匹配,则根据目标功能函数在预设知识库中对应的变异负载,生成具有导向性的测试用例;
29、若目标功能函数与预设知识库的漏洞信息不匹配,则确定目标功能函数对应的潜在漏洞信息,并根据潜在漏洞信息以及预设知识库中对应的变异规则和变异负载,生成具有导向性的测试用例。
30、在一些实施例中,利用测试用例进行模糊测试,包括:
31、利用测试用例对待测设备进行模糊测试,确定待测设备是否存在漏洞;和/或,
32、利用测试用例对待测固件进行仿真测试,确定待测固件是否存在漏洞。
33、第二方面,本申请实施例提供了一种模糊测试装置,模糊测试装置包括获取单元和生成单元,其中:
34、获取单元,配置为获取待处理数据包;
35、生成单元,配置为将待处理数据包输入预设模型,通过预设模型生成满足第一语法结构的模糊测试文件;
36、生成单元,还配置为根据模糊测试文件以及预设知识库中的漏洞信息,生成具有导向性的测试用例,并利用测试用例进行模糊测试。
37、第三方面,本申请实施例提供一种电子设备,电子设备包括存储器和处理器,其中:
38、存储器,用于存储能够在处理器上运行的计算机程序;
39、处理器,用于在运行计算机程序时,执行如第一方面中任一所述的方法。
40、第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被至少一个处理器执行实现如第一方面中任一所述的方法。
41、本申请所提供的一种模糊测试方法、装置、设备以及存储介质,获取待处理数据包;再将待处理数据包输入预设模型,通过预设模型生成满足第一语法结构的模糊测试文件;然后根据模糊测试文件以及预设知识库中的漏洞信息,生成具有导向性的测试用例,并利用测试用例进行模糊测试。这样,通过预设模型生成模糊测试文件,能够减少人工编写模糊测试文件的繁琐,还能够减少人工编写过程中可能存在的错误;另外,根据模糊测试文件以及预设知识库中的变异规则和变异负载,还能够生成针对不同漏洞类型的测试用例,进而提高了漏洞挖掘的效率,同时还提高了模糊测试的效率。
1.一种模糊测试方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述获取待处理数据包,包括:
3.根据权利要求1所述的方法,其特征在于,所述预设模型包括预处理单元和特征提取单元;所述将所述待处理数据包输入预设模型,通过所述预设模型生成满足第一语法结构的模糊测试文件,包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求3所述的方法,其特征在于,所述预设模型还包括模型训练单元;所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述方法包括:
7.根据权利要求6所述的方法,其特征在于,所述固件单元包括固件解包单元和固件仿真单元;所述方法还包括:
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述根据所述模糊测试文件以及预设知识库中的漏洞信息,生成具有导向性的测试用例,包括:
9.根据权利要求1至7中任一项所述的方法,其特征在于,所述利用所述测试用例进行模糊测试,包括:
10.一种模糊测试装置,其特征在于,所述模糊测试装置包括获取单元和生成单元,其中:
11.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,其中:
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被至少一个处理器执行时实现如权利要求1至9中任一项所述模糊测试的方法。