基于状态驱动的Linux内核漏洞可用性搜索方法及系统技术方案

技术编号:38220313 阅读:7 留言:0更新日期:2023-07-25 17:51
本发明专利技术涉及网络安全技术领域,特别涉及一种基于状态驱动的Linux内核漏洞可用性搜索方法及系统,通过提取内核漏洞数据中漏洞相关的关键对象,其中,内核漏洞数据包含:内核错误报告及相应的内核源码;对关键对象的成员变量进行分析来获取漏洞相关的状态变量,并以状态变量作为输入进行模糊测试插桩;构建包含覆盖率反馈、内核关键对象反馈和内核状态反馈的三层反馈机制,以在内核关键对象反馈约束下引导模糊测试搜索当前漏洞相关代码段、在覆盖率反馈和内核状态反馈约束下引导模糊测试探索不同路径和内核状态。本发明专利技术从当前漏洞相关的状态变量入手,以模糊测试为基础,有效解决传统的模糊测试难以聚焦单个的漏洞可利用性、无法全面挖掘漏洞错误行为的问题。面挖掘漏洞错误行为的问题。面挖掘漏洞错误行为的问题。

【技术实现步骤摘要】
基于状态驱动的Linux内核漏洞可用性搜索方法及系统


[0001]本专利技术涉及网络安全
,特别涉及一种基于状态驱动的Linux内核漏洞可用性搜索方法及系统。

技术介绍

[0002]Linux是较早的开源操作系统,在经历了许多年的发展后,已经成为了计算机操作系统市场中一个非常重要的成分,是软件开发和服务器领域中的重要基础架构。随着Android操作系统在手机市场地位的巩固和物联网行业的兴起,更加推动了Linux操作系统在计算机各领域所受关注的提升,使得Linux在计算机软件中占据越来越重要的地位。为了提高其安全性,研究人员引入了自动化内核模糊测试技术和各种调试检查技术。通过这些工具,研究人员和内核开发人员可以更容易地找到Linux内核中存在的bug。然而,如何确定bug背后隐藏的安全风险仍然是一个挑战。现有的研究表明bug表现出来的错误行为在确定漏洞修复的优先级方面起着关键作用。在实际的内核模糊测试中,一个bug可能表现出不同的错误行为。例如,沿着不同的路径触发同一个漏洞,错误行为可能会表现为不太可能被利用的GPF(一般保护错误),也可能会表现为很可能被利用的UAF(释放后使用)。因此,安全分析人员如果仅通过表现出的单个错误行为来推断漏洞的可利用性,很可能会产生严重的误判。因此,全面发掘漏洞的错误行为,评估漏洞的可利用性是十分重要的。
[0003]为了解决这个问题,有人将看似低风险的PoC转化成高风险的PoC的一种基于高影响感知策略的模糊测试方法。但是,该方法缺少有效的引导,模糊测试的能量很难集中在当前错误附近,导致模糊测试探索了很多不必要的路径。还有利用一种定制的内核模糊测试方法,将模糊测试的能量集中在错误代码区域,同时将内核执行路径和上下文多样化到目标错误代码片段,对同一个漏洞可能会表现出的多重错误行为进行了深入探索。但是,对象驱动的模糊测试方案本质仍是一种伪代码覆盖率的模糊测试,对其他反馈不敏感。在实践中,大量的程序(包括设备驱动和网络服务等)具有复杂的内部程序状态,并且如果没有达到特定状态,将不会继续执行或崩溃。例如,如果特定的状态寄存器未设置为预期值,设备将无法工作。所以,如何将模糊测试的能量集中在当前错误代码附近,尽可能探索不同的路径以及不同的内核状态进而全面挖掘漏洞的错误行为,是一个亟待解决的问题。

技术实现思路

[0004]为此,本专利技术提供一种基于状态驱动的Linux内核漏洞可用性搜索方法及系统,解决传统的模糊测试不能将能量集中在同一个漏洞附近、无法全面探索漏洞可利用性等问题。
[0005]按照本专利技术所提供的设计方案,提供一种基于状态驱动的Linux内核漏洞可用性搜索方法,包含:
[0006]提取内核漏洞数据中漏洞相关的关键对象,其中,内核漏洞数据至少包含:内核错误报告及相应的内核源码;
[0007]通过对关键对象的成员变量进行分析来获取漏洞相关的状态变量,并以状态变量作为输入进行模糊测试插桩;
[0008]构建包含覆盖率反馈、内核关键对象反馈和内核状态反馈的三层反馈机制,以在内核关键对象反馈约束下引导模糊测试搜索当前漏洞相关代码段、在覆盖率反馈和内核状态反馈约束下引导模糊测试探索不同路径和内核状态。
[0009]作为本专利技术基于状态驱动的Linux内核漏洞可用性搜索方法,进一步地,提取内核漏洞数据中漏洞相关的关键对象,包含:
[0010]首先,利用后向污点分析技术提取内核漏洞数据中错误相关的所有内核对象;
[0011]然后,通过内核对象调用图对内核对象使用程序进行排序,筛选出与错误根本原因最相关的内核对象作为关键对象。
[0012]作为本专利技术基于状态驱动的Linux内核漏洞可用性搜索方法,进一步地,通过对关键对象的成员变量进行分析来获取漏洞相关的状态变量,包含:依据内核对象字段和数据类型特性筛选状态变量,对状态变量进行别名分析并提取内核对象中漏洞相关的状态变量,其中,内核对象中漏洞相关的状态变量包含但不限于:允许用户输入控制的状态变量和/或结构体类型状态变量。
[0013]作为本专利技术基于状态驱动的Linux内核漏洞可用性搜索方法,进一步地,对状态变量进行别名分析中,利用指针分析工具寻找状态变量别名,利用状态变量别名对当前状态变量进行补充。
[0014]作为本专利技术基于状态驱动的Linux内核漏洞可用性搜索方法,进一步地,构建包含覆盖率反馈、内核关键对象反馈和内核状态反馈的三层反馈机制,包含:在编译内核源码时,开启用于模糊测试过程中反馈覆盖率信息的cov选项;在静态分析内核源码时,对包含内核关键对象的基本块进行标记,以在模糊测试中反馈内核关键对象信息;在内核源码中提取用于进行内核状态反馈约束的状态变量取值范围,以在模糊测试中引导探索不同的内核状态。
[0015]作为本专利技术基于状态驱动的Linux内核漏洞可用性搜索方法,进一步地,提取内核源码用于进行内核状态反馈约束的状态变量取值范围中,基于抽象语法树和路径敏感静态符号来提取状态变量的取值范围。
[0016]作为本专利技术基于状态驱动的Linux内核漏洞可用性搜索方法,进一步地,基于抽象语法树和路径敏感静态符号来提取解状态变量的取值范围,包含:
[0017]首先,构建漏洞相关状态变量的源代码抽象语法树,并将构建的抽象语法树转化为可满足性模理论SMT表达式;
[0018]然后,利用符号求解器对SMT表达式进行求解,通过符号执行计算来获取状态变量的取值范围。
[0019]进一步地,本专利技术还提供一种基于状态驱动的Linux内核漏洞可用性搜索系统,包含:包含:对象提取模块、变量分析模块和反馈约束模块,其中,
[0020]对象提取模块,用于提取内核漏洞数据中漏洞相关的关键对象,其中,内核漏洞数据至少包含:内核错误报告及相应的内核源码;
[0021]变量分析模块,用于通过对关键对象的成员变量进行分析来获取漏洞相关的状态变量,并以状态变量作为输入进行模糊测试插桩;
[0022]反馈约束模块,用于构建包含覆盖率反馈、内核关键对象反馈和内核状态反馈的三层反馈机制,以在内核关键对象反馈约束下引导模糊测试搜索当前漏洞相关代码段、在覆盖率反馈和内核状态反馈约束下引导模糊测试探索不同路径和内核状态。
[0023]本专利技术的有益效果:
[0024]本专利技术通过污点分析技术提取当前漏洞相关的状态变量并通过对状态变量插桩来实现状态驱动的模糊测试,探索当前漏洞的不同内核状态,挖掘当前漏洞的不同错误行为,从当前漏洞相关的状态变量入手,以模糊测试为基础,有效解决传统的模糊测试方法难以聚焦单个的漏洞可利用性、无法全面挖掘漏洞错误行为的问题,并经过实际测试验证本案方案在挖掘不同错误行为的效率和能力都得到有效提升。
附图说明:
[0025]图1为实施例中基于状态驱动的Linux内核漏洞可用性搜索流程示意;
[0026]图2为实施例中基于状态驱动的Linux内核漏洞可用性搜索算法原理框图示意;
[0027]图3为实施例中inde本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于状态驱动的Linux内核漏洞可用性搜索方法,其特征在于,包含:提取内核漏洞数据中漏洞相关的关键对象,其中,内核漏洞数据至少包含:内核错误报告及相应的内核源码;通过对关键对象的成员变量进行分析来获取漏洞相关的状态变量,并以状态变量作为输入进行模糊测试插桩;构建包含覆盖率反馈、内核关键对象反馈和内核状态反馈的三层反馈机制,以在内核关键对象反馈约束下引导模糊测试搜索当前漏洞相关代码段、在覆盖率反馈和内核状态反馈约束下引导模糊测试探索不同路径和内核状态。2.根据权利要求1所述的基于状态驱动的Linux内核漏洞可用性搜索方法,其特征在于,提取内核漏洞数据中漏洞相关的关键对象,包含:首先,利用后向污点分析技术提取内核漏洞数据中错误相关的所有内核对象;然后,通过内核对象调用图对内核对象使用程序进行排序,筛选出与错误根本原因最相关的内核对象作为关键对象。3.根据权利要求1所述的基于状态驱动的Linux内核漏洞可用性搜索方法,其特征在于,通过对关键对象的成员变量进行分析来获取漏洞相关的状态变量,包含:依据内核对象字段和数据类型特性筛选状态变量,对状态变量进行别名分析并提取内核对象中漏洞相关的状态变量,其中,内核对象中漏洞相关的状态变量包含但不限于:允许用户输入控制的状态变量和/或结构体类型状态变量。4.根据权利要求3所述的基于状态驱动的Linux内核漏洞可用性搜索方法,其特征在于,对状态变量进行别名分析中,利用指针分析工具寻找状态变量别名,利用状态变量别名对当前状态变量进行补充。5.根据权利要求1所述的基于状态驱动的Linux内核漏洞可用性搜索方法,其特征在于,构建包含覆盖率反馈、内核关键对象反馈和内核状态反馈的三层反馈机制,包含:在编译内核源码时,开启用于模糊测试过程中反馈覆盖率信息的cov选项;在静态分析内核源码时,对包含内核关键对象的基本块进行标记,以在模糊测试中反馈内核关键...

【专利技术属性】
技术研发人员:王允超魏强武泽慧何林浩燕宸毓李锡星
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:

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

1