一种基于多种群遗传算法的模糊测试数据生成方法与流程

文档序号:36420259发布日期:2023-12-20 08:41阅读:25来源:国知局
一种基于多种群遗传算法的模糊测试数据生成方法与流程

本发明涉及模糊测试,尤其涉及一种基于多种群遗传算法的模糊测试数据生成方法。


背景技术:

1、随着信息技术的飞速发展和网络建设的不断深入,现代社会对信息网络的依赖度越来越高,许多单位部门建立了内部局域网,实现了办公自动化,但网络给工作带来便利的同时,其安全问题也越发突出。近年来关于协议安全问题频发,例如,著名的“heartbleed”漏洞和“wannacry”勒索病毒造成了全球范围内的重大损失。由此可见,看似安全的协议也可能隐藏着安全漏洞隐患。特别是在军工办公系统中,内部数据信息的传输具有安全保密需求,而数据传输又依赖于协议系统,因此,协议系统安全性测试方法的改进优化尤为重要。网络协议安全性可以分为协议规范安全性和协议实现安全性,许多在规范设计上被证明是安全的协议,但是在程序员按照规范进行实现的时候也可能会引入漏洞。协议实现上存在安全漏洞的确定性是出现网络安全问题重要原因之一,目前已有的网络协议安全性分析方法包括静态分析、符号执行和模糊测试等。而模糊测试具有高度自动化的特点,使其成为漏洞检测中较为常用的方法之一。

2、但传统的模糊测试技术在测试中具有很大的盲目性,测试数据随机生成,引入了大量冗余数据,占用了大量测试时间,降低了模糊测试的效率。目前大多模糊测试方法只进行单字段变异,难以测试多维输入可能导致的问题。此外,多维输入也会带来组合爆炸问题,导致测试效率低、代码覆盖率低等,而遗传算法基于遗传进化思想,可以指导测试方向,有效降低模糊测试的盲目性和随机性,但同时带来了传统遗传算法由于局部最优解导致的早熟问题。将遗传算法应用到模糊测试领域,具有很好实用性和应用前景,但两者中存在较为突出的问题也亟需改进。


技术实现思路

1、鉴于上述的分析,本发明实施例旨在提供一种基于多种群遗传算法的模糊测试数据生成方法,用以解决现有模糊测试数据生成时的盲目性和随机性,以及遗传算法中存在的局部最优解的问题。

2、本发明的目的主要是通过以下技术方案实现的:

3、本发明提供了一种基于多种群遗传算法的模糊测试数据生成方法,包括:

4、基于漏洞库信息、模糊测试工具afl以及网络报文生成模糊测试数据构建多个初始种群进行种群初始化及编码;

5、依据代码覆盖率设计适应度函数计算编码后种群中各个体的个体适应度值,并根据所述个体适应度值将各个体分至精英种群或普通种群;

6、对所述精英种群中的个体进行个体交叉及个体变异操作得到新的个体;对所述普通种群进行种群间交叉操作和种群及个体变异操作得到新的种群;直到达到遗传代数或终止条件后得到最终种群作为生成的所述模糊测试数据。

7、进一步的,所述构建多个初始种群进行种群初始化,包括:

8、根据漏洞库信息分析历史漏洞成因生成针对漏洞的第一测试数据;

9、使用模糊测试工具afl对正常数据产生随机变异生成第二测试数据;

10、使用网络嗅探工具得到正常的网络报文生成第三测试数据;

11、将所述第一、第二和第三测试数据按敏感字段划分为若干子种群组成初代种群。

12、进一步的,所述依据代码覆盖率设计适应度函数计算编码后种群中各个体的个体适应度值,其公式为:

13、fitnessij=covij

14、其中,fitnessij为第i个种群第j个个体的个体适应度值;covij为第i个种群第j个个体的代码覆盖率。

15、进一步的,所述对所述精英种群中的个体进行个体交叉操作,包括:

16、步骤s11、对精英种群中的个体按个体适应度值降序排序,保留最优个体直接进入下一代;

17、步骤s12、基于个体适应度值采用轮盘赌法选择精英种群中两个个体作为父代个体;

18、步骤s13、对所述父代个体采用随机多点交叉方式,生成子代个体;

19、步骤s14、重复步骤s12和s13直到所述精英种群中子代个体和父代个体数量相等。

20、进一步的,对精英种群的个体进行个体变异操作时不指定基因字段。

21、进一步的,还包括基于所述适应度函数计算编码后种群的种群适应度值;所述对所述普通种群进行种群交叉操作,包括:

22、步骤s21、基于种群适应度值采用轮盘赌法选择普通种群中两个种群作为父代种群;

23、步骤s22、基于个体适应度值采用轮盘赌法在所述父代种群中分别选择个体;

24、步骤s23、对所述个体采用随机多点交叉方式,生成子代个体,并产生子代种群;

25、步骤s24、重复步骤s22至s23直到子代个体与父代个体数量相等;

26、步骤s25、重复步骤s21至s24直到子代种群和父代种群数量相等。

27、进一步的,所述种群适应度值计算,其公式如下:

28、

29、其中,fitnessi为第i个种群的适应度值;ni为第i个种群中个体数量。

30、进一步的,对所述普通种群进行种群变异操作包括:对普通种群在设定概率(1-q)/2的情况下新增个体、在设定概率(1-q)/2的情况下删除个体及在设定概率q的情况下不进行新增和删除个体;

31、对所述普通种群进行个体变异操作包括:对普通种群内个体指定基因字段进行变异操作。

32、进一步的,所述对精英种群的个体变异操作、对普通种群的个体变异操作,采用的变异策略包括数值类型变异、字符串类型的变异、特殊类型变异和比特翻转变异中的至少一种。

33、进一步的,所述精英种群由各编码后初始种群中个体适应度值最高的个体组成;

34、所述普通种群为各编码后初始种群中去掉个体适应度值最高的个体的种群;

35、经过一轮进化后,所述普通种群中个体适应度值最高的个体与所述精英种群中个体适应度最低的个体相交换。

36、与现有技术相比,本发明至少可实现如下有益效果之一:

37、1、本发明提出了新型初始种群构建方式,基于漏洞库对历史漏洞进行分析并设计生成具有针对性的测试数据、通过afl工具随机变异产生的测试数据以及通过嗅探得到的正常网络报文能够有效保证测试数据的多样性、针对性以及随机性;

38、2、本发明根据初始种群构建方式,设计的新型选择和交叉算子,包括种群内个体和种群间选择和交叉算子,可以实现协议多维组合变异,并有效缓解遗传算法中组合爆炸问题;

39、3、本发明设计实现了更多更全面的变异方式,使得变异产生更多有趣的测试数据,增加了测试数据的多样性;

40、4、本发明根据模糊测试的出发点设计适应度函数可以实现生成的测试数据代码覆盖率高,使得触发漏洞的概率更高。

41、本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。

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