CN117216772B - 模糊测试用例优化方法、装置、设备及可读介质 - Google Patents
模糊测试用例优化方法、装置、设备及可读介质 Download PDFInfo
- Publication number
- CN117216772B CN117216772B CN202311488351.7A CN202311488351A CN117216772B CN 117216772 B CN117216772 B CN 117216772B CN 202311488351 A CN202311488351 A CN 202311488351A CN 117216772 B CN117216772 B CN 117216772B
- Authority
- CN
- China
- Prior art keywords
- test case
- fuzzy test
- message
- tested
- fuzzy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 421
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000005457 optimization Methods 0.000 title abstract description 16
- 238000004891 communication Methods 0.000 claims abstract description 54
- 230000004044 response Effects 0.000 claims description 106
- 239000000523 sample Substances 0.000 claims description 35
- 238000012216 screening Methods 0.000 claims description 19
- 230000035772 mutation Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 11
- 230000003993 interaction Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000003068 static effect Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 11
- 230000002159 abnormal effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
本公开提供了一种模糊测试用例优化方法、装置、设备及可读介质,属于测试技术领域。方法包括:确定指定通信协议的各被测试字段;对各所述被测试字段分别生成对应的模糊测试用例报文集合,利用所述模糊测试用例报文集合,对被测设备进行针对所述指定通信协议的模糊测试,以通过模糊测试从各所述被测试字段中筛选有效被测试字段;生成所述有效被测试字段对应的有效测试用例报文集合,所述有效测试用例报文集合用于对所述被测设备进行模糊测试。该方法用以提高模糊测试效率。
Description
技术领域
本公开涉及测试技术领域,尤其涉及一种模糊测试用例优化方法、装置、设备及可读介质。
背景技术
随着物联网的不断发展,大多数计算设备包括笔记本电脑、智能手机等,都配备了无线网络硬件,用以支持计算设备与无线接入点(Access Point,AP)建立连接并通过网络传输数据。
目前业界制定了移动热点(Wireless Fidelity,WiFi)协议,采用握手等多种协商技术来建立可靠和安全的网络连接,保障计算设备和无线接入点之间的通信安全及信息的隐私性,例如无线局域网通用的标准IEEE 802.11 WiFi协议标准等。
然而,网络攻击者却在WiFi协议中发现了诸多漏洞,例如在IEEE 802.11 WiFi协议标准的设计中发现了一个通用安全漏洞,攻击者可以利用该漏洞诱使接入点通过明文形式传输,从而泄漏数据帧的信息。另外还有知名的KRACK攻击,攻击者直接利用WiFi远程获取设备使用权限,造成严重危害。因此,验证WiFi协议的实现是否存在潜在漏洞至关重要。
模糊测试是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法,经过多年的实践与验证,被认为是目前自动软件测试中最常用和有效的手段之一。模糊测试的关键在于如何高效地生成一些可能引发程序错误的异常输入,找到非预期的执行路径,从而引发程序出错。模糊测试构造出的测试用例报文其针对性、有效性更强,测试效率更高。
已有WiFi协议模糊测试工具随机变异报文生成模糊测试用例报文,得到的模糊测试用例报文缺乏针对性,盲目的追求过于庞大的测试用例报文集,使得模糊测试效率不高。
发明内容
本公开提供一种模糊测试用例优化方法、装置、设备及可读介质。
本公开实施例第一方面提供了一种模糊测试用例优化方法,包括:
确定指定通信协议的各被测试字段;
对各所述被测试字段分别生成对应的模糊测试用例报文集合,利用所述模糊测试用例报文集合,对被测设备进行针对所述指定通信协议的模糊测试,以通过模糊测试从各所述被测试字段中筛选有效被测试字段;
生成所述有效被测试字段对应的有效测试用例报文集合,所述有效测试用例报文集合用于对所述被测设备进行模糊测试。
本公开实施例第二方面提供一种模糊测试用例优化装置,包括:
确定模块,用于确定指定通信协议的各被测试字段;
筛选模块,用于对各所述被测试字段分别生成对应的模糊测试用例报文集合,利用所述模糊测试用例报文集合,对被测设备进行针对所述指定通信协议的模糊测试,以通过模糊测试从各所述被测试字段中筛选有效被测试字段;
生成模块,用于生成所述有效被测试字段对应的有效测试用例报文集合,所述有效测试用例报文集合用于对所述被测设备进行模糊测试。
本公开实施例第三方面提供一种电子设备,包括:
至少一个处理器;
存储器,其上存储有至少一个程序,当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现根据第一方面所述的方法;
至少一个I/O接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互。
本公开实施例第四方面提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现根据第一方面所述的方法。
本公开实施例具有如下优点:
对指定通信协议的各所述被测试字段分别生成对应的模糊测试用例报文集合,利用所述模糊测试用例报文集合,对被测设备进行针对所述指定通信协议的模糊测试,以通过模糊测试从各所述被测试字段中筛选有效被测试字段,从而通过对各被测试字段的模糊测试评价各被测试字段的有效性,进而从中筛选得到有效被测试字段,生成所述有效被测试字段对应的有效测试用例报文集合,将有效测试用例报文集合用于对被测设备进行模糊测试,从而优化了指定通信协议的模糊测试用例,使得最终用于模糊测试的模糊测试用例具有针对性、有效性更强,避免了采用大量无效模糊测试用例进行模糊测试,导致模糊测试效率下降的问题,提高了模糊测试效率。
附图说明
图1为本公开实施例中提供的一种模糊测试用例优化方法流程示意图;
图2为本公开实施例中提供的一种权重值计算矩阵示意图;
图3为本公开实施例中提供的一种测试用例权重配置树模型的示例图;
图4为本公开实施例中提供的一种基于权重反馈的WiFi协议模糊测试的方法流程示意图一;
图5为本公开实施例中提供的一种基于权重反馈的WiFi协议模糊测试的方法流程示意图二;
图6为本公开实施例中提供的一种模糊测试用例优化装置结构示意图;
图7为本公开实施例中提供的一种电子设备的结构示意图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
如本公开所使用的,术语“和/或”包括一个或多个相关列举条目的任何和全部组合。
本公开所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本公开所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。
当本公开中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。
除非另外限定,否则本公开所用的全部术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本公开明确如此限定。
面向WiFi协议的模糊测试中,需要针对无线设备的多样性和无线协议的复杂性设计高效的模糊测试用例报文。已有的一些WiFi协议模糊测试工具因为在未完全分析标准协议的基础上就滥用黑盒模糊测试,可能只能挖掘一些浅层错误,存在无法全面探索WiFi协议中的深层状态的问题。其次,已有的WiFi协议模糊测试工具大多缺乏一个测试用例报文选择策略,在设备与无线接入点建立连接时无法更好地发现崩溃或不符合协议标准的行为,以便找到尽可能多的漏洞。此外,已有的WiFi协议模糊测试工具盲目的追求过于庞大的测试用例报文集,在测试效率方面也存在进一步优化的空间。
以下描述中,指定通信协议包括WiFi协议以及其他端到端通信协议中的任意一种。
基于此,本公开实施例提供了一种模糊测试用例优化方法,该方法可以应用于安装有模糊测试程序的测试设备,该测试设备可以是任意一种形式的电子设备。示例性地,该模糊测试用例优化方法可以部署在linux内核PC机上,也可以部署在其它设备通过虚拟机搭建的应用环境中,在软件的基础上配置对应的硬件设备,如测试802.11协议,则需要支持监控模式的无线网卡做支持。
如图1所示为本公开实施例提供的模糊测试用例优化方法流程示意图,该方法主要包括以下步骤:
步骤101,确定指定通信协议的各被测试字段。
在一些实施例中,所述确定指定通信协议的各被测试字段,包括:
收集所述被测设备支持的所述指定通信协议的信息,根据所述指定通信协议的信息确定各所述被测试字段;和/或,捕获所述被测设备采用所述指定通信协议传输的报文,解析捕获的报文确定各所述被测试字段。
该实施例通过收集被测设备有关指定通信协议的信息,从收集的信息中解析确定各被测试字段,从指定通信协议的功能和捕获的流量两个角度出发,使得能够全面获取指定通信协议中各被测试字段,并且通过收集信息确定的各被测试字段更加便于制定和调整模糊测试的攻击策略,以匹配被测设备的功能,并有针对性的注入网络流量,注入尽可能少的网络流量。
其中,测试设备连接被测设备,测试设备从被测设备支持的功能中获取被测设备支持的指定通信协议的信息,进而根据该指定通信协议的信息确定各被测试字段。
示例性实施例中,测试设备连接被测设备,并枚举出该被测设备支持的WiFi频段功能,如2.4G、5G、支持的WiFi协议加密模式,如有线等效保密(Wired EquivalentPrivacy,WEP)、WPA(WiFi Protected Access)、WPA2、WPA3,以及WiFi的工作模式,如802.11a、802.11b、802.11n、802.11ax等,从被测设备支持的WiFi频段功能、WiFi的工作模式中提取通用的可测试字段,作为被测试字段。
其中,测试设备捕获和解析与被测设备相关(来自被测设备或发往被测设备)的具有捕获数据包(Packet Capture,PCAP)格式的网络流量文件,根据网络流量文件中确定的功能、加密协议、字段等构造被测试字段。该文件可能来自目标网络,也可能事先通过其他方式生成。
根据上述手段收集到的待测试设备信息,能够定制化攻击,以匹配被测设备的指定通信协议(例如WiFi)功能。由于能够对指定通信协议进行更深层次的协议解析,进而使被测设备的模糊测试执行的路径更深,从而揭示更多难以识别的漏洞。此外,根据信息收集阶段的数据定制被测试字段,进而使得基于该被测试字段生成的模糊测试用例报文具有针对性,有效避免产生大量实际无用用例数据,使用尽可能少的测试用例减轻系统负荷,在规定时间内大大提升测试效率。
步骤102,对各所述被测试字段分别生成对应的模糊测试用例报文集合,利用所述模糊测试用例报文集合,对被测设备进行针对所述指定通信协议的模糊测试,以通过模糊测试从各所述被测试字段中筛选有效被测试字段。
在一些实施例中,所述对各所述被测试字段分别生成对应的模糊测试用例报文集合,包括:分别对各所述被测试字段执行以下处理:对所述指定通信协议的报文中的所述被测试字段进行至少一种变异,得到变异后的报文集合;将所述变异后的报文集合作为针对所述被测试字段对应的模糊测试用例报文集合。
示例性实施例中,在主流程模糊测试中,针对指定通信协议的字段特征(例如WiFi协议字段特征,如2.4G和5G双频段,WEP、WPA等不同加密模式等)设计变异策略如下:
(1)梳理对指定通信协议历史模糊测试中发现的问题字段,查询该指定通信协议并修正,达到变异字段的目的,从而通过修正生成模糊测试用例报文。例如,以往的一些模糊测试模型中一些特殊WiFi字段,如DSSS字段,在模糊测试模型中是错误的,可能是因为测试不到位或者报文结构复杂没有理解到位,导致潜在缺陷(bug)之前没有被发现,此处通过全面测试并对错误字段进行修正达到变异目的。
(2)采用s_bytes和s_random变异策略对指定通信协议的报文进行变异得到模糊测试用例报文。s_bytes、s_random变异策略的主要思想是替换比特,使得变异更随机。相对于已有适用s_string变异策略中,替换一些奇怪的字符的方式,变异更加充分。具体地,报文中固定长度且较长字段采用s_random变异策略,使得每次测试的模糊测试用例存在差异但不丢失协议结构;报文中变长字段采用s_bytes变异策略,使得到的模糊测试报文适配mac层的字段补充。
在一些实施例中,所述对各所述被测试字段分别生成对应的模糊测试用例报文集合,利用所述模糊测试用例报文集合,对被测设备进行针对所述指定通信协议的模糊测试,以通过模糊测试从所述各被测试字段中筛选有效被测试字段,包括:
分别对各所述被测试字段执行以下处理:针对所述被测试字段生成第一模糊测试用例报文集合;利用所述第一模糊测试用例报文集合,对所述被测设备进行针对所述指定通信协议的第一轮模糊测试,根据第一轮模糊测试结果获取所述被测设备对所述第一模糊测试用例报文中各模糊测试用例报文的响应时间中的极值;针对所述被测试字段生成第二模糊测试用例报文集合;利用所述第二模糊测试用例报文集合,对所述被测设备进行针对所述指定通信协议的第二轮模糊测试,根据第二轮模糊测试结果获取所述第二模糊测试用例报文集合中的各模糊测试用例报文的响应时间;
根据各所述被测试字段对应的所述极值以及所述第二模糊测试用例报文集合中的各模糊测试用例报文的响应时间,从各所述被测试字段中筛选有效被测试字段。
示例性实施例中,在第一轮模糊测试过程中,一个被测试字段对应一个第一模糊测试用例报文集合,该集合中的模糊测试用例报文为对报文中的单个字段(即被测试字段)进行变异得到,从而主动减少模糊测试用例报文的数量,简化模糊测试用例报文进而减少测试耗费时间,由于在指定通信协议连接的多个过程中采集有效被测试字段,使得即便使用尽量少的测试用例也能够测试尽可能多的功能点,保障测试的覆盖有效性,能够在不影响正确性的前提下提升测试效果。虽然减少模糊测试用例报文的数量会对用例有效性造成一定程度的影响,但是通过第二轮模糊测试过程筛选有效被测试字段的方式有重点进行后续模糊测试,从而弥补减少用例数量对用例有效性造成的影响,使得模糊测试的正确性和有效性得到提升,提高了测试效率。
在一些实施例中,所述极值中包括第一极值和第二极值,所述第一极值为所述第一模糊测试用例报文中各模糊测试用例报文对应的接入点探针响应时间的最大值,所述第二极值为所述第一模糊测试用例报文中各模糊测试用例报文对应的报文响应时间的最大值;
所述第二模糊测试用例报文集合中的各模糊测试用例报文的响应时间包括所述第二模糊测试用例报文集合中的各模糊测试用例报文对应的接入点探针响应时间和报文响应时间。
示例性实施例中,在第一轮模糊测试过程中,创建并维护第一列表和第二列表,在第一列表中记录每个模糊测试用例报文的接入点探针响应时间,在第二列表中记录每个模糊测试用例报文的报文响应时间,并且在一个模糊测试用例报文同时存在接入点探针响应时间和报文响应时间的情况下,才会在第一列表和第二列表中进行记录,如果不是同时存在的情况下,则丢弃该模糊测试用例报文的测试结果,不进行记录。在第一列表的长度或第二列表中记录项的个数超过设定阈值(例如1000)时,停止第一轮模糊测试过程。取出第一列表中的最大值作为第一极值,表示为b,取出第二列表中的最大值作为第二极值,表示为a。第一轮模糊测试过程到此结束。通过第一轮模糊测试确定第一极值和第二极值的方式,能够针对不同的被测设备动态调节第一极值和第二极值,提高适配性。
示例性地,以WiFi协议测试为例,对被测设备进行模糊测试,生成有效的请求或响应,使用经过模糊处理的WiFi数据包发送给被测设备,并记录被测设备的反应,以评估其对畸形输入的稳健性。在此阶段,先是解析信息收集阶段输出的待测试WiFi协议信息,构造支持的字段列表,包括字段名称、字段数据等,以获得被测试字段。针对每个支持的功能,都准备了可配置的报文数量,系统会记录每个报文请求和响应以供进一步处理。
在一些实施例中,所述根据各所述被测试字段对应的所述极值以及所述第二模糊测试用例报文集合中的各模糊测试用例报文每次测试的响应时间,从各所述被测试字段中筛选有效被测试字段,包括:
分别对每个所述被测试字段执行以下处理:根据所述被测试字段对应的所述第二模糊测试用例报文集合中各模糊测试用例报文的接入点探针响应时间以及接入点探针有效响应临界时间、报文响应时间以及报文有效响应临界时间,筛选响应有效模糊测试用例报文,将响应无效的测试用例报文对应的权重值赋为零值;分别对所述第二模糊测试用例报文集合中的各响应有效的模糊测试用例报文执行以下权重赋值过程:将所述模糊测试用例报文的接入点探针响应时间与所述第一极值比较,获得第一比较结果;将所述模糊测试用例报文的报文响应时间与所述第二极值比较,获得第二比较结果;根据所述第一比较结果和所述第二比较结果确定所述模糊测试用例报文对应的权重值;
根据各所述被测试字段对应的所述第二模糊测试用例报文集合中的各模糊测试用例报文的权重值,从各所述被测试字段中筛选有效被测试字段。
其中,接入点探针有效响应临界时间和报文有效响应临界时间为根据经验预先设置,这两个时间的具体取值可以相同,也可以不相同,通过这两个时间的设置区分无效响应和有效响应。
在一些实施例中,所述根据所述第一比较结果和所述第二比较结果确定所述模糊测试用例报对应的权重值,包括:
在所述第一比较结果为所述接入点探针响应时间小于所述第一极值,且所述第二比较结果为所述报文响应时间小于第二极值的情况下,确定所述模糊测试用例报文的权重值为第一数值;
在所述第一比较结果为所述接入点探针响应时间小于所述第一极值,以及所述第二比较结果为所述报文响应时间大于所述第二极值且小于报文有效响应临界时间的情况下,确定所述模糊测试用例报文的权重值为第二数值;
在所述第一比较结果为所述接入点探针响应时间大于所述第一极值且小于接入点探针有效响应临界时间,以及所述第二比较结果为所述报文响应时间小于第二极值的情况下,确定所述模糊测试用例报文的权重值为第三数值;
在所述第一比较结果为所述接入点探针响应时间大于所述第一极值且小于接入点探针有效响应临界时间,以及所述第二比较结果为所述报文响应时间大于所述第二极值且小于报文有效响应临界时间的情况下,确定所述模糊测试用例报文的权重值为第四数值;
所述第一数值、所述第二数值、所述第三数值和所述第四数值依次增大。
在一些实施例中,所述根据各所述被测试字段对应的所述第二模糊测试用例报文集合中的各模糊测试用例报文的权重值,从各所述被测试字段中筛选有效被测试字段,包括:
分别对各所述被测试字段执行以下过程:获取所述被测试字段对应的所述模糊测试用例报文的总数,以及每个所述模糊测试用例报文对应的权重值;根据每个所述模糊测试用例报文对应的权重值确定所述被测试字段对应的总权重值;根据所述总权重值以及所述总数,确定所述被测试字段的平均权重值;
根据各所述被测试字段的平均权重值,从各所述被测试字段筛选不少于预设数量的有效被测试字段。
示例性实施例中,在第二轮模糊测试过程中,一个被测试字段对应一个第二模糊测试用例报文集合,该集合中的模糊测试用例报文为对报文中的单个字段(即被测试字段)进行变异得到。
示例性实施例中,第二轮模糊测试过程中,以第一轮模糊测试选择的极值a和b作为时延临界值,在第二模糊测试用例报文集合中的每个模糊测试用例报文执行完毕后,记录该模糊测试用例报文的响应时间与时延临界值进行比对,根据被测设备连接状态的响应程度定义并赋予各模糊测试用例报文相应的权重值。示例性地,赋予权重值的方式结合图2进行说明如下:
假设接入点探针有效响应临界时间、报文有效响应临界时间的取值相同,例如取值为4秒;
在第二轮模糊测试开始时,测试设备的模糊测试系统连接被测设备,向被测设备发送报文,通过捕获连接来监视被测设备的接入点探针响应时间和报文响应时间。以[a,b]作为临界值,时延4秒作为有效响应临界时间,异常响应状态分为以下六种:
模糊测试用例报文短时间内有返回,说明被测设备及时处理了模糊测试用例报文,暂时认为正常;
模糊测试用例报文短时间内有返回,但是探针报文响应较慢,说明及时处理了测试用例报文但是走入了某种异常的分支;
模糊测试用例报文可能触发了某些流程分支或触发完被丢弃,但是不影响被测设备作为接入点(AP)对其他报文的响应;
模糊测试用例报文无响应,可能触发了某些流程分支,导致影响了AP对被测设备的响应;
模糊测试用例报文长时间无响应,超出有效响应临界时间未获得报文响应,被判为异常测试用例;
模糊测试用例报文长时间无响应,超出有效响应临界时间未获得接入点探针响应,被同样判为异常测试用例。
基于临界值的权重值计算方法如下,通过该计算方法为以上6种情况下的模糊测试用例赋予权重值,其中,表示接入点探针响应时间,/>表示报文响应时间,/>是模糊测试用例报文的权重值:
即第一数值为1,第二数值为2,第三数值为3,第四数值为5。
根据被测设备对模糊测试用例报文的响应时间及状态赋予权重值,以用于创建更有效的数据并有助于发现更多可疑数据。通过收集第一轮模糊测试和第二轮模糊测试的结果,为模糊测试报文的各种类型的响应赋予相应的权重值。在有效响应临界时间限定的范围内,延时越严重的模糊测试用例报文,对应的权重值越大。
示例性实施例中,对于任意一个被测试字段,定义该被测试字段的测试用例权重配置树模型,如图3所示为测试用例权重配置树模型的示例,在该测试用例权重配置树模型中定义该被测试字段的总权重值、该被测试字段的模糊测试用例的总数、该被测试字段的平均权重值,并将该被测试字段的测试用例权重配置树模型初始化,即将总权重值、模糊测试用例的总数、平均权重值分别赋为初始值,例如零值。
在第二轮模糊测试过程中,实时更新被测试字段对应的测试用例权重配置树模型,记录该被测试字段的模糊测试用例报文的总数、总权重值和平均权重值。如下公式所示为一个被测试字段的总权重值和平均权重值的计算方式。其中,是统计该被测试字段的各模糊测试用例报文的六种异常响应状态得到的某种异常响应状态对应的模糊测试用例报文个数,/>是/>异常状态对应的权重值,/>是总权重值、/>是模糊测试用例报文的总数、/>是平均权重值。
步骤103,生成所述有效被测试字段对应的有效测试用例报文集合,所述有效测试用例报文集合用于对所述被测设备进行模糊测试。
其中,在第三轮模糊测试过程中,通过按照权重值筛选有效被测试字段,针对有效被测试字段重点进行变异,有目的地生成有效测试用例报文集合,以使得能够创建更多可能导致异常连接的模糊测试用例报文。第一轮模糊测试和第二轮模糊测试的模糊测试中模糊测试用例报文的变异方式相比,各被测试字段的模糊测试用例报文的发生概率相同。第三轮模糊测试中各被测试字段的变异的概率会根据第一轮模糊测试和第二轮模糊测试的测试结果赋予不同的权重,从而使某些突变发生的频率更高。与之前的测试结果相比,不仅能够多发现60%能够导致设备响应异常的数据,而且突出了可以触发这些响应状态的数据范围。
在一些实施例中,所述生成所述有效被测试字段对应的有效测试用例报文集合,包括:
对所述指定通信协议的报文中的至少两个所述有效被测试字段进行变异,将除所述至少两个所述有效测试字段之外的字段设为静态,得到有效测试用例报文集合。
示例性实施例中,第二轮模糊测试结束后,筛选各被测试字段对应的测试用例配置树模型,选择平均权重值最高的5个被测试字段作为有效被测试字段。然后重新初始化模糊测试模型,将除平均权重最高的5个被测试字段之外的字段均设置为静态,进行第三轮模糊测试。在第三轮模糊测试实现的是同时测试3个有效被测试字段,即一条模糊测试用例报文是对这3个有效被测试字段进行变异得到,即max_depth=3,从而使得通过一条模糊测试用例报文测试3个被测试字段,以此提升测试效率。
一个示例性实施例中,如图4和图5所示为基于权重反馈的WiFi协议模糊测试的方法流程示意图,主要包括以下步骤:
步骤401,获取WiFi协议的各被测试字段;
步骤402,为模糊测试模型配置模糊测试用例的变异策略;
步骤403,为各被测试字段初始化测试用例权重配置树模型;
步骤404,进行第一轮模糊测试;
步骤405,根据第一轮模式测试的结果定义权重边界,即第一极值和第二极值;
步骤406,进行第二轮模糊测试;
步骤407,根据第二轮模糊测试的结果计算各模糊测试用例报文的权重值,并实时更新被测试字段对应的测试用例权重配置树模型;
步骤408,根据各测试字段对应的测试用例权重配置树模型,筛选平均权重值高的若干字段作为有效被测试字段;
步骤409,进行第三轮模糊测试,该轮测试针对多个有效被测试字段同时进行模糊测试;
步骤410,获得模糊测试的最终结果。
本公开实施例中,对指定通信协议的各所述被测试字段分别生成对应的模糊测试用例报文集合,利用所述模糊测试用例报文集合,对被测设备进行针对所述指定通信协议的模糊测试,以通过模糊测试从所述各被测试字段中筛选有效被测试字段,从而通过对各被测试字段的模糊测试评价各被测试字段的有效性,进而从中筛选得到有效被测试字段,生成所述有效被测试字段对应的有效测试用例报文集合,将有效测试用例报文集合用于对被测设备进行模糊测试,从而优化了指定通信协议的模糊测试用例,使得最终用于模糊测试的模糊测试用例具有针对性、有效性更强,避免了采用大量无效模糊测试用例进行模糊测试,导致模糊测试效率下降的问题,提高了模糊测试效率。
通过实验结果获知,本公开实施例提供的模糊测试用例优化方法极大减少了模糊测试用例数量,模糊测试用例数量为已有模糊测试方法的3.6%,减少了96.7%以上的模糊测试用例。同时,获取日志进行可视化分析后得到,采用本公开实施例提供方法进行模糊测试用例优化之后,进行模糊测试的异常响应相较于已有模糊测试方法显著增加,能够显著提高模糊测试用例的有效性,提高了模糊测试效率。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本公开的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在本公开的保护范围内。
本公开实施例中提供了一种模糊测试用例优化装置,该装置的具体实施可参见方法实施例的相关描述,此处不再重述。图6所示为该装置的结构示意图,主要包括:
确定模块601,用于确定指定通信协议的各被测试字段;
筛选模块602,用于对各所述被测试字段分别生成对应的模糊测试用例报文集合,利用所述模糊测试用例报文集合,对被测设备进行针对所述指定通信协议的模糊测试,以通过模糊测试从各所述被测试字段中筛选有效被测试字段;
生成模块603,用于生成所述有效被测试字段对应的有效测试用例报文集合,所述有效测试用例报文集合用于对所述被测设备进行模糊测试。
本公开实施例提供的装置具有的功能或包含的模块可以用于执行方法实施例描述的方法,其具体实现和技术效果可参照上文方法实施例的描述,为了简洁,这里不再赘述。
需要说明的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本公开的创新部分,本实施方式中并没有将与解决本公开所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
参照图7,本公开实施例提供一种电子设备,其包括:
至少一个处理器701;
存储器702,其上存储有至少一个程序,当该至少一个程序被该至少一个处理器执行,使得该至少一个处理器实现上述方法;
至少一个I/O接口703,连接在处理器与存储器之间,配置为实现处理器与存储器的信息交互。
其中,处理器701为具有数据处理能力的器件,其包括但不限于中央处理器(CPU)等;存储器702为具有数据存储能力的器件,其包括但不限于随机存取存储器(RAM,更具体如SDRAM、DDR等)、只读存储器(ROM)、带电可擦可编程只读存储器(EEPROM)、闪存(FLASH);I/O接口(读写接口)703连接在处理器701与存储器702间,能实现处理器701与存储器702的信息交互,其包括但不限于数据总线(Bus)等。
在一些实施例中,处理器701、存储器702和I/O接口703通过总线相互连接,进而与计算设备的其它组件连接。
本实施例还提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本实施例提供的方法,为避免重复描述,在此不再赘述该方法的具体步骤。
本领域普通技术人员可以理解,上文中所申请方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本实施例的范围之内并且形成不同的实施例。
可以理解的是,以上实施方式仅仅是为了说明本公开的原理而采用的示例性实施方式,然而本公开并不局限于此。对于本领域内的普通技术人员而言,在不脱离本公开的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本公开的保护范围。
Claims (9)
1.一种模糊测试用例优化方法,其特征在于,包括:
确定指定通信协议的各被测试字段;
分别对各所述被测试字段执行以下处理:针对所述被测试字段生成第一模糊测试用例报文集合;利用所述第一模糊测试用例报文集合,对被测设备进行针对所述指定通信协议的第一轮模糊测试,根据第一轮模糊测试结果获取所述被测设备对所述第一模糊测试用例报文集合中各模糊测试用例报文的响应时间中的极值;针对所述被测试字段生成第二模糊测试用例报文集合;利用所述第二模糊测试用例报文集合,对所述被测设备进行针对所述指定通信协议的第二轮模糊测试,根据第二轮模糊测试结果获取所述第二模糊测试用例报文集合中的各模糊测试用例报文的响应时间;所述极值中包括第一极值和第二极值,所述第一极值为所述第一模糊测试用例报文集合中各模糊测试用例报文对应的接入点探针响应时间的最大值,所述第二极值为所述第一模糊测试用例报文集合中各模糊测试用例报文对应的报文响应时间的最大值;所述第二模糊测试用例报文集合中的各模糊测试用例报文的响应时间包括所述第二模糊测试用例报文集合中的各模糊测试用例报文对应的接入点探针响应时间和报文响应时间;
分别对每个所述被测试字段执行以下处理:根据所述被测试字段对应的所述第二模糊测试用例报文集合中各模糊测试用例报文的接入点探针响应时间以及接入点探针有效响应临界时间、报文响应时间以及报文有效响应临界时间,筛选响应有效的模糊测试用例报文,将响应无效的测试用例报文对应的权重值赋为零值;分别对所述第二模糊测试用例报文集合中的各响应有效的模糊测试用例报文执行以下权重赋值过程:将所述模糊测试用例报文的接入点探针响应时间与所述第一极值比较,获得第一比较结果;将所述模糊测试用例报文的报文响应时间与所述第二极值比较,获得第二比较结果;根据所述第一比较结果和所述第二比较结果确定所述模糊测试用例报文对应的权重值;
根据各所述被测试字段对应的所述第二模糊测试用例报文集合中的各模糊测试用例报文的权重值,从各所述被测试字段中筛选有效被测试字段;
生成所述有效被测试字段对应的有效测试用例报文集合,所述有效测试用例报文集合用于对所述被测设备进行模糊测试。
2.根据权利要求1所述的方法,其特征在于,所述对各所述被测试字段分别生成对应的模糊测试用例报文集合,包括:
分别对各所述被测试字段执行以下处理:
对所述指定通信协议的报文中的所述被测试字段进行至少一种变异,得到变异后的报文集合;
将所述变异后的报文集合作为所述被测试字段对应的模糊测试用例报文集合。
3.根据权利要求1所述的方法,其特征在于,所述确定指定通信协议的各被测试字段,包括:
收集所述被测设备支持的所述指定通信协议的信息,根据所述指定通信协议的信息确定各所述被测试字段;
和/或
捕获所述被测设备采用所述指定通信协议传输的报文,解析捕获的报文确定各所述被测试字段。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一比较结果和所述第二比较结果确定所述模糊测试用例报文对应的权重值,包括:
在所述第一比较结果为所述接入点探针响应时间小于所述第一极值,且所述第二比较结果为所述报文响应时间小于所述第二极值的情况下,确定所述模糊测试用例报文的权重值为第一数值;
在所述第一比较结果为所述接入点探针响应时间小于所述第一极值,以及所述第二比较结果为所述报文响应时间大于所述第二极值且小于所述报文有效响应临界时间的情况下,确定所述模糊测试用例报文的权重值为第二数值;
在所述第一比较结果为所述接入点探针响应时间大于所述第一极值且小于所述接入点探针有效响应临界时间,以及所述第二比较结果为所述报文响应时间小于所述第二极值的情况下,确定所述模糊测试用例报文的权重值为第三数值;
在所述第一比较结果为所述接入点探针响应时间大于所述第一极值且小于所述接入点探针有效响应临界时间,以及所述第二比较结果为所述报文响应时间大于所述第二极值且小于所述报文有效响应临界时间的情况下,确定所述模糊测试用例报文的权重值为第四数值;
所述第一数值、所述第二数值、所述第三数值和所述第四数值依次增大。
5.根据权利要求4所述的方法,其特征在于,所述根据各所述被测试字段对应的所述第二模糊测试用例报文集合中的各模糊测试用例报文的权重值,从各所述被测试字段中筛选有效被测试字段,包括:
分别对各所述被测试字段执行以下过程:获取所述被测试字段对应的所述模糊测试用例报文的总数,以及每个所述模糊测试用例报文对应的权重值;根据每个所述模糊测试用例报文对应的权重值确定所述被测试字段对应的总权重值;根据所述总权重值以及所述总数,确定所述被测试字段的平均权重值;
根据各所述被测试字段的平均权重值,从各所述被测试字段筛选不少于预设数量的有效被测试字段。
6.根据权利要求1所述的方法,其特征在于,所述生成所述有效被测试字段对应的有效测试用例报文集合,包括:
对所述指定通信协议的报文中的至少两个所述有效被测试字段进行变异,将除所述至少两个所述有效测试字段之外的字段设为静态,得到有效测试用例报文集合。
7.一种模糊测试用例优化装置,其特征在于,包括:
确定模块,用于确定指定通信协议的各被测试字段;
筛选模块,用于分别对各所述被测试字段执行以下处理:针对所述被测试字段生成第一模糊测试用例报文集合;利用所述第一模糊测试用例报文集合,对被测设备进行针对所述指定通信协议的第一轮模糊测试,根据第一轮模糊测试结果获取所述被测设备对所述第一模糊测试用例报文集合中各模糊测试用例报文的响应时间中的极值;针对所述被测试字段生成第二模糊测试用例报文集合;利用所述第二模糊测试用例报文集合,对所述被测设备进行针对所述指定通信协议的第二轮模糊测试,根据第二轮模糊测试结果获取所述第二模糊测试用例报文集合中的各模糊测试用例报文的响应时间;所述极值中包括第一极值和第二极值,所述第一极值为所述第一模糊测试用例报文集合中各模糊测试用例报文对应的接入点探针响应时间的最大值,所述第二极值为所述第一模糊测试用例报文集合中各模糊测试用例报文对应的报文响应时间的最大值;所述第二模糊测试用例报文集合中的各模糊测试用例报文的响应时间包括所述第二模糊测试用例报文集合中的各模糊测试用例报文对应的接入点探针响应时间和报文响应时间;分别对每个所述被测试字段执行以下处理:根据所述被测试字段对应的所述第二模糊测试用例报文集合中各模糊测试用例报文的接入点探针响应时间以及接入点探针有效响应临界时间、报文响应时间以及报文有效响应临界时间,筛选响应有效的模糊测试用例报文,将响应无效的测试用例报文对应的权重值赋为零值;分别对所述第二模糊测试用例报文集合中的各响应有效的模糊测试用例报文执行以下权重赋值过程:将所述模糊测试用例报文的接入点探针响应时间与所述第一极值比较,获得第一比较结果;将所述模糊测试用例报文的报文响应时间与所述第二极值比较,获得第二比较结果;根据所述第一比较结果和所述第二比较结果确定所述模糊测试用例报文对应的权重值;根据各所述被测试字段对应的所述第二模糊测试用例报文集合中的各模糊测试用例报文的权重值,从各所述被测试字段中筛选有效被测试字段;
生成模块,用于生成所述有效被测试字段对应的有效测试用例报文集合,所述有效测试用例报文集合用于对所述被测设备进行模糊测试。
8.一种电子设备,其特征在于,包括:
至少一个处理器;
存储器,其上存储有至少一个程序,当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现根据权利要求1-6中任意一项所述的方法;
至少一个I/O接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互。
9.一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现根据权利要求1-6中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311488351.7A CN117216772B (zh) | 2023-11-09 | 2023-11-09 | 模糊测试用例优化方法、装置、设备及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311488351.7A CN117216772B (zh) | 2023-11-09 | 2023-11-09 | 模糊测试用例优化方法、装置、设备及可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117216772A CN117216772A (zh) | 2023-12-12 |
CN117216772B true CN117216772B (zh) | 2024-03-08 |
Family
ID=89046717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311488351.7A Active CN117216772B (zh) | 2023-11-09 | 2023-11-09 | 模糊测试用例优化方法、装置、设备及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117216772B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117435506B (zh) * | 2023-12-15 | 2024-04-16 | 中兴通讯股份有限公司 | 模糊测试方法、电子设备及计算机可读存储介质 |
CN117472787B (zh) * | 2023-12-27 | 2024-03-15 | 山东泽鹿安全技术有限公司 | 车机模糊测试的测试用例生成方法、装置、介质和设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330601A (zh) * | 2016-08-19 | 2017-01-11 | 北京匡恩网络科技有限责任公司 | 测试用例生成方法及装置 |
CN109871332A (zh) * | 2019-03-05 | 2019-06-11 | 南方电网科学研究院有限责任公司 | 多功能电表通信协议测试用例的生成方法、装置及设备 |
CN110336827A (zh) * | 2019-07-15 | 2019-10-15 | 北京工业大学 | 一种基于异常字段定位的Modbus TCP协议模糊测试方法 |
CN113986712A (zh) * | 2021-09-10 | 2022-01-28 | 深圳开源互联网安全技术有限公司 | 一种基于http/2的模糊测试方法和装置 |
CN116094972A (zh) * | 2023-01-18 | 2023-05-09 | 重庆邮电大学 | 基于QRNN神经网络的Modbus TCP协议模糊测试方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9917924B2 (en) * | 2015-03-16 | 2018-03-13 | Keysight Technologies Singapore (Holdings) Pte. Ltd. | Methods, systems, and computer readable media for simplistic visual representation of complex interdependent network protocol fields for network protocol fuzzing and graphical framework for reporting instantaneous system level progress |
-
2023
- 2023-11-09 CN CN202311488351.7A patent/CN117216772B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330601A (zh) * | 2016-08-19 | 2017-01-11 | 北京匡恩网络科技有限责任公司 | 测试用例生成方法及装置 |
CN109871332A (zh) * | 2019-03-05 | 2019-06-11 | 南方电网科学研究院有限责任公司 | 多功能电表通信协议测试用例的生成方法、装置及设备 |
CN110336827A (zh) * | 2019-07-15 | 2019-10-15 | 北京工业大学 | 一种基于异常字段定位的Modbus TCP协议模糊测试方法 |
CN113986712A (zh) * | 2021-09-10 | 2022-01-28 | 深圳开源互联网安全技术有限公司 | 一种基于http/2的模糊测试方法和装置 |
CN116094972A (zh) * | 2023-01-18 | 2023-05-09 | 重庆邮电大学 | 基于QRNN神经网络的Modbus TCP协议模糊测试方法 |
Non-Patent Citations (1)
Title |
---|
基于协议状态机遍历的模糊测试优化方法;张洪泽 等;计算机工程与应用(第04期);第82-91页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117216772A (zh) | 2023-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117216772B (zh) | 模糊测试用例优化方法、装置、设备及可读介质 | |
US10873594B2 (en) | Test system and method for identifying security vulnerabilities of a device under test | |
US20120005743A1 (en) | Internal network management system, internal network management method, and program | |
US11861006B2 (en) | High-confidence malware severity classification of reference file set | |
CN112184091B (zh) | 工控系统安全威胁评估方法、装置和系统 | |
CN109063486B (zh) | 一种基于plc设备指纹识别的安全渗透测试方法与系统 | |
CN110768951B (zh) | 验证系统漏洞的方法及装置、存储介质、电子装置 | |
EP3748378A1 (en) | Methods for detecting system-level trojans and an integrated circuit device with system-level trojan detection | |
CN112003864B (zh) | 一种基于全流量的网站安全检测系统和方法 | |
CN111857965A (zh) | 内网威胁检测方法、装置、设备和计算机设备 | |
CN109460662B (zh) | 一种基于路径反馈的Javascript引擎模糊测试方法和装置 | |
CN110880983A (zh) | 基于场景的渗透测试方法及装置、存储介质、电子装置 | |
CN105302707A (zh) | 应用程序的漏洞检测方法和装置 | |
CN110765333A (zh) | 采集网站信息的方法及装置、存储介质、电子装置 | |
Choi et al. | Dissecting customized protocols: automatic analysis for customized protocols based on IEEE 802.15. 4 | |
US9654491B2 (en) | Network filtering apparatus and filtering method | |
CN116599747A (zh) | 一种网络与信息安全服务系统 | |
CN110768950A (zh) | 渗透指令的发送方法及装置、存储介质、电子装置 | |
CN108322456A (zh) | 一种防网络攻击的幻影设备建立方法、介质及设备 | |
CN115935356A (zh) | 一种软件安全性测试方法、系统及应用 | |
US11496502B2 (en) | Method and apparatus for generating attack string | |
CN112329021B (zh) | 一种排查应用漏洞的方法、装置、电子装置和存储介质 | |
CN114238987A (zh) | 一种智能网联汽车app渗透测试方法、系统及存储介质 | |
CN117544960B (zh) | 一种基于生成的自动化Wi-Fi协议模糊测试方法 | |
CN115189951B (zh) | 伪服务仿真检测攻击渗透方法、装置和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |