一种开源软件识别方法及装置制造方法及图纸

技术编号:21548368 阅读:57 留言:0更新日期:2019-07-06 21:43
本申请实施例公开了一种开源软件识别方法及装置,用于提升识别效率。所述方法包括:获取待识别的目标代码;将开源软件特征库中开源软件的特征信息与目标代码进行匹配,确定与所述目标代码匹配的目标特征信息,所述特征信息包括如下至少一项:端点特征信息,分叉点特征信息,无效特征信息;所述端点特征信息包括所述开源软件的初始版本对应的文件信息和/或所述开源软件的非初始版本相对于之前的版本新增的文件信息;所述分叉点特征信息包括所述开源软件的非初始版本相对于之前的版本修改的文件信息;所述无效特征信息包括所述开源软件从初始版本到当前最新版本未修改过的文件信息;根据所述目标特征信息确定所述目标代码对应的开源软件信息。

An Open Source Software Recognition Method and Device

【技术实现步骤摘要】
一种开源软件识别方法及装置
本申请涉及计算机应用领域,尤其涉及一种开源软件识别方法及装置。
技术介绍
开源软件在云计算中已发挥越来越重要的作用,并成为云计算网络安全的关键。精准识别开源软件及其版本是保证开源组件漏洞有效闭环的关键。业界目前已有成熟的网络安全漏洞库,这些开源软件漏洞闭环的前提是能够精准识别产品代码中使用了哪些开源软件及其版本,但由于开源软件的代码开源、可修改、可分发等特点,导致开源软件版本多、识别困难。目前业界有主要采用文件比对技术来识别代码中使用的开源软件及其版本,文件比对的主要特点是尽可能搜集开源文件的哈希值、文件大小、文件目录等属性,进行全量比对,即将搜集的所有开源文件信息与代码进行比对,根据比对结果识别出相似度最高的开源软件及其版本。由于开源软件文件数量庞大,通过全量文件比对识别开源软件会耗费大量时间,效率较低。
技术实现思路
本申请实施例提供了一种开源软件识别方法及装置,用于快速识别产品代码中所使用的开源软件及其版本,提升识别效率。有鉴于此,本申请第一方面提供了一种开源软件识别方法,该方法包括:识别装置获取需要进行开源软件识别的目标代码,然后将开源软件特征库中的特本文档来自技高网...

【技术保护点】
1.一种开源软件识别方法,其特征在于,包括:获取待识别的目标代码;将开源软件特征库中开源软件的特征信息与所述目标代码进行匹配,确定与所述目标代码匹配的目标特征信息,所述特征信息包括如下至少一项:端点特征信息,分叉点特征信息,无效特征信息;所述端点特征信息包括:所述开源软件的初始版本对应的文件信息和/或所述开源软件的非初始版本相对于之前的版本新增的文件信息;所述分叉点特征信息包括:所述开源软件的非初始版本相对于之前的版本修改的文件信息;所述无效特征信息包括:所述开源软件从初始版本到当前最新版本未修改过的文件信息;根据所述目标特征信息确定所述目标代码对应的开源软件信息。

【技术特征摘要】
1.一种开源软件识别方法,其特征在于,包括:获取待识别的目标代码;将开源软件特征库中开源软件的特征信息与所述目标代码进行匹配,确定与所述目标代码匹配的目标特征信息,所述特征信息包括如下至少一项:端点特征信息,分叉点特征信息,无效特征信息;所述端点特征信息包括:所述开源软件的初始版本对应的文件信息和/或所述开源软件的非初始版本相对于之前的版本新增的文件信息;所述分叉点特征信息包括:所述开源软件的非初始版本相对于之前的版本修改的文件信息;所述无效特征信息包括:所述开源软件从初始版本到当前最新版本未修改过的文件信息;根据所述目标特征信息确定所述目标代码对应的开源软件信息。2.根据权利要求1所述的方法,其特征在于,所述将开源软件特征库中开源软件的特征信息与所述目标代码进行匹配包括:获取所述开源软件特征库中各个开源软件的端点特征信息,并确定所述目标代码对应的目标文件信息;判断所述开源软件特征库中是否存在与所述目标文件信息对应的第一开源软件的目标端点特征信息;若是,则确定所述目标端点特征信息与所述目标代码匹配;所述根据所述目标特征信息确定所述目标代码对应的开源软件信息包括:根据所述目标端点特征信息确定所述第一开源软件的信息为所述目标代码对应的开源软件信息。3.根据权利要求2所述的方法,其特征在于,所述确定所述目标端点特征信息与所述目标代码匹配之后,所述方法还包括:确定所述目标端点特征信息中各个端点特征信息对应的第一开源软件的版本号;确定所述第一开源软件的版本号中的目标版本号,所述目标版本号为所述第一开源软件的版本号中的最高版本号;获取所述开源软件特征库中第一开源软件的目标版本号以及目标版本号之后的版本号所对应的分叉点特征信息;判断所述第一开源软件的目标版本号以及目标版本号之后的版本号所对应的分叉点特征信息中是否存在与所述目标文件信息匹配的目标分叉点特征信息;若是,则确定所述目标分叉点特征信息对应的第一开源软件的版本号为所述目标代码对应的开源软件的版本号。4.根据权利要求2或3所述的方法,其特征在于,所述确定所述目标端点特征信息与所述目标代码匹配之后,所述方法还包括:获取所述开源软件特征库中第一开源软件的无效特征信息;判断所述第一开源软件的无效特征信息中是否存在与所述目标文件信息匹配的目标无效特征信息;若是,则确定所述第一开源软件的无效特征信息中除了所述目标无效特征信息以外的其他无效特征信息在所述目标代码中被修改。5.根据权利要求1所述的方法,其特征在于,所述将开源软件特征库中开源软件的特征信息与所述目标代码进行匹配包括:获取所述开源软件特征库中各个开源软件的分叉点特征信息,并确定所述目标代码对应的目标文件信息;判断所述各个开源软件的分叉点特征信息中是否存在与所述目标文件信息匹配的目标分叉点特征信息;若是,则确定所述目标分叉点特征信息与所述目标代码匹配;所述根据所述目标特征信息确定所述目标代码对应的开源软件信息包括:确定所述目标分叉点特征信息对应的第一开源软件以及所述目标分叉点特征信息对应的第一开源软件的版本号与所述目标代码对应。6.一种识别装置,其特征在于,包括:第一获取模块,用于获取待识别的目标代码;第一确定模块,用于将开源软件特征库中开源软件的特征信息与所述目标代码进行匹配,确定与所述目标代码匹配的目标特征信息,所述特征信息包括如下至少一项:端点特征信息,分叉点特征信息,无效特征信息;所述端点特征信息包括:所述开源软件的初始版本对应的文件信息和/或所述开源软件的非初始版本相对于之前的版本新增的文件信息;所述分叉点特征信息包括:所述开源软件的非初始版本相对于之前的版本修改的文件信息;所述无效特征信息包括:所述开源软件从初始版本到当前最新版本未修改过的文件信息;第二确定模块,...

【专利技术属性】
技术研发人员:王治文欧建深李广生
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1