面向开源软件供应链的无CVE漏洞智能预警方法及电子设备技术

技术编号:37449812 阅读:35 留言:0更新日期:2023-05-06 09:21
本公开涉及一种面向开源软件供应链的无CVE漏洞智能预警方法及电子设备。所述方法包括:获取用于修复软件漏洞的相关安全代码的日志文本和代码信息;基于所述代码信息中的添加代码内容和删除代码内容,得到修改向量表示,并根据所述修改向量表示,计算所述相关安全代码为无CVE漏洞代码的第一概率;通过对所述日志文本进行分类,得到所述相关安全代码为无CVE漏洞代码的第二概率;基于所述第一概率和所述第二概率,计算所述相关安全代码的无CVE漏洞预警结果。本发明专利技术实现了可持续收集和标注漏洞。漏洞。漏洞。

【技术实现步骤摘要】
面向开源软件供应链的无CVE漏洞智能预警方法及电子设备


[0001]本专利技术属于计算机科学与
,涉及一种面向开源软件供应链的无CVE漏洞智能预警方法及电子设备。

技术介绍

[0002]开源软件供应链是一个实际业务系统,在开发和运行过程中,涉及的所有开源软件上游社区(Upstream)、源码包(Source)、二进制包(Binary)、包管理器(PackageManager)、存储仓库(Repository),以及开发者(Developer)和维护者(Maintainer)、社区(Community)、基金会(Foundation)等、按照依赖(Depend)、打包(Package)、构建(Build)、托管(Host)、协作(Collaborate)、指导(Guide)等关系形成的供应链网络。开源软件供应链和我国国民生活、城市建设、工业生产等息息相关,影响着智能家居、汽车、智能电网等众多关键基础设施的开发和管理。然而随着开源软件供应链体系越来越庞大,威胁风险的渗入点不断增多,分布在开源软件供应链的各个环节。安全漏洞是开源软件供应链中最大的风险之一。攻击者利用软件供应链中的安全漏洞进而可以植入恶意代码或者窃取敏感信息。一旦安全漏洞被不法分子利用后,企业内部数据库的敏感数据很可能被黑客获取,并以此获利,严重影响数据安全。如果漏洞的相关信息在被修复之前纰漏是非常危险的,因为这些信息可能是攻击者来定位和利用漏洞的关键因素。因此,软件开发商及CVE机构需要尽快获知用于修复软件漏洞的相关安全代码(Security Related Commits,SRC)中的内容,以尽量保证漏洞信息在相关修复策略公布前对公众不可访问。

技术实现思路

[0003]为实现上述目的,本专利技术公开了一种面向开源软件供应链的无CVE漏洞智能预警方法及电子设备,通过收集SRC的日志文本及代码信息,实现了可持续收集和标注漏洞。
[0004]本专利技术的技术方案包括:
[0005]一种面向开源软件供应链的无CVE漏洞智能预警方法,所述方法包括:
[0006]获取用于修复软件漏洞的相关安全代码的日志文本和代码信息;
[0007]基于所述代码信息中的添加代码内容和删除代码内容,得到修改向量表示,并根据所述修改向量表示,计算所述相关安全代码为无CVE漏洞代码的第一概率;
[0008]通过对所述日志文本进行分类,得到所述相关安全代码为无CVE漏洞代码的第二概率;
[0009]基于所述第一概率和所述第二概率,计算所述相关安全代码的无CVE漏洞预警结果。
[0010]进一步地,所述基于所述代码信息中的添加代码内容和删除代码内容,得到修改向量表示,包括:
[0011]结合所述相关安全代码对应的文件,获取所述代码信息中的添加代码内容和删除代码内容;
[0012]基于BPE算法,分别获取所述添加代码内容和删除代码内容的字符序列;
[0013]将每一文件的所述添加代码内容和删除代码内容的字符序列分别进行拼接,得到各文件的添加代码内容拼接结果和删除代码内容拼接结果;
[0014]将各文件的添加代码内容拼接结果和删除代码内容拼接结果分别输入两个并行的CodeBERT模型,获得所述相关安全代码的添加代码内容和删除代码内容的向量编码;
[0015]对添加代码内容和删除代码内容的向量编码进行拼接,得到修改向量表示。
[0016]进一步地,所述基于BPE算法,分别获取所述添加代码内容和删除代码内容的字符序列,还包括:
[0017]对所述代码信息中的注释内容进行判断清洗。
[0018]进一步地,所述将各文件的添加代码内容拼接结果输入CodeBERT模型,获得所述相关安全代码的添加代码内容的向量编码,包括:
[0019]将添加代码内容拼接结果输入CodeBERT模型,以得到[CLS]对应的向量生成结果[CES];
[0020]对各文件的向量生成结果[CES]进行加权平均,得到所述相关安全代码的添加代码内容的向量编码。
[0021]进一步地,所述通过对所述日志文本进行分类,得到所述相关安全代码为无CVE漏洞代码的第二概率,包括:
[0022]计算所述日志文本的文本向量;
[0023]将所述文本向量输入LSTM层以获得语义特征;
[0024]将所述语义特征输入CNN层,得到高级信息表示;
[0025]对所述高级信息表示进行分类,得到所述相关安全代码为无CVE漏洞代码的第二概率。
[0026]进一步地,所述计算所述日志文本的文本向量之前,还包括:
[0027]去除所述日志文本中停用词和短词语;
[0028]和/或,
[0029]对所述日志文本中的词进行词形还原。
[0030]进一步地,所述计算所述日志文本的文本向量,包括:
[0031]利用数据集训练Skip

Gram模型,得到词向量模型;
[0032]将所述日志文本中的词输入词向量模型,得到对应的词向量;
[0033]拼接所述词向量,得到所述日志文本的文本向量。
[0034]进一步地,训练Skip

Gram模型的损失函数其中,wt表示第t时刻的目标词。
[0035]一种电子设备,其特征在于,包括:
[0036]处理器;
[0037]用于存储所述处理器可执行指令的存储器;
[0038]所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述任一所述的面向开源软件供应链的无CVE漏洞智能预警方法。
[0039]一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该程序指令
被处理器执行时,以实现上述任一所述的面向开源软件供应链的无CVE漏洞智能预警方法。
[0040]与现有技术相比,本专利技术具有以下优势:
[0041]1.同时考虑日志文本及代码信息,并且分别建立不同的模型,对代码部分按照编程语言的方法进行分析,对数据特征抽取更加全面;
[0042]2.实现了可持续收集和标注漏洞修复补丁的工具,能够尽早给出相应预警。
附图说明
[0043]图1面向开源软件供应链的无CVE漏洞智能预警方法的流程图。
[0044]图2代码模块分类方法的流程图。
[0045]图3用于抽取向量的CodeBERT模型结构。
[0046]图4CVE漏洞预测结果及提前时长。
具体实施方式
[0047]下面将结合附图详细地对示例性实施例进行描述说明。
[0048]应当指出,相关实施例及附图仅为描述说明本公开所提供的示例性实施例,而非本公开的全部实施例,也不应理解本公开受相关示例性实施例的限制。
[0049]应当指出,本公开中所用术语“第一”、“第二”等仅用于区别不同步骤、设备或模块等。相关术语既不代表任何特定技术含义,也不表示它们之间的顺序或者相互依存关系。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向开源软件供应链的无CVE漏洞智能预警方法,其特征在于,所述方法包括:获取用于修复软件漏洞的相关安全代码的日志文本和代码信息;基于所述代码信息中的添加代码内容和删除代码内容,得到修改向量表示,并根据所述修改向量表示,计算所述相关安全代码为无CVE漏洞代码的第一概率;通过对所述日志文本进行分类,得到所述相关安全代码为无CVE漏洞代码的第二概率;基于所述第一概率和所述第二概率,计算所述相关安全代码的无CVE漏洞预警结果。2.如权利要求1所述的方法,其特征在于,所述基于所述代码信息中的添加代码内容和删除代码内容,得到修改向量表示,包括:结合所述相关安全代码对应的文件,获取所述代码信息中的添加代码内容和删除代码内容;基于BPE算法,分别获取所述添加代码内容和删除代码内容的字符序列;将每一文件的所述添加代码内容和删除代码内容的字符序列分别进行拼接,得到各文件的添加代码内容拼接结果和删除代码内容拼接结果;将各文件的添加代码内容拼接结果和删除代码内容拼接结果分别输入两个并行的CodeBERT模型,获得所述相关安全代码的添加代码内容和删除代码内容的向量编码;对添加代码内容和删除代码内容的向量编码进行拼接,得到修改向量表示。3.如权利要求2所述的方法,其特征在于,所述基于BPE算法,分别获取所述添加代码内容和删除代码内容的字符序列,还包括:对所述代码信息中的注释内容进行判断清洗。4.如权利要求2所述的方法,其特征在于,所述将各文件的添加代码内容拼接结果输入CodeBERT模型,获得所述相关安全代码的添加代码内容的向量编码,包括:将添加代码内容拼接结果输入CodeBERT模型,以得到[CLS]对应的向量生成结果[CES];对各文件的向量生成结果[C...

【专利技术属性】
技术研发人员:崔星吴敬征罗天悦武延军
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:

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

1