CN117061384A - 一种模糊测试方法、装置、设备及介质 - Google Patents
一种模糊测试方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117061384A CN117061384A CN202311035430.2A CN202311035430A CN117061384A CN 117061384 A CN117061384 A CN 117061384A CN 202311035430 A CN202311035430 A CN 202311035430A CN 117061384 A CN117061384 A CN 117061384A
- Authority
- CN
- China
- Prior art keywords
- tested
- test case
- tested equipment
- mutation
- service
- 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.)
- Pending
Links
- 238000010998 test method Methods 0.000 title abstract description 15
- 238000012360 testing method Methods 0.000 claims abstract description 282
- 230000035772 mutation Effects 0.000 claims abstract description 137
- 230000006854 communication Effects 0.000 claims abstract description 62
- 238000004891 communication Methods 0.000 claims abstract description 62
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000012544 monitoring process Methods 0.000 claims abstract description 28
- 230000004044 response Effects 0.000 claims description 35
- 230000002159 abnormal effect Effects 0.000 claims description 22
- 230000008859 change Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 16
- 238000001514 detection method Methods 0.000 claims description 12
- 230000004083 survival effect Effects 0.000 claims description 9
- 238000004458 analytical method Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 23
- 230000008569 process Effects 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 206010063385 Intellectualisation Diseases 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000035515 penetration Effects 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 102100036402 DAP3-binding cell death enhancer 1 Human genes 0.000 description 1
- 101100285518 Drosophila melanogaster how gene Proteins 0.000 description 1
- 101000929221 Homo sapiens DAP3-binding cell death enhancer 1 Proteins 0.000 description 1
- 206010033799 Paralysis Diseases 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000037435 normal mutation Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/14—Arrangements for monitoring or testing data switching networks using software, i.e. software packages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及网络安全技术领域,特别涉及一种模糊测试方法、装置、设备及介质,用以对使用VxWorks固件系统的智能设备进行模糊测试,提高的测试效率。所述方法,包括:获取被测设备的通讯参数,所述通讯参数至少包括:服务名称,所述被测设备为使用VxWorks固件系统的智能设备;根据所述服务名称,确定待测服务协议,获取所述待测服务协议相关联的变异策略,所述变异策略用于指示构造变异测试用例时进行变异的对象;利用所述变异策略,构建变异测试用例,并将所述变异测试用例,发送至所述被测设备;监测所述被测设备对所述变异测试用例进行解析时的运行状态。
Description
技术领域
本申请涉及网络安全技术领域,特别涉及一种模糊测试方法、装置、设备及介质。
背景技术
随着工业数字化、网络化、智能化的快速发展,工控系统、物联网系统、以及车联网系统,面临安全漏洞不断增多、安全威胁加速渗透、攻击手段复杂多样等新挑战。
VxWorks操作系统是美国Wind River公司于1983年设计开发的一种嵌入式实时操作系统,是嵌入式开发环境的关键组成部分,其以良好的可靠性和卓越的实时性,被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如工业控制、卫星通讯、军事演习、弹道制导、飞机导航等。
由于VxWorks固件运行环境本身的复杂特性,和其存在的物联网环境具有相对封闭的特点,传统的模糊测试技术并不能够很好的发挥作用,使得安全研究人员无法更加深入的挖掘设备的安全性问题。现阶段针对使用VxWorks固件系统的智能设备(如物联网设备、工控设备、以及车联网设备)的安全模糊测试技术,针对每个字段进行黑盒遍历,一方面,针对无用字段的逐个遍历,导致系统无法正常解析,另一方面,对协议的某些字段进行变异,导致通信错误,测试用例失效,因此,整个安全模糊测试的测试效率较低。
可见,相关技术中,针对使用VxWorks固件系统的智能设备的安全模糊测试技术,测试效率较低。
发明内容
本申请的目的是提供一种模糊测试方法、装置、设备及介质,用以对使用VxWorks固件系统的智能设备进行模糊测试,提高的测试效率。
第一方面,本申请提供一种模糊测试方法,包括:
获取被测设备的通讯参数,所述通讯参数至少包括:服务名称,所述被测设备为使用VxWorks固件系统的智能设备;
根据所述服务名称,确定待测服务协议,获取所述待测服务协议相关联的变异策略,所述变异策略用于指示构造变异测试用例时进行变异的对象;
利用所述变异策略,构建变异测试用例,并将所述变异测试用例,发送至所述被测设备;
监测所述被测设备对所述变异测试用例进行解析时的运行状态。
在一种可能的实施方式中,所述利用所述变异策略,构建变异测试用例,至少包括以下一种或多种:
若所述待测服务协议为远程过程调用(Remote Procedure Call,RPC)协议,针对预先构建的正常测试用例中的预设字段,遍历所述预设字段的取值,生成至少一个变异测试用例,其中,所述预设字段包括至少一个不影响测试用例解析的字段;
若所述待测服务协议为文件传输协议(File Transfer Protocol,FTP),则针对FTP控制帧中的控制命令字段,遍历FTP支持的命令,生成至少一个变异测试用例;
若所述待测服务协议为简单网络管理协议(Simple Network ManagementProtocol,SNMP),则针对所述被测设备中的可写节点,构建至少一个用于改变所述可写节点的控制数据的设置请求,将构建的设置请求作为变异测试用例。
在一种可能的实施方式中,若待测服务协议为SNMP,所述监测所述被测设备对所述变异测试用例进行解析时的运行状态,包括:
构建用于查询所述被测设备中特定表对象的Get-Request请求和Get-Next-Request请求;
将所述Get-Request请求和Get-Next-Request请求发送至所述被测设备;
若收到所述被测设备返回的Get-Response响应报文,确定所述被测设备运行正常,若未收到所述被测设备返回的Get-Response响应报文,则通过Socket通信探测所述被测设备是否运行正常。
在一种可能的实施方式中,若待测服务协议为RPC协议,所述将所述变异测试用例,发送至所述被测设备,包括:
在所述变异测试用例添加事务标识,将携带有事务标识的变异测试用例发送至所述被测设备,以使所述被测设备根据所述事务标识识别对所述变异测试用例的执行状态;
若未收到所述被测设备的响应、且响应超时,将携带有事务标识的变异测试用例重发至所述被测设备。
在一种可能的实施方式中,所述通信参数还包括:网络协议;
所述利用所述变异策略,构建变异测试用例,包括:
通过所述网络协议与所述被测设备建立通信连接;
向所述被测设备发送与所述待测服务协议对应的正常数据包;
在基于所述被测设备的响应,确定所述被测设备的端口号对应的服务端口正常、且所述待测服务协议正常可用时,利用所述变异策略,构建变异测试用例。
在一种可能的实施方式中,所述监测所述被测设备对所述变异测试用例进行解析时的运行状态,包括:
在所述被测设备对所述变异测试用例进行解析时,根据所述IP地址和所述端口号,与所述被测设备的VxWorks系统建立调试连接,并至少执行以下操作中的一种或多种:
获取所述被测设备中目标寄存器的当前寄存器值,将所述当前寄存器值与预先记录的初始寄存器值进行对比,若确定所述目标寄存器的值发生变化,则记录变化信息,以及所述被测设备当前解析的变异测试用例;
获取所述被测设备的程序计数器地址,获取所述程序计数器地址处内存的当前计数值,将所述当前计数值与预先记录的初始计数值进行对比,若确定所述程序计数器地址处内存的值发生变化,则记录变化信息,以及所述被测设备当前解析的变异测试用例;
构造正常RPC数据包,将所述正常RPC数据包发送至所述被测设备,若确定所述被测设备返回的响应值错误,或者在预设时长内未收到所述被测设备返回的响应消息,则确定所述被测设备中RPC服务崩溃,记录所述被测设备的RPC服务崩溃信息,以及所述被测设备当前解析的变异测试用例;
构造用于探测所述被测设备是否发生异常事件的事件询问请求包,将所述事件询问请求包发送至所述被测设备,接收所述被测设备返回的数据包并解析,根据解析结果确定所述被测设备发生异常事件时,记录所述异常事件的信息,以及所述被测设备当前解析的变异测试用例。
在一种可能的实施方式中,所述监测所述被测设备对所述变异测试用例进行解析时的运行状态,还包括:
针对所述被测设备中的系统服务进行存活检测,所述系统服务包括VxWorks系统服务和目标应用服务;
在确定所述被测设备中的系统服务崩溃时,向所述被测设备发送重启指令,重启崩溃的系统服务。
第二方面,本申请实施例提供一种模糊测试装置,包括:
获取单元,用于获取被测设备的通讯参数,所述通讯参数至少包括:服务名称,所述被测设备为使用VxWorks固件系统的智能设备;
第一处理单元,根据所述服务名称,确定待测服务协议,获取所述待测服务协议相关联的变异策略,所述变异策略用于指示构造变异测试用例时进行变异的对象;
第二处理单元,用于利用所述变异策略,构建变异测试用例,并将所述变异测试用例,发送至所述被测设备;
监测单元,用于监测所述被测设备对所述变异测试用例进行解析时的运行状态。
第三方面,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,实现第一方面所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面所述的方法。
本申请有益效果如下:
本申请实施例,获取被测设备的通讯参数后,根据通讯参数中的服务名称,确定待测服务协议,进而获取待测服务协议相关联的变异策略,此变异策略用于指示构造变异测试用例时进行变异的对象,利用变异策略,构建变异测试用例,并将变异测试用例,发送至被测设备,监测被测设备对变异测试用例进行解析时的运行状态,以对被测设备进行模糊测试,由于本申请实施例中,通过变异策略指示构造变异测试用例时进行变异的对象,因此,在构造变异测试用例时,能够根据预先对服务协议解析制定的变异策略,精准的对变异策略指示的对象进行变异,与现有技术中针对每个字段进行黑盒遍历相比,避免对无用字段变异导致的测试用例无法正常解析、以及对不可变异字段变异导致的通信错误,且能够减少变异的对象数量,提高测试效率,减少模糊测试需要分析的时间。
申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一种模糊测试方法的应用场景;
图2为本申请实施例一种RPC协议中重要字段的示意图;
图3为本申请实施例一种对FTP进行模糊测试的测试效果示意图;
图4为本申请实施例一种模糊测试方法的示意流程图;
图5为本申请实施例一种构建变异测试用例的示意流程图;
图6为本申请实施例一种监测被测设备对变异测试用例进行解析时的运行状态的示意流程图;
图7为本申请实施例一种模糊测试方法的整体流程的示意流程图;
图8为本申请实施例一种模糊测试装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部份实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
为了便于理解本申请实施例所提供的一种模糊测试方法、装置、设备及介质,下面对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
1、模糊测试,是一种通过向目标系统提供非预期的输入,并监视异常结果来发现软件漏洞的方法。
2、VxWorks系统,VxWorks操作系统是美国Wind River公司于1983年设计开发的,一种嵌入式实时操作系统,是嵌入式开发环境的关键组成部分。
黑盒测试,黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对产品界面、功能进行测试。
RPC,RPC的调用原理类似于三层构架的C/S系统,客户程序通过接口调用内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。
下面对本申请实施例的设计思想进行简要介绍:
随着工业数字化、网络化、智能化的快速发展,工控系统、物联网系统、以及车联网系统,面临安全漏洞不断增多、安全威胁加速渗透、攻击手段复杂多样等新挑战。
VxWorks操作系统是美国Wind River公司于1983年设计开发的一种嵌入式实时操作系统,是嵌入式开发环境的关键组成部分,其以良好的可靠性和卓越的实时性,被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如工业控制、卫星通讯、军事演习、弹道制导、飞机导航等。
由于VxWorks固件运行环境本身的复杂特性,和其存在的物联网环境具有相对封闭的特点,传统的模糊测试技术并不能够很好的发挥作用,使得安全研究人员无法更加深入的挖掘设备的安全性问题。现阶段针对使用VxWorks固件系统的智能设备(如物联网设备、工控设备、以及车联网设备)的安全模糊测试技术,针对每个字段进行黑盒遍历,一方面,针对无用字段的逐个遍历,导致系统无法正常解析,另一方面,对协议的某些字段进行变异,导致通信错误,测试用例失效,因此,整个安全模糊测试的测试效率较低。
可见,相关技术中,针对使用VxWorks固件系统的智能设备的安全模糊测试技术,测试效率较低。
有鉴于此,本申请实施例提供了一种模糊测试方法、装置、设备及介质。本申请实施例中,获取被测设备的通讯参数后,根据通讯参数中的服务名称,确定待测服务协议,进而获取待测服务协议相关联的变异策略,此变异策略用于指示构造变异测试用例时进行变异的对象,利用变异策略,构建变异测试用例,并将变异测试用例,发送至被测设备,监测被测设备对变异测试用例进行解析时的运行状态,以对被测设备进行模糊测试,由于本申请实施例中,通过变异策略指示构造变异测试用例时进行变异的对象,因此,在构造变异测试用例时,能够根据预先对服务协议解析制定的变异策略,精准的对变异策略指示的对象进行变异,与现有技术中针对每个字段进行黑盒遍历相比,避免对无用字段变异导致的测试用例无法正常解析、以及对不可变异字段变异导致的通信错误,且能够减少变异的对象数量,提高测试效率,减少模糊测试需要分析的时间。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
请参见图1所示,其为本申请实施例的应用场景示意图。该应用场景图中包括:被测设备10和测试终端11,其中:
被测设备10,可以是使用VxWorks固件系统的智能设备,例如,物联网设备、工控设备、以及车联网设备,本申请实施例对此不做限定。
测试终端11,与被测设备10通信连接,可以通过通信网络通信连接(如图1所示),也可以通过网线直接相连,本申请实施例对此不做限定。测试终端11可以安装用于对被测设备10进行模糊测试的应用客户端,该应用客户端可以基于模糊测试框架boofuzz开发,通过此应用客户端,获取被测设备10的通讯参数,其中,通讯参数包括:IP地址、端口号、以及服务名称,并根据服务名称,确定待测服务协议,获取待测服务协议相关联的变异策略,进而利用变异策略,对变异策略指示的对象进行变异,构建变异测试用例,基于IP地址和端口号,将变异测试用例,发送至被测设备,然后监测被测设备对变异测试用例进行解析时的运行状态,实现对被测设备10的模糊测试。
测试终端11可以是一种计算机设备,包括但不限于终端设备或服务器。换句话说,计算机设备可以是服务器或终端设备,也可以是服务器和终端设备组成的系统。其中,以上所提及的终端设备可以是一种电子设备,包括但不限于手机、平板电脑、台式电脑、及笔记本电脑等。
在一种可选的实施方式中,通信网络是有线网络或无线网络。需要说明的是,图1所示只是举例说明,实际上被测设备10和测试终端11的数量和通信方式均不受限制。
为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。方法在实际的处理过程中或者装置执行时,可按照实施例或者附图所示的方法顺序执行或者并执行。
在正式介绍本申请实施例提供的模糊测试方法之前,先对本申请实施例中服务协议关联的变异策略的设置方法进行介绍,其中,服务协议可以是目前使用的任一种服务协议,本申请实施例对此不做限定。本申请下述实施例中,以RPC协议、FTP、以及SNMP协议为例进行说明。
(1)RPC协议
随着分布式系统的普及,RPC已经成为一种非常常见的通信方式,RPC远程调用的流程大致可以分为以下几步:
1、客户端调用本地代理。RPC调用通常是使用客户端和服务端之间的代理来完成的,客户端调用本地代理,类似调用本地函数一样,编译器和工具会自动生成客户端代理,使得客户端无需手动编写网络通信代码。
2、代理将请求封装为数据包。代理将调用信息打包成数据包,并通过网络转发给服务端,在打包数据包之前,代理会将调用信息转换为网络友好的协议。例如,将调用参数封装成二进制格式。
3、数据包通过网络传输到服务端。步骤2中打包好的数据包,通过网络发送给服务端,其中,数据包可以使用一些常见的网络协议进行传输,比如超文本传输协议(HypertextTransfer Protocol,HTTP)、传输控制协议(Transmission Control Protocol,TCP)、用户数据报协议(User Datagram Protocol,UDP)等。
4、服务端解析数据包。服务端接收到数据包后,会对数据包进行解析,获取调用信息。解析过程类似于步骤2,需要将数据包转换回调用信息。
5、服务端调用本地函数。服务端通过调用本地函数实现对客户端的响应,具体地,根据调用信息,服务端会调用本地函数,并将调用参数传递给函数。函数可能会执行一些计算、查询数据库等操作。
6、服务端将响应值打包为数据包。服务端将函数的返回值封装为响应数据包,并通过网络返回给客户端。
7、数据包通过网络传输到客户端。服务端将响应数据包返回给客户端,客户端接收到数据包后进行解析,获取函数的返回值。
8、客户端处理响应值。客户端将响应数据包解析后,获取到函数的返回值,客户端可能会根据返回值执行一些特定的操作,例如,更新本地缓存。
总体而言,RPC远程调用的流程包含了客户端调用、数据打包、网络传输、服务端调用、数据打包和网络传输等多个阶段。通过使用代理、数据包和网络协议等技术,RPC调用可以在分布式系统中实现远程过程调用,使得开发者可以像调用本地函数一样调用远程函数。
VxWorks系统使用SUN-RPC(分布式应用程序接口)服务,在VxWorks系统中该服务监听在TCP/111及UDP/111端口。如图2所示,RPC协议中包含几个重要字段:事务标识符(transaction identifier,xid)、消息类型(message type,mtype)、RPC版本(rpcversion,rpcvers)、远程程序(remote program,prog)、远程程序版本(remote programversion,vers)、要调用的远程程序中的过程(the procedure within the remoteprogram to be called,proc)。
在构建变异测试用例时,有些字段可以正常变异来进行模糊测试,例如xid、proc、prog字段等;但是有些字段不可以变异来进行模糊测试,例如,mtype、rpcvers、vers字段。RPC版本字段它应该常等于预设值,例如2,3等,类似于这种字段如果变异后,会影响到RPC协议的正常解析,导致服务端无法正常识别协议内容,造成无效测试。
因此,针对RPC协议,在设置RPC协议关联的变异策略时,可以将可以正常变异进行模糊测试的字段,作为变异策略指示的变异对象。通过变异策略指示在对RPC协议进行模糊测试时,对变异策略中指示的字段进行变异。
(2)FTP
FTP是用于在网络上进行文件传输的一套标准协议。使用TCP传输,客户在和服务器建立连接前,要经过一个“三次握手”的过程,保证客户与服务器之间的连接是可靠的,而且是面向连接,为数据传输提供可靠保证。
FTP允许用户以文件操作的方式(例如文件的增、删、改、查、传送等)与另一主机相互通信,实现用户往返传输文件、目录管理以及访问文件等,即使双方计算机可能配有不同的操作系统和文件存储方式。
对于FTP协议的模糊测试,需要使用用户名密码认证,在认证通过之后基于FTP支持的命令,对可变异的字段遍历FTP支持的命令,生成变异测试用例发送至被测设备。
目前支持ABOR、ACCT、ALLO、APPE、CWD、DELE、HELP、LIST、MODE、NLST、NOOP、PASS、PASV、PORT、QUIT、REIN、REST、RETR、RNFR、RNTO、SITE、STAT、STOR、STRU、TYPE、USER命令。
具体测试效果,如图3所示,在区域30通过用户名和密码认证通过连接成功后,可以发送命令进行模糊测试,并在区域31中显示测试结果。
因此,针对FTP,在设置FTP关联的变异策略时,可以将FTP支持的变异命令,作为变异策略指示的变异对象。通过变异策略指示在对FTP进行模糊测试时,能够进行变异的变异命令。
(3)SNMP
VxWorks系统支持安装SNMP服务,现如今越来越多的设备默认开启了SNMP服务,并且支持SNMP写操作,设备使用了默认的SNMP Community值,从而导致开启SNMP服务的设备存在数据被篡改、覆盖、以及被大量可写数据攻击致瘫痪的风险。
对于SNMP的模糊测试,重点在于测试SNMP写操作的数据,是否进行有效的校验。例如,某设备支持通过SNMP写操作,来修改设备网卡的媒体存取控制(Media AccessControl,MAC)地址,但是没有对MAC地址的长度进行校验,只要传入过长或者过短的MAC地址都会造成设备瘫痪。还有些设备的网卡可以通过SNMP写操作来开启和禁用,这样直接就会造成设备的网络中断影响业务。
此外通常还会有其自定义的私有OID节点,这些节点也很可能会存在一些安全问题,导致设备出现各种预期外的异常。SNMP模糊测试时,通过发送可写OID节点的SNMP Set-Request设置请求,去改变被测设备可写OID节点控制的数据。
因此,针对SNMP,在设置SNMP关联的变异策略时,可以可写OID节点,作为变异策略指示的变异对象。通过变异策略指示在对SNMP进行模糊测试时,对可写OID节点生成设置请求作为变异测试用例。
在介绍完本申请实施例针对每种服务协议设置的变异策略之后,结合图4对本申请实施例提供的模糊测试方法进行说明。图4示出了本申请实施例提供的一种模糊测试方法的流程图。如图4所示,该方法可以包括如下步骤:
S401,获取被测设备的通讯参数,通讯参数至少包括:服务名称,被测设备为使用VxWorks固件系统的智能设备。
具体实施时,获取被测设备的通讯参数之后,可以通过socket(套接字,计算机术语,是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象)与被测设备之间进行通讯,进而对被测设备在组装、解析通讯协议的过程中是否存在漏洞进行测试。其中,通讯参数至少包括被测设备的服务名称,还可以包括:被测设备的网际互联协议(InternetProtocol,IP)地址,被测设备的端口号,被测设备使用的网络协议,以及端口的响应超时时间等参数,本申请实施例对此不做限定。
实际应用中,被测设备的通讯参数,可以从被测设备获取,也可以由用户输入,本申请实施例对此不做限定。
S402,根据服务名称,确定待测服务协议,获取待测服务协议相关联的变异策略,变异策略用于指示构造变异测试用例时进行变异的对象。
具体在根据服务名称,确定待测服务协议时,可以将获取到的服务名称与预先存储的服务协议进行匹配,若匹配成功,则可以确定待测服务协议为预先存储的服务协议中,与获取到的服务名称相匹配的服务协议,若匹配不成功,则记录错误日志,并结束此次模糊测试。
其中,预先存储的服务协议,可以包括但不限于:RPC协议、FTP、以及SNMP,还可以有其他服务协议,本申请实施例中以RPC协议、FTP、以及SNMP为例进行说明。
在一个示例中,假设预先存储的服务协议为:RPC协议和FTP,获取到的服务名称为RPC,则由于服务名称RPC与RPC协议匹配,则确定待测服务协议为RPC协议。
本申请实施例,针对每种服务协议,均预先关联变异策略,因此,在根据服务名称确定待测服务协议之后,即可获取待测服务协议关联的变异策略,进而利用变异策略,根据变异策略的指示,构造变异测试用例。
具体实施时,获取的通信参数中还包括:网络协议。为了提高整体模糊测试的效率,避免不必要的发包测试,本申请实施例在利用变异策略,根据变异策略的指示,构造变异测试用例之前,还可以通过网络协议与被测设备建立通信连接,向被测设备发送与待测服务协议对应的正常数据包,在基于被测设备的响应,确定被测设备的端口号对应的服务端口正常、且待测服务协议正常可用时,再构建变异测试用例进行模糊测试,当然,如果确定被测设备的端口号对应的服务端口异常,或者待测服务协议不可用时,此时无法进行模糊测试,则记录日志,并结束此次模糊测试。
S403,利用变异策略,构建变异测试用例,并将变异测试用例,发送至被测设备。
需要说明的是,将变异测试用例,发送至被测设备时,可以采用多种方式,本申请实施例对此不做限定。例如,可以基于预先获取的通讯参数确定被测设备的通讯地址,将变异测试用例,发送至被测设备。具体地,若通讯参数中包括被测设备的IP地址和端口号,则基于被测设备的IP地址和端口号,确定被测设备的通讯地址,将变异测试用例发送至被测设备;再例如,如果测试终端和被测设备通过网线直接相连,则可以直接通过网线将测试用例发送至被测设备。
具体实施时,利用变异策略,构建变异测试用例,也即根据变异策略的指示,构建变异测试用例,对于不同的待测服务协议,由于变异策略的不同,构建变异测试用例的方式也存在不同,例如:
若待测服务协议为RPC协议,变异策略中指示有可以变异的字段,则针对预先构建的正常测试用例中的可以变异的字段,遍历预设字段的取值,生成至少一个变异测试用例。
若待测服务协议为FTP,变异策略中指示有变异时支持的FTP命令,则针对FTP控制帧中的控制命令字段,遍历FTP支持的命令,生成至少一个变异测试用例。
若待测服务协议为SNMP,变异策略中指示有可写OID节点,则针对被测设备中的可写OID节点,构建至少一个用于改变可写OID节点的控制数据的设置请求,将构建的设置请求作为变异测试用例。
需要说明的是,本申请实施例中,利用服务协议预先关联的变异策略,构建变异测试用例的思路,同样适用于其他服务协议,此处仅以RPC协议、FTP和SNMP为例进行说明,其他服务协议并未一一列举。应当理解的是,针对其他服务协议,同样可以根据服务协议的特性,预先设置关联的变异策略,并利用服务协议关联的变异策略,构建变异测试用例。
实际模糊测试中,构建变异测试用例之后,即可基于通讯参数中的IP地址和端口号,将测试用例封装成对应的数据包,发送至被测设备,本申请实施例对此不再赘述。需要说明的是,构建的变异测试用例,可以是一个,也可以是多个,本申请实施例对此不做限定。
下面结合图5对本申请实施例中构建变异测试用例的过程进行详细说明,如图5所示,构建变异测试用例的具体过程,包括:
步骤501,获取被测设备的通讯参数,其中,通讯参数包括:被测设备的IP地址、端口号、服务名称、以及网络协议。
步骤502,根据服务名称,识别待测服务协议,若识别出待测服务协议,则执行步骤503,否则执行步骤506。
步骤503,在识别出待测服务协议之后,基于网络协议与被测设备建立通信连接,判断被测设备的端口以及服务协议的服务状态是否正常,如果端口和服务协议的服务状态均正常,则执行步骤504,否则执行步骤506。
步骤504,获取待测服务协议相关联的变异策略。在预先设置的服务协议关联的变异策略中,获取待测服务协议相关联的变异策略。
步骤505,利用变异策略,构造变异测试用例,进行模糊测试。
步骤506,若未识别待测服务协议、或者被测设备的端口以及服务协议中任意一个服务异常,则记录错误日志,并结束此次模糊测试。
S404,监测被测设备对变异测试用例进行解析时的运行状态。
具体实施时,监测被测设备对变异测试用例进行解析时的运行状态,相关技术中传统的存活探测方法,无法准确识别VxWorks系统的服务是否正常运作,从而导致检测失效、测试效率低下等问题。具体来说:
一方面,大部分对于VxWorks系统的存活检测,还是使用ping包探测,来测试系统、服务是否崩溃,但有些测试用例payload(数据帧中的原始数据)会导致服务崩溃,但其影响并不足以使系统崩溃,从而导致存活探测不准确,漏报有效测试用例。
另一方面,对于VxWorks系统异常监控的检测手段,通常使用WDBRPC协议46功能码来捕获异常崩溃事件,但是这种方式会有漏报,并且对于没有导致服务异常的测试用例难以检测,最终漏掉有可能存在漏洞隐患的测试用例(例如内存越界等问题)。
鉴于使用VxWorks系统的智能,数据获取技术是在智能设备运行过程中,通过WDBRPC端口的内存监控实现的运行时实时信息收集技术,其主要通过对VxWorks系统固件探针的获取,对执行流程信息进行收集。本申请实施例监测被测设备对变异测试用例进行解析时的运行状态时,基于WDBRPC协议进行监测,此协议用于VxWorks系统固件的开发过程,测试人员进行远程调式使用的端口,这个端口提供很多的功能,比如远程获取VxWorks的版本信息、远程直接读写VxWroks系统的内存、重启VxWorks系统等。
具体实施时,在被测设备对变异测试用例进行解析时,根据IP地址和端口号,与被测设备的VxWorks系统建立调试连接,获取被测设备对变异测试用例解析时的数据,并至少执行以下操作中的一种或多种:
操作1、获取被测设备中目标寄存器的当前寄存器值,将当前寄存器值与预先记录的初始寄存器值进行对比,若确定目标寄存器的值发生变化,则记录变化信息,以及被测设备当前解析的变异测试用例。
实际应用中,根据RPC服务任务tPortmapd的初始加载地址,使用WDBRPC协议的0x28功能码,远程获取tPortmapd任务的寄存器值,记录如edi、esi、ebp、esp、eax、ebx、ecx、edx、eflags、pc这些关键寄存器例,在每次发送完变异测试用例后重新获取关键寄存器的值,并与前次记录值对比。如果发生数值变化,则本地日志记录变动信息与被测设备当前解析的变异测试用例,否则继续执行操作2。
操作2、获取被测设备的程序计数器地址,获取程序计数器地址处内存的当前计数值,将当前计数值与预先记录的初始计数值进行对比,若确定程序计数器地址处内存的值发生变化,则记录变化信息,以及被测设备当前解析的变异测试用例。
实际应用中,根据操作1获取到的程序计数器地址(PC寄存器),使用WDBRPC协议的0x10功能码,远程读取该范围段的内存初始值。在每次发送完变异测试用例后,立即重新获取程序计数器对应地址处内存的值,并与前次记录值对比,如果发生数值变化,则本地日志记录变动信息,以及被测设备当前解析的变异测试用例,否则继续执行操作3。
操作3、构造正常RPC数据包,将正常RPC数据包发送至被测设备,若确定被测设备返回的响应值错误,或者在预设时长内未收到被测设备返回的响应消息,则确定被测设备中RPC服务崩溃,记录被测设备的RPC服务崩溃信息,以及被测设备当前解析的变异测试用例。其中,预设时长可以根据经验值设定,例如,设置为6秒以上,7秒或者10秒等。
实际应用中,按照协议规约,构造正常的远程过程调用RPC数据包,发送至被测设备的VxWorks系统,并接收返回值,解析对比返回值,如果正常回应、没有异常报错信息,则说明目前VxWorks系统RPC服务任务tPortmapd处于正常状态,可继续运行程序,继续执行操作4;如果返回值错误或预设时长内(6s以上,7秒或者10秒)不予回应,则判断RPC服务任务tPortmapd崩溃,此时打印信息,通过本地数据日志,记录被测设备的RPC服务崩溃信息,存储被测设备当前解析的变异测试用例。
操作4、构造用于探测被测设备是否发生异常事件的事件询问请求包,将事件询问请求包发送至被测设备,接收被测设备返回的数据包并解析,根据解析结果确定被测设备发生异常事件时,记录异常事件的信息,以及被测设备当前解析的变异测试用例。
实际应用中,使用WDBRPC协议0x46功能码,通过通信协议规约,构造事件询问请求包,接收并解析返回数据包,返回的数据包前8位字节中包含事件号。根据解析出来的事件号来匹配异常向量表、判断是否存在下表1中的事件号,从而对发生异常的事件类型异常捕获,如遇异常事件,打印信息,通过本地数据日志,记录异常事件的信息,存储被测设备当前解析的变异测试用例,否则继续执行操作1。
事件类型 | 事件号 |
IN_DIVIDE_ERROR | 0 |
IN_DEBUG | 1 |
IN_NON_MASKABLE | 2 |
IN_BREAKPOINT | 3 |
IN_OVERFLOW | 4 |
IN_BOUND | 5 |
IN_INVALID_OPCODE | 6 |
IN_NO_DEVICE | 7 |
IN_DOUBLE_FAULT | 8 |
IN_CP_OVERRUN | 9 |
IN_INVALID_TSS | 10 |
IN_NO_SEGMENT | 11 |
IN_STACK_FAULT | 12 |
IN_PROTECTION_FAULT | 13 |
IN_PAGE_FAULT | 14 |
IN_RESERVED | 15 |
IN_CP_ERROR | 16 |
IN_ALIGNMENT | 17 |
IN_MACHINE_CHECK | 18 |
IN_SIMD | 19 |
表1
最后,为了防止被测设备系统崩溃或者被测设备中的目标应用服务崩溃,监测被测设备对变异测试用例进行解析时的运行状态,还包括:针对被测设备中的系统服务进行存活检测,系统服务包括VxWorks系统服务和目标应用服务,在确定被测设备中的系统服务崩溃时,向被测设备发送重启指令,重启崩溃的系统服务。
需要说明的是,目标应用服务是指运行在被测设备的VxWorks系统中,用于对服务协议进行解析的服务。本申请实施例中,对被测设备进行模糊测试,其目的就是测试被测设备中的VxWorks系统,能否正确解析变异测试用例,也即目标应用服务能否正确解析变异测试用例,故本申请实施例在进行模糊测试时,被测设备中的目标应用服务对变异测试用例进行解析,此时可能导致目标应用服务崩溃,VxWorks系统中其他服务不受影响,仍可正常使用,也可能导致VxWorks系统全部崩溃,VxWorks系统中所有服务都不能正常使用。
实际应用中,针对VxWorks系统服务进行存活检测,如果正常则继续执行上述操作1-操作4;如果发现系统服务崩溃,则记录当前正在解析的变异测试用例,然后通过telnet发送重启指令,使得系统服务重新启动,服务恢复正常,继续新一轮的模糊测试。
下面结合图6对本申请实施例中,监测被测设备对变异测试用例进行解析时的运行状态的具体过程进行详细说明。如图6所示,包括以下步骤:
步骤601,获取被测设备解析变异测试用例时的运行数据。
步骤602,查看寄存器的值是否发生变化,如果寄存器的值与寄存器的初始值相比,发生变化,则通过本地日志记录变化信息以及当前正在解析的变异测试用例,否则执行步骤606。无论寄存器的值是否发生变化,执行完步骤602之后,均执行步骤603。
步骤603,查看关键内存区间,如程序计数器地址处内存的值是否发生变化,如果程序计数器地址处内存的值与初始值相比,发生变化,则通过本地日志记录变化信息,以及当前正在解析的变异测试用例,否则执行步骤606。无论内存的值是否发生变化,执行完步骤603之后,均执行步骤604。
步骤604,向Vxworks系统发送正常的RPC包,解析确定Vxworks系统的回应是否正常,如果响应正常,则继续执行步骤605,如果响应异常,则执行步骤606,通过本地日志记录被测设备的RPC服务崩溃信息,以及当前正在解析的变异测试用例,然后执行步骤605。
步骤605,向Vxworks系统发送事件询问请求包,解析Vxworks系统返回的数据包,确定是否发生异常事件,如果发生异常事件,则执行步骤606,通过本地日志记录异常事件的信息,以及当前正在解析的变异测试用例,否则继续执行步骤602。
步骤606,打印信息,同时通过本地日志记录数据日志。
步骤607,对系统服务进行存活探测,判断系统服务是否崩溃,如果系统服务崩溃,则执行步骤608,否则继续执行步骤602。
步骤608,在探测到系统服务崩溃时,发送重启指令,重启系统服务,并继续执行步骤602。
通过以上对本申请实施例的介绍,本申请实施例通过对VxWorks系统的常见网络协议(RPC协议、FTP、SNMP等)的分析,通过变异策略指示每种服务协议构造变异测试用例时的变异对象,与相关技术中对每个字段进行黑盒遍历相比,提高了测试效率,减少了模糊测试需要分析的时间。同时,本申请实施例对被测设备运行状态的监测,通过多种技术手段(内存、寄存器、RPC协议状态等)判断被测设备状态的变化,配合自动记录重启操作,降低了状态监控的误报度,提高了模糊测试的效率。
另外,具体实施时,若待测服务协议为SNMP,监测被测设备对变异测试用例进行解析时的运行状态时,本申请实施例还可以,构建用于查询被测设备中特定表对象的Get-Request请求和Get-Next-Request请求,将Get-Request请求和Get-Next-Request请求发送至被测设备,若收到被测设备返回的Get-Response响应报文,确定被测设备运行正常,若未收到被测设备返回的Get-Response响应报文,则通过Socket通信探测被测设备是否运行正常。
为了提高测试效率,若待测服务协议为RPC协议,将变异测试用例,发送至被测设备时,还可以在变异测试用例添加事务标识,将携带有事务标识的变异测试用例发送至被测设备,以使被测设备根据事务标识识别对变异测试用例的执行状态,若未收到被测设备的响应、且响应超时,将携带有事务标识的变异测试用例重发至被测设备。
实际应用中,由于传输的独立性,RPC协议不会为远程过程或其执行附加特定的语义,语义可以从底层传输协议中推断出来,但应该由底层传输协议明确指定。例如,假设RPC运行在一个不可靠的传输之上,如果应用程序在响应超时后(一段时间内未收到响应,例如,5秒内未收到)重新发送RPC消息,但没有收到回复,则只能推断该过程执行了零次或多次,如果应用程序确实收到了回复,则可以推断该过程至少执行了一次。
为了减少RPC请求被执行的次数,提高测试效率,使被测设备记住之前已处理的RPC请求,而不重复处理,以确保在一定程度上最多执行一次语义,可以通过使用与每个RPC请求打包的事务标识(Identity document,ID)来实现这一点。
具体地,在测试用例中添加事务ID,在重新传输请求时选择重用分配的事务ID。被测设备针对重复事务ID的RPC请求,可以仅执行一次,被测设备还可以按照事务ID的顺序执行RPC请求,且被测设备不允许以任何其他方式检查此事务ID,除非是作为相等性测试。
下面结合图7,对本申请实施例提供的模糊测试方法,进行整体详细的说明,如图7所示,包括:在进行模糊测试时,先基于服务协议通信规约(例如,SunRPC协议通信规约、FTP通信规约、以及SNMP通信规约),构建正常的测试用例,然后对测试用例进行解析,根据服务协议相关联的变异策略,对测试用例进行变异处理,生成变异测试用例,对变异测试用例进行消息有效性检查之后,通过网络发包工具将变异测试用例发送至VxWorks系统解析,并通过WDB监视器监测VxWorks系统对变异测试用例解析时的运行状态。
基于同一发明构思,本申请实施例提供一种模糊测试装置,如图8所示,包括:
获取单元801,用于获取被测设备的通讯参数,通讯参数至少包括:服务名称,被测设备为使用VxWorks固件系统的智能设备。
第一处理单元802,根据服务名称,确定待测服务协议,获取待测服务协议相关联的变异策略,变异策略用于指示构造变异测试用例时进行变异的对象。
第二处理单元803,用于利用变异策略,构建变异测试用例,并将变异测试用例,发送至被测设备。
监测单元804,用于监测被测设备对变异测试用例进行解析时的运行状态。
在一种可能的实施方式中,第二处理单元803用于构建变异测试用例:
若待测服务协议为RPC协议,针对预先构建的正常测试用例中的预设字段,遍历预设字段的取值,生成至少一个变异测试用例,其中,预设字段包括至少一个不影响测试用例解析的字段;
若待测服务协议为FTP,则针对FTP控制帧中的控制命令字段,遍历FTP支持的命令,生成至少一个变异测试用例;
若待测服务协议为SNMP,则针对被测设备中的可写节点,构建至少一个用于改变可写节点的控制数据的设置请求,将构建的设置请求作为变异测试用例。
在一种可能的实施方式中,若待测服务协议为SNMP,监测单元804具体用于:
构建用于查询被测设备中特定表对象的Get-Request请求和Get-Next-Request请求;
将Get-Request请求和Get-Next-Request请求发送至被测设备;
若收到被测设备返回的Get-Response响应报文,确定被测设备运行正常,若未收到被测设备返回的Get-Response响应报文,则通过Socket通信探测被测设备是否运行正常。
在一种可能的实施方式中,若待测服务协议为RPC协议,第二处理单元803,具体用于:
在变异测试用例添加事务标识,将携带有事务标识的变异测试用例发送至被测设备,以使被测设备根据事务标识识别对变异测试用例的执行状态;
若未收到被测设备的响应、且响应超时,将携带有事务标识的变异测试用例重发至被测设备。
在一种可能的实施方式中,通信参数还包括:网络协议;第二处理单元803,具体用于:
通过网络协议与被测设备建立通信连接;
向被测设备发送与待测服务协议对应的正常数据包;
在基于被测设备的响应,确定被测设备的端口号对应的服务端口正常、且待测服务协议正常可用时,利用变异策略,构建变异测试用例。
在一种可能的实施方式中,监测单元804具体用于:
在被测设备对变异测试用例进行解析时,根据IP地址和端口号,与被测设备的VxWorks系统建立调试连接,并至少执行以下操作中的一种或多种:
获取被测设备中目标寄存器的当前寄存器值,将当前寄存器值与预先记录的初始寄存器值进行对比,若确定目标寄存器的值发生变化,则记录变化信息,以及被测设备当前解析的变异测试用例;
获取被测设备的程序计数器地址,获取程序计数器地址处内存的当前计数值,将当前计数值与预先记录的初始计数值进行对比,若确定程序计数器地址处内存的值发生变化,则记录变化信息,以及被测设备当前解析的变异测试用例;
构造正常RPC数据包,将正常RPC数据包发送至被测设备,若确定被测设备返回的响应值错误,或者在预设时长内未收到被测设备返回的响应消息,则确定被测设备中RPC服务崩溃,记录被测设备的RPC服务崩溃信息,以及被测设备当前解析的变异测试用例;
构造用于探测被测设备是否发生异常事件的事件询问请求包,将事件询问请求包发送至被测设备,接收被测设备返回的数据包并解析,根据解析结果确定被测设备发生异常事件时,记录异常事件的信息,以及被测设备当前解析的变异测试用例。
在一种可能的实施方式中,监测单元804还用于:
针对被测设备中的系统服务进行存活检测,系统服务包括VxWorks系统服务和目标应用服务;
在确定被测设备中的系统服务崩溃时,向被测设备发送重启指令,重启崩溃的系统服务。
基于同一发明构思,本申请实施例提供一种电子设备,包括存储器和处理器,存储器上存储有可在处理器上运行的计算机程序,当计算机程序被处理器执行时,实现上述实施例中的任一项模糊测试方法。
基于同一发明构思,本申请实施例提供一种计算机可读存储介质,当存储介质中的指令由处理器执行时,使得处理器能够执行上述实施例中的任一项模糊测试方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种模糊测试方法,其特征在于,包括:
获取被测设备的通讯参数,所述通讯参数至少包括:服务名称,所述被测设备为使用VxWorks固件系统的智能设备;
根据所述服务名称,确定待测服务协议,获取所述待测服务协议相关联的变异策略,所述变异策略用于指示构造变异测试用例时进行变异的对象;
利用所述变异策略,构建变异测试用例,并将所述变异测试用例,发送至所述被测设备;
监测所述被测设备对所述变异测试用例进行解析时的运行状态。
2.根据权利要求1所述的方法,其特征在于,所述利用所述变异策略,构建变异测试用例,至少包括以下一种或多种:
若所述待测服务协议为RPC协议,针对预先构建的正常测试用例中的预设字段,遍历所述预设字段的取值,生成至少一个变异测试用例,其中,所述预设字段包括至少一个不影响测试用例解析的字段;
若所述待测服务协议为FTP,则针对FTP控制帧中的控制命令字段,遍历FTP支持的命令,生成至少一个变异测试用例;
若所述待测服务协议为SNMP,则针对所述被测设备中的可写节点,构建至少一个用于改变所述可写节点的控制数据的设置请求,将构建的设置请求作为变异测试用例。
3.根据权利要求2所述的方法,其特征在于,若待测服务协议为SNMP,所述监测所述被测设备对所述变异测试用例进行解析时的运行状态,包括:
构建用于查询所述被测设备中特定表对象的Get-Request请求和Get-Next-Request请求;
将所述Get-Request请求和Get-Next-Request请求发送至所述被测设备;
若收到所述被测设备返回的Get-Response响应报文,确定所述被测设备运行正常,若未收到所述被测设备返回的Get-Response响应报文,则通过Socket通信探测所述被测设备是否运行正常。
4.根据权利要求2所述的方法,其特征在于,若待测服务协议为RPC协议,所述将所述变异测试用例,发送至所述被测设备,包括:
在所述变异测试用例添加事务标识,将携带有事务标识的变异测试用例发送至所述被测设备,以使所述被测设备根据所述事务标识识别对所述变异测试用例的执行状态;
若未收到所述被测设备的响应、且响应超时,将携带有事务标识的变异测试用例重发至所述被测设备。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述通信参数还包括:网络协议;
所述利用所述变异策略,构建变异测试用例,包括:
通过所述网络协议与所述被测设备建立通信连接;
向所述被测设备发送与所述待测服务协议对应的正常数据包;
在基于所述被测设备的响应,确定所述被测设备的端口号对应的服务端口正常、且所述待测服务协议正常可用时,利用所述变异策略,构建变异测试用例。
6.根据权利要求1所述的方法,其特征在于,所述监测所述被测设备对所述变异测试用例进行解析时的运行状态,包括:
在所述被测设备对所述变异测试用例进行解析时,根据所述IP地址和所述端口号,与所述被测设备的VxWorks系统建立调试连接,并至少执行以下操作中的一种或多种:
获取所述被测设备中目标寄存器的当前寄存器值,将所述当前寄存器值与预先记录的初始寄存器值进行对比,若确定所述目标寄存器的值发生变化,则记录变化信息,以及所述被测设备当前解析的变异测试用例;
获取所述被测设备的程序计数器地址,获取所述程序计数器地址处内存的当前计数值,将所述当前计数值与预先记录的初始计数值进行对比,若确定所述程序计数器地址处内存的值发生变化,则记录变化信息,以及所述被测设备当前解析的变异测试用例;
构造正常RPC数据包,将所述正常RPC数据包发送至所述被测设备,若确定所述被测设备返回的响应值错误,或者在预设时长内未收到所述被测设备返回的响应消息,则确定所述被测设备中RPC服务崩溃,记录所述被测设备的RPC服务崩溃信息,以及所述被测设备当前解析的变异测试用例;
构造用于探测所述被测设备是否发生异常事件的事件询问请求包,将所述事件询问请求包发送至所述被测设备,接收所述被测设备返回的数据包并解析,根据解析结果确定所述被测设备发生异常事件时,记录所述异常事件的信息,以及所述被测设备当前解析的变异测试用例。
7.根据权利要求6所述的方法,其特征在于,所述监测所述被测设备对所述变异测试用例进行解析时的运行状态,还包括:
针对所述被测设备中的系统服务进行存活检测,所述系统服务包括VxWorks系统服务和目标应用服务;
在确定所述被测设备中的系统服务崩溃时,向所述被测设备发送重启指令,重启崩溃的系统服务。
8.一种模糊测试装置,其特征在于,包括:
获取单元,用于获取被测设备的通讯参数,所述通讯参数至少包括:服务名称,所述被测设备为使用VxWorks固件系统的智能设备;
第一处理单元,根据所述服务名称,确定待测服务协议,获取所述待测服务协议相关联的变异策略,所述变异策略用于指示构造变异测试用例时进行变异的对象;
第二处理单元,用于利用所述变异策略,构建变异测试用例,并将所述变异测试用例,发送至所述被测设备;
监测单元,用于监测所述被测设备对所述变异测试用例进行解析时的运行状态。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,实现权利要求1~7中任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,其特征在于:所述计算机程序被处理器执行时,实现权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311035430.2A CN117061384A (zh) | 2023-08-16 | 2023-08-16 | 一种模糊测试方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311035430.2A CN117061384A (zh) | 2023-08-16 | 2023-08-16 | 一种模糊测试方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117061384A true CN117061384A (zh) | 2023-11-14 |
Family
ID=88654862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311035430.2A Pending CN117061384A (zh) | 2023-08-16 | 2023-08-16 | 一种模糊测试方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117061384A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117453573A (zh) * | 2023-12-22 | 2024-01-26 | 信联科技(南京)有限公司 | 一种基于协议特征匹配和变异策略选择的模糊测试用例生成方法及引擎 |
-
2023
- 2023-08-16 CN CN202311035430.2A patent/CN117061384A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117453573A (zh) * | 2023-12-22 | 2024-01-26 | 信联科技(南京)有限公司 | 一种基于协议特征匹配和变异策略选择的模糊测试用例生成方法及引擎 |
CN117453573B (zh) * | 2023-12-22 | 2024-04-02 | 信联科技(南京)有限公司 | 一种基于协议特征匹配和变异策略选择的模糊测试用例生成方法及引擎 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7958230B2 (en) | Test driven deployment and monitoring of heterogeneous network systems | |
US7308597B2 (en) | Analysis of pipelined networks | |
US7640460B2 (en) | Detect user-perceived faults using packet traces in enterprise networks | |
CN110209583B (zh) | 安全测试方法、装置、系统、设备和存储介质 | |
CN112347485B (zh) | 多引擎获取漏洞并自动化渗透的处理方法 | |
SG176513A1 (en) | System and method for detecting vulnerability of server | |
CN101499933A (zh) | 一种在网络系统中用于错误控制的方法和装置 | |
US7921335B2 (en) | System diagnostic utility | |
CN110995764B (zh) | 一种移动蜂窝网络应用层数据流量模糊测试方法、电子设备及存储介质 | |
CN117061384A (zh) | 一种模糊测试方法、装置、设备及介质 | |
US8230052B2 (en) | Module diagnostic toolkit for client-server based protocols | |
Herold et al. | Anomaly detection for SOME/IP using complex event processing | |
CN113660265B (zh) | 一种网络攻击测试方法、装置、电子设备及存储介质 | |
Xu et al. | Trampoline over the air: Breaking in iot devices through mqtt brokers | |
CN113868669A (zh) | 一种漏洞检测方法及系统 | |
US20080072321A1 (en) | System and method for automating network intrusion training | |
CN115225531B (zh) | 数据库防火墙测试方法、装置、电子设备及介质 | |
Buschkes et al. | {Transaction-Based} Anomaly Detection | |
EP4283966A2 (en) | Apparatus and method for remote monitoring | |
US8117257B2 (en) | Device management using event | |
CN113868670A (zh) | 一种漏洞检测流程检验方法及系统 | |
Cavalli et al. | Use of invariant properties to evaluate the results of fault-injection-based robustness testing of protocol implementations | |
CN117201292B (zh) | 能准确定位微服务间请求调用异常的方法 | |
CN115174244B (zh) | 一种安全检测方法及系统 | |
CN117424834A (zh) | 基于面向soa和dds的车载通信诊断方法、装置和系统 |
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 |