基于中间表达函数指纹的二进制开源组件识别方法及装置与流程

文档序号:38035526发布日期:2024-05-17 13:20阅读:11来源:国知局
基于中间表达函数指纹的二进制开源组件识别方法及装置与流程

本申请涉及软件,尤其涉及软件安全,可应用于二进制文件中开源组件信息分析场景。更具体的,本申请公开了一种基于中间表达函数指纹的二进制开源组件识别方法及装置。


背景技术:

1、开源组件代码重用大大提高了软件开发的效率,但与此同时,开源组件的不当使用也带来了潜在的安全风险问题,如违反许可证、安全漏洞传播等问题。二进制软件使用的开源组件成分常常未加标识,无法判断使用组件是否存在软件漏洞等问题,导致开源组件的重用已成为网络信息系统潜藏的安全隐患。

2、为了提高网络信息系统的安全性,通常需要对二进制软件使用的开源组件成分进行识别,相关技术中目前所采用的方式是直接对二进制的汇编代码进行相似度比较来识别开源组件,然而,汇编代码的语义信息较为局限且可读性较差,难以保证开源组件识别的准确性和效率。

3、值得注意的是,在此部分中描述的技术不一定是之前已经设想到或采用的技术。除非另有指明,否则不应假定此部分中描述的任何技术仅因其包括在此部分中就被认为为现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。


技术实现思路

1、本申请的主要目的在于提供一种基于中间表达函数指纹的二进制开源组件识别方法及装置,至少能够解决相关技术提供的开源组件识别方法的准确性和效率难以得到保证的问题。

2、本申请第一方面提供了一种基于中间表达函数指纹的二进制开源组件识别方法,包括:对待识别二进制文件进行分析,得到相应的二进制文件中间表达;基于所述二进制文件中间表达构建所述待识别二进制文件的第一函数指纹;其中,函数指纹包括多个函数名称及相应的中间表达;将所述第一函数指纹与预设开源组件函数指纹库进行相似性比对,确定所述待识别二进制文件对应的开源组件信息;其中,所述开源组件函数指纹库中包括多个不同开源组件相应的第二函数指纹。

3、本申请第二方面提供了一种基于中间表达函数指纹的二进制开源组件识别装置,包括:分析模块,用于对待识别二进制文件进行分析,得到相应的二进制文件中间表达;构建模块,用于基于所述二进制文件中间表达构建所述待识别二进制文件的第一函数指纹;其中,函数指纹包括多个函数名称及相应的中间表达;识别模块,用于将所述第一函数指纹与预设开源组件函数指纹库进行相似性比对,确定所述待识别二进制文件对应的开源组件信息;其中,所述开源组件函数指纹库中包括多个不同开源组件相应的第二函数指纹。

4、本申请第三方面提供了一种电子设备,包括:存储器及处理器,其中,处理器用于执行存储在存储器上的计算机程序,处理器执行计算机程序时,实现上述本申请实施例第一方面提供的基于中间表达函数指纹的二进制开源组件识别方法中的各步骤。

5、本申请第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现上述本申请实施例第一方面提供的基于中间表达函数指纹的二进制开源组件识别方法中的各步骤。

6、由上可见,根据本申请方案所提供的基于中间表达函数指纹的二进制开源组件识别方法及装置,对待识别二进制文件进行分析,得到相应的二进制文件中间表达;基于二进制文件中间表达构建待识别二进制文件的第一函数指纹;其中,函数指纹包括多个函数名称及相应的中间表达;将第一函数指纹与预设开源组件函数指纹库进行相似性比对,确定待识别二进制文件对应的开源组件信息;其中,开源组件函数指纹库中包括多个不同开源组件相应的第二函数指纹。通过本申请方案的实施,将语义信息丰富且可读性强的中间表达作为相似度比较对象来识别开源组件,提高了开源组件识别的准确性和效率,有助于对二进制文件中开源组件进行管理。

7、应当理解,本部分所描述的内容并非旨在标识本申请的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。



技术特征:

1.一种基于中间表达函数指纹的二进制开源组件识别方法,其特征在于,包括:

2.根据权利要求1所述的二进制开源组件识别方法,其特征在于,所述基于所述二进制文件中间表达构建所述待识别二进制文件的第一函数指纹的步骤,包括:

3.根据权利要求2所述的二进制开源组件识别方法,其特征在于,所述对所述二进制文件中间表达进行优化处理,得到优化后二进制文件中间表达的步骤,包括:

4.根据权利要求2所述的二进制开源组件识别方法,其特征在于,所述对所述优化后二进制文件中间表达进行规范化处理,得到规范化二进制文件中间表达的步骤,包括:

5.根据权利要求1所述的二进制开源组件识别方法,其特征在于,还包括:

6.根据权利要求1至5中任意一项所述的二进制开源组件识别方法,其特征在于,所述将所述第一函数指纹与预设开源组件函数指纹库进行相似性比对,确定所述待识别二进制文件对应的开源组件信息的步骤,包括:

7.根据权利要求6所述的二进制开源组件识别方法,其特征在于,所述基于比对通过的目标开源组件的第二函数指纹相应的中间表达以及调用函数名称,与所述第一函数指纹相应的中间表达以及调用函数名称,计算综合相似性得分的步骤,包括:

8.一种基于中间表达函数指纹的二进制开源组件识别装置,其特征在于,包括:

9.一种电子设备,其特征在于,包括存储器及处理器,其中:

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至7中的任意一项所述的基于中间表达函数指纹的二进制开源组件识别方法中的步骤。


技术总结
本申请提供了一种基于中间表达函数指纹的二进制开源组件识别方法及装置,涉及软件技术领域,具体实现方案为:对待识别二进制文件进行分析,得到相应的二进制文件中间表达;基于二进制文件中间表达构建待识别二进制文件的第一函数指纹;其中,函数指纹包括多个函数名称及相应的中间表达;将第一函数指纹与预设开源组件函数指纹库进行相似性比对,确定待识别二进制文件对应的开源组件信息;其中,开源组件函数指纹库中包括多个不同开源组件相应的第二函数指纹。通过本申请方案的实施,将语义信息丰富且可读性强的中间表达作为相似度比较对象来识别开源组件,提高了开源组件识别的准确性和效率,有助于对二进制文件中开源组件进行管理。

技术研发人员:万振华,胡佳豪,蒋建春
受保护的技术使用者:深圳开源互联网安全技术有限公司
技术研发日:
技术公布日:2024/5/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1