二进制程序中敏感数据的恢复方法及电子设备与流程
本技术涉及计算机软件,具体而言,涉及一种二进制程序中敏感数据的恢复方法及电子设备。
背景技术:
1、随着软件产业与互联网技术的持续演进,大量应用程序、系统组件、第三方依赖库以及固件产品均以二进制形式发布和部署。由于源代码通常难以获取,二进制程序分析已成为软件安全审计、供应链安全检测、恶意软件分析及漏洞研究等领域不可或缺的技术手段。
2、然而,在实际的软件开发实践中,开发者出于提升程序安全性或增加逆向分析难度的目的,往往采用字符串加密、编码转换、动态拼接、运行时解密、资源隐藏以及自定义混淆等多种技术手段对敏感数据进行保护。这些保护机制显著增加了从二进制层面识别和提取敏感信息的难度。
3、目前,针对二进制程序中敏感数据的恢复,主要包括静态分析和动态分析两类。静态分析技术通常使用反汇编、反编译、控制流图构建、调用关系分析以及字符串提取等方式,对程序结构和行为进行研究。动态分析技术则通过程序运行监测、沙箱执行、行为记录以及内存监控等手段获取程序运行过程中的实际行为信息。
4、实际程序中,敏感数据往往经过多层加密、编码、拼接等复合变换,形成复杂的解密链。现有方法大多针对单一变换环节,难以自动追溯和还原完整的解密链条。
技术实现思路
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、终止条件包括:
49、达到预设最大调用深度;
50、达到预设最大指令执行数量;
51、达到预设最大循环次数;
52、达到预设最大执行时间;
53、恢复函数执行结束并获得输出数据;
54、连续执行过程中未产生新的数据状态变化;
55、检测到异常控制流、访问异常或其他执行错误。
56、本技术实施例通过在二进制插桩过程中设置终止条件,能够对插桩执行过程实施全面的边界控制,有效防止因无限递归、死循环或执行异常导致的资源过度消耗与系统崩溃风险,同时确保在数据恢复目标达成或无新数据可恢复时及时终止插桩操作。
57、在第一方面的一种可能实现方式中,该方法还包括:
58、基于api函数分类规则库,从语义图谱中识别用途函数节点;
59、基于待执行的恢复链中节点类型及上下文参数特征,采用规则匹配或轻量分类模型对用途函数节点进行分类,获得用途类别及风险等级。
60、本技术实施例通过基于api函数分类规则库从语义图谱中识别用途函数节点,并结合待执行恢复链中节点类型及上下文参数特征,采用规则匹配或轻量分类模型对用途函数节点进行用途类别及风险等级的分类,能够自动识别出与敏感数据操作相关的api函数并评估其潜在风险,为敏感数据恢复过程提供更全面的语义理解与安全感知能力。
61、第二方面,本技术实施例提供一种二进制程序中敏感数据的恢复装置,包括:
62、图谱生成模块,用于基于二进制程序生成对应的语义图谱;语义图谱中的节点包括函数和数据对象,边包括函数调用关系和数据引用关系;
63、敏感数据识别模块,用于对语义图谱进行敏感数据识别,获得敏感数据节点;
64、恢复函数识别模块,用于对语义图谱进行恢复函数识别,获得恢复函数;
65、节点遍历模块,用于从敏感数据节点出发,在语义图谱中基于函数调用关系和数据引用关系进行遍历,获得候选传播链;
66、传播链选择模块,用于基于恢复函数从候选传播链中选择恢复相关传播链;
67、恢复链提取模块,用于根据恢复相关传播链中的数据对象、恢复函数及函数调用关系,从恢复相关传播链中提取待执行的恢复链;
68、插桩模块,用于对待执行的恢复链中的恢复函数进行二进制插桩,获得数据恢复结果。
69、第三方面,本技术实施例提供一种电子设备,包括:处理器、存储器和总线,其中:
70、处理器和存储器通过总线完成相互间的通信;
71、存储器存储有可被处理器执行的程序指令,处理器调用程序指令能够执行第一方面的方法。
72、第四方面,本技术实施例提供一种非暂态计算机可读存储介质,包括:
73、非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行第一方面的各个可能实现方式中的方法。
74、第五方面,本技术实施例提供一种计算机程序产品,包括计算机程序指令,计算机程序指令被处理器读取并运行时,执行第一方面的各个可能实现方式中的方法。
75、本技术的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术实施例了解。本技术的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com