当前位置: 首页 > 专利查询>中南大学专利>正文

操作系统内核定向模糊测试的种子变异方法及测试方法技术方案

技术编号:37505439 阅读:14 留言:0更新日期:2023-05-07 09:41
本发明专利技术公开了一种操作系统内核定向模糊测试的种子变异方法,包括获取目标操作系统的数据信息;构建函数调用图和控制流图;得到过程间控制流图;得到内核代码相对目标位置的距离度量;评估现有种子并得到符合设定条件的种子;对得到的种子进行质量评分和能量分配,得到具有不同能量的测试例种子;对测试例种子进行自适应变异,完成对应的种子变异。本发明专利技术还公开了一种包括所述操作系统内核定向模糊测试的种子变异方法的测试方法。本发明专利技术方法不仅能够让优质种子优先变异执行,实现了种子变异的高可靠性高、高效率和优秀的变异效果,而且也能够使得后续的测试过程的资源花费较少,测试时间缩短,测试效率更高。测试效率更高。测试效率更高。

【技术实现步骤摘要】
操作系统内核定向模糊测试的种子变异方法及测试方法


[0001]本专利技术属于计算机
,具体涉及一种操作系统内核定向模糊测试的种子变异方法及测试方法。

技术介绍

[0002]随着经济技术的发展和人们生活水平的提高,计算机操作系统已经广泛应用于人们的生产和生活当中,给人们的生产和生活带来了无尽的便利。因此,保障操作系统的稳定可靠运行,就成为了研究人员的研究重点之一。
[0003]内核,是一个操作系统的核心。内核是基于硬件的第一层软件扩充,其提供了操作系统的最基本的功能,是操作系统工作的基础。因此,在维护计算机的安全工作中,保障操作系统的内核的安全,就显得尤为重要。
[0004]模糊测试是目前主流的一种软件测试方法。它采用自动或者半自动的方式生成测试用例,然后向目标系统输入测试用例,在运行测试用例中通过监控系统异常行为来捕获漏洞。目前,将模糊测试运用到内核安全领域已经取得较好的成效。
[0005]操作系统内核模糊测试,是将系统调用序列作为模糊测试过程中的种子输入,通过生成随机参数和序列供操作系统执行,同时通过内核中的缺陷检测工具监视操作系统运行,以发现操作系统运行时的异常状态。
[0006]在内核模糊测试领域,当前绝大多数技术方案都是以覆盖率为导向进行漏洞挖掘。其基本流程如下:首先模糊测试工具通过手动编码的规则生成系统调用的有效种子,并将其作为初始输入放入种子池中。然后根据种子覆盖信息挑选出测试例种子,对其进行变异操作,变异产生的测试用例将放入被测内核执行。执行产生的数据流和控制流信息将指导变异策略的选择。如果测试用例执行过程中覆盖了新的位置,则将该测试用例存入种子池中供下次使用。如果在执行测试用例时程序出现异常状态,则收取内核运行安全违规报告,测试结束;若没有出现异常状态则表示该测试用例无效,此时应该抛弃该无效测试用例,测试结束。
[0007]在以上的内核模糊测试过程中,模糊测试工具在挑选种子时以内核代码覆盖率为依据。但是,由于内核代码量庞大,并且针对某些特定需求时(如补丁修复后需要对指定位置进行模糊测试),采取覆盖率引导的方式,往往会耗费大量资源在无法到达目标位点的测试用例上,使得运行时间过长,最终导致测试工作在效率和效用上明显失衡。

技术实现思路

[0008]本专利技术的目的之一在于提供一种可靠性高、效率较高且变异效果好的操作系统内核定向模糊测试的种子变异方法。
[0009]本专利技术的目的之二在于提供一种包括了所述操作系统内核定向模糊测试的种子变异方法的测试方法。
[0010]本专利技术提供的这种操作系统内核定向模糊测试的种子变异方法,包括如下步骤:
S1. 获取目标操作系统的数据信息;S2. 根据步骤S1获取的数据信息,对目标操作系统的内核源码进行静态分析,并以函数和基本块为粒度构建函数调用图和控制流图;S3. 对步骤S2构建的函数调用图和控制流图进行整合,得到过程间控制流图;S4. 对待测目标位置和过程间控制流图进行内核距离计算,得到内核代码相对目标位置的距离度量;S5. 根据步骤S4得到的内核代码相对目标位置的距离度量值,对现有的内核种子库的种子进行评估,并选择得到符合设定条件的种子;S6. 根据步骤S4得到的距离度量,基于函数粒度评分和基本块粒度评分,对步骤S5得到的种子进行质量评分和能量分配,得到具有不同能量的测试例种子;S7. 根据步骤S6得到的测试例种子的覆盖信息,对测试例种子进行自适应变异,完成操作系统内核定向模糊测试的种子变异。
[0011]所述的步骤S2,具体包括如下步骤:根据步骤S1获取的数据信息,对目标操作系统的内核源码进行静态分析,并构建函数调用图和控制流图;其中,在函数调用图上,若存在函数调用函数,则调用关系表示为;对于函数,在控制流图上若存在基本块指向,则控制流关系表示为;同时,生成的函数调用图以函数为粒度,生成的控制流图以基本块为粒度。
[0012]所述的步骤S4,具体包括如下步骤:A. 将目标操作系统的内核源码位置映射到过程间控制流图的图结构节点上,确定函数调用图中的每个节点和函数内控制流图中每个基本块节点所对应的内核代码位置;设定目标待测位置集合为T,位置在过程间控制流图上表示为目标函数集合和目标基本块集合;每个目标位置表示为函数调用图中的目标函数和函数控制流图中的目标基本块;B. 根据函数调用图,计算函数粒度距离;C. 根据控制流图,计算基本块粒度距离。
[0013]所述的步骤B,具体包括如下步骤:对于目标位置,存在若干个路径到达可达目标函数;被调函数出现次数越多,则认定到函数的距离越小;因此,采用如下算式表示对应的第一影响因子:式中为第一设定参数;对于可达目标函数,可达目标函数包括的目标函数的基本块数越多则调用到的目标函数的路径越多;因此,采用如下算式表示对应的第二影响因子:
式中为第第二设定参数;可达目标函数和目标函数之间的距离表示为;定义内核函数到目标函数集合的函数粒度距离为内核函数到目标函数集合中所有目标函数的距离的调和平均值,并表示为式中为在函数调用图上函数为起点的目标函数集合,且表示为。
[0014]所述的步骤C,具体包括如下步骤:对于同一函数内的任意两个基本块指向,定义基本块距离为在函数的控制流图中,从到的最短路径的距离;定义为函数的控制流图中基本块调用的函数集合;同时将函数集合中可达目标函数的函数子集定义为,并表示为,其中为目标函数集合内所有函数的前驱节点;定义过程间控制流图中可达目标函数集合的基本块集合为,并表示为,其中F为函数调用图中所有函数的集合;最后,采用如下算式计算过程间控制流图中基本块相对目标基本块的距离:式中c为设定的权重参数。
[0015]步骤S6所述的质量评分,具体包括如下步骤:设定内核种子库的种子集合为P,P覆盖的基本块集合为,P覆盖的函数集合为;采用如下算式计算种子p相对于目标基本块集合的距离:式中为测试种子p覆盖的基本块集合;为集合中基本块的数量;采用如下算式计算得到种子基本块粒度评分:式中为内核种子库中所有种子的基本块粒度评分的最小值;为内核种子库中所有种子的基本块粒度评分的最大值;采用如下算式计算种子p相对于目标函数集合的距离:式中为种子p所覆盖的函数集合;为函数调用图上所有可达种子所覆盖函数的函数集合;为函数调用图上能够到达目标函数的函数集合;采用如下算式计算得到种子函数粒度评分:式中为当前种子库中所有种子函数粒度距离的集合;为当前种子库中种子函数粒度距离的最小值;为当前种子库中种子函数粒度距离的最大值;根据种子基本块粒度评分和种子函数粒度评分,计算得到最终的种子的质量评分为;种子的质量评分越高,则表明种子距离待测目标的位置越近,分配的能量越高。
[0016]所述的步骤S7,具体包括如下步骤:a. 对每一个测试例种子s的能量进行判断:若大于设定的变异阈值,则对当前的测试例种子s进行细粒度变异;若不大于设定的变异阈值,则对当前的测试例种子s进行粗粒度变异;
b. 对每个测试例种子的变异几率进行修正:针对细粒度变异的测试例种子,再次进行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种操作系统内核定向模糊测试的种子变异方法,其特征在于包括如下步骤:S1. 获取目标操作系统的数据信息;S2. 根据步骤S1获取的数据信息,对目标操作系统的内核源码进行静态分析,并以函数和基本块为粒度构建函数调用图和控制流图;S3. 对步骤S2构建的函数调用图和控制流图进行整合,得到过程间控制流图;S4. 对待测目标位置和过程间控制流图进行内核距离计算,得到内核代码相对目标位置的距离度量;S5. 根据步骤S4得到的内核代码相对目标位置的距离度量值,对现有的内核种子库的种子进行评估,并选择得到符合设定条件的种子;S6. 根据步骤S4得到的距离度量,基于函数粒度评分和基本块粒度评分,对步骤S5得到的种子进行质量评分和能量分配,得到具有不同能量的测试例种子;S7. 根据步骤S6得到的测试例种子的覆盖信息,对测试例种子进行自适应变异,完成操作系统内核定向模糊测试的种子变异。2.根据权利要求1所述的操作系统内核定向模糊测试的种子变异方法,其特征在于所述的步骤S2,具体包括如下步骤:根据步骤S1获取的数据信息,对目标操作系统的内核源码进行静态分析,并构建函数调用图和控制流图;其中,在函数调用图上,若存在函数调用函数,则调用关系表示为;对于函数,在控制流图上若存在基本块指向,则控制流关系表示为;同时,生成的函数调用图以函数为粒度,生成的控制流图以基本块为粒度。3.根据权利要求2所述的操作系统内核定向模糊测试的种子变异方法,其特征在于所述的步骤S4,具体包括如下步骤:A. 将目标操作系统的内核源码位置映射到过程间控制流图的图结构节点上,确定函数调用图中的每个节点和函数内控制流图中每个基本块节点所对应的内核代码位置;设定目标待测位置集合为T,位置在过程间控制流图上表示为目标函数集合和目标基本块集合;每个目标位置表示为函数调用图中的目标函数和函数控制流图中的目标基本块;B. 根据函数调用图,计算函数粒度距离;C. 根据控制流图,计算基本块粒度距离。4.根据权利要求3所述的操作系统内核定向模糊测试的种子变异方法,其特征在于所述的步骤B,具体包括如下步骤:对于目标位置,存在若干个路径到达可达目标函数;被调函数出现次数越多,则认定到函数的距离越小;因此,采用如下算式表示对应的第一影响因子:式中为第一设定参数;
对于可达目标函数,可达目标函数包括的目标函数的基本块数越多则调用到的目标函数的路径越多;因此,采用如下算式表示对应的第二影响因子:式中为第第二设定参数;可达目标函数和目标函数之间的距离表示为;定义内核函数到目标函数集合的函数粒度距离为内核函数到目标函数集合中所有目标函数的距离的调和平均值,并表示为式中为在函数调用图上函数为起点的目标函数集合,且表示为。5.根据权利要求4所述的操作系统内核定向模糊测试的种子变异方法,其特征在于所述的步骤C,具体包括如下步骤:对于同一函数内的任意两个基本块指向,定义基本块距离为在函数的控制流图中,从到的最短路径的距离;定义为函数的控制流图中基本块调用的函数集合;同时将函数集合中可达目标函数的函数子集定义为,并表示为,其中为目标函数集合内所有函数的前驱节点;定义过程间控制流图中可达目标函数集合的基本块集合为,并表示为,其中F为函数调用图中所有函数的集合;最后,采用如下算式计算过程间控制流图中基本块相对目标基本块的距离
:式中c为设定的权重参数。6.根据权利要求5所述的操作系统内核定向模糊测试的种子变异方法,其特征在于步骤S6所述的质量评分,具体包括如...

【专利技术属性】
技术研发人员:施荣华彭瑞康施鹤远胡超梁锴陈世俊
申请(专利权)人:中南大学
类型:发明
国别省市:

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

1