1.一种开源组件的漏洞检测方法,其特征在于,包括:
获取java项目中各开源组件的开源组件信息;
针对每个开源组件,在确定所述开源组件的开源组件信息位于组件漏洞版本库中时,确定所述java项目在使用所述开源组件时所调用的类或函数是否存在于组件漏洞信息库中;所述组件漏洞信息库中存储有各开源组件对应的类或函数的漏洞信息;
若是,则基于所述开源组件的漏洞修复优先度,对所述开源组件进行修复。
2.如权利要求1所述的方法,其特征在于,所述开源组件信息包括开源组件的父组件信息;所述父组件信息用于指示开源组件为所述java项目的直接引入组件或间接引入组件;
在确定所述java项目在使用所述开源组件时所调用的类或函数是否存在于组件漏洞信息库中之前,还包括:
确定所述开源组件为所述java项目的直接引入组件。
3.如权利要求1所述的方法,其特征在于,所述开源组件信息还包括开源组件的名称以及版本号;
所述确定所述开源组件的开源组件信息位于组件漏洞版本库中,包括:
将所述开源组件的名称、版本号与所述组件漏洞版本库中每个开源组件的名称、版本号进行比对,若一致,则确定所述开源组件的名称、版本号位于所述组件漏洞版本库中。
4.如权利要求1所述的方法,其特征在于,所述开源组件信息还包括开源组件的组织标识;
所述方法还包括:
确定所述开源组件为所述java项目的间接引入组件;
若所述开源组件的父组件对应的组织标识为内部标识,则将所述开源组件的漏洞信息以及所述父组件发送给内部负责人;
若所述开源组件的父组件对应的组织标识为外部标识,则将所述开源组件的漏洞信息以及所述父组件发送给外部负责人。
5.如权利要求1所述的方法,其特征在于,通过下述方式确定所述组件漏洞信息库:
从组件漏洞公开平台获取各开源组件对应的类或函数的漏洞信息;
将各开源组件对应的类或函数漏洞信息存储至所述组件漏洞信息库中;
所述确定所述java项目在使用所述开源组件时所调用的类或函数是否存在于组件漏洞信息库中,包括:
从所述java项目的源代码中提取出使用所述开源组件时所调用的第一类或第一函数;
针对所述组件漏洞信息库中第二类或第二函数,确定所述第一类与所述第二类的匹配度,或所述第一函数与所述第二函数的匹配度;
基于所述匹配度与匹配阈值的大小关系,确定使用所述开源组件时所调用的第一类或第一函数是否存在于所述组件漏洞信息库中。
6.如权利要求1至5任一项所述的方法,其特征在于,通过下述方式确定所述开源组件的漏洞修复优先度:
根据所述java项目是否受漏洞影响,确定出第一漏洞影响值;
根据所述java项目是否属于对外项目,确定出第二漏洞影响值;
根据使用所述开源组件时所调用的类或函数对应的漏洞是否有漏洞验证程序或漏洞利用程序,以及在确定有漏洞验证程序或漏洞利用程序时,确定是否可远程利用所述类或所述函数对应的漏洞进行攻击,确定出第三漏洞影响值;
根据所述类或所述函数对应的漏洞的危害程度,确定出第四漏洞影响值;
根据所述第一漏洞影响值、所述第二漏洞影响值、所述第三漏洞影响值以及所述第四漏洞影响值,确定出所述开源组件的漏洞修复优先度。
7.如权利要求6所述的方法,其特征在于,所述漏洞修复优先度对应的等级包括第一等级、第二等级以及第三等级;
所述基于所述开源组件的漏洞修复优先度,对所述开源组件进行修复,包括:
若确定所述开源组件的漏洞优先级度对应的等级为所述第一等级,则对所述开源组件进行优先修复;
若确定所述开源组件的漏洞优先级度对应的等级为所述第二等级,则对所述开源组件进行排期修复;
若确定所述开源组件的漏洞优先级度对应的等级为所述第三等级,则对所述开源组件保持观察。
8.一种开源组件的漏洞检测装置,其特征在于,包括:
获取单元,用于获取java项目中各开源组件的开源组件信息;
处理单元,用于针对每个开源组件,在确定所述开源组件的开源组件信息位于组件漏洞版本库中时,确定所述java项目在使用所述开源组件时所调用的类或函数是否存在于组件漏洞信息库中;所述组件漏洞信息库中存储有各开源组件对应的类或函数的漏洞信息;若是,则基于所述开源组件的漏洞修复优先度,对所述开源组件进行修复。
9.一种计算设备,其特征在于,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行权利要求1至7任一权利要求所述的方法。
10.一种计算机可读存储介质,其特征在于,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行权利要求1至7任一权利要求所述的方法。