本发明涉及互联网安全,尤其涉及一种开源组件安全漏洞检测方法及装置。
背景技术:
1、随着互联网的发展,恶意渗透攻击成为互联网最大的安全隐患,恶意代码的种类、传播速度、感染数量以及影响的范围都呈现增长的趋势。据研究表明,恶意代码是基于现有程序进行开发的,现有程序来源于开源组件或开源软件,随着开源项目的占比增大,会产生大量含有安全漏洞的开源组件,且此类恶意攻击无法准确地对其进行阻隔或防护。
2、因此,如何准确地对开源组件进行安全漏洞检测,是一个亟需解决的问题。
技术实现思路
1、本发明提供一种开源组件安全漏洞检测方法,用以提升开源组件安全漏洞检测的准确性。
2、第一方面,本发明提供一种开源组件安全漏洞检测方法,该方法包括:
3、获取开源组件的信息以及与所述开源组件的信息对应的检测条目,所述检测条目指示所述开源组件可能存在的安全漏洞;
4、根据所述开源组件的信息确定第一词向量集合,根据所述检测条目确定第二词向量集合;
5、根据所述第一词向量集合和所述第二词向量集合确定相似度计算结果;
6、根据所述相似度计算结果和预设阈值确定所述开源组件是否存在所述安全漏洞。
7、本发明提供的开源组件安全漏洞检测方法,根据开源组件的信息确定第一词向量集合,根据检测条目确定第二词向量集合,再根据第一词向量集合和第二词向量集合进行相似度的计算,基于相似度的计算结果判断开源组件是否存在检测条目所指示的安全漏洞可以降低误判率,提升开源组件安全漏洞检测的准确性。
8、在一种可能的设计中,所述开源组件的信息包括所述开源组件的名称、版本、用法中的至少一个。
9、在一种可能的设计中,所述检测条目来源于美国国家通用漏洞数据库(nationalvulnerability database,nvd)和/或通用漏洞披露(common vulnerabilities&exposures,cve),其中,所述检测条目包括所述安全漏洞的描述信息和/或所述安全漏洞的版本信息。
10、本发明提供的开源组件安全漏洞检测方法,检测条目来自于nvd和/或cve,nvd和cve收录了丰富的安全漏洞信息,基于这两个安全漏洞库来检测开源组件,保证了检测结果的完备性和可靠性。
11、在一种可能的设计中,根据所述开源组件的信息确定第一词向量集合,根据所述检测条目确定第二词向量集合,包括:
12、将所述开源组件的信息拆分为m个子信息,根据预设词向量模型将所述m个子信息转换为相应的词向量,获得所述第一词向量集合,m为正整数;
13、将所述检测条目拆分为n个子信息,根据所述预设词向量模型将所述n个子信息转换为相应的词向量,获得所述第二词向量集合,n为正整数。
14、在一种可能的设计中,根据所述第一词向量集合和所述第二词向量集合确定相似度计算结果,包括:
15、根据所述第一词向量集合确定第一平均词向量;
16、根据所述第二词向量集合确定第二平均词向量;
17、根据所述第一平均词向量和所述第二平均词向量确定所述相似度计算结果。
18、在一种可能的设计中,根据所述相似度计算结果和预设阈值确定所述开源组件是否存在所述安全漏洞,包括:
19、若所述相似度计算结果小于所述预设阈值,则所述开源组件不存在所述安全漏洞;
20、若所述相似度计算结果大于或等于所述预设阈值,则所述开源组件存在所述安全漏洞。
21、在一种可能的设计中,所述预设阈值包括第一预设阈值和第二预设阈值,其中,所述第一预设阈值小于所述第二预设阈值;
22、根据所述相似度计算结果和预设阈值确定所述开源组件是否存在所述安全漏洞,包括:
23、若所述相似度计算结果小于所述第一预设阈值,则所述开源组件不存在所述安全漏洞;
24、若所述相似度计算结果大于或等于所述第一预设阈值且所述相似度计算结果小于所述第二预设阈值,则所述开源组件存在部分所述安全漏洞;
25、若所述相似度计算结果大于或等于所述第二预设阈值,则所述开源组件存在所述安全漏洞。
26、第二方面,本发明还提供一种开源组件安全漏洞检测装置,该装置包括:收发单元和处理单元;
27、所述收发单元,用于获取开源组件的信息以及与所述开源组件的信息对应的检测条目,所述检测条目指示所述开源组件可能存在的安全漏洞;
28、所述处理单元,用于根据所述开源组件的信息确定第一词向量集合,根据所述检测条目确定第二词向量集合时,根据所述第一词向量集合和所述第二词向量集合确定相似度计算结果;根据所述相似度计算结果和预设阈值确定所述开源组件是否存在所述安全漏洞。
29、在一种可能的设计中,所述开源组件的信息包括所述开源组件的名称、版本、用法中的至少一个。
30、在一种可能的设计中,所述检测条目来源于nvd和/或cve,其中,所述检测条目包括所述安全漏洞的描述信息和/或所述安全漏洞的版本信息。
31、在一种可能的设计中,所述处理单元,用于在根据所述开源组件的信息确定第一词向量集合,根据所述检测条目确定第二词向量集合时,将所述开源组件的信息拆分为m个子信息,根据预设词向量模型将所述m个子信息转换为相应的词向量,获得所述第一词向量集合,m为正整数;将所述检测条目拆分为n个子信息,根据所述预设词向量模型将所述n个子信息转换为相应的词向量,获得所述第二词向量集合,n为正整数。
32、在一种可能的设计中,所述处理单元,用于在根据所述第一词向量集合和所述第二词向量集合确定相似度计算结果时,根据所述第一词向量集合确定第一平均词向量;根据所述第二词向量集合确定第二平均词向量;根据所述第一平均词向量和所述第二平均词向量确定所述相似度计算结果。
33、在一种可能的设计中,所述处理单元,用于在根据所述相似度计算结果和预设阈值确定所述开源组件是否存在所述安全漏洞时,若所述相似度计算结果小于所述预设阈值,则所述开源组件不存在所述安全漏洞;若所述相似度计算结果大于或等于所述预设阈值,则所述开源组件存在所述安全漏洞。
34、在一种可能的设计中,所述预设阈值包括第一预设阈值和第二预设阈值,其中,所述第一预设阈值小于所述第二预设阈值;
35、所述处理单元,用于在根据所述相似度计算结果和预设阈值确定所述开源组件是否存在所述安全漏洞时,若所述相似度计算结果小于所述第一预设阈值,则所述开源组件不存在所述安全漏洞;若所述相似度计算结果大于或等于所述第一预设阈值且所述相似度计算结果小于所述第二预设阈值,则所述开源组件存在部分所述安全漏洞;若所述相似度计算结果大于或等于所述第二预设阈值,则所述开源组件存在所述安全漏洞。
36、第三方面,本发明还提供一种计算机可读存储介质,所述存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述第一方面所述的方法。