软件成分分析方法、装置、终端设备以及存储介质制造方法及图纸

技术编号:36742152 阅读:15 留言:0更新日期:2023-03-04 10:20
本发明专利技术公开了一种软件成分分析方法、装置、终端设备以及存储介质,其软件成分分析方法包括:通过接收待检项目;基于预先缓存的本地库,执行包管理器的命令对所述待检项目进行第一命令解析;若所述第一命令解析失败,则解析所述待检项目的配置文件,确定所述待检项目的组件成分。本发明专利技术解决了软件成分分析解析速度慢,解析准确度低的问题。解析准确度低的问题。解析准确度低的问题。

【技术实现步骤摘要】
软件成分分析方法、装置、终端设备以及存储介质


[0001]本申请涉及软件
,尤其涉及一种软件成分分析方法、装置、终端设备以及存储介质。

技术介绍

[0002]现代软件开发,开源组件的使用越来越多,绝大多数的软件开发中都或多或少地使用了各类开源的软件组件,各种便利的开源组件给开发人员带来了极大的便利。然而任何的便利,都会带来风险的一面,开源组件的广泛普及和使用带来的风险不容忽视:如开源组件的运维和管理风险、漏洞和数据安全风险、合规和知识产权风险等。针对此情况,当前市场上已经有很多软件成分分析工具(SCA工具)应运而生,通过软件成分分析技术可以分析项目应用中所含的第三方开源成分及其漏洞和许可的风险情况。
[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]图1为本专利技术软件成分分析装置所属终端设备的功能模块示意图;
[0039]图2为本专利技术软件成分分析方法一示例性实施例的流程示意图;
[0040]图3为本专利技术实施例构建预缓存本地库的示意图;
[0041]图4为本专利技术软件成分分析方法另一示例性实施例的流程示意图;
[0042]图5为本专利技术软件成分分析方法另一示例性实施例的流程示意图;
[0043]图6为本专利技术实施例中若所述第一命令解析失败,则解析所述待检项目的配置文件,确定所述待检项目的组件成分的细化流程示意图;
[0044]图7为本专利技术软件成分分析方法实施例的流程实现示意图。
[0045]本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。...

【技术保护点】

【技术特征摘要】
1.一种软件成分分析方法,其特征在于,所述软件成分分析方法包括:接收待检项目;基于预先缓存的本地库,执行包管理器的命令对所述待检项目进行第一命令解析;若所述第一命令解析失败,则解析所述待检项目的配置文件,确定所述待检项目的组件成分。2.根据权利要求1所述的软件成分分析方法,其特征在于,所述基于预先缓存的本地库,对所述待检项目进行第一命令解析的步骤之前还包括:确定第一命令解析所需的组件依赖数据;基于所述组件依赖数据构建预先缓存的本地库。3.根据权利要求2所述的软件成分分析方法,其特征在于,所述基于所述组件依赖数据构建预缓存本地库的步骤包括:从中央仓库中采集组件数据,生成开源组件版本知识库;基于所述开源组件版本知识库中的组件数据,筛选出符合要求的重要类型组件;从包管理器对应的镜像网站上下载所述重要类型组件的依赖数据到本地库中。4.根据权利要求3所述的软件成分分析方法,其特征在于,所述基于预缓存的本地库,执行包管理器的命令对所述待检项目进行第一命令解析的步骤之后还包括:若第一命令解析失败,则修改包管理器的解析逻辑;基于所述解析逻辑,结合内网本地镜像库,执行所述包管理器命令对待检项目进行第二命令解析,所述内网本地镜像库预先部署在中央库与本地库之间;所述若所述第一命令解析失败,则解析所述待检项目的配置文件,确定所述待检项目的组件成分的步骤包括:若所述第二命令解析失败,则解析所述待检项目的配置文件,确定所述待检项目的组件成分。5.根据权利要求4所述的软件成分分析方法,其特征在于,所述基于所述解析逻辑,结合内网本地镜像库,执行所述包管理器命令对待检项目进行第二命令解析的步...

【专利技术属性】
技术研发人员:汪杰万振华王颉李华董燕
申请(专利权)人:深圳开源互联网安全技术有限公司
类型:发明
国别省市:

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

1