一种基于组件签名的二进制软件成分分析方法技术

技术编号:38811253 阅读:13 留言:0更新日期:2023-09-15 19:50
本发明专利技术涉及网络空间安全领域,公开了一种基于组件签名的二进制软件成分分析方法,包括:获取待识别的二进制软件,基于组件签名库匹配待识别的二进制软件,将匹配到的组件加入使用组件集,基于所述组件签名库获取与所述使用组件集对应的版本签名集,基于所述版本签名集匹配待识别的二进制软件,得到组件版本号,根据所述组件版本号和所述使用组件集匹配软件漏洞。本发明专利技术在组件签名方案中,引入了最小命中次数,有效减少了误报率,组件签名生成与匹配过程中,实现了全流程自动化,减少了人工成本,组件签名版本方案,能够处理软件中包含多个组件的情况,可以准确提取出各组件的版本号。号。号。

【技术实现步骤摘要】
一种基于组件签名的二进制软件成分分析方法


[0001]本专利技术涉及网络空间安全领域,尤其涉及一种基于组件签名的二进制软件成分分析方法。

技术介绍

[0002]已有的技术方案主要存在以下几个问题,大部分已有方案需要人工维护组件签名,存在较大的人力成本。大部分已有方案的组件签名的匹配机制不完善,存在严重的漏报与误报现象。大部分已有方案的组件版本签名的匹配机制不完善,存在严重地错误获取组件版本号的现象。当软件中存在多个组件时,已有方案的组件版本签名的匹配机制会产生一些错误。这些问题制约了二进制软件成分分析在实际生产中的应用。
[0003]人工维护组件签名是高昂的成本开销,漏报误报现象都会严重地影响软件成分分析结果的质量,影响基于软件成分分析结果的后续工作的质量,为了解决以上问题,本专利技术设计了一种新颖的自动化组件签名与组件版本签名生成方案,一种新颖的组件签名匹配方案,以及一种新颖的组件版本签名匹配方案。

技术实现思路

[0004]本专利技术的目的在于克服上述一种或多种现有的技术问题,提供一种基于组件签名的二进制软件成分分析方法。
[0005]为实现上述目的,本专利技术提供的一种基于组件签名的二进制软件成分分析方法,包括:
[0006]获取待识别的二进制软件;
[0007]基于组件签名库匹配待识别的二进制软件,将匹配到的组件加入使用组件集;
[0008]基于所述组件签名库获取与所述使用组件集对应的版本签名集;
[0009]基于所述版本签名集匹配待识别的二进制软件,得到组件版本号;
[0010]根据所述组件版本号和所述使用组件集匹配软件漏洞。
[0011]根据本专利技术的一个方面,建立所述组件签名库的方法为:
[0012]初始化所述组件签名库为空集,预设最小命中次数为N;
[0013]遍历开源软件库,获取同一组件的不同版本的二进制,得到组件集合;
[0014]提取组件集合中组件二进制的所有字符串,得到字符串集;
[0015]对所述字符串集和所述组件签名库取交集,若交集结果元素个数大于等于N,则输出所述组件签名库。
[0016]根据本专利技术的一个方面,建立所述组件签名库的方法还包括:
[0017]从所述字符串集中挑选字符串加入所述组件签名库,使得所述字符串集与所述组件签名库的交集的元素个数大于等于N。
[0018]根据本专利技术的一个方面,对待识别的二进制软件进行预处理,得到二进制代码空间,所述二进制代码空间包括二进制软件集成的组件的代码,每个组件的代码具有连续性,
根据所述组件签名库与待识别的二进制软件进行匹配,若所述组件签名库中的字符串与所述二进制代码空间中的字符串的交集的元素个数大于N,则认为组件匹配并且加入所述使用组件集。
[0019]根据本专利技术的一个方面,建立所述版本签名集的方法为:
[0020]遍历开源软件库,获取同一组件的不同版本的二进制,得到组件集合;
[0021]提取组件集合中组件二进制的所有字符串,得到字符串集;
[0022]筛选所述字符串集中含有版本号的字符串,得到版本标记集合;
[0023]基于所述版本标记集合得到所述版本签名集。
[0024]根据本专利技术的一个方面,建立所述版本签名集的方法还包括:
[0025]初始化所述版本签名集为空集;
[0026]从所述字符串集中筛选含有版本号的字符串加入所述版本签名集;
[0027]遍历所述版本标记集合,如果所述版本签名集中存在版本签名能匹配当前的所述版本标记集合,则所述版本签名集完整,若不能,则为当前的版本标记生成一个版本签名,加入所述版本签名集。
[0028]根据本专利技术的一个方面,所述版本签名集与所述版本标记集合通过正则表达式完成,所述版本标记集合中的版本标记包含标识符和版本号,所述版本签名集中的版本签名为正则表达式。
[0029]为实现上述目的,本专利技术提供一种基于组件签名的二进制软件成分分析系统,包括:
[0030]二进制软件获取模块:获取待识别的二进制软件;
[0031]使用组件集生成模块:基于组件签名库匹配待识别的二进制软件,将匹配到的组件加入使用组件集;
[0032]版本签名集获取模块:基于所述组件签名库获取与所述使用组件集对应的版本签名集;
[0033]组件版本号获取模块:基于所述版本签名集匹配待识别的二进制软件,得到组件版本号;
[0034]软件漏洞匹配模块:根据所述组件版本号和所述使用组件集匹配软件漏洞。
[0035]为实现上述目的,本专利技术提供一种电子设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现上述针对一种基于组件签名的二进制软件成分分析方法。
[0036]为实现上述目的,本专利技术提供一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述针对一种基于组件签名的二进制软件成分分析方法。
[0037]基于此,本专利技术的有益效果在于:
[0038]1.在组件签名方案中,引入了最小命中次数,有效减少了误报率;
[0039]2.组件签名生成与匹配过程中,实现了全流程自动化,减少了人工成本;
[0040]3.组件签名版本方案,能够处理软件中包含多个组件的情况,可以准确提取出各组件的版本号。
附图说明
[0041]图1是本专利技术一种基于组件签名的二进制软件成分分析方法的流程图;
[0042]图2是本专利技术一种基于组件签名的二进制软件成分分析方法的二进制软件代码空间示意图;
[0043]图3是本专利技术一种基于组件签名的二进制软件成分分析系统的流程图。
具体实施方式
[0044]现在将参照示例性实施例来论述本专利技术的内容,应当理解,论述的实施例仅是为了使得本领域普通技术人员能够更好地理解且因此实现本专利技术的内容,而不是暗示对本专利技术的范围的任何限制。
[0045]如本文中所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”,术语“一个实施例”和“一种实施例”要被解读为“至少一个实施例”。
[0046]根据本专利技术的一个实施例,图1为本专利技术中的一种基于组件签名的二进制软件成分分析方法流程示意图,如图1所示,一种基于组件签名的二进制软件成分分析方法包括:
[0047]获取待识别的二进制软件;
[0048]基于组件签名库匹配待识别的二进制软件,将匹配到的组件加入使用组件集;
[0049]基于所述组件签名库获取与所述使用组件集对应的版本签名集;
[0050]基于所述版本签名集匹配待识别的二进制软件,得到组件版本号;
[0051]根据所述组件版本号和所述使用组件集匹配软件漏洞。
[0052]根据本专利技术的一个实施方式,建立所述组件签名库的方法为:
[0053]初本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于组件签名的二进制软件成分分析方法,其特征在于,包括:获取待识别的二进制软件;基于组件签名库匹配待识别的二进制软件,将匹配到的组件加入使用组件集;基于所述组件签名库获取与所述使用组件集对应的版本签名集;基于所述版本签名集匹配待识别的二进制软件,得到组件版本号;根据所述组件版本号和所述使用组件集匹配软件漏洞。2.如权利要求1所述的基于组件签名的二进制软件成分分析方法,其特征在于,建立所述组件签名库的方法为:初始化所述组件签名库为空集,预设最小命中次数为N;遍历开源软件库,获取同一组件的不同版本的二进制,得到组件集合;提取组件集合中组件二进制的所有字符串,得到字符串集;对所述字符串集和所述组件签名库取交集,若交集结果元素个数大于等于N,则输出所述组件签名库。3.如权利要求2所述的基于组件签名的二进制软件成分分析方法,其特征在于,建立所述组件签名库的方法还包括:从所述字符串集中挑选字符串加入所述组件签名库,使得所述字符串集与所述组件签名库的交集的元素个数大于等于N。4.如权利要求3所述的基于组件签名的二进制软件成分分析方法,其特征在于,对待识别的二进制软件进行预处理,得到二进制代码空间,所述二进制代码空间包括二进制软件集成的组件的代码,每个组件的代码具有连续性,根据所述组件签名库与待识别的二进制软件进行匹配,若所述组件签名库中的字符串与所述二进制代码空间中的字符串的交集的元素个数大于N,则认为组件匹配并且加入所述使用组件集。5.如权利要求4所述的基于组件签名的二进制软件成分分析方法,其特征在于,建立所述版本签名集的方法为:遍历开源软件库,获取同一组件的不同版本的二进制,得到组件集合;提取组件集合中组件二进制的所有字符串,得到字符串集;筛选所述字符串集中含有版...

【专利技术属性】
技术研发人员:程瑞闵海钊张帅兵谢洪道关宇林颖峰史本鹏
申请(专利权)人:中机博也宁波汽车技术有限公司
类型:发明
国别省市:

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

1