一种系统软件包漏洞导出可达性判定方法及系统
本申请涉及计算机软件安全与程序静态分析,具体涉及一种系统软件包漏洞导出可达性判定方法及系统。
背景技术:
1、软件成分分析作为识别和管理第三方组件安全风险的手段,在软件供应链安全治理中发挥着重要作用。传统二进制软件成分分析多采用组件版本与已知漏洞的存在性匹配逻辑,一旦识别出某漏洞影响范围内的组件版本即输出高危告警,而较少区分漏洞函数在实际运行面中是否可被外部输入触达。对于处于死代码或仅被内部私有路径调用的漏洞函数,此类工具仍持续告警,导致安全运营团队面临严重的警报疲劳,补丁优先级难以科学排序。
2、对于无独立入口的共享库类二进制软件包,判定包内漏洞是否可被外部触发,关键在于是否存在从导出函数出发通往内部脆弱函数的静态调用路径。然而,发布版二进制通常经符号剥离处理,内部函数名退化为匿名符号,漏洞函数难以与知识库中的符号信息建立对应;同时,跨语言调用边界处各语言的调用图分别构建、互不融合,无法在统一图模型上追踪跨边界控制流。此外,动态验证方法严重依赖特定运行环境,在限定时间内未触发漏洞无法证明其绝对不可达,难以作为合规审查结论的可靠依据。因此,需要一种纯静态、可应对符号剥离、融合多构件调用关系的二进制软件包漏洞导出可达性判定方法。
技术实现思路
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、1、本申请通过以导出符号为入口的有界路径搜索产出离散可达性状态,将不可触达的漏洞排除于高危告警之外,区分导出可达、仅内部可达与证据不足三类结论,缓解传统二进制成分分析中因组件版本与漏洞存在性匹配导致的警报疲劳与补丁优先级混乱。
35、2、本申请全流程立足于纯静态调用图分析,判决结果不依赖运行环境且可独立复现,输出结构化判决与路径明细,为供应链安全审查与补丁决策提供稳定、可解释的技术依据。此外,本申请通过按构件独立建图并融合的分治策略,使分析规模与单构件复杂度而非整包规模相关,兼顾分析可行性与判决完整性。
1.一种系统软件包漏洞导出可达性判定方法,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于源码侧调用图的拓扑先验对剥离符号执行对齐恢复包括:
3.根据权利要求2所述的方法,其特征在于,所述对齐恢复还包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述跨构件调用关系包括以下至少任意之一:
7.一种系统软件包漏洞导出可达性判定系统,所述系统包括:
8.根据权利要求7所述的系统,其特征在于,所述路径搜索模块还用于以各构件动态导出符号为起点集合执行有界广度优先搜索,并针对脚本类构件支持从入口点回退搜索。
9.根据权利要求7所述的系统,其特征在于,所述符号桥接模块采用分层匹配策略且对歧义符号生成延迟审计记录。
10.根据权利要求7所述的系统,其特征在于,所述基于源码侧调用图的拓扑先验对剥离符号执行对齐恢复包括:
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com