面向二进制程序的未知漏洞挖掘方法和相关设备与流程

摘要: 本技术涉及信息安全,尤其涉及一种面向二进制程序的未知漏洞挖掘方法和相关设备。背景技术:1、随着信创软件在电力、能源、政务、工业控制等关键基础设施领域的持续推广,...
面向二进制程序的未知漏洞挖掘方法和相关设备与流程

本技术涉及信息安全,尤其涉及一种面向二进制程序的未知漏洞挖掘方法和相关设备。

背景技术:

1、随着信创软件在电力、能源、政务、工业控制等关键基础设施领域的持续推广,围绕信创软件开展安全检测、漏洞挖掘和风险治理已成为保障业务连续性与系统可信运行的重要基础工作。

2、漏洞分析技术大多依赖源代码、符号信息或调试信息开展语法分析、控制流分析和数据流分析,而在信创软件实际部署场景中,被测对象通常仅以二进制可执行文件、库文件或中间表示形式存在,缺乏可直接用于分析的源码信息。

3、在此条件下,反汇编或反编译方法虽然能够恢复部分指令和函数边界,但难以形成统一、完备的程序表示。由于缺乏对程序结构和语义的准确恢复,因此往往只能发现格式化错误、危险函数调用等浅层问题,难以识别隐蔽的数据依赖缺陷、跨路径传播缺陷和复杂利用链漏洞,导致未知漏洞挖掘能力不足。

技术实现思路

1、本技术实施例的主要目的在于提出一种面向二进制程序的未知漏洞挖掘方法和相关设备,旨在无源码条件下提高未知漏洞挖掘深度和分析准确性。

2、为实现上述目的,本技术实施例的一方面提出了一种面向二进制程序的未知漏洞挖掘方法,所述方法包括以下步骤:

3、对二进制程序形式的目标文件进行程序解析与基础结构恢复,得到程序基础分析结果;

4、对所述程序基础分析结果进行程序语义恢复与多维关系提取,得到程序中间表示结果;

5、根据所述程序中间表示结果对所述目标文件的多类节点和多类边进行图谱建模,得到代码属性图构建结果;

6、对所述代码属性图构建结果进行无源码污点传播分析,得到候选危险传播路径结果;

7、根据所述代码属性图构建结果和所述候选危险传播路径结果对所述目标文件进行漏洞模式查询与规则匹配,得到潜在漏洞挖掘结果;

8、对所述潜在漏洞挖掘结果进行结果聚合与综合评分,得到未知漏洞挖掘结果。

9、在一些实施例中,所述程序基础分析结果包括函数信息表、基本块划分结果、指令解析结果、初始函数调用关系表,所述对二进制程序形式的目标文件进行程序解析与基础结构恢复,得到程序基础分析结果,包括以下步骤:

10、对二进制程序形式的目标文件进行格式识别,得到程序入口地址、装载布局信息和代码区域信息;

11、对所述代码区域信息的机器码进行反汇编解析,得到所述指令解析结果,其中,所述指令解析结果为按地址组织的指令序列,所述指令序列包括各指令的操作码、操作数以及指令类型,所述指令类型包括跳转指令、调用指令和返回指令;

12、根据所述程序入口地址以及所述调用指令对应的目标地址进行函数边界识别,得到所述函数信息表;

13、根据所述函数信息表和所述跳转指令进行基本块划分,得到由单入口单出口指令片段构成的所述基本块划分结果;

14、根据所述函数信息表和所述调用指令进行调用关系提取,得到所述初始函数调用关系表。

15、在一些实施例中,所述程序中间表示结果包括控制流图、数据流关系表、别名关联表、跨函数依赖关系表、程序结构近似表示结果,所述对所述程序基础分析结果进行程序语义恢复与多维关系提取,得到程序中间表示结果,包括以下步骤:

16、根据所述程序基础分析结果对跳转指令和分支关系进行控制流分析,得到所述控制流图;

17、根据所述程序基础分析结果对程序对象的读写操作进行数据流分析,得到所述数据流关系表;

18、根据所述程序基础分析结果对程序对象进行别名分析,得到所述别名关联表,其中,所述别名关联表用于记录具有别名关系的所述程序对象,所述别名关系表征多个所述程序对象指向同一内存对象或引用同一存储区域;

19、根据所述程序基础分析结果通过函数参数传递、返回值传递和共享内存访问行为恢复跨函数依赖关系,得到所述跨函数依赖关系表;

20、根据所述程序基础分析结果、所述控制流图、所述数据流关系表、所述别名关联表和所述跨函数依赖关系表对缺失的结构树进行结构近似处理,得到所述程序结构近似表示结果。

21、在一些实施例中,所述代码属性图构建结果包括代码属性图节点集合、代码属性图边集合、节点属性表、边属性表、完整代码属性图,所述根据所述程序中间表示结果对所述目标文件的多类节点和多类边进行图谱建模,得到代码属性图构建结果,包括以下步骤:

22、根据所述程序中间表示结果将所述目标文件的函数、基本块、指令、程序对象、外部输入点和敏感操作点抽象为图节点并记录节点属性,得到所述代码属性图节点集合和所述节点属性表;

23、根据所述程序中间表示结果将所述目标文件的控制依赖关系、数据依赖关系、调用关系、参数传递关系、别名关系和属性从属关系抽象为图边并记录边属性,得到所述代码属性图边集合和所述边属性表;

24、根据所述代码属性图节点集合、所述节点属性表、所述代码属性图边集合和所述边属性表进行图谱建模,得到所述完整代码属性图。

25、在一些实施例中,所述候选危险传播路径结果包括污点源节点集合、敏感汇点节点集合、候选危险传播路径集合、污点传播关系表,所述对所述代码属性图构建结果进行无源码污点传播分析,得到候选危险传播路径结果,包括以下步骤:

26、基于预设污染行为对所述代码属性图构建结果进行污染源定位,得到所述污点源节点集合,其中,所述污染行为包括用户输入、网络报文、文件输入、设备交互输入、进程间通信输入;

27、基于预设敏感行为对所述代码属性图构建结果进行敏感汇点定位,得到所述敏感汇点节点集合,其中,所述敏感行为包括命令执行、危险内存写入、敏感文件访问、系统调用、权限控制和数据库操作;

28、以污染源节点为起始节点,并以敏感汇点节点为目标节点,根据所述代码属性图构建结果对所述起始节点与所述目标节点之间的关联关系进行传播链追踪识别,得到所述污点传播关系表;

29、根据所述污点传播关系表将所述起始节点与所述目标节点之间经过的中间节点作为传播路径节点,得到所述候选危险传播路径集合。

30、在一些实施例中,所述潜在漏洞挖掘结果包括潜在漏洞点集合、漏洞类型匹配结果、漏洞传播路径结果、漏洞证据片段集合,所述根据所述代码属性图构建结果和所述候选危险传播路径结果对所述目标文件进行漏洞模式查询与规则匹配,得到潜在漏洞挖掘结果,包括以下步骤:

31、通过封装代码结构特征、数据流约束、控制条件约束、函数调用上下文约束和敏感操作约束,将预设的漏洞模式转化为可执行查询规则;

32、根据所述可执行查询规则和所述危险传播路径结果在所述代码属性图构建结果上执行图查询匹配,识别所述目标文件中符合所述漏洞模式的潜在漏洞点、漏洞传播路径和危险代码片段,得到所述漏洞点集合、所述漏洞类型匹配结果、所述漏洞传播路径结果、所述漏洞证据片段集合。

33、在一些实施例中,所述未知漏洞挖掘结果包括漏洞结果排序表、漏洞位置与路径说明结果、漏洞证据输出结果,所述对所述潜在漏洞挖掘结果进行结果聚合与综合评分,得到未知漏洞挖掘结果,包括以下步骤:

34、根据所述漏洞点集合、所述漏洞类型匹配结果、所述漏洞传播路径结果、所述漏洞证据片段集合对潜在漏洞进行关联整合,将漏洞位置、敏感汇点、漏洞类型和漏洞传播路径中至少一个相同的所述潜在漏洞归并为同一漏洞记录,得到漏洞聚合结果;

35、对所述漏洞聚合结果进行去重处理,得到漏洞去重结果;

36、对所述漏洞去重结果进行结构化,得到所述漏洞位置与路径说明结果和所述漏洞证据输出结果;

37、根据漏洞传播链长度、敏感操作危险等级、路径约束满足程度、调用上下文复杂度和证据完整度对所述漏洞去重结果进行综合评估,得到漏洞综合评分,并根据所述漏洞综合评分进行排序,得到所述漏洞结果排序表。

38、为实现上述目的,本技术实施例的另一方面提出了一种面向二进制程序的未知漏洞挖掘系统,所述系统包括:

39、第一模块,用于对二进制程序形式的目标文件进行程序解析与基础结构恢复,得到程序基础分析结果;

40、第二模块,用于对所述程序基础分析结果进行程序语义恢复与多维关系提取,得到程序中间表示结果;

41、第三模块,用于根据所述程序中间表示结果对所述目标文件的多类节点和多类边进行图谱建模,得到代码属性图构建结果;

42、第四模块,用于对所述代码属性图构建结果进行无源码污点传播分析,得到候选危险传播路径结果;

43、第五模块,用于根据所述代码属性图构建结果和所述候选危险传播路径结果对所述目标文件进行漏洞模式查询与规则匹配,得到潜在漏洞挖掘结果;

44、第六模块;用于对所述潜在漏洞挖掘结果进行结果聚合与综合评分,得到未知漏洞挖掘结果。

45、为实现上述目的,本技术实施例的另一方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。

46、为实现上述目的,本技术实施例的另一方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。

47、为实现上述目的,本技术实施例的另一方面提出了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述的方法。

48、本技术实施例至少包括以下有益效果:本技术提供一种面向二进制程序的未知漏洞挖掘方法和相关设备,该方案通过对二进制程序形式的目标文件进行程序解析与基础结构恢复,得到程序基础分析结果;对程序基础分析结果进行程序语义恢复与多维关系提取,得到程序中间表示结果;根据程序中间表示结果对目标文件的多类节点和多类边进行图谱建模,得到代码属性图构建结果;对代码属性图构建结果进行无源码污点传播分析,得到候选危险传播路径结果;对候选危险传播路径结果进行漏洞模式查询与规则匹配,得到潜在漏洞挖掘结果;对潜在漏洞挖掘结果进行结果聚合与综合评分,得到未知漏洞挖掘结果。本技术能够在无源码条件下形成统一的程序语义表示基础,基于代码属性图中的关系对污点传播追踪,提高未知漏洞挖掘深度和分析准确性。