本公开至少涉及软件分析,尤其涉及一种软件成分分析方法、软件成分分析装置以及计算机可读存储介质。
背景技术:
1、随着软件开发的不断发展,软件成分的复杂性和多样性也不断增加。为了更好地管理和利用这些软件成分,需要对软件进行软件成分分析。传统的软件成分分析方法通常需要进行繁琐的手动分析,不仅效率低下,而且容易出错。因此,有必要设计一套软件成分自动化分析的作业流程,针对软件的各种软件成分进行分析,从而帮助安全分析人员进行软件安全治理,支撑企业软件产品的安全,进而保障软件供应链的安全。
技术实现思路
1、本公开所要解决的技术问题是针对上述不足,提供一种软件成分分析方法、软件成分分析装置以及计算机可读存储介质,以解决如何对软件的各种软件成分进行分析的问题。
2、第一方面,本公开提供一种软件成分分析方法,包括:
3、提取待分析软件的软件成分和软件成分特征;
4、根据软件成分和软件成分特征对待分析软件进行分析,包括:
5、根据软件成分特征将各软件成分识别为安全软件成分和非安全软件成分,
6、预测各非安全软件成分的第一风险值,
7、根据各第一风险值预测待分析软件的第二风险值,
8、预测各安全软件成分的性能表现和发展趋势;
9、输出软件成分分析清单,软件成分分析清单包括:
10、待分析软件的名称及对应的第二风险值,
11、各非安全软件成分的名称及对应的第一风险值,
12、各安全软件成分的名称及对应的性能表现和发展趋势。
13、进一步地,提取待分析软件的软件成分和软件成分特征,具体包括:
14、提取待分析软件的软件成分和软件成分特征组成软件成分分析向量;
15、根据软件成分和软件成分特征对待分析软件进行分析,具体包括:
16、将软件成分分析向量输入预先训练好的机器学习模型进行分析。
17、进一步地,提取待分析软件的软件成分和软件成分特征组成软件成分分析向量,具体包括:
18、将待分析软件区分为包括开源组件、软件包、软件库、特定代码段的至少一种软件成分;
19、提取包括各软件成分的来源、编程语言、功能领域、hash值、版本信息、与其它软件的依赖关系、软件成分之间的依赖关系、开发时间戳、自有独特标识符的至少一种软件成分特征;
20、获取待分析软件和各软件成分的名称,并按照预先设定的标签值对各软件成分和各软件成分对应的各软件成分特征打上标签值,以形成各软件成分的第一软件成分分析向量。
21、进一步地,根据软件成分特征将各软件成分识别为安全软件成分和非安全软件成分,具体包括:
22、将各软件成分的第一软件成分分析向量输入预先训练好的第一神经网络模型,其中,第一神经网络模型根据数据库中预先收集的软件成分、软件成分特征、是否安全的标记及非安全的风险类型信息训练获得;
23、通过第一神经网络模型识别出每种软件成分的安全性并打上安全标记/非安全标记,对打上非安全标记的软件成分识别并标记风险类型值。
24、进一步地,预测各非安全软件成分的第一风险值,具体包括:
25、在各打上非安全标记的软件成分的第一软件成分分析向量中加入风险类型值,以形成各打上非安全标记的软件成分的第二软件成分分析向量;
26、将各打上非安全标记的软件成分的第二软件成分分析向量输入预先训练好的第二神经网络模型,其中,第二神经网络模型根据数据库中预先收集的软件成分、软件成分特征、风险类型及预先给定的风险数值信息训练获得;
27、通过第二神经网络模型预测获得每种打上非安全标记的软件成分的第一风险值。
28、进一步地,根据各第一风险值预测待分析软件的第二风险值,具体包括:
29、根据各打上非安全标记的软件成分的第一风险值,计算包括平均风险值、最高风险值、风险等级至少之一,以作为待分析软件的第二风险值。
30、进一步地,预测各安全软件成分的性能表现和发展趋势,具体包括:
31、将各打上安全标记的软件成分的第一软件成分分析向量输入预先训练好的第三神经网络模型,其中,第三神经网络模型根据数据库中预先收集的软件成分、软件成分特征、过往软件成分使用性能表现、过往软件成分更新信息训练获得;
32、通过第三神经网络模型预测获得每种打上安全标记的软件成分的性能表现和发展趋势,其中:
33、性能表现包括是否有某种打上安全标记的软件成分存在性能瓶颈或与其它软件成分存在兼容性问题,
34、发展趋势包括以下至少一种:
35、开源组件和/或软件库的版本更新趋势,
36、软件包和/或特定代码段编程语言发展趋势,
37、开源组件、软件库、软件包和/或特定代码段与其它软件的依赖关系变化趋势。
38、进一步地,在软件成分分析清单中:
39、根据第一风险值从高到低的顺序排列显示各打上非安全标记的软件成分及对应的第一风险值,并对应显示根据风险类型值获取到的风险类型。
40、第二方面,本公开提供一种软件成分分析装置,包括:
41、提取模块,用于提取待分析软件的软件成分和软件成分特征;
42、分析模块,与提取模块连接,用于根据软件成分和软件成分特征对待分析软件进行分析,包括:
43、识别单元,用于根据软件成分特征将各软件成分识别为安全软件成分和非安全软件成分,
44、第一预测单元,与识别单元连接,用于预测各非安全软件成分的第一风险值,
45、第二预测单元,与第一预测单元连接,用于根据各第一风险值预测待分析软件的第二风险值,
46、第三预测单元,与识别单元连接,用于预测各安全软件成分的性能表现和发展趋势;
47、输出模块,与分析模块连接,用于输出软件成分分析清单,软件成分分析清单包括:
48、待分析软件的名称及对应的第二风险值,
49、各非安全软件成分的名称及对应的第一风险值,
50、各安全软件成分的名称及对应的性能表现和发展趋势。
51、第三方面,本公开提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序被处理器运行时,实现如上所述的软件成分分析方法。
52、本公开提供软件成分分析方法、软件成分分析装置以及计算机可读存储介质,通过将软件分为多种软件成分,根据软件成分特征识别各软件成分的安全性,对非安全的软件成分预测其风险值,并据此预测软件整体的风险值,对安全的软件成分预测其性能和趋势,综合输出包括以上多个方面分析信息的软件成分分析清单,获得了比较全面的软件分析结果,可以有效帮助安全分析人员进行软件安全治理,支撑企业软件产品的安全,进而保障软件供应链的安全。
1.一种软件成分分析方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,提取待分析软件的软件成分和软件成分特征,具体包括:
3.根据权利要求2所述的方法,其特征在于,提取待分析软件的软件成分和软件成分特征组成软件成分分析向量,具体包括:
4.根据权利要求2或3所述的方法,其特征在于,根据软件成分特征将各软件成分识别为安全软件成分和非安全软件成分,具体包括:
5.根据权利要求4所述的方法,其特征在于,预测各非安全软件成分的第一风险值,具体包括:
6.根据权利要求5所述的方法,其特征在于,根据各第一风险值预测待分析软件的第二风险值,具体包括:
7.根据权利要求4所述的方法,其特征在于,预测各安全软件成分的性能表现和发展趋势,具体包括:
8.根据权利要求4所述的方法,其特征在于,在软件成分分析清单中:
9.一种软件成分分析装置,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序被处理器运行时,实现如权利要求1-8任一项所述的软件成分分析方法。