一种基于指纹特征的开源组件识别方法及装置制造方法及图纸

技术编号:31090848 阅读:19 留言:0更新日期:2021-12-01 12:53
本申请提供了一种基于指纹特征的开源组件识别方法及装置,该方法通过确定排列在前设定个数的目标源码单词和/或每个目标源码单词的出现频率,得到第一源码指纹特征和/或第二源码指纹特征,及通过确定排列在前设定个数的目标项目单词和/或每个目标项目单词的出现频率,得到第一项目指纹特征和/或第二项目指纹特征,基于第一源码指纹特征和/或第二源码指纹特征及第一项目指纹特征和/或第二项目指纹特征,确定源码文件和项目文件的相似度,进而确定开源组件是否属于项目程序引用的程序,完成对开源组件的识别,并保证开源组件识别的准确性。确性。确性。

【技术实现步骤摘要】
一种基于指纹特征的开源组件识别方法及装置


[0001]本申请涉及计算机
,特别涉及一种基于指纹特征的开源组件识别方法及装置。

技术介绍

[0002]目前,在开源项目开发过程中,一般会引用第三方开源组件,其中,在一些场景中,需要识别开源项目中的第三方开源组件。
[0003]但是,如何识别开源项目中的第三方开源组件成为问题。

技术实现思路

[0004]为解决上述技术问题,本申请实施例提供一种基于指纹特征的开源组件识别方法及装置,以达到保证开源组件识别的准确性的目的,技术方案如下:
[0005]一种基于指纹特征的开源组件识别方法,包括:
[0006]获取开源组件,对所述开源组件中每个源码文件进行分词,得到多个源码单词;
[0007]从多个所述源码单词中,获取排列在前设定个数的目标源码单词,和/或,确定每个所述目标源码单词的出现频率,将所述目标源码单词作为第一源码指纹特征,将所述目标源码单词的出现频率作为第二源码指纹特征;
[0008]获取项目程序,对所述项目程序中每个项目文件进行分词,得到多个项目单词;
[0009]从多个所述项目单词中,获取排列在前所述设定个数的目标项目单词,和/或,确定每个所述目标项目单词的出现频率,将所述目标项目单词作为第一项目指纹特征,将所述目标项目单词的出现频率作为第二项目指纹特征;
[0010]基于所述第一源码指纹特征和/或所述第二源码指纹特征及所述第一项目指纹特征和/或所述第二项目指纹特征,确定所述源码文件和所述项目文件的相似度;
[0011]若所述相似度达到设定阈值,则确定所述项目文件属于所述开源组件;
[0012]在属于所述开源组件的所述项目文件的个数达到设定文件个数阈值的情况下,确定所述开源组件为所述项目程序引用的组件。
[0013]可选的,所述从多个所述源码单词中,获取排列在前设定个数的所述目标源码单词,包括:
[0014]去除多个所述源码单词中的冗余数据,从去除所述冗余数据后的源码单词中获取排列在前设定个数的所述目标源码单词;
[0015]所述从多个所述项目单词中,获取排列在前所述设定个数的目标项目单词,包括:
[0016]去除多个所述项目单词中的冗余数据,从去除所述冗余数据后的项目单词中获取排列在前所述设定个数的目标项目单词。
[0017]可选的,所述基于所述第一源码指纹特征和/或所述第二源码指纹特征与所述第一项目指纹特征和/或所述第二项目指纹特征,确定所述源码文件和所述项目文件的相似度,包括:
[0018]确定每个所述第一源码指纹特征,与每个所述第一项目指纹特征之间的第一匹配结果;
[0019]确定每个所述第二源码指纹特征,与每个所述第二项目指纹特征之间的第二匹配结果;
[0020]和/或,
[0021]基于所述第一匹配结果和/或所述第二匹配结果,确定所述源码文件和所述项目文件的相似度。
[0022]可选的,所述方法还包括:
[0023]基于所述项目程序的关键信息,在安全漏洞数据库中查询所述项目程序对应的安全漏洞。
[0024]可选的,所述方法还包括:
[0025]基于所述项目程序,生成软件成分分析报告,及基于所述项目程序对应的安全漏洞,生成漏洞报告。
[0026]一种基于指纹特征的开源组件识别装置,包括:
[0027]第一分词模块,用于获取开源组件,对所述开源组件中每个源码文件进行分词,得到多个源码单词;
[0028]第一确定模块,用于从多个所述源码单词中,获取排列在前设定个数的目标源码单词,和/或,确定每个所述目标源码单词的出现频率,将所述目标源码单词作为第一源码指纹特征,将所述目标源码单词的出现频率作为第二源码指纹特征;
[0029]第二分词模块,用于获取项目程序,对所述项目程序中每个项目文件进行分词,得到多个项目单词;
[0030]第二确定模块,用于从多个所述项目单词中,获取排列在前所述设定个数的目标项目单词,和/或,确定每个所述目标项目单词的出现频率,将所述目标项目单词作为第一项目指纹特征,将所述目标项目单词的出现频率作为第二项目指纹特征;
[0031]第三确定模块,用于基于所述第一源码指纹特征和/或所述第二源码指纹特征及所述第一项目指纹特征和/或所述第二项目指纹特征,确定所述源码文件和所述项目文件的相似度;
[0032]第四确定模块,用于若所述相似度达到设定阈值,则确定所述项目文件属于所述开源组件;
[0033]第五确定模块,用于在属于所述开源组件的所述项目文件的个数达到设定文件个数阈值的情况下,确定所述开源组件为所述项目程序引用的组件。
[0034]可选的,所述第一分词模块,具体用于:
[0035]去除多个所述源码单词中的冗余数据,从去除所述冗余数据后的源码单词中获取排列在前设定个数的所述目标源码单词;
[0036]所述第二分析模块,具体用于:
[0037]去除多个所述项目单词中的冗余数据,从去除所述冗余数据后的项目单词中获取排列在前所述设定个数的目标项目单词。
[0038]可选的,所述第三确定模块,具体用于:
[0039]确定每个所述第一源码指纹特征,与每个所述第一项目指纹特征之间的第一匹配
结果;
[0040]确定每个所述第二源码指纹特征,与每个所述第二项目指纹特征之间的第二匹配结果;
[0041]和/或,
[0042]基于所述第一匹配结果和/或所述第二匹配结果,确定所述源码文件和所述项目文件的相似度。
[0043]可选的,所述装置还包括:
[0044]查询模块,用于基于所述项目程序的关键信息,在安全漏洞数据库中查询所述项目程序对应的安全漏洞。
[0045]可选的,所述装置还包括:
[0046]生成模块,用于基于所述项目程序,生成软件成分分析报告,及基于所述项目程序对应的安全漏洞,生成漏洞报告。
[0047]与现有技术相比,本申请的有益效果为:
[0048]在本申请中,通过确定排列在前设定个数的目标源码单词和/或每个目标源码单词的出现频率,得到第一源码指纹特征和/或第二源码指纹特征,及通过确定排列在前设定个数的目标项目单词和/或每个目标项目单词的出现频率,得到第一项目指纹特征和/或第二项目指纹特征,基于第一源码指纹特征和/或第二源码指纹特征及第一项目指纹特征和/或第二项目指纹特征,确定源码文件和项目文件的相似度,进而确定开源组件是否属于项目程序引用的程序,完成对开源组件的识别,并保证开源组件识别的准确性。
附图说明
[0049]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0050]图1是本申请本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于指纹特征的开源组件识别方法,其特征在于,包括:获取开源组件,对所述开源组件中每个源码文件进行分词,得到多个源码单词;从多个所述源码单词中,获取排列在前设定个数的目标源码单词,和/或,确定每个所述目标源码单词的出现频率,将所述目标源码单词作为第一源码指纹特征,将所述目标源码单词的出现频率作为第二源码指纹特征;获取项目程序,对所述项目程序中每个项目文件进行分词,得到多个项目单词;从多个所述项目单词中,获取排列在前所述设定个数的目标项目单词,和/或,确定每个所述目标项目单词的出现频率,将所述目标项目单词作为第一项目指纹特征,将所述目标项目单词的出现频率作为第二项目指纹特征;基于所述第一源码指纹特征和/或所述第二源码指纹特征及所述第一项目指纹特征和/或所述第二项目指纹特征,确定所述源码文件和所述项目文件的相似度;若所述相似度达到设定阈值,则确定所述项目文件属于所述开源组件;在属于所述开源组件的所述项目文件的个数达到设定文件个数阈值的情况下,确定所述开源组件为所述项目程序引用的组件。2.根据权利要求1所述的方法,其特征在于,所述从多个所述源码单词中,获取排列在前设定个数的所述目标源码单词,包括:去除多个所述源码单词中的冗余数据,从去除所述冗余数据后的源码单词中获取排列在前设定个数的所述目标源码单词;所述从多个所述项目单词中,获取排列在前所述设定个数的目标项目单词,包括:去除多个所述项目单词中的冗余数据,从去除所述冗余数据后的项目单词中获取排列在前所述设定个数的目标项目单词。3.根据权利要求1所述的方法,其特征在于,所述基于所述第一源码指纹特征和/或所述第二源码指纹特征与所述第一项目指纹特征和/或所述第二项目指纹特征,确定所述源码文件和所述项目文件的相似度,包括:确定每个所述第一源码指纹特征,与每个所述第一项目指纹特征之间的第一匹配结果;确定每个所述第二源码指纹特征,与每个所述第二项目指纹特征之间的第二匹配结果;和/或,基于所述第一匹配结果和/或所述第二匹配结果,确定所述源码文件和所述项目文件的相似度。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:基于所述项目程序的关键信息,在安全漏洞数据库中查询所述项目程序对应的安全漏洞。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:基于所述项目程序,生成软件成分分析报告,及基于所述项目程序对应的安全漏洞,...

【专利技术属性】
技术研发人员:祁剑伟张宾刘明马占祥马大伟靳晓雨李志伟李凯强
申请(专利权)人:国网电商科技有限公司
类型:发明
国别省市:

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

1