一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种漏洞补丁定位方法与流程

2023-02-01 23:00:56 来源:中国专利 TAG:


1.本技术涉及一种计算机技术领域,尤其涉及一种漏洞补丁定位方法。


背景技术:

2.当前,开源软件被软件行业的诸多程序所使用。然而开源软件中的安全漏洞会给这些程序造成巨大的损失,如数据泄露、软件崩溃等问题;并且随着开源软件的不断增多,安全漏洞的数量也在一直增加。为了有效管理漏洞数据,出现了以cve、nvd、cnvd、cnnvd为代表的公开漏洞数据库。这些漏洞数据库中包含着漏洞的描述信息、相关的链接等信息,开发人员可以通过浏览漏洞数据库来了解漏洞、认知漏洞。开源软件开发者为了修复软件中的漏洞,通常以代码提交的形式将漏洞补丁发布于github、gitlab、git等网站中。漏洞补丁对于开源软件的漏洞管理起着重要的作用。首先,开发人员可以直接应用漏洞补丁来修复相应的漏洞;其次漏洞补丁可以用来评估漏洞的严重等级,便于软件公司合理安排修复时机;并且开发人员可以根据漏洞补丁分析漏洞特征,学习如何补救或预防类似问题的发生;此外,丰富的漏洞补丁还可以促进其他方向的漏洞研究,例如漏洞预测、漏洞代码克隆检测、漏洞测试等等。
3.随着开源软件的广泛应用,开源软件中所含有的漏洞已经成为危害软件供应链安全的一大威胁。为了减少漏洞所带来的危害,软件的开发者通常会为软件打上补丁(patch),在开源软件中,补丁通常表现为开发者提交到开源项目中的代码(commit)。当前定位漏洞补丁主要通过人工依次检查代码提交的方式来定位漏洞补丁,这种方式十分困难且耗时时间长。安全补丁对防御开源软件面临的漏洞威胁具有重要的作用,是一种重要的安全资产。尤其从软件供应链的角度,很多软件供应链下游厂商会使用上游开源软件,那么一旦上游开源软件被披露出一些安全漏洞,下游厂商需要及时地搜索上游开源软件披露的漏洞对应的补丁进行修补。但目前并没有一个完善的安全补丁信息共享平台,且工业界和学术界已有的安全补丁定位工作均无法较为全面和准确地收集漏洞对应的安全补丁。


技术实现要素:

4.为了解决或部分解决上述问题,本技术提供一种漏洞补丁定位方法。
5.本技术提出一种漏洞补丁定位方法,所述方法包括:获取漏洞与代码;对漏洞与代码进行提交相似性特征提取,得到漏洞与代码的文件级、代码级;对漏洞与代码进行漏洞语义特征和代码提交语义特征提取;基于所述文件级、代码级、漏洞语义特征以及代码提交语义特征得到漏洞与代码的全部特征;基于漏洞与代码的全部特征确定与漏洞关联度最高的补丁。
6.在一些示例中,基于漏洞与代码的全部特征确定与漏洞关联度最高的补丁之前,所述方法还包括:自动从专业网站、代码托管平台收集开源项目及代码提交的数据以生成所述原始漏洞知识库。
7.在一些示例中,对漏洞与代码进行提交相似性特征提取,得到漏洞与代码的文件
级、代码级,包括:通过爬取漏洞中的信息,通过正则表达式匹配漏洞描述中是否含有文件级,代码级的信息;当含有文件级,代码级的信息时,则直接获取。
8.在一些示例中,对漏洞与代码进行提交相似性特征提取,得到漏洞与代码的文件级、代码级,包括:通过爬取漏洞中的信息,通过正则表达式匹配漏洞描述中是否含有文件级,代码级的信息;当未含有文件级,代码级的信息时,则确定漏洞中的参考链接或修复补丁中含有代码关键词,如果含有则跟含有漏洞项目的代码托管地址进行对比,如果相同则通过代码信息中含有cve编号,vulnerability,xss,fix,security直接提取出文件级,代码级。或通过漏洞描述中的信息和代码提交中的标题进行分析比较相似内容的则直接提取文件级,代码级;或通过漏洞的版本和代码提交的版本进行比较,并且对提交的标题内容进行分析,以确定文件级,代码级。
9.在一些示例中,对漏洞与代码进行提交相似性特征提取,得到漏洞与代码的文件级、代码级,包括:接收补充指令;根据补充指令得到洞与代码的文件级、代码级。
10.在一些示例中,对漏洞与代码进行漏洞语义特征和代码提交语义特征提取,包括:构建语义分析算法,将漏洞中的描述信息及漏洞的编号,漏洞创建的时间与代码提交时间之间的天数进行一个语义分析;提取相关漏洞中的特征,通过触发漏洞的文件或函数,与该漏洞下的参考链接中的代码的标题或提交的代码进行的一个语义分析,提取参考链接中的各种特征,以得到漏洞语义特征和代码提交语义特征。
11.与现有技术相比,本技术具有如下有益效果:
12.本技术的提供的技术方案中,一种漏洞补丁定位方法,所述方法包括:获取漏洞与代码;对漏洞与代码进行提交相似性特征提取,得到漏洞与代码的文件级、代码级;对漏洞与代码进行漏洞语义特征和代码提交语义特征提取;基于所述文件级、代码级、漏洞语义特征以及代码提交语义特征得到漏洞与代码的全部特征;基于漏洞与代码的全部特征确定与漏洞关联度最高的补丁。本实施例提供的方法能够定位到更多的安全补丁,且因为该方案采用了多维度信息,可以一定程度上容忍和矫正某些维度不够准确的信息,取得更高的准确率和覆盖率。此外,采用排序的方案,在首选项不准确的情况下,可以从备选项中继续查找,取得更高的覆盖率。本方法在定位补丁和人工需要付出的代价之前取得较好的平衡。能够有效减少漏洞对开源软件的威胁,且相关人员能够直接应用漏洞补丁来修复相应的漏洞;其次漏洞补丁可以用来评估漏洞的严重等级,便于软件公司合理安排修复时机。
附图说明
13.图1是本技术实施例示出的一种漏洞补丁定位方法的基本流程示意图。
具体实施方式
14.这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
15.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现
这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
16.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
17.还需要说明的是:在本技术中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
18.实施例一
19.请参阅图1,图1是根据一示例性实施例示出的一种漏洞补丁定位方法,所述方法包括:
20.s101、获取漏洞与代码;
21.s102、对漏洞与代码进行提交相似性特征提取,得到漏洞与代码的文件级、代码级;
22.s103、对漏洞与代码进行漏洞语义特征和代码提交语义特征提取;
23.s104、基于所述文件级、代码级、漏洞语义特征以及代码提交语义特征得到漏洞与代码的全部特征;
24.s105、基于漏洞与代码的全部特征确定与漏洞关联度最高的补丁。
25.在一些示例中,基于漏洞与代码的全部特征确定与漏洞关联度最高的补丁之前,所述方法还包括:自动从专业网站、代码托管平台收集开源项目及代码提交的数据以生成所述原始漏洞知识库,所述原始漏洞知识库包括至少一个漏洞与至少一个代码。
26.具体的,从cve、cnnvd、cnvd、nvd、whitesourcesoftware等等网站中收集漏洞,从github、gitlab等代码托管平台收集所有的开源项目及代码提交的数据等等,进而建立原始漏洞知识库。
27.在一些示例中,建立原始漏洞知识库时,还需要通过收集到的所有漏洞进行分析是否是开源并且关联到开源项目中,将这些漏洞一些信息进行提取存储,分析各个来源的信息进行内容的去重合并。
28.在一些示例中,对漏洞与代码进行提交相似性特征提取,得到漏洞与代码的文件级、代码级,包括:通过爬取漏洞中的信息,通过正则表达式匹配漏洞描述中是否含有文件级,代码级的信息;当含有文件级,代码级的信息时,则直接获取。通过爬取漏洞中的信息,通过正则表达式匹配漏洞描述中是否含有文件级,代码级的信息,如果存在则提取出来,通过厂商和产品和对应的github地址取出相应的文件并形成md5值和形成相应的代码片段。
29.在一些示例中,对漏洞与代码进行提交相似性特征提取,得到漏洞与代码的文件级、代码级,包括:通过爬取漏洞中的信息,通过正则表达式匹配漏洞描述中是否含有文件级,代码级的信息;当未含有文件级,代码级的信息时,则确定漏洞中的参考链接或修复补丁中含有代码关键词,如果含有则跟含有漏洞项目的代码托管地址进行对比,如果相同则通过代码信息中含有cve编号,vulnerability,xss,fix,security直接提取出文件级,代码级。或通过漏洞描述中的信息和代码提交中的标题进行分析比较相似内容的则直接提取文件级,代码级;或通过漏洞的版本和代码提交的版本进行比较,并且对提交的标题内容进行分析,以确定文件级,代码级。
30.如果漏洞描述中不存在文件路径或函数的则通过漏洞中的参考链接或修复补丁中含有commit关键词,如果含有则跟含有漏洞项目的代码托管地址进行对比,如果相同则通过commit信息中含有cve编号,vulnerability,xss,fix,security等等一些关于漏洞标识,则可以直接提取出文件级,代码级,或通过漏洞描述中的信息和commit提交中的标题进行分析比较含有相似内容的则可以直接提取文件级,代码级,或通过还有漏洞的版本和commit提交的版本进行比较,并且还要对提交的标题内容进行分析是否含有添加功能(add functionality)等等此类用语或此类英文用语,如果含有则通过安全人员研究分析后,将文件级,代码级路径填写到数据库中,后将文件形成md5值和代码片段。
31.在一些示例中,对漏洞与代码进行提交相似性特征提取,得到漏洞与代码的文件级、代码级,包括:接收补充指令;根据补充指令得到洞与代码的文件级、代码级。具体的,如果漏洞描述中不存在文件路径或函数,并且参考链接或修复补丁中也不存在commit关键词,则通过安全研究人员的研究进行填补文件级,代码级信息。
32.在一些示例中,对漏洞与代码进行漏洞语义特征和代码提交语义特征提取,包括:构建语义分析算法,将漏洞中的描述信息及漏洞的编号,漏洞创建的时间与代码提交时间之间的天数进行一个语义分析;提取相关漏洞中的特征,通过触发漏洞的文件或函数,与该漏洞下的参考链接中的代码的标题或提交的代码进行的一个语义分析,提取参考链接中的各种特征,以得到漏洞语义特征和代码提交语义特征。具体的,构建语义分析算法,将漏洞中的描述信息及漏洞的编号,漏洞创建的时间与代码提交时间之间的天数进行一个语义分析,提取相关漏洞中的特征,通过触发漏洞的文件或函数,与该漏洞下的参考链接中的commit的标题或提交的代码进行的一个语义分析,提取参考链接中的各种特征。
33.然后基于所述文件级、代码级、漏洞语义特征以及代码提交语义特征得到漏洞与代码的全部特征;并基于漏洞与代码的全部特征确定与漏洞关联度最高的补丁。具体的,将上述得到的所有特征拼接起来组成漏洞和代码提交的全部特征。然后利用特征的相似性预测出关联度最高的commits,首先对commits和nvd/cve数据库中漏洞信息分别提取原始信息:对于commit,主要提取commit message和code diff;对于漏洞则提取漏洞描述,标识符,相关文件/函数以及该漏洞会造成的影响描述文本等信息。之后对提取的信息做漏洞-commit之间的特征关联计算。最后并使用ranknet网络模型预测关联度最高的commits。
34.从文件级、代码级、漏洞语义特征和代码提交语义特征,来提取漏洞与代码提交之间联系,涉及范围广,特征选择更完善,真正抓住了漏洞和代码提交之间的有效联系,有利于将漏洞与补丁代码提交进行匹配。
35.此外,本实施例提供的方法能够定位到更多的安全补丁,且因为该方案采用了多维度信息,可以一定程度上容忍和矫正某些维度不够准确的信息,取得更高的准确率和覆盖率。此外,采用排序的方案,在首选项不准确的情况下,可以从备选项中继续查找,取得更高的覆盖率。本方法在定位补丁和人工需要付出的代价之前取得较好的平衡。能够有效减少漏洞对开源软件的威胁,且相关人员能够直接应用漏洞补丁来修复相应的漏洞;其次漏洞补丁可以用来评估漏洞的严重等级,便于软件公司合理安排修复时机。
36.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
37.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其
它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
38.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
39.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
40.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
41.以上对本发明实施例所提供的技术方案进行了详细介绍,本专利中应用了具体个例对本发明实施例的原理以及实施方式进行了阐述,以上实施例的说明只适用于帮助理解本发明实施例的原理;以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献