一种终端模糊测试方法及系统与流程

文档序号:18464366发布日期:2019-08-17 02:19阅读:231来源:国知局
一种终端模糊测试方法及系统与流程

本申请涉及计算机安全测试技术领域,尤其涉及一种终端模糊测试方法及系统。



背景技术:

远动机、测控装置等电力监控终端作为电力监控系统的重要组成部分,广泛部署在变电站、发电厂等分布式厂站。目前电力监控终端的信息安全测试主要依赖于代码审计和黑盒测试,但是主流厂商的产品代码相对封闭,难以获取装置的全部代码,导致代码审计难以发现真实的漏洞;同时常规的黑盒测试方法效率低下,针对性不高,难以满足电力监控终端的信息安全测试需求。

模糊测试是一种常见的安全测试方法,其属于黑盒测试和灰盒测试的范畴。模糊测试采用自动化的缺陷注入技术,旨在定位软件中可能存在的错误及发现触发系统错误的输入。

目前的模糊测试方法将所有交互过程产生的数据打包于一个数据包中,导致了在分析时交互过程的交叉影响将对检测结果的准确性造成影响技术问题。



技术实现要素:

本申请实施例提供了一种终端模糊测试方法及系统,解决了现有的模糊测试方法将所有交互过程产生的数据打包于一个数据包中,导致了在分析时交互过程的交叉影响将对检测结果的准确性造成影响技术问题。

有鉴于此,本申请第一方面提供了一种终端模糊测试方法,所述方法包括:

获取与目标终端之间的n种交互过程中产生的n个原始数据包;

将每个所述原始数据包进行格式化操作,形成测试用例模板,并基于所述测试用例模板,通过模糊构造算法生成包含预置数量的测试用例的测试用例包;

向所述目标终端依次发送所述测试用例包中的测试用例;

获取所述目标终端对所述测试用例的响应相关的响应信息;

获取所述测试用例与所述响应信息的关系的关联数据并在所有所述测试用例包的测试完成后生成测试结果。

可选地,所述获取所述测试用例与所述响应信息的关系的关联数据之后还包括:

按时间顺序生成所述关联数据的监控日志并存储;

根据所述监控日志生成测试结果。

可选地,所述按时间顺序生成所述关联数据的监控日志并存储之后还包括:

在所有所述测试用例包均进行了测试后,根据所述监控日志生成测试结果。

可选地,所述根据所述监控日志生成测试结果具体包括:

根据所述监控日志中的设备状态字段以及所述监控日志对应的所述关联数据,定位导致所述目标终端的异常状态的测试用例包,并确定异常原因,生成测试结果。

可选地,所述模糊构造算法包括交叉模糊构造算法以及变异模糊构造算法。

本申请第二方面提供一种终端模糊测试系统,所述系统包括:

交互单元,用于获取与目标终端之间的n种交互过程中产生的n个原始数据包并向处理单元发送所述原始数据包;

所述处理单元,用于将每个所述原始数据包进行格式化操作,形成测试用例模板,并基于所述测试用例模板,通过模糊构造算法生成包含预置数量的测试用例的测试用例包;

所述处理单元,还用于向所述目标终端依次发送所述测试用例包中的测试用例;

所述交互单元,还用于获取所述目标终端对所述测试用例的响应相关的响应信息;

监控单元,用于所述获取所述测试用例与所述响应信息的关系的关联数据并在所有所述测试用例包的测试完成后生成测试结果。

可选地,所述监控单元具体包括监控子单元、日志子单元和分析子单元;

所述监控子单元,用于获取所述测试用例与所述响应信息的关系的关联数据;

所述日志子单元,用于按时间顺序生成所述关联数据的监控日志并存储;

所述分析子单元,用于根据所述监控日志生成测试结果。

可选地,所述分析子单元还用于在所有所述测试用例包均进行了测试后,根据所述监控日志生成测试结果。

可选地,所述分析子单元还用于根据所述监控日志中的设备状态字段以及所述监控日志对应的所述关联数据,定位导致所述目标终端的异常状态的测试用例包,并确定异常原因,生成测试结果。

可选地,所述模糊构造算法包括交叉模糊构造算法以及变异模糊构造算法。

从以上技术方案可以看出,本申请实施例具有以下优点:

本申请实施例中,提供了一种终端模糊测试方法,通过将每种交互过程单独打包为一个原始数据包,再对每个原始数据包进行格式化和模糊化处理,单独生成一个测试用例包,仅针对一种交互过程进行模糊测试,最终在所有测试用例包均测试完成后生成测试结果,使得能够更加直接和快速地定位发生异常的测试用例包,并关联确定异常的交互过程,解决了现有的模糊测试方法将所有交互过程产生的数据打包于一个数据包中,导致了在分析时交互过程的交叉影响将对检测结果的准确性造成影响技术问题。

附图说明

图1为本申请实施例中一种终端模糊测试方法的一个实施例的流程示意图;

图2为本申请实施例中一种终端模糊测试方法的另一个实施例的流程示意图;

图3为本申请实施例中一种终端模糊测试系统的一个实施例的结构示意图;

图4为本申请实施例中一种终端模糊测试系统的另一个实施例的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请设计了一种终端模糊测试方法及系统,解决了现有的模糊测试方法将所有交互过程产生的数据打包于一个数据包中,导致了在分析时交互过程的交叉影响将对检测结果的准确性造成影响技术问题。

为了便于理解,请参阅图1,图1为本申请实施例中一种终端模糊测试方法的一个方法流程图,如图1所示,具体为:

101、获取与目标终端之间的n种交互过程中产生的n个原始数据包;

需要说明的是,在与目标终端之间的n种交互过程中,将产生n个不同的原始数据包,一个原始数据包对应一种交互过程,交互过程的类型包括但不限于get方法访问页面、post方法访问页面和delete方法删除页面。

102、将每个原始数据包进行格式化操作,形成测试用例模板,并基于测试用例模板,通过模糊构造算法生成包含预置数量的测试用例的测试用例包;

需要说明的是,在获取了原始数据包后,将对原始数据包首先进行格式化处理,去除干扰因素,从而形成测试用例模板,并基于测试用例模板,通过包括但不限于交叉模糊构造算法以及变异模糊构造算法的模糊构造算法生成包含大量的测试用例的测试用例包,具体为通过对正常协议报文的特定字段设置选值策略,由交叉、变异等多种模糊构造算法自动生成大量测试用例,如iec-104数据报文,需要对除去头部的各字段进行交叉变异,形成报文格式正确、内容异常的iec-104数据报文。

103、向目标终端依次发送测试用例包中的测试用例;

需要说明的是,在对每个原始数据包生成测试用例包后,依次向目标终端发送测试用例包中的测试用例,使得目标终端对一种交互方式可能出现的各种测试用例进行响应。

104、获取目标终端对测试用例的响应相关的响应信息;

需要说明的是,目标终端在接收了测试用例后,会对测试用例产生响应相关的响应信息,需要获取该部分响应信息。

105、获取测试用例与响应信息的关系的关联数据并在所有测试用例包的测试完成后生成测试结果;

需要说明的是,最后,在获取了目标终端对每种交互方式可能出现的各种测试用例的响应信息后,将测试用例与响应信息进行关联生成关联数据,并最终根据关联数据分析得到测试结果。

本申请实施例中,提供了一种终端模糊测试方法,通过将每种交互过程单独打包为一个原始数据包,再对每个原始数据包进行格式化和模糊化处理,单独生成一个测试用例包,仅针对一种交互过程进行模糊测试,最终在所有测试用例包均测试完成后生成测试结果,使得能够更加直接和快速地定位发生异常的测试用例包,并关联确定异常的交互过程,解决了现有的模糊测试方法将所有交互过程产生的数据打包于一个数据包中,导致了在分析时交互过程的交叉影响将对检测结果的准确性造成影响技术问题。

请参阅图2,图2为本申请实施例中一种终端模糊测试方法的另一个方法流程图,如图2所示,具体为:

201、获取与目标终端之间的n种交互过程中产生的n个原始数据包;

需要说明的是,在与目标终端之间的n种交互过程中,将产生n个不同的原始数据包,一个原始数据包对应一种交互过程,交互过程的类型包括但不限于get方法访问页面、post方法访问页面和delete方法删除页面。

202、将每个原始数据包进行格式化操作,形成测试用例模板,并基于测试用例模板,通过模糊构造算法生成包含预置数量的测试用例的测试用例包;

需要说明的是,在获取了原始数据包后,将对原始数据包首先进行格式化处理,去除干扰因素,从而形成测试用例模板,并基于测试用例模板,通过包括但不限于交叉模糊构造算法以及变异模糊构造算法的模糊构造算法生成包含大量的测试用例的测试用例包,具体为通过对正常协议报文的特定字段设置选值策略,由交叉、变异等多种模糊构造算法自动生成大量测试用例,如iec-104数据报文,需要对除去头部的各字段进行交叉变异,形成报文格式正确、内容异常的iec-104数据报文。

203、向目标终端依次发送测试用例包中的测试用例;

需要说明的是,在对每个原始数据包生成测试用例包后,依次向目标终端发送测试用例包中的测试用例,使得目标终端对一种交互方式可能出现的各种测试用例进行响应。

204、获取目标终端对测试用例的响应相关的响应信息;

需要说明的是,目标终端在接收了测试用例后,会对测试用例产生响应相关的响应信息,需要获取该部分响应信息。

205、获取测试用例与响应信息的关系的关联数据;

需要说明的是,最后,在获取了目标终端对每种交互方式可能出现的各种测试用例的响应信息后,将测试用例与响应信息进行关联生成关联数据。

206、按时间顺序生成关联数据的监控日志并存储;

需要说明的是,按时间顺序生成关联数据的监控日志并存储,能够在事后进行快速查找和备份,方便在无人值守的情况下运行,支持事后让测试人员复现所发现的异常。

207、在所有测试用例包均进行了测试后,根据监控日志中的设备状态字段以及监控日志对应的关联数据,定位导致目标终端的异常状态的测试用例包,并确定异常原因,生成测试结果;

需要说明的是,具体地是根据监控日志中的设备状态字段以及监控日志对应的关联数据,定位导致目标终端的异常状态的测试用例包,并确定异常原因,生成测试结果。

请参阅图3,图3为本申请实施例中一种终端模糊测试系统的一个结构示意图,如图3所示,具体为:

交互单元301,用于获取与目标终端之间的n种交互过程中产生的n个原始数据包并向处理单元302发送原始数据包;

处理单元302,用于将每个原始数据包进行格式化操作,形成测试用例模板,并基于测试用例模板,通过模糊构造算法生成包含预置数量的测试用例的测试用例包;

处理单元302,还用于向目标终端依次发送测试用例包中的测试用例;

交互单元301,还用于获取目标终端对测试用例的响应相关的响应信息;

监控单元303,用于获取测试用例与响应信息的关系的关联数据并在所有测试用例包的测试完成后生成测试结果。

请参阅图4,图4为本申请实施例中一种终端模糊测试系统的另一个结构示意图,如图4所示,具体为:

交互单元401,用于获取与目标终端之间的n种交互过程中产生的n个原始数据包并向处理单元402发送原始数据包;

处理单元402,用于将每个原始数据包进行格式化操作,形成测试用例模板,并基于测试用例模板,通过模糊构造算法生成包含预置数量的测试用例的测试用例包;

处理单元402,还用于向目标终端依次发送测试用例包中的测试用例;

交互单元401,还用于获取目标终端对测试用例的响应相关的响应信息;

监控单元403,用于获取测试用例与响应信息的关系的关联数据并在所有测试用例包的测试完成后生成测试结果;

监控单元403具体包括监控子单元4031、日志子单元4032和分析子单元4033;

监控子单元4031,用于获取测试用例与响应信息的关系的关联数据;

日志子单元4032,用于按时间顺序生成关联数据的监控日志并存储;

分析子单元4033,用于根据监控日志中的设备状态字段以及监控日志对应的关联数据,定位导致目标终端的异常状态的测试用例包,并确定异常原因,生成测试结果。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-onlymemory,英文缩写:rom)、随机存取存储器(英文全称:randomaccessmemory,英文缩写:ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1