CN114201757A - 一种基于软件漏洞识别的置信度标识方法、信息存储介质 - Google Patents
一种基于软件漏洞识别的置信度标识方法、信息存储介质 Download PDFInfo
- Publication number
- CN114201757A CN114201757A CN202111204320.5A CN202111204320A CN114201757A CN 114201757 A CN114201757 A CN 114201757A CN 202111204320 A CN202111204320 A CN 202111204320A CN 114201757 A CN114201757 A CN 114201757A
- Authority
- CN
- China
- Prior art keywords
- information
- vulnerability
- software
- confidence coefficient
- matching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于软件漏洞识别的置信度标识方法,从多种预定链路收集已知软件漏洞信息,所述已知软件漏洞信息包括CPE信息、漏洞描述信息、开源软件发行信息;提取待测软件的包名、版本信息;将所述包名与CPE信息、漏洞描述数据、开源软件发行信息进行匹配,如果包名匹配不成功,则基于软件包命名矩阵,查找对应的别名,通过别名进行匹配,将所述版本信息与已知软件漏洞信息的版本信息进行匹配,根据匹配结果标识所依据的漏洞源数据的置信度;本发明通过包名或者别名匹配到的数据,以及版本号信息是否匹配,为不同的漏洞数据源设置置信度,从而判断漏洞检测结果的准确度以及达到漏洞检测的全面性,同时为后续漏洞修复的策略提供依据。
Description
技术领域
本发明涉及设备和网络运行安全技术领域,尤其涉及一种基于软件漏洞识别的置信度标识方法、信息存储介质。
背景技术
Google为了提升搜索引擎返回的答案质量和用户查询的效率,于2012年提出了知识图谱的概念。知识图谱是以数据集为基础,通过分析处理形成数据间的关系网络并通过可视化进行展示,其本质上是一种结构化的、具有丰富的语义关系的网络。近几年来,随着人工智能的快速发展,知识图谱也获得了长足的发展,并且产生了许多优秀的成果。目前,Minzhe Guo等提出了一种基于本体的方法来对CVE安全漏洞库进行本体建模(Guo M,WangJ A.An ontology-based approach to model common vulnerabilitiesand exposuresin information security[C]//ASEE Southest SectionConference.2009.),借助本体中的概念,公理和基本属性,来发现个体之间、个体与概念之间以及概念之间的复杂关系,该方案目前主要是用于漏洞信息的展示,而且存在可视化效果不足以及查询便利性不足的问题。陶耀东等人提出对工业互联网安全漏洞知识库进行了深入的研究(陶耀东,贾新桐,吴云坤.一种基于知识图谱的工业互联网安全漏洞研究方法[J].信息技术与网络安全,2020,39(01):6-13+18.),其挖掘出了漏洞-产品、事件-漏洞和事件-产品的关联关系,并进行了分析,取得了一定的成果,但该方案主要缺点在于其仅仅针对工业互联网漏洞,不具备通用性。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的技术方案。因此,本发明的一个方面,提供了一种基于软件漏洞识别的置信度标识方法,该方法包括:从多种预定链路收集已知软件漏洞信息,所述已知软件漏洞信息包括CPE信息、漏洞描述信息、开源软件发行信息;提取待测软件的包名、版本信息;将所述包名、版本信息分别与CPE信息进行匹配;如果与CPE信息匹配成功,则标识所述CPE信息对应的漏洞数据来源为第一置信度,并确定待测软件存在所述CPE信息对应的漏洞;如果与CPE信息匹配不成功,则将包名、版本信息分别与漏洞描述数据进行匹配;如果与漏洞描述数据进行匹配成功,则标识与漏洞描述数据对应的漏洞数据来源为第二置信度,并确定待测软件存在所述漏洞描述数据对应的漏洞;如果与漏洞描述数据匹配不成功,则将包名、版本信息分别与开源软件发行信息进行匹配;如果包名与开源软件发行信息进行匹配成功,且版本号小于修复版本号,则标识与开源软件发行信息对应的漏洞数据来源为第三置信度,并判断待测软件有存在开源软件发行信息对应的漏洞的第一可能性;如果所述包名与CPE信息、漏洞描述数据或者开源软件发行信息匹配成功,但版本号匹配不成功,则标识与CPE 信息、漏洞描述数据对应的漏洞数据来源为第四置信度,所述第四置信度为最低的置信度,并判断待测软件存在与CPE信息、漏洞描述数据对应的漏洞的第二可能性。
可选的,如果包名与所述CPE信息匹配不成功,则将包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;将所述别名与CPE信息进行匹配,如果匹配成功,将所述版本信息与所述CPE信息进行匹配,如果版本信息匹配成功,则将所述CPE信息对应的数据源标识为第五置信度,并确定待测软件存在所述CPE信息对应的漏洞,所述第五置信度低于第一置信度。
可选的,如果包名与漏洞描述数据匹配不成功,则将包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;将所述别名与漏洞描述数据进行匹配,如果匹配成功,将所述版本信息与所述漏洞描述数据进行匹配,如果版本信息匹配成功,则将所述漏洞描述数据对应的数据源标识为第六置信度,并确定待测软件存在所述漏洞描述数据对应的漏洞,所述第六置信度低于第二置信度。
可选的,如果包名与开源软件发行信息匹配不成功,则将包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;将所述别名与开源软件发行信息进行匹配,如果匹配成功,将所述版本信息与开源软件发行信息进行匹配,如果版本信息匹配成功,则将开源软件发行信息对应的数据源标识为第七置信度,并判断待测软件存在与开源软件发行信息对应的漏洞的第三可能性,所述第七置信度低于第三置信度,所述第三可能性大于第二可能性。
可选的,将所述包名、版本信息分别与CPE信息、漏洞描述数据、开源软件发行信息进行匹配,包括:先将包名与CPE信息、漏洞描述数据、开源软件发行信息进行匹配,匹配成功后,再将版本信息与CPE信息、漏洞描述数据、开源软件发行信息进行匹配。
本发明提供一种用于软件漏洞识别的置信度标识系统,该系统包括:
漏洞信息收集模块,用于从多种预定链路收集已知软件漏洞信息,所述已知软件漏洞信息包括CPE信息、漏洞描述信息、开源软件发行信息;
信息提取模块,用于提取待测软件的包名、版本信息;
第一匹配模块,用于将所述包名、版本信息分别与CPE信息进行匹配;
第一置信度标识模块,如果与CPE信息匹配成功,则标识所述CPE信息对应的漏洞数据来源为第一置信度,并确定待测软件存在所述CPE信息对应的漏洞;
第二匹配模块,如果与CPE信息匹配不成功,则将包名、版本信息分别与漏洞描述数据进行匹配;
第二置信度标识模块,如果与漏洞描述数据进行匹配成功,则标识与漏洞描述数据对应的漏洞数据来源为第二置信度,并确定待测软件存在所述漏洞描述数据对应的漏洞;
第三匹配模块,如果与漏洞描述数据匹配不成功,则将包名、版本信息分别与开源软件发行信息进行匹配;
第三置信度标识模块,如果包名与开源软件发行信息进行匹配成功,且版本号小于修复版本号,则标识与开源软件发行信息对应的漏洞数据来源为第三置信度,并判断待测软件有存在开源软件发行信息对应的漏洞的第一可能性;
第四置信度标识模块,如果所述包名与CPE信息、漏洞描述数据或者开源软件发行信息匹配成功,但版本号匹配不成功,则标识与CPE信息、漏洞描述数据对应的漏洞数据来源为第四置信度,所述第四置信度为最低的置信度,并判断待测软件存在与CPE信息、漏洞描述数据对应的漏洞的第二可能性。
可选的,该系统还包括:软件包命名矩阵查询模块,如果包名与所述CPE 信息匹配不成功,则将包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;所述第一匹配模块将所述别名与CPE信息进行匹配,如果匹配成功,将所述版本信息与所述CPE信息进行匹配;第五置信度标识模块,如果版本信息匹配成功,则将所述CPE信息对应的数据源标识为第五置信度,并确定待测软件存在所述CPE信息对应的漏洞,所述第五置信度低于第一置信度。
可选的,如果包名与漏洞描述数据匹配不成功,软件包命名矩阵查询模块根据包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;所述第二匹配模块将所述别名与漏洞描述数据进行匹配,如果匹配成功,所述第二匹配模块将所述版本信息与所述漏洞描述数据进行匹配;第六置信度标识模块,如果版本信息匹配成功,则将所述漏洞描述数据对应的数据源标识为第六置信度,并确定待测软件存在所述漏洞描述数据对应的漏洞,所述第六置信度低于第二置信度。
可选的,如果包名与开源软件发行信息匹配不成功,软件包命名矩阵查询模块则将包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;所述第三匹配模块将所述别名与开源软件发行信息进行匹配,如果匹配成功,将所述版本信息与开源软件发行信息进行匹配;第七置信度标识模块,如果版本信息匹配成功,则将开源软件发行信息对应的数据源标识为第七置信度,并判断待测软件存在与开源软件发行信息对应的漏洞的第三可能性,所述第七置信度低于第三置信度,所述第三可能性大于第二可能性;如果所述别名与CPE信息、漏洞描述数据或者开源软件发行信息匹配成功,但版本号匹配不成功,则标识与CPE信息、漏洞描述数据对应的漏洞数据来源为第四置信度,所述第四置信度为最低的置信度,并判断待测软件存在与CPE信息、漏洞描述数据对应的漏洞的第二可能性。
本发明还提供一种信息存储介质,该信息存储介质存储有计算机程序,所述计算机程序执行前面所述的软件漏洞识别方法。
本申请提供的技术方案,至少具有如下技术效果或优点:本发明通过包名或者别名匹配到的数据,以及版本号信息是否匹配,为不同的漏洞数据源设置置信度,从而判断漏洞检测结果的准确度以及达到漏洞检测的全面性,同时为后续漏洞修复的策略提供依据。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述技术方案和其目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明提供的用于软件漏洞识别的置信度标识方法的流程图;
图2示出了本发明提出的软件漏洞识别方法中所设置的置信度的层级。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本领域安全专家一般会通过漏洞库平台了解最新发现的漏洞信息,目前国内外常用的漏洞平台有:美国国家信息安全漏洞库NVD、全球信息安全漏洞指纹库与文件检测服务CVESCAN、CVE平台、SECURITYFOCUS平台、CNVD 平台、CNNVD平台,还有绿盟科技的NSFOCUS平台,这些平台会按期公布发现的软件漏洞。前面已经详细说明,在此不再赘述。另外,各软件厂商、网络公司也会公布发现的软件漏洞;商业软件在软件版本升级时一般会公布软件升级所修复的之前版本出现存在的漏洞。通过上述说明可发现,漏洞公开信息来源广泛,而且各种漏洞公开信息也存在不准确的问题。利用已知的漏洞进行预定软件的安全性检测工作时,经常会出现识别错误的情况,而且由于漏洞数据的多来源性,导致安全性检测时依据的数据不全面,从而有可能导致对有些漏洞检测不到的问题。本发明旨在解决提高对软件漏洞检测结果的准确性以及全面性。
CVE为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出的一个公共的名称。使用一个共同的名称可以帮助用户在各自独立的各种漏洞数据库中和漏洞评估工具中共享数据。具体地,CVE官网中具有漏洞的详细信息,其中包括漏洞的CPE信息,一个CVE漏洞可能包括多个CPE信息,而一个CPE信息也可能存在于多个CVE漏洞之中,因此CPE信息和CVE漏洞存在对应关系,能够通过CPE信息匹配其对应的CVE漏洞,而CPE信息中存在有对应开源组件的名称及版本信息,可使开源组件与CVE漏洞之间相匹配。
CPE的格式如下:
cpe:2.3:part:vendor:product:version:update:edition:language:sw_edition:target_s w:target_hw:other其中,part表示目标类型,part可以是a、h、o中的任意一种, a表示应用程序,h表示硬件平台,o表示操作系统;vendor表示厂商;product 表示产品名称;version表示版本号;update表示更新包;edition表示版本;language 表示语言项。下面给出了一示例CPE信息。其中,cpe开头是格式,2.3表示的采用2.3版本协议的cpe,o表示os操作系统,redhat表示的某一个厂商, enterprise_linux表示该厂商的某一产品,6.0表示的是该产品的版本号。
NVD官网提供的CVE漏洞的详细描述中就包括有CPE信息(Official CommonPlatform Enumeration(CPE)Dictionary),如: cpe:2.3:a:fasterxml:jackson-databind:2.7.8:*:*:*:*:*:*:*;可通过匹配CPE信息和开源组件信息来获得开源组件的CVE漏洞。CPE信息的标准格式大致为:cpe:2.3:part:vendor:product:version:update:edition:language:sw_edition:target_sw:tar get_hw:other,其中,cpe开头是格式;2.3表示采用2.3版本协议的cpe(现在基本都是采用2.3版本协议);part表示目标类型,允许的值有a(应用程序)、h (硬件平台)、o(操作装置),本发明中所分析的是开源组件,属于应用程序,也即part为a;vendor表示厂商;product表示厂商的产品名称;version表示产品的版本号;update表示更新包;edition表示版本;language表示语言项。再例如,cpe:2.3:o:redhat:enterprise_linux:6.0:*:*:*:*:*:*:*,cpe开头是格式,2.3表示的采用2.3版本协议的cpe,o表示os操作装置,redhat表示厂商,enterprise_linux 表示这个厂商的这个产品,6.0表示这个产品的版本号。
本发明基于NVD官网的权威性,将CPE信息作为进行软件安全性检测所依据的第一优先级匹配次序。毕竟NVD官网没有囊括所有的软件,况且它是美国国家的漏洞库,国内很多软件漏洞并没有被收纳在该库中。基于此本发明提供一种基于软件漏洞识别的置信度标识方法。
本发明的一个方面,提供了一种基于软件漏洞识别的置信度标识方法,如图1所示,该方法包括:从多种预定链路收集已知软件漏洞信息,所述已知软件漏洞信息包括CPE信息、漏洞描述信息、开源软件发行信息;
提取待测软件的包名、版本信息;将所述包名、版本信息分别与CPE信息进行匹配;如果与CPE信息匹配成功,则标识所述CPE信息对应的漏洞数据来源为第一置信度,并确定待测软件存在所述CPE信息对应的漏洞;如果与CPE信息匹配不成功,则将包名、版本信息分别与漏洞描述数据进行匹配;如果与漏洞描述数据进行匹配成功,则标识与漏洞描述数据对应的漏洞数据来源为第二置信度,并确定待测软件存在所述漏洞描述数据对应的漏洞;如果与漏洞描述数据匹配不成功,则将包名、版本信息分别与开源软件发行信息进行匹配;如果包名与开源软件发行信息进行匹配成功,且版本号小于修复版本号,则标识与开源软件发行信息对应的漏洞数据来源为第三置信度,并判断待测软件有存在开源软件发行信息对应的漏洞的第一可能性;如果所述包名与CPE信息、漏洞描述数据或者开源软件发行信息匹配成功,但版本号匹配不成功,则标识与CPE 信息、漏洞描述数据对应的漏洞数据来源为第四置信度,所述第四置信度为最低的置信度,并判断待测软件存在与CPE信息、漏洞描述数据对应的漏洞的第二可能性。
该方法通过漏洞信息来源、包名匹配方式,对过滤出的漏洞数据添加置信字段,从而判断该条漏洞数据是准确匹配还是模糊匹配。所述第一置信度、第置信度可属于精确匹配,而第三置信度、第四置信度可属于模糊匹配。
然而,在进行漏洞数据的信息收集时,需要实时提取很多不同的操作系统中的软件包信息,包括软件包的名称,但是不同的操作系统中对软件包的命名方式不同,从而导致名称不同。在漏洞识别时,如果仅仅根据已知漏洞的软件包名称进行收集、识别,很容易就将名称不同但实质上相同的软件遗漏,从而对漏洞的识别产生影响。
本申请通过抽取所有操作系统的软件包的spec文件的上游源的信息,如果上游源相同,说明这两个软件包实质上是同一个软件包。基于所述上游源的信息确定基于相同上游源的软件包,这些软件包的包名称之间建立映射关系,互为别名,基于这些包名称构建软件包命名矩阵。举例来说,openeuler操作系统的软件包的名称是“python-memcached”,而opensuse操作系统的软件包的名称却是“memcached”,两个软件包名称不同,但是由相同的上游源文件编译的,但其实是同一个软件包。
上面,提到在软件包命名矩阵,本发明的一个方面,还提供了一种构建软件包命名矩阵的方法,该方法包括:
S1.获取各个操作系统的所有软件的开源文件信息;
S2.根据所述开源文件信息解析出所有软件的上游源信息;
S3.如果不同操作系统的不同名称的软件具有相同的上游源,则认为所述不同名称是对应同一软件;
S4.建立同一软件的不同名称之间的映射关系,基于所述映射关系形成软件包命名矩阵;
S5.基于所述软件包命名矩阵进行待测软件的名称匹配,以获取待测软件的别名;
上述方法可主要用于lunix开源工程,通过解析软件包中的spec文件、control 文件等配置文件,这些配置文件记录了软件是由上游的哪些开源组件编译来的,基于同样的上游开源组件(上游源)编译的软件,被认为实质上是同一软件,可能存在同样的漏洞。
CPE全称是Common Platform Enumeration,意思是通用平台枚举项。它是对IT产品的统一命名规范,包括系统、平台、上游组件和软件包等。常见格式如下:
cpe:/::::::
其中,part表示目标类型,允许的值有a(应用程序)、h(硬件平台)、o (操作系统);vendor表示供应商;product表示产品名称;version表示版本号; update表示更新包;edition表示版本;language表示语言项。通过CPE文件可获取到开源软件的上游组件信息(上游源信息)。
该方法实时追踪软件包的上游名称及其他Linux发行版对应的软件包名称,并将基于相同的上游开源组件开发的软件名称建立映射关系形成矩阵。该矩阵可用于关联漏洞受影响组件,根据漏洞的CPE中信息,发现相关Linux发行版是否存在该漏洞,如果存在漏洞,则关联漏洞在对应Linux发行版的影响软件。从而通过构建软件包命名矩阵进行不同Linux厂商的软件包名称匹配。
作为一种具体实施方式,检测一应用软件A是否存在漏洞,该应用软件A 基于开源程序开发,而且漏洞库对该应用软件A存在的漏洞没有任何记录。首先,通过扫描该应用软件A的预定文件以获取该应用软件的软件名称,将该软件名称与已知漏洞库的软件信息进行匹配,如果匹配成功,则确定该软件存在的漏洞,如果没有匹配成功,则根据该软件名称在软件包命名矩阵进行匹配,如果匹配成功,则确定该应用软件对应的别名。利用该别名进一步在已知漏洞库中进行匹配,如果匹配成功,则确定该软件存在漏洞,如果没有匹配成功,则认为该软件不存在漏洞。
在软件包命名矩阵中,每个软件作为一个实体,实体具有相关属性,实体和相关属性形成一个AI,实体之间的关系形成知识结构,可用于进行运算。软件包命名矩阵作为软件知识图谱,因为包含丰富的信息,可以用于对软件包名称进行扩展、利用软件之间的属性关系进行推理运算。
SPEC文件作为软件包的配置文件,包括了软件包的名称、软件的实际版本号、发布序列号、软件授权方式、上游源组件名称以及源码包。通过解析SPEC 文件可获取到软件的上游组件信息(上游源信息)。
作为一种具体实施方式,根据已知漏洞软件的spec文件信息,解析出对应软件包中的上游开源组件信息(上游源信息)。
作为另一具体实施方式,还可根据已知漏洞软件的control文件信息,解析出对应软件包中的上游开源组件信息(上游源信息)。
基于所述软件包命名矩阵进行软件的安全性识别,以识别软件是否存在漏洞,包括:利用待测软件的软件名称在软件包命名矩阵中进行匹配,如果匹配成功,则根据匹配结果确定待测软件的别名。
在进行软件命名矩阵进行待检测软件名称匹配无果的情况下,该方法还包括:
S1’获取待测软件的开源文件信息;
S2’根据所述开源文件信息解析出上游开源组件信息;
S3’根据所述上游开源组件信息与漏洞库的已知漏洞软件相关信息进行匹配;
S4’如果匹配到,则判断所述待测软件存在与所匹配到的软件相对应的漏洞。
通过该过程,将基于上游开源组件匹配的结果对软件包命名矩阵进行更新、补充,从而进一步完善软件包命名矩阵。实际上,随着新软件的不断出现,软件包命名矩阵是一直不断更新、完善的。
本发明还提供一种构建软件包命名矩阵的系统,该系统包括:
开源文件获取模块,用于获取各个操作系统的所有软件的开源文件信息;
上游源信息解析模块,根据所述开源文件信息解析出所有软件的上游源信息;
软件包命名矩阵构建模块,如果不同操作系统的不同名称的软件具有相同的上游源,则认为所述不同名称是对应同一软件,并建立同一软件的不同名称之间的映射关系,基于所述映射关系形成软件包命名矩阵;
包名拓展模块,用于基于所述软件包命名矩阵进行待测软件的名称匹配,以获取待测软件的别名;
作为一种具体实施方式,所述上游源信息解析模块根据已知漏洞软件的spec 文件信息,解析出所有软件的上游源信息。
作为另一种具体实施方式,所述上游源信息解析模块根据已知漏洞软件的control文件信息,解析出所有软件的上游源信息。
所述包名拓展模块利用待测软件的软件名称在软件包命名矩阵中进行查找,获取与所述软件名称对应的别名。
所述漏洞识别模块还用于根据待测软件的包名,将待测软件与漏洞库的已知信息进行匹配;如果匹配不成功,所述包名拓展模块再通过包命名矩阵找出其别名,所述漏洞识别模块再基于所述别名与已知漏洞数据库的漏洞信息进行匹配,进行漏洞识别。
本申请不仅利用待测软件的包名进行匹配,还通过待测软件的别名、构建的已知漏洞软件的别名进行匹配,以全面检测待测软件可能存在的漏洞,从而保证漏洞检测的全面性。
如果包名与所述CPE信息匹配不成功,则将包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;将所述别名与CPE信息进行匹配,如果匹配成功,将所述版本信息与所述CPE信息进行匹配,如果版本信息匹配成功,则将所述CPE信息对应的数据源标识为第五置信度,并确定待测软件存在所述 CPE信息对应的漏洞,所述第五置信度低于第一置信度。第五置信度略低于第一置信度,可属于精确匹配范畴。
如果包名与漏洞描述数据匹配不成功,则将包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;将所述别名与漏洞描述数据进行匹配,如果匹配成功,将所述版本信息与所述漏洞描述数据进行匹配,如果版本信息匹配成功,则将所述漏洞描述数据对应的数据源标识为第六置信度,并确定待测软件存在所述漏洞描述数据对应的漏洞,所述第六置信度低于第二置信度。第六置信度略低于第二置信度,可属于精确匹配范畴。
如果包名与开源软件发行信息匹配不成功,则将包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;将所述别名与开源软件发行信息进行匹配,如果匹配成功,将所述版本信息与开源软件发行信息进行匹配,如果版本信息匹配成功,则将开源软件发行信息对应的数据源标识为第七置信度,并判断待测软件存在与开源软件发行信息对应的漏洞的第三可能性,所述第七置信度低于第三置信度,所述第三可能性大于第二可能性;如果所述别名与CPE信息、漏洞描述数据或者开源软件发行信息匹配成功,但版本号匹配不成功,则标识与CPE信息、漏洞描述数据对应的漏洞数据来源为第四置信度,所述第四置信度为最低的置信度,并判断待测软件存在与CPE信息、漏洞描述数据对应的漏洞的第二可能性。。
作为一种具体实施方式,如图2所示,将所述包名、版本信息分别与CPE 信息、漏洞描述数据、开源软件发行信息进行匹配,包括:先将包名与CPE信息、漏洞描述数据、开源软件发行信息进行匹配,匹配成功后,再将版本信息与CPE信息、漏洞描述数据、开源软件发行信息进行匹配。
本发明提供一种用于软件漏洞识别的置信度标识系统,该系统包括:
漏洞信息收集模块,用于从多种预定链路收集已知软件漏洞信息,所述已知软件漏洞信息包括CPE信息、漏洞描述信息、开源软件发行信息;
信息提取模块,用于提取待测软件的包名、版本信息;
第一匹配模块,用于将所述包名、版本信息分别与CPE信息进行匹配;
第一置信度标识模块,如果与CPE信息匹配成功,则标识所述CPE信息对应的漏洞数据来源为第一置信度,并确定待测软件存在所述CPE信息对应的漏洞;
第二匹配模块,如果与CPE信息匹配不成功,则将包名、版本信息分别与漏洞描述数据进行匹配;
第二置信度标识模块,如果与漏洞描述数据进行匹配成功,则标识与漏洞描述数据对应的漏洞数据来源为第二置信度,并确定待测软件存在所述漏洞描述数据对应的漏洞;
第三匹配模块,如果与漏洞描述数据匹配不成功,则将包名、版本信息分别与开源软件发行信息进行匹配;
第三置信度标识模块,如果包名与开源软件发行信息进行匹配成功,且版本号小于修复版本号,则标识与开源软件发行信息对应的漏洞数据来源为第三置信度,并判断待测软件有存在开源软件发行信息对应的漏洞的第一可能性;
第四置信度标识模块,如果所述包名与CPE信息、漏洞描述数据或者开源软件发行信息匹配成功,但版本号匹配不成功,则标识与CPE信息、漏洞描述数据对应的漏洞数据来源为第四置信度,所述第四置信度为最低的置信度,并判断待测软件存在与CPE信息、漏洞描述数据对应的漏洞的第二可能性。
可选的,该系统还包括:软件包命名矩阵查询模块,如果包名与所述CPE 信息匹配不成功,则将包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;所述第一匹配模块将所述别名与CPE信息进行匹配,如果匹配成功,将所述版本信息与所述CPE信息进行匹配;第五置信度标识模块,如果版本信息匹配成功,则将所述CPE信息对应的数据源标识为第五置信度,并确定待测软件存在所述CPE信息对应的漏洞,所述第五置信度低于第一置信度。
可选的,如果包名与漏洞描述数据匹配不成功,软件包命名矩阵查询模块根据包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;所述第二匹配模块将所述别名与漏洞描述数据进行匹配,如果匹配成功,所述第二匹配模块将所述版本信息与所述漏洞描述数据进行匹配;第六置信度标识模块,如果版本信息匹配成功,则将所述漏洞描述数据对应的数据源标识为第六置信度,并确定待测软件存在所述漏洞描述数据对应的漏洞,所述第六置信度低于第二置信度。
可选的,如果包名与开源软件发行信息匹配不成功,软件包命名矩阵查询模块则将包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;所述第三匹配模块将所述别名与开源软件发行信息进行匹配,如果匹配成功,将所述版本信息与开源软件发行信息进行匹配;第七置信度标识模块,如果版本信息匹配成功,则将开源软件发行信息对应的数据源标识为第七置信度,并判断待测软件存在与开源软件发行信息对应的漏洞的第三可能性,所述第七置信度低于第三置信度,所述第三可能性大于第二可能性;如果所述别名与CPE信息、漏洞描述数据或者开源软件发行信息匹配成功,但版本号匹配不成功,则标识与CPE信息、漏洞描述数据对应的漏洞数据来源为第四置信度,所述第四置信度为最低的置信度,并判断待测软件存在与CPE信息、漏洞描述数据对应的漏洞的第二可能性。
本发明还提供一种信息存储介质,该信息存储介质存储有计算机程序,所述计算机程序执行前面所述的软件漏洞识别方法。
本申请提供的技术方案,至少具有如下技术效果或优点:本发明通过包名匹配到的数据,为不同的漏洞数据源设置置信度,从而判断漏洞检测结果的准确度以及达到漏洞检测的全面性,同时为后续漏洞修复的策略提供依据。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。
Claims (10)
1.一种基于软件漏洞识别的置信度标识方法,其特征在于,该方法包括:从多种预定链路收集已知软件漏洞信息,所述已知软件漏洞信息包括CPE信息、漏洞描述信息、开源软件发行信息;
提取待测软件的包名、版本信息;
将所述包名、版本信息分别与CPE信息进行匹配;
如果均与CPE信息匹配成功,则标识所述CPE信息对应的漏洞数据来源为第一置信度,并确定待测软件存在所述CPE信息对应的漏洞;
如果包名与CPE信息匹配不成功,则将包名、版本信息分别与漏洞描述数据进行匹配;
如果均与漏洞描述数据进行匹配成功,则标识与漏洞描述数据对应的漏洞数据来源为第二置信度,并确定待测软件存在所述漏洞描述数据对应的漏洞;如果包名与漏洞描述数据匹配不成功,则将包名、版本信息分别与开源软件发行信息进行匹配;
如果包名与开源软件发行信息进行匹配成功,且版本号小于修复版本号,则标识与开源软件发行信息对应的漏洞数据来源为第三置信度,并判断待测软件有存在开源软件发行信息对应的漏洞的第一可能性;
如果所述包名与CPE信息、漏洞描述数据或者开源软件发行信息匹配成功,但版本号匹配不成功,则标识与CPE信息、漏洞描述数据对应的漏洞数据来源为第四置信度,所述第四置信度为最低的置信度,并判断待测软件存在与CPE信息、漏洞描述数据对应的漏洞的第二可能性。
2.根据权利要求1所述的软件漏洞识别方法,其特征还在于,
如果包名与所述CPE信息匹配不成功,则将包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;
将所述别名与CPE信息进行匹配,如果匹配成功,将所述版本信息与所述CPE信息进行匹配,如果版本信息匹配成功,则将所述CPE信息对应的数据源标识为第五置信度,并确定待测软件存在所述CPE信息对应的漏洞,所述第五置信度低于第一置信度。
3.根据权利要求2所述的软件漏洞识别方法,其特征还在于,如果包名与漏洞描述数据匹配不成功,则将包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;
将所述别名与漏洞描述数据进行匹配,如果匹配成功,将所述版本信息与所述漏洞描述数据进行匹配,如果版本信息匹配成功,则将所述漏洞描述数据对应的数据源标识为第六置信度,并确定待测软件存在所述漏洞描述数据对应的漏洞,所述第六置信度低于第二置信度。
4.根据权利要求3所述的软件漏洞识别方法,其特征还在于,如果包名与开源软件发行信息匹配不成功,则将包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;
将所述别名与开源软件发行信息进行匹配,如果匹配成功,将所述版本信息与开源软件发行信息进行匹配,如果版本信息匹配成功,则将开源软件发行信息对应的数据源标识为第七置信度,并判断待测软件存在与开源软件发行信息对应的漏洞的第三可能性,所述第七置信度低于第三置信度,所述第三可能性大于第二可能性;
如果所述别名与CPE信息、漏洞描述数据或者开源软件发行信息匹配成功,但版本号匹配不成功,则标识与CPE信息、漏洞描述数据对应的漏洞数据来源为第四置信度,所述第四置信度为最低的置信度,并判断待测软件存在与CPE信息、漏洞描述数据对应的漏洞的第二可能性。
5.根据权利要求1-4任一项所述的软件漏洞识别方法,其特征还在于,
将所述包名、版本信息分别与CPE信息、漏洞描述数据、开源软件发行信息进行匹配,包括:先将包名与CPE信息、漏洞描述数据、开源软件发行信息进行匹配,匹配成功后,再将版本信息与CPE信息、漏洞描述数据、开源软件发行信息进行匹配。
6.一种用于软件漏洞识别的置信度标识系统,其特征在于,该系统包括:漏洞信息收集模块,用于从多种预定链路收集已知软件漏洞信息,所述已知软件漏洞信息包括CPE信息、漏洞描述信息、开源软件发行信息;
信息提取模块,用于提取待测软件的包名、版本信息;
第一匹配模块,用于将所述包名、版本信息分别与CPE信息进行匹配;
第一置信度标识模块,如果与CPE信息匹配成功,则标识所述CPE信息对应的漏洞数据来源为第一置信度,并确定待测软件存在所述CPE信息对应的漏洞;
第二匹配模块,如果与CPE信息匹配不成功,则将包名、版本信息分别与漏洞描述数据进行匹配;
第二置信度标识模块,如果与漏洞描述数据进行匹配成功,则标识与漏洞描述数据对应的漏洞数据来源为第二置信度,并确定待测软件存在所述漏洞描述数据对应的漏洞;
第三匹配模块,如果与漏洞描述数据匹配不成功,则将包名、版本信息分别与开源软件发行信息进行匹配;
第三置信度标识模块,如果包名与开源软件发行信息进行匹配成功,且版本号小于修复版本号,则标识与开源软件发行信息对应的漏洞数据来源为第三置信度,并判断待测软件有存在开源软件发行信息对应的漏洞的第一可能性;
第四置信度标识模块,如果所述包名与CPE信息、漏洞描述数据或者开源软件发行信息匹配成功,但版本号匹配不成功,则标识与CPE信息、漏洞描述数据对应的漏洞数据来源为第四置信度,所述第四置信度为最低的置信度,并判断待测软件存在与CPE信息、漏洞描述数据对应的漏洞的第二可能性。
7.根据权利要求6所述的软件漏洞识别系统,其特征还在于,该系统还包括:
软件包命名矩阵查询模块,如果包名与所述CPE信息匹配不成功,则将包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;
所述第一匹配模块将所述别名与CPE信息进行匹配,如果匹配成功,将所述版本信息与所述CPE信息进行匹配;
第五置信度标识模块,如果版本信息匹配成功,则将所述CPE信息对应的数据源标识为第五置信度,并确定待测软件存在所述CPE信息对应的漏洞,所述第五置信度低于第一置信度。
8.根据权利要求7所述的软件漏洞识别系统,其特征还在于,如果包名与漏洞描述数据匹配不成功,软件包命名矩阵查询模块根据包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;
所述第二匹配模块将所述别名与漏洞描述数据进行匹配,如果匹配成功,所述第二匹配模块将所述版本信息与所述漏洞描述数据进行匹配;
第六置信度标识模块,如果版本信息匹配成功,则将所述漏洞描述数据对应的数据源标识为第六置信度,并确定待测软件存在所述漏洞描述数据对应的漏洞,所述第六置信度低于第二置信度。
9.根据权利要求8所述的软件漏洞识别系统,其特征还在于,如果包名与开源软件发行信息匹配不成功,软件包命名矩阵查询模块则将包名通过软件包命名矩阵进行检索,获取到与该包名对应的别名;
所述第三匹配模块将所述别名与开源软件发行信息进行匹配,如果匹配成功,将所述版本信息与开源软件发行信息进行匹配;
第七置信度标识模块,如果版本信息匹配成功,则将开源软件发行信息对应的数据源标识为第七置信度,并判断待测软件存在与开源软件发行信息对应的漏洞的第三可能性,所述第七置信度低于第三置信度,所述第三可能性大于第二可能性;
如果所述别名与CPE信息、漏洞描述数据或者开源软件发行信息匹配成功,但版本号匹配不成功,则标识与CPE信息、漏洞描述数据对应的漏洞数据来源为第四置信度,所述第四置信度为最低的置信度,并判断待测软件存在与CPE信息、漏洞描述数据对应的漏洞的第二可能性。
10.一种信息存储介质,其特征在于,该信息存储介质存储有计算机程序,所述述计算机程序执行权利要求1-5任一项所述的软件漏洞识别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111204320.5A CN114201757A (zh) | 2021-10-15 | 2021-10-15 | 一种基于软件漏洞识别的置信度标识方法、信息存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111204320.5A CN114201757A (zh) | 2021-10-15 | 2021-10-15 | 一种基于软件漏洞识别的置信度标识方法、信息存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114201757A true CN114201757A (zh) | 2022-03-18 |
Family
ID=80646193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111204320.5A Pending CN114201757A (zh) | 2021-10-15 | 2021-10-15 | 一种基于软件漏洞识别的置信度标识方法、信息存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114201757A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115033894A (zh) * | 2022-08-12 | 2022-09-09 | 中国电子科技集团公司第三十研究所 | 一种基于知识图谱的软件组件供应链安全检测方法及装置 |
-
2021
- 2021-10-15 CN CN202111204320.5A patent/CN114201757A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115033894A (zh) * | 2022-08-12 | 2022-09-09 | 中国电子科技集团公司第三十研究所 | 一种基于知识图谱的软件组件供应链安全检测方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8498975B2 (en) | Search query processing | |
CN110399300B (zh) | 一种基于动态类型感知的Python软件模糊测试方法 | |
CN107608732B (zh) | 一种基于bug知识图谱的bug搜索定位方法 | |
US6374261B1 (en) | Expert system knowledge-deficiency reduction through automated database updates from semi-structured natural language documents | |
US20070239799A1 (en) | Analyzing log files | |
CN111181805B (zh) | 一种基于测试用例的微服务测试挡板生成方法及系统 | |
Li et al. | A mining approach to obtain the software vulnerability characteristics | |
CN112579476B (zh) | 一种漏洞和软件对齐的方法、装置以及存储介质 | |
Henkel et al. | Shipwright: A human-in-the-loop system for dockerfile repair | |
Di Lucca et al. | Clone analysis in the web era: An approach to identify cloned web pages | |
CN115033894A (zh) | 一种基于知识图谱的软件组件供应链安全检测方法及装置 | |
CN114201757A (zh) | 一种基于软件漏洞识别的置信度标识方法、信息存储介质 | |
CN108959454B (zh) | 一种提示子句指定方法、装置、设备及存储介质 | |
Earls et al. | A method for the manual extraction of business rules from legacy source code | |
JP2006178848A (ja) | データベース・システム、データベース・システムのためのコンピュータ実行可能な方法、プログラムおよびデータベース・システムにおける索引テーブルをアップデートする方法 | |
CN114201759A (zh) | 一种基于软件包命名矩阵的软件漏洞识别方法与系统 | |
CN110580170B (zh) | 软件性能风险的识别方法及装置 | |
CN113821554A (zh) | 一种实现异构数据库数据采集的方法 | |
CN112579604A (zh) | 测试系统的造数方法、装置、设备及存储介质 | |
CN116069808A (zh) | 数据库存储过程的依赖信息的确定方法、装置及电子设备 | |
CN114756868A (zh) | 一种基于指纹的网络资产与漏洞关联方法及装置 | |
US7844627B2 (en) | Program analysis method and apparatus | |
CN111158653B (zh) | 基于sql语言的实时计算程序的集成开发及执行系统 | |
CN114201758A (zh) | 一种对过滤出的漏洞数据进行验证的方法和系统 | |
CN112948415A (zh) | Sql语句检测方法、装置、终端设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |