一种网络协议攻击测试方法、装置、设备和可读存储介质与流程

文档序号:17600564发布日期:2019-05-07 20:14阅读:180来源:国知局
一种网络协议攻击测试方法、装置、设备和可读存储介质与流程

本申请涉及计算机网路技术领域,尤其涉及一种网络协议攻击测试方法、装置、设备和可读存储介质。



背景技术:

随着计算机网络技术的快速发展,网络信息化系统在为人们的生活带来便利的同时,也面临着遭受网络攻击的风险,网络系统安全问题也给人们带来了困扰。

计算机网络通信技术的发展,使得工业控制系统逐渐向网络化方向转化,网络协议得到越来越广泛的应用,而工业控制系统受到网络协议攻击的风险也在加大,因此,为了测试工业控制系统抵御网络攻击的能力,在系统上线前,利用模拟攻击的方法对其进行网络协议攻击测试,可以帮助发现产品的薄弱环节,避免上线后遭受网络攻击而给能源、电力和交通等重要基础设施带来严重损失。

现有的网络协议攻击测试是通过模拟各网络协议层的各种数据包来进行攻击测试,为了测试设备对各种网络攻击下的表现,往往测试项目众多,传统的测试方法为对测试项目进行依次逐条测试,测试耗费时间很长,效率低下。



技术实现要素:

本申请实施例提供了一种网络协议攻击测试方法、装置、设备和可读存储介质,解决了现有的网络协议攻击测试方法是对测试项目进行依次逐条测试,测试耗费时间长,导致效率低下的技术问题。

有鉴于此,本申请第一方面提供了一种网络协议攻击测试方法,包括:

101、对待测设备的原所有测试项目,根据各所述测试项目的失效概率因子的大小值按照升序的排列方式进行排序,得到排序后的所有测试项目,其中,每个所述测试项目包括网络攻击包的流量大小;

102、依次将各所述测试项目加入并发测试集合c,所述并发测试集合c满足最大网络流量约束条件;

103、对所述并发测试集合c的各所述测试项目进行并发测试,若返回的测试结果为ok,则执行步骤104,若返回的测试结果为fail,执行步骤105;

104、将所述并发测试集合c的所有所述测试项目的测试结果均记录为通过,返回步骤102继续执行剩下的所述测试项目,直到执行完所有所述测试项目;

105、将所述发测试集合c记录为存在不通过的所述测试项目。

优选地,步骤105之后还包括:

106、判断所述并发测试集合c的所述测试项目总数是否为1,若是,则执行步骤107,否则,执行步骤108;

107、将所述测试项目的测试结果记录为不通过,同时将所述测试项目对应的所述失效概率因子进行加1;

108、将所述并发测试集合c拆分成两个并发测试集合c1和c2,返回步骤103,分别执行c1和c2,其中,c1与c2的所述测试项目总数差值不超过1。

优选地,所述测试项目为:

in=<pn,fn,tn>,

其中,in为第n个测试项目,pn为第n个测试项目发送的网络攻击包的格式,fn为第n个测试项目发送的网络攻击包的流量大小,tn为第n个测试项目的攻击测试时间。

优选地,所述最大网络流量约束条件为:

∑(f1,f2,…,fm)<max,

其中,max为待测设备所能接收的最大的网络流量。

优选地,步骤101之前,还包括:

100、获取待测设备的攻击类别,计算所述待测设备的所有测试项目的各每个所述测试项目对应的失效概率因子。

本申请第二方面提供了一种网络协议攻击测试装置,包括:

排序单元,用于对待测设备的原所有测试项目,根据各所述测试项目的失效概率因子的大小值按照升序的排列方式进行排序,得到排序后的所有测试项目,其中,每个所述测试项目包括网络攻击包的流量大小;

集合单元,用于依次将各所述测试项目加入并发测试集合c,所述并发测试集合c满足最大网络流量约束条件;

测试单元,用于对所述并发测试集合c的各所述测试项目进行并发测试,若返回的测试结果为ok,则触发第一结果单元,若返回的测试结果为fail,触发第二结果单元;

所述第一结果单元,用于将所述并发测试集合c的所有所述测试项目的测试结果均记录为通过,触发所述集合单元继续执行剩下的所述测试项目,直到执行完所有所述测试项目;

所述第二结果单元,用于将所述发测试集合c记录为存在不通过的所述测试项目。

优选地,还包括:

获取单元,用于获取待测设备的攻击类别,计算所述待测设备的所有测试项目的各每个所述测试项目对应的失效概率因子;

判断单元,用于判断所述并发测试集合c的所述测试项目总数是否为1,若是,则触发第一记录单元,否则,触发第二记录单元;

所述第一记录单元,用于将所述测试项目的测试结果记录为不通过,同时将所述测试项目对应的所述失效概率因子进行加1;

所述第二记录单元,用于将所述并发测试集合c拆分成两个并发测试集合c1和c2,触发测试单元,分别执行c1和c2,其中,c1与c2的所述测试项目总数差值不超过1。

本申请第三方面提供了一种网络协议攻击测试设备,所述设备包括处理器以及存储器;

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令执行第一方面所述的网络协议攻击测试方法。

本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行第一方面所述的网络协议攻击测试方法。

本申请第五方面提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行第一方面所述的网络协议攻击测试方法。

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

本申请中,提供了一种网络协议攻击测试方法,包括:101、对待测设备的原所有测试项目,根据各测试项目的失效概率因子的大小值按照升序的排列方式进行排序,得到排序后的所有测试项目,其中,每个测试项目包括网络攻击包的流量大小;102、依次将各测试项目加入并发测试集合c,并发测试集合c满足最大网络流量约束条件;103、对并发测试集合c的各测试项目进行并发测试,若返回的测试结果为ok,则执行步骤104,若返回的测试结果为fail,执行步骤105;104、将并发测试集合c的所有测试项目的测试结果均记录为通过;105、将发测试集合c记录为存在不通过的测试项目。

本申请提供的网络协议攻击测试方法,通过对待测设备的原所有测试项目按照失效概率因子大小值升序排序方式,对原所有测试项目进行排序得到排序后的所有测试项目,然后按照最大网络流量约束条件将各测试项目依次加入并发测试集合c,对并发测试集合c里的所有测试项目进行一次性的并发测试,若返回测试结果为ok,则表明并发测试集合c里面的所有测试项目都通过测试,否则表明并发测试集合c里面存在测试不通过的测试项目,避免了传统的测试方法只能依次逐条测试,耗费时间长的缺陷,测试效率得到提高,解决了现有的网络协议攻击测试方法是对测试项目进行依次逐条测试,测试耗费时间长,导致效率低下的技术问题。

附图说明

图1为本申请实施例中的一种网络协议攻击测试方法的流程示意图;

图2为本申请实施例中的一种网络协议攻击测试方法另一流程示意图;

图3为本申请实施例中的一种网络协议攻击测试装置的结构示意图。

具体实施方式

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

为了便于理解,请参阅图1,本申请实施例中提供的一种网络协议攻击测试方法,包括:

步骤101、对待测设备的原所有测试项目,根据各测试项目的失效概率因子的大小值按照升序的排列方式进行排序,得到排序后的所有测试项目,其中,每个测试项目包括网络攻击包的流量大小。

需要说明的是,失效概率因子是一个用来描述测试用例会导致待测设备失效的可能性的参数,失效概率因子是一个历史经验值,可以依据被测设备类型、测试用例的测试结果的历史数据得出。

步骤102、依次将各测试项目加入并发测试集合c,并发测试集合c满足最大网络流量约束条件。

需要说明的是,最大网络流量约束条件与待测设备的规格有关,一般为一个常数,例如:百兆设备能接受的网络流量大小为100m。

步骤103、对并发测试集合c的各测试项目进行并发测试,若返回的测试结果为ok,则执行步骤104,若返回的测试结果为fail,执行步骤105。

需要说明的是,得到并发测试集合c之后,可以同时对并发测试集合c里的所有测试项目进行网络协议攻击测试用例测试,再根据返回的测试结果进行相应的处理,测试结果可以用ok和fail表示,ok表示测试通过,fail表示测试不通过。

步骤104、将并发测试集合c的所有测试项目的测试结果均记录为通过,返回步骤102继续执行剩下的所述测试项目,直到执行完所有所述测试项目。

需要说明的是,如果步骤103返回的测试结果为ok,说明并发测试集合c里面的所有测试项目都通过了测试,此时,将并发测试集合c里面的所有测试项目都记录为通过,继续对剩下的测试项目进行测试。

步骤105、将发测试集合c记录为存在不通过的测试项目。

需要说明的是,如果步骤103返回的测试结果为fail,则说明并发测试集合c里面的所有测试项目中,存在测试不通过的测试项目,此时,将并发测试结合记录为存在测试不通过的测试项目,可以理解的是,对于存在不通过测试项目的并发测试集合c,可以将并发测试集合c里面的所有测试项目都记为不通过,然后再分别单独对每个测试项目进行处理,确认该测试项目是否能通过测试,还可以通过其他搜索算法,将该并发测试集合c里面的测试不通过的测试项目确定出来。

本申请实施例中提供的网络协议攻击测试方法,通过对待测设备的原所有测试项目按照失效概率因子大小值升序排序方式,对原所有测试项目进行排序得到排序后的所有测试项目,然后按照最大网络流量约束条件将各测试项目依次加入并发测试集合c,对并发测试集合c里的所有测试项目进行一次性的并发测试,若返回测试结果为ok,则表明并发测试集合c里面的所有测试项目都通过测试,否则表明并发测试集合c里面存在测试不通过的测试项目,避免了传统的测试方法只能依次逐条测试,耗费时间长的缺陷,测试效率得到提高,解决了现有的网络协议攻击测试方法是对测试项目进行依次逐条测试,测试耗费时间长,导致效率低下的技术问题。

为了便于理解,请参阅图2,本申请实施例中另一种网络协议攻击测试方法,包括:

步骤100、获取待测设备的攻击类别,计算待测设备的所有测试项目的各每个测试项目对应的失效概率因子。

需要说明的是,每个测试项目为一种攻击测试用例,攻击测试用例可以是synflood攻击、deadping攻击等,测试项目可以作用于不同的对象d,即不同的设备类型,设备类型包括:linux主机、windows主机、各种工控设备等等,而每个设备类型对于攻击测试用例的表现是不同的,因此,失效概率因子也是不同的,因此,在计算的时候,需要分类计算出失效概率因子。

步骤101、对待测设备的原所有测试项目,根据各测试项目的失效概率因子的大小值按照升序的排列方式进行排序,得到排序后的所有测试项目,其中,每个测试项目包括网络攻击包的流量大小。

进一步地,测试项目为:

in=<pn,fn,tn>,

其中,in为第n个测试项目,pn为第n个测试项目发送的网络攻击包的格式,fn为第n个测试项目发送的网络攻击包的流量大小,tn为第n个测试项目的攻击测试时间。

需要说明的是,失效概率因子是一个用来描述测试用例会导致待测设备失效的可能性的参数,失效概率因子是一个历史经验值,可以依据被测设备类型、测试用例的测试结果的历史数据得出。对于攻击测试,每个测试项目i可以用一个二元组进行描述in=<pn,fn,tn>,in为第n个测试项目,pn为第n个测试项目发送的网络攻击包的格式,fn为第n个测试项目发送的网络攻击包的流量大小,tn为第n个测试项目的攻击测试时间。

步骤102、依次将各测试项目加入并发测试集合c,并发测试集合c满足最大网络流量约束条件。

进一步地,最大网络流量约束条件为:

∑(f1,f2,…,fm)<max,

其中,max为待测设备所能接收的最大的网络流量。

需要说明的是,最大网络流量约束条件与待测设备的规格有关,一般为一个常数,例如:百兆设备能接受的网络流量大小为100m。

步骤103、对并发测试集合c的各测试项目进行并发测试,若返回的测试结果为ok,则执行步骤104,若返回的测试结果为fail,执行步骤105。

需要说明的是,得到并发测试集合c之后,可以同时对并发测试集合c里的所有测试项目进行网络协议攻击测试用例测试,再根据返回的测试结果进行相应的处理,测试结果可以用ok和fail表示,ok表示测试通过,fail表示测试不通过。

步骤104、将并发测试集合c的所有测试项目的测试结果均记录为通过,返回步骤102继续执行剩下的所述测试项目,直到执行完所有所述测试项目。

需要说明的是,如果步骤103返回的测试结果为ok,说明并发测试集合c里面的所有测试项目都通过了测试,此时,将并发测试集合c里面的所有测试项目都记录为通过,继续对剩下的测试项目进行测试。

步骤105、将发测试集合c记录为存在不通过的测试项目。

需要说明的是,如果步骤103返回的测试结果为fail,则说明并发测试集合c里面的所有测试项目中,存在测试不通过的测试项目,此时,将并发测试结合记录为存在测试不通过的测试项目,可以理解的是,对于存在不通过测试项目的并发测试集合c,可以将并发测试集合c里面的所有测试项目都记为不通过,然后再分别单独对每个测试项目进行处理,确认该测试项目是否能通过测试,还可以通过其他搜索算法,将该并发测试集合c里面的测试不通过的测试项目确定出来。

步骤106、判断并发测试集合c的测试项目总数是否为1,若是,则执行步骤107,否则,执行步骤108。

需要说明的是,当确定并发测试集合c存在不通过的测试项目时,需要先判断并发测试集合c里面的测试项目总数是不是只有1个,再进行相应处理。

步骤107、将测试项目的测试结果记录为不通过,同时将测试项目对应的失效概率因子进行加1。

需要说明的是,如果并发测试集合c里面的测试项目总数只有1个,则直接将该测试项目记录为不通过,同时将其对应的失效概率因子进行加1操作。

步骤108、将并发测试集合c拆分成两个并发测试集合c1和c2,返回步骤103,分别执行c1和c2,其中,c1与c2的测试项目总数差值不超过1。

需要说明的是,如果并发测试集合c里面的测试项目总数不是只有1个,则需要将并发测试集合c进行拆分为并发测试集合c1和并发测试集合c2,即,若并发测试集合c为{i1,i2,…,im},那么c1和c2分别为:{i1,i2,…,ik}和{ik+1,ik+2,…,im},其中k=m/2或k=m/2±1,分别执行c1和c2,最终确定出所有测试不通过的测试项目。

为了便于理解,请参阅图3,本申请实施例提供了一种网络协议攻击测试装置,包括:

排序单元301,用于对待测设备的原所有测试项目,根据各测试项目的失效概率因子的大小值按照升序的排列方式进行排序,得到排序后的所有测试项目,其中,每个测试项目包括网络攻击包的流量大小。

集合单元302,用于依次将各测试项目加入并发测试集合c,并发测试集合c满足最大网络流量约束条件。

测试单元303,用于对并发测试集合c的各测试项目进行并发测试,若返回的测试结果为ok,则触发第一结果单元304,若返回的测试结果为fail,触发第二结果单元305。

第一结果单元304,用于将并发测试集合c的所有测试项目的测试结果均记录为通过,触发集合单元302继续执行剩下的测试项目,直到执行完所有测试项目。

第二结果单元305,用于将发测试集合c记录为存在不通过的测试项目。

进一步地,还包括:

获取单元300,用于获取待测设备的攻击类别,计算待测设备的所有测试项目的各每个测试项目对应的失效概率因子。

判断单元306,用于判断并发测试集合c的测试项目总数是否为1,若是,则触发第一记录单元307,否则,触发第二记录单元308。

第一记录单元307,用于将测试项目的测试结果记录为不通过,同时将测试项目对应的失效概率因子进行加1。

第二记录单元308,用于将并发测试集合c拆分成两个并发测试集合c1和c2,触发测试单元303,分别执行c1和c2,其中,c1与c2的测试项目总数差值不超过1。

进一步地,测试项目为:

in=<pn,fn,tn>,

其中,in为第n个测试项目,pn为第n个测试项目发送的网络攻击包的格式,fn为第n个测试项目发送的网络攻击包的流量大小,tn为第n个测试项目的攻击测试时间。

进一步地,最大网络流量约束条件为:

∑(f1,f2,…,fm)<max,

其中,max为待测设备所能接收的最大的网络流量。

本申请实施例中提供了一种网络协议攻击测试设备,设备包括处理器以及存储器:

存储器用于存储程序代码,并将程序代码传输给处理器;

处理器用于根据程序代码中的指令执行前述的实施例中的网络协议攻击测试方法。

本申请实施例中提供了一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行前述的实施例中的网络协议攻击测试方法。

本申请实施例中还提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行前述的实施例中的烟用薄膜收缩率测试方法。

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

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

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

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

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

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

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