System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 软件成分分析方法、装置、计算机设备及计算机可读存储介质制造方法及图纸_技高网

软件成分分析方法、装置、计算机设备及计算机可读存储介质制造方法及图纸

技术编号:40021282 阅读:8 留言:0更新日期:2024-01-16 16:48
本申请提供了软件成分分析方法、装置、计算机设备及计算机可读存储介质。所述的一种软件成分分析方法,包括:设置安全监控探针;安全监控探针遍历文件系统获取开源组件的进程启动位置;安全监控探针在进程启动位置处获取开源组件名称和版本号;开源组件包括第三方开源组件和自研的开源组件。本申请实施例的软件成分分析方法通过设置安全监控探针在进程启动位置处获取开源组件名称和版本号,无需另外编写程序,实现方式简单,大大减少了代码编写量,且对开源软件识别准确率高,可以对二进制以外的语言(如JAVA语言等)编写的应用程序进行开源组件识别,适用性广。

【技术实现步骤摘要】

本申请涉及软件,尤其涉及一种软件成分分析方法、装置、计算机设备及计算机可读存储介质


技术介绍

1、随着互联网技术的兴起,第三方开源软件已逐步成为主流。在目前软件开发过程中,工程师们越来越多的选择使用开源软件作为开源组件来减少重复的工作。然而使用开源组件时,常常会因为开源组件版本没有及时更新而带来安全漏洞。因而,为确保开源组件版本的正确性,通常需要对软件的成分进行分析,即获取软件使用开源组件的名称和版本号,再核对开源组件对应的版本号是否正确。

2、目前的软件成分分析方法,主要是通过对二进制字符串特征比对、机器学习模型对软件的源代码进行分析识别。上述软件成分分析方法均针对二进制编译软件的开源组件进行软件成分分析,且需要另外编写程序对二进制源代码进行分析进而获得第三方开源组件的名称和对应的版本号。

3、因现有技术的软件成分分析方法需要另外编写程序,实现方式复杂,增加了代码编写量,且对开源软件识别准确率低,无法对二进制以外的语言编写的应用程序进行开源组件识别。

4、针对现存方法存在的问题,急需提供一种准确率高、实现方式简单、适用性广的软件成分分析的方法、装置、计算机设备及计算机可读存储介质。


技术实现思路

1、本申请的目的在于提供一种准确率高、实现方式简单、适用性广的软件成分分析的方法、装置、计算机设备及计算机可读存储介质,旨在解决上述技术问题之一。

2、第一方面,一种软件成分分析方法,包括:设置安全监控探针;所述安全监控探针遍历文件系统获取开源组件的进程启动位置;所述安全监控探针在所述进程启动位置处获取所述开源组件名称和版本号;所述开源组件包括第三方开源组件和自研的开源组件。

3、优选地,上述安全监控探针在所述进程启动位置处获取所述开源组件名称和版本号具体为:

4、所述安全监控探针在所述进程启动位置处获取所述开源组件的压缩包;

5、解压所述开源组件的压缩包获得解压文件;

6、遍历所述开源组件的解压文件获取所有所述开源组件名称和版本号。

7、优选地,上述安全监控探针遍历文件系统获取开源组件的进程启动位置具体包括:

8、所述安全监控探针遍历文件系统获得所有文件信息;

9、在所述文件信息查找出所有具有开源组件后缀的启动程序的进程编号;

10、获取所有所述进程编号对应的所有进程启动位置。

11、优选地,上述获取所有所述进程编号对应的所有进程启动位置具体为:

12、获取查找出的所有所述进程编号对应的进程参数:

13、分别在各所述进程参数获取其对应的所有开源组件名称;

14、分别在各所述进程编号对应的进程启动目录内获取所有所述开源组件名称对应的进程启动位置。

15、优选地,上述遍历所述开源组件的解压文件获取所有所述开源组件名称和版本号的步骤之后还包括:遍历各所述进程编号对应的内存运行目录文件,在所述内存运行目录文件获取所有正在运行的开源组件名称和版本号。

16、优选地,上述在所述内存运行目录文件获取正在运行的所述开源组件名称和版本号的步骤之后还包括:

17、按所述进程编号对在所述进程启动位置处获取的所述开源组件名称和版本号、和在所述内存运行目录文件获取所有正在运行的开源组件名称和版本号进行并集处理后获得总的开源组件名称和版本号。

18、优选地,上述按所述进程编号对在所述进程启动位置处获取的所述开源组件名称和版本号、和在所述内存运行目录文件获取所有正在运行的开源组件名称和版本号进行并集处理后获得总的开源组件名称和版本号的步骤之后还包括:

19、设置包含所有开源组件名称和与所述开源组件名称一一对应的最新版本号的开源组件标准库;

20、判断总的所述开源组件名称对应的版本号与所述开源组件标准库内的所述开源组件名称对应的所述最新版本号是否一致,如果不一致,启动系统漏洞处理。

21、第二方面,本申请实施例提供了一种软件成分分析装置,包括:

22、探针设置模块,用于设置安全监控探针;

23、启动位置模块,用于所述安全监控探针遍历文件系统获取开源组件的进程启动位置;

24、版本号获取模块,用于所述安全监控探针在所述进程启动位置处获取所述开源组件名称和版本号。

25、第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的软件成分分析方法的步骤。

26、第四方面,本申请实施例提供了一种计算机设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述处理器执行所述计算机程序时实现如上所述的软件成分分析方法的步骤。

27、本申请实施例的软件成分分析方法,设置现有技术的安全监控探针,通过安全监控探针遍历文件系统获取开源组件的进程启动位置,最后通过安全监控探针在进程启动位置处获取开源组件名称和版本号。开源组件包括第三方开发的开源组件和工程师自己内部研发的开源组件,每个开源组件具有其各自的版本号。

28、本申请实施例的软件成分分析方法通过设置安全监控探针在进程启动位置处获取开源组件名称和版本号,无需另外编写程序,实现方式简单,大大减少了代码编写量,且对开源软件识别准确率高,可以对二进制以外的语言(如java语言等)编写的应用程序进行开源组件识别,适用性广。

本文档来自技高网...

【技术保护点】

1.一种软件成分分析方法,其特征在于,包括:

2.如权利要求1所述的软件成分分析方法,其特征在于,

3.如权利要求2所述的软件成分分析方法,其特征在于,

4.如权利要求3所述的软件成分分析方法,其特征在于,

5.如权利要求4所述的软件成分分析方法,其特征在于,

6.如权利要求5所述的软件成分分析方法,其特征在于,

7.如权利要求6所述的软件成分分析方法,其特征在于,

8.一种软件成分分析装置,其特征在于,包括:

9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的软件成分分析方法的步骤。

10.一种计算机设备,包括:

【技术特征摘要】

1.一种软件成分分析方法,其特征在于,包括:

2.如权利要求1所述的软件成分分析方法,其特征在于,

3.如权利要求2所述的软件成分分析方法,其特征在于,

4.如权利要求3所述的软件成分分析方法,其特征在于,

5.如权利要求4所述的软件成分分析方法,其特征在于,

6.如权利要求5所述的软件成分分析方法...

【专利技术属性】
技术研发人员:周峤
申请(专利权)人:深圳依时货拉拉科技有限公司
类型:发明
国别省市:

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

1