CN115134278A - 模糊测试方法、装置、电子设备及存储介质 - Google Patents

模糊测试方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115134278A
CN115134278A CN202110313225.2A CN202110313225A CN115134278A CN 115134278 A CN115134278 A CN 115134278A CN 202110313225 A CN202110313225 A CN 202110313225A CN 115134278 A CN115134278 A CN 115134278A
Authority
CN
China
Prior art keywords
data packet
seed
packet
field
random
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.)
Granted
Application number
CN202110313225.2A
Other languages
English (en)
Other versions
CN115134278B (zh
Inventor
梁一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing Co Ltd
Original Assignee
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qianxin Technology Group Co Ltd, Secworld Information Technology Beijing Co Ltd filed Critical Qianxin Technology Group Co Ltd
Priority to CN202110313225.2A priority Critical patent/CN115134278B/zh
Priority claimed from CN202110313225.2A external-priority patent/CN115134278B/zh
Publication of CN115134278A publication Critical patent/CN115134278A/zh
Application granted granted Critical
Publication of CN115134278B publication Critical patent/CN115134278B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种模糊测试方法、装置、电子设备及存储介质,所述方法包括:根据协议包格式,基于数据包语言描述的方式定义种子数据包;将所述种子数据包作为树种,基于所述种子数据包进行模糊化处理,得到基于所述种子数据包进行随机生长后的数据包;将所述生长后的数据包进行封装打包处理,生成测试用的随机数据包;将所述随机数据包进行发包测试。本发明由于根据协议包格式基于数据包语言描述的方式定义种子数据,因此可以快速自定义添加,新增一个协议的数据包只需在很短时间内即可完成,从而可以实现节省成本的效果,同时本发明可以使得测试的功能覆盖范围广,在需要增加其它协议内容时,只需要增加种子数据包即可。

Description

模糊测试方法、装置、电子设备及存储介质
技术领域
本发明涉及网络通信技术领域,尤其涉及一种模糊测试方法、装置、电 子设备及存储介质。
背景技术
随着互联网在深度和广度的发展,在网络上各种数据包在不同的设备中 转发,网络设备对其做识别、控制和转发。在对网络设备进行质量保证的活 动中,设备的稳定性极为重要。测试人员需要对网络流量做正向(正常包) 和负向(比如异常包)测试。
现有技术中的测试方法大致包括如下几种类型:
1、业务模拟:例如:搭建网络环境,按照实际业务模拟测试。
2、数据包构造:例如:深度理解协议,使用手工或编程方法写测试数据 包。
3、客户数据包回放:采集时间客户的网络数据包,进行回放。
4、性能测试仪:例如使用BPS测试仪,构建打流量,手动周期性调整 参数。
5、功能性测试仪:例如使用cyberflood,模糊化测试套件,部分协议 支持模糊化测试。
然而现有技术中的测试方法存在如下缺点:
1、业务模拟:时间成本,物料成本过高,覆盖也无法做到全面,投入 产出比低。
2、数据包构造:学习成本很高,如何做到针对性很难,应该是不可能做 到,投入产出比低。
3、客户数据包回放:遍历覆盖不完整,数据采集成本高,存在客户信息 系安全问题,即使大量的采集不可行,所需存储空间过大,可采集到的正常 包过多,异常包极少,覆盖不全面。
4、性能测试仪:可以自定义部分数据payload,无法模糊化,自定义效 率低,成本高;导入数据包,部分随机端口和ip,效果差,自定义部分无法 自动全部随机。
5、功能性测试仪:部分协议有fuzzing能力,覆盖范围少,无法干预; 协议不全面,想测试的协议找不到;发包速度慢,几秒钟一个流。
根据现有技术中的上述测试方法来看,其缺点大致包括如下:投入产 出比低,无法做到全覆盖和针对性测试的平衡,商用测试仪支持功能有限, 客户的数据无法进行大量安全共享。
发明内容
针对现有技术中的问题,本发明实施例提供一种模糊测试方法、装置、 电子设备及存储介质。
具体地,本发明实施例提供了以下技术方案:
第一方面,本发明实施例提供了一种模糊测试方法,包括:
根据协议包格式,基于数据包语言描述的方式定义种子数据包;
将所述种子数据包作为树种,基于所述种子数据包进行模糊化处理,得 到基于所述种子数据包进行随机生长后的数据包;
将所述生长后的数据包进行封装打包处理,生成测试用的随机数据包;
将所述随机数据包进行发包测试。
进一步地,根据协议包格式,基于数据包语言描述的方式定义种子数据 包,包括:
根据协议包格式,基于数据包语言描述的方式定义种子数据包的数据部 分;
根据协议包格式,基于数据包语言描述的方式定义种子数据包的功能约 束部分;
其中,所述种子数据包包括所述数据部分和所述功能约束部分,所述数 据部分用来描述种子数据包中的各个数据,所述功能约束部分用来约束所述 各个数据的关系。
进一步地,所述数据部分包括元数据、字段长度、字段可选内容、字段 随机因子、字段循环属性和编码方式中的一种或多种;其中,所述元数据用 于根据协议包格式描述字段;字段随机因子用于表示模糊深度;字段循环属 性是指字段是否循环以及循环的次数;和/或,
所述功能约束部分包括循环冗余码CRC约束、部分求和约束、全部字段 求和约束和字段间数值约束中的一种或多种;其中,所述字段间数值约束是 指字段间数值存在大于、小于或等于的关系。
进一步地,将所述种子数据包作为树种,基于所述种子数据包进行模糊 化处理,得到基于所述种子数据包进行随机生长后的数据包,包括:
确定全局模糊化参数X,所述X用于定义测试的随机程度;
确定所述字段随机因子Y;
根据所述X和所述Y确定随机概率P=X*Y;
以P的概率随机生成数据包,以1-P的概率使用基于数据包语言描述的 方式定义的种子数据包。
进一步地,将所述种子数据包作为树种,基于所述种子数据包进行模糊 化处理,得到基于所述种子数据包进行随机生长后的数据包,包括:
确定全局模糊化参数X,所述X用于定义测试的随机程度;
确定所述字段随机因子Y;
根据所述X和所述Y确定随机概率P=X*Y;
若基于数据包语言描述的方式定义的种子数据包为N个比特,则基于所 述种子数据包,随机修改N*P个比特的数据,得到基于所述种子数据包进行 随机生长后的数据包,N为大于0的整数。
进一步地,将所述生长后的数据包进行封装打包处理,生成测试用的随 机数据包,包括:
构造数据承载层,将所述生长后的数据包按照所述数据承载层的要求进 行封装打包处理,生成测试用的随机数据包。
第二方面,本发明实施例还提供了一种模糊测试装置,包括:
种子定义模块,用于根据协议包格式,基于数据包语言描述的方式定义 种子数据包;
种子生长模块,用于将所述种子数据包作为树种,基于所述种子数据包 进行模糊化处理,得到基于所述种子数据包进行随机生长后的数据包;
打包处理模块,用于将所述生长后的数据包进行封装打包处理,生成测 试用的随机数据包;
发包测试模块,用于将所述随机数据包进行发包测试。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器 及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述 程序时实现如第一方面所述模糊测试方法的步骤。
第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其 上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述模 糊测试方法的步骤。
第五方面,本发明实施例还提供了一种计算机程序产品,所计算机程序 产品包括有计算机程序,该计算机程序被处理器执行时实现如第一方面所述 模糊测试方法的步骤。
由上面技术方案可知,本发明实施例提供的模糊测试方法、装置、电子 设备及存储介质,首先根据协议包格式,基于数据包语言描述的方式定义种 子数据包,然后将所述种子数据包作为树种,基于所述种子数据包进行模糊 化处理,得到基于所述种子数据包进行随机生长后的数据包,接着将所述生 长后的数据包进行封装打包处理,生成测试用的随机数据包,最后将所述随 机数据包进行发包测试,由此可见,本发明实施例提供的模糊测试方法,由 于根据协议包格式基于数据包语言描述的方式定义种子数据,因此可以快速自定义添加,新增一个协议的数据包只需在很短时间内即可完成,从而可以 实现节省成本的效果,同时本发明可以使得测试的功能覆盖范围广,在需要 增加其它协议内容时,只需要增加种子数据包即可。此外,本发明实施例还 可以根据需要配置数据包模糊化程度,以及模糊化内容,实现了自动模糊化 覆盖。最后,本发明实施例提供的模糊测试方法,可控性高,有的放矢,可 以从可视化角度进行模糊化稳定性的用例设计和评审。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下 面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在 不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的模糊测试方法的流程图;
图2为本发明一实施例提供的模糊测试方法的主要阶段示意图;
图3为本发明一实施例提供的基于种子数据包生长为森林的结果示意 图;
图4为本发明一实施例提供的以DNP3协议报文为例说明数据包描述语 言的语法规则和结构的示意图;
图5为本发明一实施例提供的测试过程示意图;
图6为本发明一实施例提供的生成随机测试数据的示意图;
图7为本发明一实施例提供的模糊测试装置的结构示意图;
图8为本发明一实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发 明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述, 显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获 得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明实施例提供的模糊测试方法的流程图。图2示出了本 发明一实施例提供的模糊测试方法的主要阶段示意图。如图1和图2所示, 本发明实施例提供的模糊测试方法,具体包括如下步骤:
步骤101:根据协议包格式,基于数据包语言描述的方式定义种子数据 包;
在本步骤中,根据协议包格式,可以通过数据包语言描述的方式定义种 子数据包。例如可以根据协议包格式描述数据包中的字段、字段长度、字段 随机因子(用于表示模糊深度)、字段循环属性(字段是否循环以及循环的 次数)、字段的编码方式,以及各字段之间的约束关系等。
步骤102:将所述种子数据包作为树种,基于所述种子数据包进行模糊 化处理,得到基于所述种子数据包进行随机生长后的数据包;
在本步骤中,如图3所述,大圆代表着全部的测试范围(全部待测试区 域),其中各个小六边形的中心,是一个树种(也即基于数据包语言描述的方 式定义种子数据包),通过随机化让其大树长大(持续模糊化数据),大树持 续趋近到六边形的边缘(此过程代表模糊化加深持续进行),最终所有树木在 一起成为森林,覆盖全部区域的森林,测试趋近于全覆盖,由此可见,在本 实施例中,只需要简单在目的区域撒种子,即可实现自动测试。
步骤103:将所述生长后的数据包进行封装打包处理,生成测试用的随 机数据包;
在本步骤中,可以构造数据承载层,然后在数据承载层将所述生长后的 数据包进行封装打包处理,生成测试用的随机数据包。例如,可以构造TCP, UDP,L2等承载层,把生长后的数据包进行封装打包,可以使用常规的scapy 封装包技术。此外,TCP和UDP五元组,二层的链路type实现预留好配置 接口,用于随机生成地址和端口等。
步骤104:将所述随机数据包进行发包测试。
在本步骤中,将生成好的随机数据包进行发包测试,进而监控测试过程 中的状态。
由此可见,在本实施例中,采用基于数据包语言描述的方式定义种子数 据包,可以根据协议包格式定义测试包的载荷内容,并且基于此数据包的定 义,设计了一种载荷模糊化实现的方法,实现基于所述种子数据包的随机生 长,最后将随机生长后的数据进行发包测试,从而实现了模糊测试。
在本实施例中,需要说明的是,种子数据包作为测试种子可以通过模糊 化的方式实现随机生长,而作为测试种子的种子数据包,只要知道基本协议 包格式,就可简单以数据包定义语言形式写出,由此可见,本实施例可以快 速自定义添加新的种子数据包,新增一个协议的数据包只需在很短时间内即 可完成,从而可以节省成本,此外,本实施例还可以使得测试的功能覆盖范 围广,在需要增加其它协议内容时,只需要增加种子数据包即可。
由上面技术方案可知,本发明实施例提供的模糊测试方法,首先根据协 议包格式,基于数据包语言描述的方式定义种子数据包,然后将所述种子数 据包作为树种,基于所述种子数据包进行模糊化处理,得到基于所述种子数 据包进行随机生长后的数据包,接着将所述生长后的数据包进行封装打包处 理,生成测试用的随机数据包,最后将所述随机数据包进行发包测试,由此 可见,本发明实施例提供的模糊测试方法,由于根据协议包格式基于数据包 语言描述的方式定义种子数据,因此可以快速自定义添加,新增一个协议的数据包只需在很短时间内即可完成,从而可以实现节省成本的效果,同时本 发明可以使得测试的功能覆盖范围广,在需要增加其它协议内容时,只需要 增加种子数据包即可。此外,本发明实施例还可以根据需要配置数据包模糊 化程度,以及模糊化内容,实现了自动模糊化覆盖。最后,本发明实施例提 供的模糊测试方法,可控性高,有的放矢,可以从可视化角度进行模糊化稳 定性的用例设计和评审。
基于上述实施例的内容,在本实施例中,根据协议包格式,基于数据包 语言描述的方式定义种子数据包,包括:
根据协议包格式,基于数据包语言描述的方式定义种子数据包的数据部 分;
根据协议包格式,基于数据包语言描述的方式定义种子数据包的功能约 束部分;
其中,所述种子数据包包括所述数据部分和所述功能约束部分,所述数 据部分用来描述种子数据包中的各个数据,所述功能约束部分用来约束所述 各个数据的关系。
由此可见,本实施例定义了数据包载荷的通用描述语言的语法规则(也 可以称树种描述方法),可来定义数据包的载荷内容,因此采用本实施例的方 案可以快速自定义添加新的协议数据包,在本实施例中,新增一个协议的数 据包只需在很短时间内即可完成,从而可以实现节省成本的效果,此外,采 用本实施例的方案还可以使得测试的功能覆盖范围广,在需要增加其它协议 内容时,只需要增加种子数据包即可。在本实施例中,数据包的通用描述语 言定义包含两个大部分:数据部分和功能约束部分,数据部分用来描述数据包载荷中的各个数据,功能约束部分用来约束各个数据的关系。由此可见, 通过数据部分和功能约束部分的限制,使得数据包的描述更加完整、全面和 有效。
基于上述实施例的内容,在本实施例中,所述数据部分包括元数据、字 段长度、字段可选内容、字段随机因子、字段循环属性和编码方式中的一种 或多种;其中,所述元数据用于根据协议包格式描述字段;字段随机因子用 于表示模糊深度,取值0-1之间,0表示不随机,1表示全随机;字段循环属 性是指字段是否循环以及循环的次数;和/或,
所述功能约束部分包括循环冗余码CRC约束、部分求和约束、全部字段 求和约束和字段间数值约束中的一种或多种;其中,所述字段间数值约束是 指字段间数值存在大于、小于或等于的关系。
在本实施例中,给出了数据部分的具体实现方式。例如,数据部分包括 元数据、字段长度、字段可选内容、字段随机因子、字段循环属性和编码方 式中的一种或多种;其中,所述元数据用于根据协议包格式描述字段;字段 随机因子用于表示模糊深度,取值0-1之间,0表示不随机,1表示全随机; 字段循环属性是指字段是否循环以及循环的次数;
下面结合具体的例子对数据部分的具体实现方式给予详细的解释说明。
数据部分(data):包含但不限于:
A、meta(元数据),主要是用来进行描述字段,例如:字段序号和字 段名称。举例为:"index":0,"data_name":"Start Bytes"。
B、字段长度,例如,"data_length":2。
C、字段可选内容,例如,"data_values":["0564","5555"]。
D、字段随机因子,表示模糊深度,定义为0-1之间,0不随机,1全随 机,例如,"local_fix_value":1。
E、字段循环属性,例如,"loop_group":1,"loop_times_min":1, "loop_times_max":3。可以理解的是,有些数据,希望是循环的,在模糊测试 中循环次数随机,具体次数可以配置。
F、编码方式,例如,可以是HEX编码:“AB3F”或者ASC编码 “http://www.xx.com”、"code":"HEX"。
在本实施例中,编码方式可以使用hex指定:
{"index":0,"local_fix_value":1,"data_name":"request.method", "data_length":3,"data_values":["474554",'504f5354','48454144', '4F5054494F4E53','505554','44454C455445','5452414345', '434F4E4E454354']}。
也可以使用ASC码指定:
{"index":0,"local_fix_value":1,"data_name":"request.method","data_length": 3,“data_code::”ASC”,"data_values":["www.baidu,com",'efge','zxcvsdfg', 'asdfasdf','asdfasd','asdf','asdfasdf', '434F4E4E454354']}。
此外,也可以使用二进制码指定等,还可以使用“data_code::”“BIN” 来扩展。
此外,在本实施例中,还给出了功能约束部分的具体实现方式。例如, 功能约束部分包括循环冗余码CRC约束、部分求和约束、全部字段求和约束 和字段间数值约束中的一种或多种;其中,所述字段间数值约束是指字段间 数值存在大于、小于或等于的关系。
在本实施例中,功能约束部分可以理解为function(报文载荷字段约束), 包括但不限于:A、CRC约束;B、部分求和约束;C、全部字段求和约束; D、字段间数值约束,如大于、小于和等于。
在本实施例中,需要说明的是,大部分协议对应的功能约束方式相同, 少数协议需要有特殊的功能约束方式,对于这种情况需要在系统里单独扩展。 举例来说,比如普通的协议,只是字段求和普通的CRC算法,而对于Modbus 协议会有Modbus_CRC算法。又比如,不同协议对计算长度的要求也有区别, 有的协议要求是长度值大端在高位,还是在低位。比如,计算长度是5000, 有的协议翻译成字符是1388,有的要求写成8813。
可以理解的是,在本实施例中,在一种实现方式下,可以按照本实施例 给出的上述数据部分的相关内容进行数据包定义,而功能约束部分可以是采 用上述实施例给出的相关内容以外的其他约束规则实现。在另一种实现方式 下,可以按照本实施例给出的上述功能约束部分的相关内容进行数据包定义, 而数据部分可以是采用上述实施例给出的相关内容以外的数据内容实现。在 又一种实现方式中,可以同时按照本实施例给出的数据部分和功能约束部分 进行数据包定义。如图4所示,图4为本发明一实施例提供的以DNP3协议报文为例说明数据包描述语言的语法规则和结构的示意图。
基于上述实施例的内容,在本实施例中,将所述种子数据包作为树种, 基于所述种子数据包进行模糊化处理,得到基于所述种子数据包进行随机生 长后的数据包,包括:
确定全局模糊化参数X,所述X用于定义测试的随机程度;
确定所述字段随机因子Y;
根据所述X和所述Y确定随机概率P=X*Y;
以P的概率随机生成数据,以1-P的概率使用基于数据包语言描述的方 式定义的种子数据包。
在本实施例中,通过以P的概率随机生成数据,以1-P的概率使用基于 数据包语言描述的方式定义的种子数据包的方式,实现了基于所述种子数据 包的模糊化处理,从而实现了载荷模糊化这一结果。由此可见,本实施例可 以根据需要配置数据包模糊化程度,以及模糊化内容,实现了自动模糊化覆 盖。
与上述实施例所不同的是,在本实施例中,将所述种子数据包作为树种, 基于所述种子数据包进行模糊化处理,得到基于所述种子数据包进行随机生 长后的数据包,可以采用如下方式实现:
确定全局模糊化参数X,所述X用于定义测试的随机程度;
确定所述字段随机因子Y;
根据所述X和所述Y确定随机概率P=X*Y;
若基于数据包语言描述的方式定义的种子数据包为N个比特,则基于所 述种子数据包,随机修改N*P个比特的数据,得到基于所述种子数据包进行 随机生长后的数据包,N为大于0的整数。
在本实施例中,需要说明的是,本实施例处理的优势是可以控制随机变 化率,这种方式可以精细化控制到和原设定的指定报文的接近程度,比如P 是1%,那么每次改动数据和原始指定配置的数据(上文说的典型值)相似度 就是99%。其具体的运用场合可以是:有时不希望变化随机过大的情况,要 求和指定值显示度高的场合。
基于上述两个实施例可知,数据包载荷模糊化方法(树种如何生长)可 以包括如下内容:
设定全局模糊化参数,定义本次测试的随机程度,设为X;设定局部模 糊化参数,如上面实施例提到的字段中的随机参数local_fix_value,设为Y。
关于模糊化生成方式,包括两种:①尽力生成模式和②相似生成模式; 设P=X*Y,为随机概率,对于①尽力生成模式来说,以P的概率随机生成 数据,1-P的概率使用数据描述中定义数据。对于②相似生成模式来说, 每次生成修改数据内容不超过P,算法如下:假如数据是N个bit,则,本次 随机修改N*P个bit的数据。
由此可见,本实施例针对前述实施例中的数据包的定义,设计了一个载 荷模糊化实现的方法,能够实现自动模糊化覆盖,也即本实施例可以任意配 置数据包模糊化程度,以及模糊化内容。
基于上述实施例的内容,在本实施例中,将所述生长后的数据包进行封 装打包处理,生成测试用的随机数据包,包括:
构造数据承载层,将所述生长后的数据包按照所述数据承载层的要求进 行封装打包处理,生成测试用的随机数据包。
在本实施例中,可以通过数据承载层灵活构造数据,例如可以构造TCP, UDP,L2等承载层,把模糊化的payload进行封装打包。技术上可以使用常 规的scapy封装包技术,TCP和UDP五元组,二层的链路type实现预留好 配置接口,用于随机生成地址和端口等。可以理解的是,可以将生成的包上 传到包回放器,进行回放。
在本实施例中,还可以设置配套的测试装置,该测试装置可以设置测试 执行机、发包设备和测试设备,其中,测试执行机:负责随机测试种子写作, 自动化程序执行,生成随机包,上传发包设备;发包设备:发送随机包到测 试设备。
图5为本发明一实施例提供的测试过程示意图;图6为本发明一实施例 提供的生成随机测试数据的示意图。图5和图6示意了一个测试demo,以工 控PTCP协议问题为例,持续增加种子,自动产生测试,直到设备发生故障 停止,如图5所示增加了11个种子。
由此可见,本实施例定义了一个通用数据包的描述语言,可来定义测试 包的载荷内容。此外,针对此数据包的定义,设计一个载荷模糊化实现的方 法,最后还设计了一个模糊化自动测试装置,能实现自动打包pcap进行发包 测试,监控状态。本实施例的优势在于:1、节省成本:可以快速自定义添加, 新增一个协议15分钟以内;2、自动模糊化覆盖:可以任意配置数据包模糊 化程度,以及模糊化内容;3、功能覆盖广:可以任意增加其它协议内容,覆 盖范围广,只需要增加种子文件即可;4、可控性高:有的放矢,可以从可视 化角度进行模糊化稳定性的用例设计和评审。
图7示出了本发明实施例提供的模糊测试装置的结构示意图。如图7所 示,本实施例提供的模糊测试装置,包括:种子定义模块21、种子生长模块 22、打包处理模块23和发包测试模块24,其中:
种子定义模块21,用于根据协议包格式,基于数据包语言描述的方式定 义种子数据包;
种子生长模块22,用于将所述种子数据包作为树种,基于所述种子数据 包进行模糊化处理,得到基于所述种子数据包进行随机生长后的数据包;
打包处理模块23,用于将所述生长后的数据包进行封装打包处理,生成 测试用的随机数据包;
发包测试模块24,用于将所述随机数据包进行发包测试。
基于上述实施例的内容,在本实施例中,所述种子定义模块21,具体用 于:
根据协议包格式,基于数据包语言描述的方式定义种子数据包的数据部 分;
根据协议包格式,基于数据包语言描述的方式定义种子数据包的功能约 束部分;
其中,所述种子数据包包括所述数据部分和所述功能约束部分,所述数 据部分用来描述种子数据包中的各个数据,所述功能约束部分用来约束所述 各个数据的关系。
基于上述实施例的内容,在本实施例中,所述数据部分包括元数据、字 段长度、字段可选内容、字段随机因子、字段循环属性和编码方式中的一种 或多种;其中,所述元数据用于根据协议包格式描述字段;字段随机因子用 于表示模糊深度,取值0-1之间,0表示不随机,1表示全随机;字段循环属 性是指字段是否循环以及循环的次数;
和/或,
所述功能约束部分包括循环冗余码CRC约束、部分求和约束、全部字段 求和约束和字段间数值约束中的一种或多种;其中,所述字段间数值约束是 指字段间数值存在大于、小于或等于的关系。
基于上述实施例的内容,在本实施例中,所述种子生长模块22,具体用 于:
确定全局模糊化参数X,所述X用于定义测试的随机程度;
确定所述字段随机因子Y;
根据所述X和所述Y确定随机概率P=X*Y;
以P的概率随机生成数据包,以1-P的概率使用基于数据包语言描述的 方式定义的种子数据包。
基于上述实施例的内容,在本实施例中,所述种子生长模块22,具体用 于:
确定全局模糊化参数X,所述X用于定义测试的随机程度;
确定所述字段随机因子Y;
根据所述X和所述Y确定随机概率P=X*Y;
若基于数据包语言描述的方式定义的种子数据包为N个比特,则基于所 述种子数据包,随机修改N*P个比特的数据,得到基于所述种子数据包进行 随机生长后的数据包,N为大于0的整数。
基于上述实施例的内容,在本实施例中,所述打包处理模块23,具体用 于:
构造数据承载层,将所述生长后的数据包按照所述数据承载层的要求进 行封装打包处理,生成测试用的随机数据包。
由于本发明实施例提供的模糊测试装置,可以用于执行上述实施例所述 的模糊测试方法,其工作原理和有益效果类似,故此处不再详述,具体内容 可参见上述实施例的介绍。
在本实施例中,需要说明的是,本发明实施例的装置中的各个模块可以 集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一 步拆分成多个子模块。
基于相同的发明构思,本发明又一实施例提供了一种电子设备,参见图 8,所述电子设备具体包括如下内容:处理器301、存储器302、通信接口303 和通信总线304;
其中,所述处理器301、存储器302、通信接口303通过所述通信总线 304完成相互间的通信;
所述处理器301用于调用所述存储器302中的计算机程序,所述处理器 执行所述计算机程序时实现上述模糊测试方法的全部步骤,例如,所述处理 器执行所述计算机程序时实现下述过程:根据协议包格式,基于数据包语言 描述的方式定义种子数据包;将所述种子数据包作为树种,基于所述种子数 据包进行模糊化处理,得到基于所述种子数据包进行随机生长后的数据包; 将所述生长后的数据包进行封装打包处理,生成测试用的随机数据包;将所 述随机数据包进行发包测试。
可以理解的是,所述计算机程序可以执行的细化功能和扩展功能可参照 上面实施例的描述。
基于相同的发明构思,本发明又一实施例提供了一种非暂态计算机可读 存储介质,该非暂态计算机可读存储介质上存储有计算机程序,该计算机程 序被处理器执行时实现上述模糊测试方法的全部步骤,例如,所述处理器执 行所述计算机程序时实现下述过程:根据协议包格式,基于数据包语言描述 的方式定义种子数据包;将所述种子数据包作为树种,基于所述种子数据包 进行模糊化处理,得到基于所述种子数据包进行随机生长后的数据包;将所 述生长后的数据包进行封装打包处理,生成测试用的随机数据包;将所述随 机数据包进行发包测试。
可以理解的是,所述计算机程序可以执行的细化功能和扩展功能可参照 上面实施例的描述。
基于相同的发明构思,本发明又一实施例提供了一种计算机程序产品, 所计算机程序产品包括有计算机程序,该计算机程序被处理器执行时实现上 述模糊测试方法的全部步骤,例如,所述处理器执行所述计算机程序时实现 下述过程:根据协议包格式,基于数据包语言描述的方式定义种子数据包; 将所述种子数据包作为树种,基于所述种子数据包进行模糊化处理,得到基 于所述种子数据包进行随机生长后的数据包;将所述生长后的数据包进行封 装打包处理,生成测试用的随机数据包;将所述随机数据包进行发包测试。
可以理解的是,所述计算机程序可以执行的细化功能和扩展功能可参照 上面实施例的描述。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并 作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。 基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部 分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产 品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是 个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的 全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁 碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说 明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以 是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多 个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现 本发明实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的 情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各 实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通 过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡 献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在 计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用 以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等) 执行各个实施例或者实施例的某些部分所述的模糊测试方法。
此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个 实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实 体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包 含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要 素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列 出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要 素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排 除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
此外,在本发明中,参考术语“一个实施例”、“一些实施例”、“示例”、 “具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特 征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说 明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而 且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示 例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员 可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进 行结合和组合。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其 限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术 人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或 者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技 术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种模糊测试方法,其特征在于,包括:
根据协议包格式,基于数据包语言描述的方式定义种子数据包;
将所述种子数据包作为树种,基于所述种子数据包进行模糊化处理,得到基于所述种子数据包进行随机生长后的数据包;
将所述生长后的数据包进行封装打包处理,生成测试用的随机数据包;
将所述随机数据包进行发包测试。
2.根据权利要求1所述的模糊测试方法,其特征在于,根据协议包格式,基于数据包语言描述的方式定义种子数据包,包括:
根据协议包格式,基于数据包语言描述的方式定义种子数据包的数据部分;
根据协议包格式,基于数据包语言描述的方式定义种子数据包的功能约束部分;
其中,所述种子数据包包括所述数据部分和所述功能约束部分,所述数据部分用来描述种子数据包中的各个数据,所述功能约束部分用来约束所述各个数据的关系。
3.根据权利要求2所述的模糊测试方法,其特征在于,所述数据部分包括元数据、字段长度、字段可选内容、字段随机因子、字段循环属性和编码方式中的一种或多种;其中,所述元数据用于根据协议包格式描述字段;字段随机因子用于表示模糊深度;字段循环属性是指字段是否循环以及循环的次数;和/或,
所述功能约束部分包括循环冗余码CRC约束、部分求和约束、全部字段求和约束和字段间数值约束中的一种或多种;其中,所述字段间数值约束是指字段间数值存在大于、小于或等于的关系。
4.根据权利要求3所述的模糊测试方法,其特征在于,将所述种子数据包作为树种,基于所述种子数据包进行模糊化处理,得到基于所述种子数据包进行随机生长后的数据包,包括:
确定全局模糊化参数X,所述X用于定义测试的随机程度;
确定所述字段随机因子Y;
根据所述X和所述Y确定随机概率P=X*Y;
以P的概率随机生成数据包,以1-P的概率使用基于数据包语言描述的方式定义的种子数据包。
5.根据权利要求3所述的模糊测试方法,其特征在于,将所述种子数据包作为树种,基于所述种子数据包进行模糊化处理,得到基于所述种子数据包进行随机生长后的数据包,包括:
确定全局模糊化参数X,所述X用于定义测试的随机程度;
确定所述字段随机因子Y;
根据所述X和所述Y确定随机概率P=X*Y;
若基于数据包语言描述的方式定义的种子数据包为N个比特,则基于所述种子数据包,随机修改N*P个比特的数据,得到基于所述种子数据包进行随机生长后的数据包,N为大于0的整数。
6.根据权利要求1所述的模糊测试方法,其特征在于,将所述生长后的数据包进行封装打包处理,生成测试用的随机数据包,包括:
构造数据承载层,将所述生长后的数据包按照所述数据承载层的要求进行封装打包处理,生成测试用的随机数据包。
7.一种模糊测试装置,其特征在于,包括:
种子定义模块,用于根据协议包格式,基于数据包语言描述的方式定义种子数据包;
种子生长模块,用于将所述种子数据包作为树种,基于所述种子数据包进行模糊化处理,得到基于所述种子数据包进行随机生长后的数据包;
打包处理模块,用于将所述生长后的数据包进行封装打包处理,生成测试用的随机数据包;
发包测试模块,用于将所述随机数据包进行发包测试。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~6任一项所述模糊测试方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1~6任一项所述模糊测试方法的步骤。
10.一种计算机程序产品,所计算机程序产品包括有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1~6任一项所述模糊测试方法的步骤。
CN202110313225.2A 2021-03-24 模糊测试方法、装置、电子设备及存储介质 Active CN115134278B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110313225.2A CN115134278B (zh) 2021-03-24 模糊测试方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110313225.2A CN115134278B (zh) 2021-03-24 模糊测试方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN115134278A true CN115134278A (zh) 2022-09-30
CN115134278B CN115134278B (zh) 2024-06-28

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160246706A1 (en) * 2015-02-20 2016-08-25 Vmware, Inc. Generating test cases
CN107193731A (zh) * 2017-05-12 2017-09-22 北京理工大学 使用控制变异的模糊测试覆盖率改进方法
CN109597767A (zh) * 2018-12-19 2019-04-09 中国人民解放军国防科技大学 一种基于遗传变异的模糊测试用例生成方法及系统
US20200374100A1 (en) * 2017-12-01 2020-11-26 Thales Dis France Sa Cryptography device having secure provision of random number sequences
CN112235241A (zh) * 2020-09-08 2021-01-15 广州大学 基于模糊测试的工控蜜罐特征提取方法、系统及介质
CN112306853A (zh) * 2019-08-01 2021-02-02 深圳市腾讯计算机系统有限公司 一种模糊测试方法、装置、设备及介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160246706A1 (en) * 2015-02-20 2016-08-25 Vmware, Inc. Generating test cases
CN107193731A (zh) * 2017-05-12 2017-09-22 北京理工大学 使用控制变异的模糊测试覆盖率改进方法
US20200374100A1 (en) * 2017-12-01 2020-11-26 Thales Dis France Sa Cryptography device having secure provision of random number sequences
CN109597767A (zh) * 2018-12-19 2019-04-09 中国人民解放军国防科技大学 一种基于遗传变异的模糊测试用例生成方法及系统
CN112306853A (zh) * 2019-08-01 2021-02-02 深圳市腾讯计算机系统有限公司 一种模糊测试方法、装置、设备及介质
CN112235241A (zh) * 2020-09-08 2021-01-15 广州大学 基于模糊测试的工控蜜罐特征提取方法、系统及介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
V. ANTOINE ET.AL.: ""Possibilistic clustering with seeds"", 《2018 IEEE INTERNATIONAL CONFERENCE ON FUZZY SYSTEMS (FUZZ-IEEE)》, 13 July 2018 (2018-07-13) *
蔡军;邹鹏;沈弼龙;何骏;: ""基于改进轮盘赌策略的反馈式模糊测试方法"", 《四川大学学报(工程科学版)》, vol. 48, no. 2, 31 March 2016 (2016-03-31) *
邓一杰: ""基于分布式模糊测试的漏洞挖掘技术研究 "", 《中国优秀硕士学位论文全文数据库(社会科学Ⅰ辑)》, 15 February 2021 (2021-02-15) *

Similar Documents

Publication Publication Date Title
CN106209830B (zh) 一种基于xml网络协议表示的报文构造方法
US10305776B2 (en) Network verification
US7885204B1 (en) Method and system for testing network topology
CN110287163B (zh) 安全日志采集解析方法、装置、设备及介质
CN107026821A (zh) 报文的处理方法及装置
CN105187279B (zh) 一种流量统计并实时排名的方法
CN109845223A (zh) 使用预分类来实施网络安全策略
CN111177729B (zh) 一种程序漏洞的测试方法以及相关装置
CN112671726A (zh) 工业控制协议解析方法、装置、电子设备和存储介质
US20220321597A1 (en) Threat mitigation system and method
CN116107846B (zh) 一种基于EBPF的Linux系统事件监控方法及装置
CN106888152A (zh) 一种消息处理方法、装置和系统
US10123190B2 (en) System and method for testing a CoAP server
CN109039730A (zh) 服务器集群及服务器集群配置信息管理方法
CN108446300A (zh) 数据信息的扫描方法及装置
US9807204B2 (en) Optimized message processing
CN112073465A (zh) 一种基于sftp传输的动态脱敏方法与设备
US11716358B2 (en) Comparing network security specifications for a network
CN106874060A (zh) 一种判断jar包是否被引用的方法及设备
CN110019318A (zh) 一种日志匹配处理方法、装置以及电子设备
CN115134278A (zh) 模糊测试方法、装置、电子设备及存储介质
CA3199669A1 (en) Threat mitigation system and method
CN115134278B (zh) 模糊测试方法、装置、电子设备及存储介质
CN111181802B (zh) 协议数据模拟方法、装置及计算机可读存储介质
CN110445658B (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
CB02 Change of applicant information

Country or region after: China

Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant after: QAX Technology Group Inc.

Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd.

Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant before: QAX Technology Group Inc.

Country or region before: China

Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc.

CB02 Change of applicant information
GR01 Patent grant