System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及协议测试,提供一种基于字段感知的灰盒文本协议模糊测试方法和系统。是一种可以对输入报文格式进行简单推测的基于变异的灰盒协议模糊测试方法。
技术介绍
1、随着全球数字化、信息化进程的加快,计算机网络深入各行各业,极大地促进了社会经济的繁荣进步。但是,这也带来了新的风险和挑战。现如今,单一网络安全漏洞可能带来的危害空前巨大,涉及范围可能涵盖全球各大主要经济体。因此,网络空间安全已经成为事关人类共同利益的重大问题。
2、模糊测试是一种高效的自动化测试方法,其核心是自动产生大量的随机测试用例,然后使用这些测试用例作为输入来运行被测目标,并在运行过程中监视目标程序的状态,从而找到可能使目标崩溃的测试用例。由于其高效、易用的巨大优势,目前,模糊测试已成为网络协议测试的一大重要手段。
3、根据产生测试用例的方式,可以将协议模糊测试分为基于生成的和基于变异的两大类。其中,基于生成的协议模糊测试以peach和boofuzz为代表,它们根据人工给定的被测协议的状态机和报文模板来生成测试用例。这种方式生成的测试用例较为符合被测协议的要求,但添加对新协议的支持需要大量的人工工作,扩展性较差。同时,这种方式的测试效率很大程度上依赖于人工模板和状态机的准确性,对使用的人员提出了很高的要求。而基于变异的协议模糊测试以《aflnet:a greybox fuzzer for network protocols》中提出的aflnet为代表,通过对已有种子进行随机变异来产生新的测试用例。这种方式不需要人工提供被测协议模板和状态机
4、此前,在软件测试领域也存在对具有固定格式的输入(例如图片文件)进行变异产生的测试用例大部分不符合要求,导致被目标程序拒绝,从而影响测试效率的问题。针对这一问题,首先提出的工作是《smart greybox fuzzing》。其借鉴了基于生成的协议模糊器peach的思想,在灰盒模糊器afl中加入了人工提供的输入模板,大概率保持变异产生的测试用例仍符合输入文件的格式要求,有效提高了对输入为有格式文件的软件的测试效果。但aflsmart存在于基于生成的协议模糊测试相同的问题,由于需要人工提供输入的模板,导致其扩展性较差且对测试人员有较高的要求。
5、针对这一问题,也已经有研究人员提出了一些基于字节推断来自动获取输入大致格式的软件模糊器。例如,《profuzzer:on-the-fly input type probing for betterzero-day vulnerability discovery》提出了基于字节的字段猜测方法。它首先对初始种子进行预测试,依次变异初始种子的每一位,使其取值从0到255,并收集每个取值时被测协议实现的分支覆盖和分支执行频率。然后,根据变异每个字节得到的测试结果的特征,猜测其可能属于什么类型的字段。之后,相邻且类型相同的字节会被合并成一个字段,字段类型就是其包含的字节的类型。然而,这类方法对输入格式的推断都是基于字节位置的,如果被测对象所需输入的字段长度不固定,则很难获得较为精确的字段划分。因此,这种方式不适合字段长度没有严格限制的文本协议。
6、综上所述,基于变异的协议模糊器具有较好的可扩展性且使用便捷,但一般没有协议报文的格式信息,产生的测试用例大多不符合协议的基本要求,会被被测协议实现直接拒绝,影响对实现协议主要逻辑的相关代码的测试。而目前已有的考虑了输入格式的模糊器不是需要大量人工工作,就是只适合于字段长度基本固定的二进制输入。因此,本专利技术提出了一种基于字段感知的灰盒文本协议模糊测试方法,用于解决字段长度不固定的文本协议的输入格式推断问题。本方法对文本协议的报文进行分割并识别其中大概率取值受限的字段,从而得到近似的报文格式。为了利用得到的报文格式信息,本专利技术添加了字段级的变异策略,在保持报文格式基本不变的情况下,减少对取值受限字段的随机变异,提高测试用例被被测协议实现接受的概率,从而将更多的时间用于对协议实现主要处理逻辑而非拒绝条件进行探索,并最终达到提高测试效率的目标。
技术实现思路
1、本专利技术提出了一种基于字段感知的灰盒文本协议模糊测试方法。该方法基于现有的基于变异的灰盒协议模糊器aflnet,并在aflnet的基础上加入了对报文字段和其可能取值的推测,并以此指导变异生成测试用例的过程,从而提高测试用例符合协议规范的概率。本方法在aflent的测试准备阶段中添加了字段划分、字段字典构建、字段基础变异能量设置等功能;在aflnet的模糊测试阶段中添加了字段实际变异能量计算、字段级变异策略等功能。此外,为了更深入地对协议的主要逻辑进行测试,本专利技术还对aflnet使用的状态机进行了部分增强,对其中表示协议接受发送来的报文的状态进行了细分。
2、具体的,本专利技术在测试准备阶段和模糊测试阶段添加的功能如下:
3、ⅰ、测试准备阶段
4、如图1所示,在测试准备阶段中,模糊器需要读入初始种子并将其保存到种子队列中。本专利技术的方法在保存种子时,对种子中每个报文的可能字段都进行了划分,并将划分的结果保存在种子中。此外,还将每个种子中所有报文每个字段的值保存在对应的字段字典中,作为对应字段可能的取值。最后,根据每个字段可能取值的多样性,计算每个字段的基础变异能量。
5、具体的,上述三个功能的方法如下:
6、1-1.字段划分
7、将当前读入种子中每个报文进行字段划分,将划分的结果存放在种子队列对应当前种子的结构体中。具体步骤如下:
8、1-1-1.依次读取当前种子的每个报文(aflnet已经对种子的报文进行了划分);
9、1-1-2.依次将当前报文的每个字节与被测协议使用的所有分隔符进行匹配,直到报文结束,并转到步骤1-1-4;
10、1-1-3.如当前字节是被测协议使用的分隔符之一,则将从上一次分割字段的下一个字节到当前字节的上一个字节的部分(如果存在的话)作为非分隔字段保存,并将当前字节作为分隔字段保存。之后,返回步骤1-1-2;
11、1-1-4.将整个报文的所有字段和其是否属于分隔字段依次保存在种子队列中当前种子结构体中存储对应报文的结构体中,并保存当前报文包含的字段总数。
12、1-2构建字段字典
13、将初始种子中每个报文的各个字段的取值分别存储在对应的字典中,并记录每个值出现的次数。具体步骤如下:
14、1-2-1 1-2-1.遍历所有的初始种子,遍历完成则字段字典初始化完成;
15、1-2-2 1-2-2.遍历代表当前初始种子的结构体中的每个报文结构体,遍历完成返回步骤1-2-1;
16、1-2-3 1-2-3.遍历当前报文中的每个必要字段(将初本文档来自技高网...
【技术保护点】
1.一种基于字段感知的灰盒文本协议模糊测试方法,基于现有的基于变异的灰盒协议模糊器AFLNET,其特征在于:在AFLNET的基础上加入对报文字段和其可能取值的推测,并以此指导变异生成测试用例的过程,从而提高测试用例符合协议规范的概率;在AFLENT的测试准备阶段中添加字段划分、字段字典构建、字段基础变异能量设置功能;在AFLNET的模糊测试阶段中添加字段实际变异能量计算、字段级变异策略功能;此外,为了更深入地对协议的主要逻辑进行测试,还对AFLNET使用的状态机进行部分增强,对其中表示协议接受发送来的报文的状态进行细分。
2.根据权利要求1所述的一种基于字段感知的灰盒文本协议模糊测试方法,其特征在于在测试准备阶段具有以下功能:
3.根据权利要求1或2所述的一种基于字段感知的灰盒文本协议模糊测试方法,其特征在于在模糊测试阶段具有以下功能:
4.根据权利要求3所述的一种基于字段感知的灰盒文本协议模糊测试方法,其特征在于:在测试准备阶段计算每个字段的基础变异能量,计算方法如下:
5.根据权利要求3所述的一种基于字段感知的灰盒文本协议模糊测
6.根据权利要求1所述的一种基于字段感知的灰盒文本协议模糊测试方法,其特征在于:字段级变异策略分为字段级确定性变异策略和字段级非确定性策略两大类,且对于分隔符字段和非分隔符字段使用的变异策略有所不同。
7.根据权利要求6所述的一种基于字段感知的灰盒文本协议模糊测试方法,其特征在于:字段级的确定性变异策略,具体如下:
8.根据权利要求6所述的一种基于字段感知的灰盒文本协议模糊测试方法,其特征在于:字段级的非确定性变异策略,具体如下:
9.一种基于字段感知的灰盒文本协议模糊测试系统,其特征在于:在没有人工提供协议模板的前提下对协议格式和各个字段可能的取值进行推测,包含以下模块:
10.根据权利要求9所述的一种基于字段感知的灰盒文本协议模糊测试系统,其特征在于:字段级变异模块中的字段级变异策略分为字段级确定性变异策略和字段级非确定性策略两大类,且对于分隔符字段和非分隔符字段使用的变异策略有所不同;
...【技术特征摘要】
1.一种基于字段感知的灰盒文本协议模糊测试方法,基于现有的基于变异的灰盒协议模糊器aflnet,其特征在于:在aflnet的基础上加入对报文字段和其可能取值的推测,并以此指导变异生成测试用例的过程,从而提高测试用例符合协议规范的概率;在aflent的测试准备阶段中添加字段划分、字段字典构建、字段基础变异能量设置功能;在aflnet的模糊测试阶段中添加字段实际变异能量计算、字段级变异策略功能;此外,为了更深入地对协议的主要逻辑进行测试,还对aflnet使用的状态机进行部分增强,对其中表示协议接受发送来的报文的状态进行细分。
2.根据权利要求1所述的一种基于字段感知的灰盒文本协议模糊测试方法,其特征在于在测试准备阶段具有以下功能:
3.根据权利要求1或2所述的一种基于字段感知的灰盒文本协议模糊测试方法,其特征在于在模糊测试阶段具有以下功能:
4.根据权利要求3所述的一种基于字段感知的灰盒文本协议模糊测试方法,其特征在于:在测试准备阶段计算每个字段的基础变异能量,计算方法如下:
5.根据权利要求3所述的一种基于字...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。