基于决策树的模糊测试方法和装置制造方法及图纸

技术编号:32334410 阅读:27 留言:0更新日期:2022-02-16 18:42
本申请提供一种基于决策树的模糊测试方法和装置,通过利用改造的BT模板按照目标数据格式对样本数据进行解析,获得目标数据格式下的文件数据,基于文件数据生成决策树,对决策树进行变异处理,并对变异后的决策树进行解析获得畸形数据,最后运行目标程序以解析畸形数据,根据目标程序的运行信息确定系统漏洞。该方案,可以基于改造的BT模板按目标数据格式生成文件数据,可基于需求丰富文件数据的格式,且通过对决策树进行变异,进一步地提高最终得到的畸形数据的形式,从而可以更好地探测系统漏洞,提高漏洞发现概率。提高漏洞发现概率。提高漏洞发现概率。

【技术实现步骤摘要】
基于决策树的模糊测试方法和装置


[0001]本申请涉及系统测试
,具体而言,涉及一种基于决策树的模糊测试方法和装置。

技术介绍

[0002]模糊测试,是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。目前,常用的模糊测试工具是AFL(American Fuzzy Lop),这种模糊测试工具通过记录输入样本的代码覆盖率,从而调整输入样本以提高覆盖率,增加发现漏洞的概率。但是,这种模糊测试工具只能通过直接输入样本进行突变,而不能通过模板来生成样本进行样本数据的突变。从而导致一些文件格式中无法发现一些特别的程序路径和一些漏洞。此外,现有技术中也存在一些可以利用模板在生成样本数据的方式,但是这类方式仅能按照模板固有的数据格式生成数据,导致最终得到的畸形数据形式单一,降低漏洞发现概率。

技术实现思路

[0003]本申请的目的包括,例如,提供了一种基于决策树的模糊测试方法和装置,其能够提高畸形数据形式,进而提高漏洞发现概率。
[0004]本申请的实施例可以这样实现:
[0005]第一方面,本申请提供一种基于决策树的模糊测试方法,所述方法包括:
[0006]利用改造的BT模板按照目标数据格式对样本数据进行解析,获得所述目标数据格式下的文件数据,所述BT模板为目标文件编辑器的模板语言编写的模板;
[0007]基于所述文件数据生成决策树;
[0008]对所述决策树进行变异处理,并对变异后的决策树进行解析,获得畸形数据;
[0009]运行目标程序以解析所述畸形数据,根据所述目标程序的运行信息确定系统漏洞。
[0010]在可选的实施方式中,所述目标数据格式包括结构是否存在的标志、结构数据的长度以及数据类型的描述信息。
[0011]在可选的实施方式中,所述对所述决策树进行变异处理的步骤,包括以下至少之一:
[0012]对所述决策树中文件数据的所述结构是否存在的标志进行翻转变异处理;或
[0013]对所述决策树的文件数据进行随机数的添加,其中,所述随机数来自预设的包含多个特殊字符的字典,所述特殊字符为历史确定的可供进行系统漏洞测试的字符;或
[0014]针对所述决策树的文件数据中的结构数据,对所述结构数据进行随机剪切、拼接和重复设置处理。
[0015]在可选的实施方式中,所述决策树中的文件数据包含多个分类,所述多个分类划分为带有数据的分类和不带数据的分类;
[0016]所述对变异后的决策树进行解析,获得畸形数据的步骤,包括:
[0017]对变异后的决策树进行解析,确定其中的父类结构和子类结构,并确定出所述多个分类中带有数据的分类和不带数据的分类;
[0018]根据所述父类结构、子类结构、带有数据的分类和不带数据的分类,生成畸形数据。
[0019]在可选的实施方式中,所述运行目标程序以解析所述畸形数据,根据所述目标程序的运行信息确定系统漏洞的步骤,包括:
[0020]运行目标程序以解析所述畸形数据;
[0021]通过检测工具获得所述目标程序的运行路径;
[0022]基于所述运行路径确定系统漏洞。
[0023]在可选的实施方式中,所述通过检测工具获得所述目标程序的运行路径的步骤,包括:
[0024]通过检测工具对所述目标程序进行二进制插桩;
[0025]在所述目标程序运行结束后,基于二进制插桩后的运行信息获得所述目标程序的运行路径。
[0026]在可选的实施方式中,所述通过检测工具对所述目标程序进行二进制插桩的步骤,包括:
[0027]通过检测工具将所述目标程序的代码解析为汇编代码;
[0028]将所述汇编代码拆分为多个代码块,在每个所述代码块中插入一条计数数组;
[0029]在每检测到程序运行经过任一代码块时,则将该代码块中插入的计数数组对应位置计数加1。
[0030]在可选的实施方式中,所述方法还包括:
[0031]在每个所述代码块中插入判断语句,所述判断语句用于对特定代码常量进行检测;
[0032]在所述目标程序运行过程中,在基于所述判断语句判定运行至所述特定代码常量的代码块时,对所述畸形数据进行优化处理,以使所述畸形数据通过该代码块。
[0033]在可选的实施方式中,所述对所述畸形数据进行优化处理的步骤,包括:
[0034]将所述特定代码常量注入到所述畸形数据中。
[0035]第二方面,本申请提供一种基于决策树的模糊测试装置,所述装置包括:
[0036]解析模块,用于利用改造的BT模板按照目标数据格式对样本数据进行解析,获得所述目标数据格式下的文件数据,所述BT模板为目标文件编辑器的模板语言编写的模板;
[0037]生成模块,用于基于所述文件数据生成决策树;
[0038]变异模块,用于对所述决策树进行变异处理,并对变异后的决策树进行解析,获得畸形数据;
[0039]运行模块,用于运行目标程序以解析所述畸形数据,根据所述目标程序的运行信息确定系统漏洞。
[0040]本申请实施例的有益效果包括,例如:
[0041]本申请提供一种基于决策树的模糊测试方法和装置,通过利用改造的BT模板按照目标数据格式对样本数据进行解析,获得目标数据格式下的文件数据,基于文件数据生成决策树,对决策树进行变异处理,并对变异后的决策树进行解析获得畸形数据,最后运行目
标程序以解析畸形数据,根据目标程序的运行信息确定系统漏洞。该方案,可以基于改造的BT模板按目标数据格式生成文件数据,可基于需求丰富文件数据的格式,且通过对决策树进行变异,进一步地提高最终得到的畸形数据的形式,从而可以更好地探测系统漏洞,提高漏洞发现概率。
附图说明
[0042]为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0043]图1为本申请实施例提供的基于决策树的模糊测试方法的流程图;
[0044]图2为本申请实施例提供的TTF格式文件的结构数据信息;
[0045]图3为图1中步骤S104包含的子步骤的流程图;
[0046]图4为图3中步骤S1042包含的子步骤的流程图;
[0047]图5为本申请实施例提供的基于决策树的模糊测试方法中,优化方法的流程图;
[0048]图6为本申请实施例提供的电子设备的结构框图;
[0049]图7为本申请实施例提供的基于决策树的模糊测试装置的功能模块框图。
[0050]图标:110

处理器;120

存储器;130

通信单元;140

基于决策树的模糊测试装置;141

本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于决策树的模糊测试方法,其特征在于,所述方法包括:利用改造的BT模板按照目标数据格式对样本数据进行解析,获得所述目标数据格式下的文件数据,所述BT模板为目标文件编辑器的模板语言编写的模板;基于所述文件数据生成决策树;对所述决策树进行变异处理,并对变异后的决策树进行解析,获得畸形数据;运行目标程序以解析所述畸形数据,根据所述目标程序的运行信息确定系统漏洞。2.根据权利要求1所述的基于决策树的模糊测试方法,其特征在于,所述目标数据格式包括结构是否存在的标志、结构数据的长度以及数据类型的描述信息。3.根据权利要求2所述的基于决策树的模糊测试方法,其特征在于,所述对所述决策树进行变异处理的步骤,包括以下至少之一:对所述决策树中文件数据的所述结构是否存在的标志进行翻转变异处理;或对所述决策树的文件数据进行随机数的添加,其中,所述随机数来自预设的包含多个特殊字符的字典,所述特殊字符为历史确定的可供进行系统漏洞测试的字符;或针对所述决策树的文件数据中的结构数据,对所述结构数据进行随机剪切、拼接和重复设置处理。4.根据权利要求1所述的基于决策树的模糊测试方法,其特征在于,所述决策树中的文件数据包含多个分类,所述多个分类划分为带有数据的分类和不带数据的分类;所述对变异后的决策树进行解析,获得畸形数据的步骤,包括:对变异后的决策树进行解析,确定其中的父类结构和子类结构,并确定出所述多个分类中带有数据的分类和不带数据的分类;根据所述父类结构、子类结构、带有数据的分类和不带数据的分类,生成畸形数据。5.根据权利要求1所述的基于决策树的模糊测试方法,其特征在于,所述运行目标程序以解析所述畸形数据,根据所述目标程序的运行信息确定系统漏洞的步骤,包括:运行目标程序以解析所述畸形数据;通过检测工具获...

【专利技术属性】
技术研发人员:李松林
申请(专利权)人:北京知道未来信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1