CN115827895A - 一种漏洞知识图谱处理方法、装置、设备及介质 - Google Patents
一种漏洞知识图谱处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115827895A CN115827895A CN202211599686.1A CN202211599686A CN115827895A CN 115827895 A CN115827895 A CN 115827895A CN 202211599686 A CN202211599686 A CN 202211599686A CN 115827895 A CN115827895 A CN 115827895A
- Authority
- CN
- China
- Prior art keywords
- vulnerability
- knowledge graph
- entities
- entity
- data
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及信息安全技术领域,具体涉及一种漏洞知识图谱处理方法、装置、设备及介质,用于提高漏洞知识图谱的完整性和准确性。所述方法包括:获取与漏洞有关的数据集;对所述数据集进行关键数据抽取,将抽取的关键数据按预设格式存入图数据库中,生成漏洞知识图谱;所述漏洞知识图谱用于指示漏洞领域内各个第一类实体之间的关系和各个第一类实体的属性值;根据预先构建的漏洞知识图谱本体结构,对所述漏洞知识图谱进行信息补全和/或信息修正,获得校验后的漏洞知识图谱;所述漏洞知识图谱本体结构用于指示所述漏洞领域内各个第二类实体之间的关系和各个第二类实体的属性。
Description
技术领域
本申请涉及信息安全技术领域,具体涉及一种漏洞知识图谱处理方法、装置、设备及介质。
背景技术
网络安全问题一直以来备受安全研究人员关注,随着网络信息的快速增长,如何从海量数据中获得高质量、全面的漏洞数据并进行有效管理是一个亟需解决的问题。然而,现有的多个开源漏洞数据库是由不同组织维护并以不同形式进行数据存储,缺少一个统一规范,其次,多个开源漏洞数据库存在信息更新频率不一致、数据字段不一致、数据值不一致等情况,这会造成分析人员无法直观、全面、准确地理解漏洞。因此,作为网络安全风险分析的核心,从多源的大量数据中收集、整合、校验漏洞相关信息,构建漏洞知识图谱具有十分重要的意义。
目前主要是基于开源漏洞库(NVD、CNNVD、CNVD)、通用平台枚举库(CPE)、通用缺陷枚举库(CWE)等多源数据库来构建漏洞知识图谱,但是多源数据库中的字段和取值存在差异,直接基于多源数据库的解析数据构建的漏洞知识图谱会存在属性值或关系不一致/歧义的情况,这类数据将会误导分析人员。
发明内容
本申请实施例提供一种漏洞知识图谱处理方法、装置、设备及介质,用于提高漏洞知识图谱的完整性和准确性。
第一方面,本申请提供一种漏洞知识图谱处理方法,包括:
获取与漏洞有关的数据集;
对所述数据集进行关键数据抽取,将抽取的关键数据按预设格式存入图数据库中,生成漏洞知识图谱;其中,所述漏洞知识图谱用于指示漏洞领域内各个第一类实体之间的关系和各个第一类实体的属性值;
根据预先构建的漏洞知识图谱本体结构,对所述漏洞知识图谱进行信息补全和/或信息修正,获得校验后的漏洞知识图谱;其中,所述漏洞知识图谱本体结构用于指示所述漏洞领域内各个第二类实体之间的关系和各个第二类实体的属性,所述第二类实体为包括所述第一类实体的特征的实体。
在一种可能的实施例中,所述数据集包括结构化数据和非结构化数据。
在一种可能的实施例中,对所述数据集进行关键数据抽取,将抽取的关键数据按预设格式存入图数据库中,包括:
将所述非结构化数据输入训练后的实体识别模型,获得所述非结构化数据中每个词的第一标签和第二标签;其中,所述第一标签用于指示词不是实体类型、或者词是实体片段的开始、或者词是实体片段的中间、或者词是实体片段的结束,所述第二标签用于指示词是实体时对应的实体类型;
根据每个词的第一标签和第二标签,从所述非结构化数据中抽取多个第一词进行合并,获得多个第二词;其中,所述第一词为第一标签是实体片段的开始或实体片段的中间或实体片段的结束、且第二标签相同的词,每个第二词对应一个第一类实体;
将所述多个第二词对应的多个第一类实体之间的关系、以及所述多个第二词对应的多个第一类实体的属性值,按预设格式存入图数据库中;其中,所述多个第二词对应的多个第一类实体之间的关系是根据所述漏洞知识图谱本体结构确定的,所述多个第二词对应的多个第一类实体的属性值是根据所述多个第二词确定的。
在一种可能的实施例中,根据预先构建的漏洞知识图谱本体结构,对所述漏洞知识图谱进行信息补全和/或信息修正,获得校验后的漏洞知识图谱,包括:
根据所述漏洞知识图谱本体结构,确定所述漏洞知识图谱中的漏洞实体的缺失信息和/或错误信息;
若所述缺失信息为多个,按照预设的第一优先级,依次对所述漏洞知识图谱进行信息补全,和/或,若所述错误信息为多个,按照预设的第二优先级,依次对所述漏洞知识图谱进行信息修正;
获得所述校验后的漏洞知识图谱。
在一种可能的实施例中,在获得校验后的漏洞知识图谱之后,所述方法还包括:
确定第一漏洞与第二漏洞在多个预设维度下的多个相似度;其中,所述第一漏洞与所述第二漏洞为所述校验后的漏洞知识图谱中的任意两个漏洞实体;
按照所述多个预设维度的权重对所述多个相似度进行加权求和,获得所述第一漏洞与所述第二漏洞的总相似度;
将所述总相似度写入所述校验后的漏洞知识图谱中,获得更新后的漏洞知识图谱。
在一种可能的实施例中,确定第一漏洞与第二漏洞在多个预设维度下的多个相似度,包括:
确定在任一维度下与所述第一漏洞有关系的第一实体集合,以及在所述任一维度下与所述第二漏洞有关系的第二实体集合;
确定所述第一实体集合与所述第二实体集合的交集中的实体数量,以及所述第一实体集合与所述第二实体集合的并集中的实体数量;
根据所述交集中的实体数量与所述并集中的实体数量的比值,确定所述第一漏洞与所述第二漏洞在所述任一维度下的相似度。
在一种可能的实施例中,在将所述总相似度写入所述校验后的漏洞知识图谱中,获得更新后的漏洞知识图谱之后,所述方法还包括:
接收到查询目标漏洞的相似漏洞的请求;
根据所述更新后的漏洞知识图谱,确定与所述目标漏洞的总相似度大于预设相似度的多个相似漏洞;
按照与所述目标漏洞的总相似度从高到低的顺序,显示所述多个相似漏洞。
第二方面,本申请提供一种漏洞知识图谱处理装置,包括:
获取模块,用于获取与漏洞有关的数据集;
生成模块,用于对所述数据集进行关键数据抽取,将抽取的关键数据按预设格式存入图数据库中,生成漏洞知识图谱;其中,所述漏洞知识图谱用于指示漏洞领域内各个第一类实体之间的关系和各个第一类实体的属性值;
校验模块,用于根据预先构建的漏洞知识图谱本体结构,对所述漏洞知识图谱进行信息补全和/或信息修正,获得校验后的漏洞知识图谱;其中,所述漏洞知识图谱本体结构用于指示所述漏洞领域内各个第二类实体之间的关系和各个第二类实体的属性,所述第二类实体为包括所述第一类实体的特征的实体。
在一种可能的实施例中,所述数据集包括结构化数据和非结构化数据。
在一种可能的实施例中,所述生成模块具体用于:
将所述非结构化数据输入训练后的实体识别模型,获得所述非结构化数据中每个词的第一标签和第二标签;其中,所述第一标签用于指示词不是实体、或者词是实体片段的开始、或者词是实体片段的中间、或者词是实体片段的结束,所述第二标签用于指示词是实体时对应的实体类型;
根据每个词的第一标签和第二标签,从所述非结构化数据中抽取多个第一词进行合并,获得多个第二词;其中,所述第一词为第一标签是实体片段的开始或实体片段的中间或实体片段的结束、且第二标签相同的词,每个第二词对应一个第一类实体;
将所述多个第二词对应的多个第一类实体之间的关系、以及所述多个第二词对应的多个第一类实体的属性值,按预设格式存入图数据库中;其中,所述多个第二词对应的多个第一类实体之间的关系是根据所述漏洞知识图谱本体结构确定的,所述多个第二词对应的多个第一类实体的属性值是根据所述多个第二词确定的。
在一种可能的实施例中,所述校验模块具体用于:
根据所述漏洞知识图谱本体结构,确定所述漏洞知识图谱中的漏洞实体的缺失信息和/或错误信息;
若所述缺失信息为多个,按照预设的第一优先级,依次对所述漏洞知识图谱进行信息补全,和/或,若所述错误信息为多个,按照预设的第二优先级,依次对所述漏洞知识图谱进行信息修正;
获得所述校验后的漏洞知识图谱。
在一种可能的实施例中,所述装置还包括写入模块,所述写入模块用于:
在获得校验后的漏洞知识图谱之后,
确定第一漏洞与第二漏洞在多个预设维度下的多个相似度;其中,所述第一漏洞与所述第二漏洞为所述校验后的漏洞知识图谱中的任意两个漏洞实体;
按照所述多个预设维度的权重对所述多个相似度进行加权求和,获得所述第一漏洞与所述第二漏洞的总相似度;
将所述总相似度写入所述校验后的漏洞知识图谱中,获得更新后的漏洞知识图谱。
在一种可能的实施例中,所述写入模块具体用于:
确定在任一维度下与所述第一漏洞有关系的第一实体集合,以及在所述任一维度下与所述第二漏洞有关系的第二实体集合;
确定所述第一实体集合与所述第二实体集合的交集中的实体数量,以及所述第一实体集合与所述第二实体集合的并集中的实体数量;
根据所述交集中的实体数量与所述并集中的实体数量的比值,确定所述第一漏洞与所述第二漏洞在所述任一维度下的相似度。
在一种可能的实施例中,所述装置还包括查询模块,所述查询模块用于:
在将所述总相似度写入所述校验后的漏洞知识图谱中,获得更新后的漏洞知识图谱之后,接收到查询目标漏洞的相似漏洞的请求;
根据所述更新后的漏洞知识图谱,确定与所述目标漏洞的总相似度大于预设相似度的多个相似漏洞;
按照与所述目标漏洞的总相似度从高到低的顺序,显示所述多个相似漏洞。
第三方面,本申请提供一种电子设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行第一方面中任一项所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面中任一项所述的方法。
在本申请实施例中,对与漏洞有关的数据集进行关键数据抽取,将抽取的关键数据按预设格式存入图数据库中,生成漏洞知识图谱,使用漏洞知识图谱来表示漏洞数据,规范化、统一存储漏洞相关数据,便于分析人员根据漏洞知识图谱直观的理解漏洞,快速挖掘与漏洞相关的深层次关联信息,全面掌握漏洞的多维度信息。且在生成漏洞知识图谱之后,基于预先构建的漏洞知识图谱本体结构,对漏洞知识图谱进行信息补全和/或信息修正,获得校验后的漏洞知识图谱,保证校验后的漏洞知识图谱的完整性和准确性,避免因漏洞知识图谱的信息不全或者信息错误,导致分析人员获取的漏洞信息错误,进而分析困难。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种漏洞知识图谱处理方法的应用场景示意图;
图2为本申请实施例提供的一种漏洞知识图谱处理方法的流程示意图;
图3为本申请实施例提供的一种漏洞知识图谱本体结构的示意图;
图4为本申请实施例提供的JSON格式的CVE数据的示例图;
图5为本申请实施例提供的一种数据标注示例图;
图6为本申请实施例提供的第一漏洞和第二漏洞的关联示意图;
图7为本申请实施例提供的两漏洞之间的总相似度示意图;
图8为本申请实施例提供的一种漏洞知识图谱处理装置的结构图;
图9为本申请实施例提供的一种电子设备的结构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以按不同于此处的顺序执行所示出或描述的步骤。
本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例中,“多个”可以表示至少两个,例如可以是两个、三个或者更多个,本申请实施例不做限制。
在介绍本申请实施例所提供的漏洞知识图谱处理方法之前,为了便于理解,首先对本申请实施例涉及的一些中英文对照关系进行说明,如下表1所示:
表1
下面对本申请实施例涉及的一些名词解释进行说明:
1、命名实体识别(Named Entity Recognition):是指识别文本中具有特定意义的实体,在漏洞领域包括漏洞编号、漏洞名称、受影响的产品和版本、漏洞产生的原因、漏洞造成的影响等。
2、非结构化数据(Unstructured Data):不方便用数据库二维逻辑表来表达的数据称为非结构化数据,包括所有格式的文本、图片、XML、HTML、各类报表、图像和音频/视频信息等,以文本文件作为数据形式即为非结构化数据。
3、知识图谱(Knowledge Graph):是对人类知识的结构化表示形成的知识系统。
4、漏洞知识图谱(Vulnerability Knowledge Graph)是知识图谱在漏洞领域的实际应用,包括基于本体论构建的漏洞知识本体结构,以及通过自然语言处理等方式对多源异构的漏洞相关信息进行加工、处理、整合,转化成为结构化的漏洞领域知识库。
一个信息完整且准确的漏洞知识图谱,不仅有利于分析人员深入了解漏洞详细信息,从整体上把握漏洞的类型和发展趋势,还有助于用户对自身信息资产环境的自查,降低威胁风险。为了提高漏洞知识图谱的完整性和准确性,本申请实施例提供一种漏洞知识图谱处理方法,该方法可以由电子设备执行。
下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
请参照图1,为本申请实施例提供的漏洞知识图谱处理方法的应用场景示意图,该应用场景包括与漏洞相关的数据集101和电子设备102。
电子设备102可以通过终端或服务器实现,终端例如移动终端、固定终端或便携式终端,例如移动手机、多媒体计算机、多媒体平板、台式计算机、笔记本计算机、平板计算机等。服务器可以是独立的物理服务器或虚拟服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云存储、网络服务、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。
具体的,电子设备102获取到与漏洞相关的数据集101之后,对与漏洞相关的数据集101进行处理,生成漏洞知识图谱。其中,电子设备102如何生成漏洞知识图谱的内容将在下文进行详细介绍。
如上介绍了应用场景,下面以图1中的电子设备102执行漏洞知识图谱处理方法为例进行介绍。请参照图2,为本申请实施例提供的一种漏洞知识图谱处理方法的流程示意图。
S201、获取与漏洞相关的数据集。
在一种可能的实施例中,与漏洞相关的数据集为开源的结构化数据。开源的结构化数据是指网上公开的与漏洞有关的数据库,例如漏洞库(NVD、CNNVD、NVD)、通用平台枚举库(CPE)、通用脆弱性库(CWE)等。
考虑结构化数据的数据粒度较粗,分析人员难以了解漏洞发生的位置、漏洞产生的原因、漏洞造成的影响等细粒度信息,因此,在一种可能的实施例中,与漏洞相关的数据集包括结构化数据和非结构化数据。其中,本实施例中非结构化数据重点表示与漏洞有关的文本形式的数据,例如漏洞描述、漏洞报告等文本数据,因此后续说明中将以“非结构化文本数据”为例对本申请各实施例进行说明。而结构化数据的含义请参照前文论述的内容,此处不再赘述。
在本申请实施例中,结合粗粒度的开源的结构化数据和细粒度的非结构化文本数据进行数据提取,生成漏洞知识图谱的数据来源更加丰富,最终得到的漏洞知识图谱的漏洞信息也更加完整。
如上介绍了与漏洞相关的数据集的具体内容,下面介绍电子设备在获取与漏洞相关的数据集时,可以执行的几种方式。
第一种方式、其他收集设备收集与漏洞相关的数据集之后发送给电子设备。
具体的,其他收集设备收集各种结构化数据和非结构化文本数据,并发送给电子设备。
第二种方式、电子设备从网络资源中下载与漏洞相关的数据集。
具体的,电子设备从网络资源中下载各种结构化数据和非结构化文本数据。
第三种方式、其他收集设备收集与漏洞相关的一部分数据集发送给电子设备,电子设备再从网络资源中下载与漏洞相关的另一部分数据集。
具体的,其他收集设备收集非结构化文本数据,并发送给电子设备,电子设备从网络资源中下载结构化数据。
S202、对数据集进行关键数据抽取,将抽取的关键数据按预设格式存入图数据库中,生成漏洞知识图谱。
电子设备获取与漏洞相关的数据集之后,可以根据场景目标、数据存储粒度等实际业务需求,设计结构化、可适用的漏洞知识图谱本体结构,基于预先构建的漏洞知识图谱本体结构,对数据集进行关键数据抽取,将抽取的关键数据按预设格式存入图数据库中,生成漏洞知识图谱。
其中,图数据库是一种存储介质,是漏洞知识图谱的底层存储,例如Neo4j、Hugegraph、TigerGraph等图数据库,本申请实施例对此不做限定。漏洞知识图谱用于指示漏洞领域内多个第一类实体之间的关系和多个第一类实体的属性值。漏洞知识图谱中的节点表示第一类实体,包括漏洞实体、与漏洞相关的属性值,漏洞知识图谱中的边表示两个实体之间的关系。
漏洞知识图谱本体结构用于指示漏洞领域内各个第二类实体之间的关系和各个第二类实体的属性,第二类实体为包括第一类实体的特征的实体,换言之,第二类实体包括的若干属性与第一类实体的属性相同。并且,第二类实体为至少一个第一类实体所属的实体类型。例如,某个第二类实体为CVE,则对应的至少一个第一类实体包括漏洞1、漏洞2、漏洞3等,漏洞1、漏洞2、漏洞3的实体类型均为CVE类型。
在一种可能的实施例中,漏洞知识图谱本体结构以CVE实体为中心,用于指示其他第二类实体与CVE实体之间的关系。请参照图3,为本申请实施例提供的一种漏洞知识图谱本体结构的示意图。下面结合图3对漏洞知识图谱本体结构进行介绍。
其中,圆圈节点表示第二类实体,该漏洞知识图谱本体结构以CVE实体为核心向外扩展,包括粗粒度的实体和细粒度的实体。粗粒度的实体包括其他漏洞信息实体(如CNNVD、CNVD)、漏洞利用信息实体(如漏洞验证代码、漏洞利用代码等)、软件平台信息实体(如CPE)、漏洞缺陷信息实体(如CWE)、解决方案信息实体(如缓解措施)等。细粒度的实体包括细粒度的漏洞影响产品实体(如产品)、漏洞产生原因实体(如原因)、漏洞影响性实体(如影响)、利用漏洞用户类型实体(如用户类型)和用户利用漏洞方法实体(如利用漏洞方法)等。
图3中圆圈节点之间的边表示各个第二类实体之间的关系,例如CNNVD、CNVD、CWE与CVE的关系均为“有关”,EDB与CVE的关系为“POC”、缓解措施与CVE的关系为“解决方案”,漏洞代码与CVE的关系为“代码”,漏洞类型与CVE的关系为“类型”,影响与CVE的关系为“产生”,利用漏洞方法与CVE的关系为“利用方法”,用户类型与CVE的关系为“利用者类型”,原因与CVE的关系为“产生原因”,产品与CVE的关系为“影响产品”,CPE与CVE的关系为“影响资产”。
应当说明的是,各个第二类实体还可以具有相应的属性,例如CVE实体具有漏洞ID、漏洞名称、漏洞描述、漏洞发布时间、漏洞修改时间、漏洞风险等级等属性,产品实体具有产品唯一标识、产品厂商、产品名称、产品版本等属性,图3并未显示各个第二类实体的属性。
进一步,电子设备基于漏洞知识图谱本体结构对不同类型的数据集的提取方式不同,下面分别进行示例介绍。
第一种情况、针对数据集中的结构化数据。
电子设备根据结构化数据中数据文件的格式确定目标解析器,根据漏洞知识图谱本体结构,采用目标解析器从结构化数据中提取对应的字段和字段值,并将其按照<实体,实体类型,属性,属性值>和<实体,实体类型,关系,实体,实体类型>的形式存储到图数据库中。
具体的,电子设备首先分析数据集中数据文件的结构,确定数据文件的格式,例如JavaScript对象表示法(JavaScript Object Notation,JSON)、可扩展标记语言(Extensible Markup Language,XML)等数据格式。如果是JSON文件,将JSON文件中的关键字段(key)与漏洞知识图谱本体结构中的实体、属性进行对应,如果是XML文件,将XML文件中的元素标签与漏洞知识图谱本体结构中的实体、属性进行对应,进而制定数据提取映射表。然后电子设备根据该数据提取映射表,从JSON、XML等数据文件中提取对应的实体和属性值,以<实体,实体类型,属性,属性值>的形式表示。最后电子设备根据得到的实体和漏洞知识图谱本体结构,确定实体与实体之间的关系,将其以<实体,实体类型,关系,实体,实体类型>的形式表示。
请参照图4,为本申请实施例提供的JSON格式的CVE数据的示例图。可见,字段“data_type”对应CVE的实体类型,字段“CVE_data_meta/ID”对应CVE的漏洞ID,字段“description/value”对应CVE的漏洞描述,字段“publishedDate”对应CVE的漏洞发布时间,字段“lastModifiedData”对应CVE的漏洞修改时间,字段“problemtype/value”对应CWE的ID,字段“cpe_match/cpe23Uri”对应CPE的ID。
根据图4所示的CVE数据,得到数据提取映射表如表2所示。
表2
源文件字段 | 实体 | 实体属性 |
data_type | CVE | CVE实体类型 |
CVE_data_meta/ID | CVE | CVE漏洞ID |
description/value | CVE | CVE漏洞描述 |
publishedDate | CVE | CVE漏洞发布时间 |
lastModifiedData | CVE | CVE漏洞修改时间 |
problemtype/value | CWE | CWE ID |
cpe_match/cpe23Uri | CPE | CPE ID |
由表2可以得到3个实体(CVE、CWE、CPE)及其实体属性,例如:CVE实体实例<CVE-2022-29624,cve,发布时间,2022-06-02T14:15Z>。然后根据图3所示的漏洞知识图谱本体结构,存在关系<CVE,cve,影响资产,CPE,cpe>、<CVE,cve,有关,CWE,cwe>,可得关系实例<CVE-2022-29624,cve,影响资产,cpe:2.3:a:tpcms_project:tpcms:3.2:*:*:*:*:*:*:*,cpe>、<CVE-2022-29624,cve,有关,CWE-434,cwe>。最后将实体和关系实例存储到图数据库中。
第二种情况、针对数据集中的非结构化数据。
在一种可能的实施例中,电子设备可以通过实体识别模型对本申请实施例中重点关注的非结构化文本数据进行实体识别和抽取,将抽取的数据按照<实体,实体类型,属性,属性值>和<实体,实体类型,关系,实体,实体类型>的形式存储到图数据库中。具体步骤如S1.1-S1.3所述。
S1.1、将非结构化文本数据输入训练后的实体识别模型,获得非结构化文本数据中每个词的第一标签和第二标签。
训练后的实体识别模型是基于带有实体标注的文本数据集进行机器学习训练获得的,例如CRF、BiLSTM+CRF、BERT+CRF等实体识别模型,本申请实施例对此不做限制。带有实体标注的文本数据集可以是从网上下载的,也可以是人工标注的。例如收集非结构化文本数据进行数据清洗和分句处理,人工根据定义的实体类型采用BIO或BIOE模式对文本数据中的每个词进行实体标注,获得带有实体标注的文本数据集。
电子设备将非结构化文本数据输入训练后的实体识别模型,获得非结构化文本数据中每个词的第一标签和第二标签。第一标签用于指示词不是实体、或者词是实体片段的开始、或者词是实体片段的中间、或者词是实体片段的结束,其中,实体片段的开始表示该词是实体的词首,实体片段的中间表示该词是实体的中间字符,实体片段的结束表示词是实体的最后一个字符。例如,第一标签为O表示该词不是实体,第一标签为B表示该词是实体片段的开始,即实体的词首,第一标签为I表示该词是实体片段的中间,即实体的中间字符,第一标签为E表示该词是实体片段的结束,即实体的最后一个字符。第二标签用于指示词是实体时对应的实体类型,例如第二标签为VT表示该词是漏洞类型实体,第二标签为IM表示该词是影响类型实体。
请参照图5,为本申请实施例提供的一种数据标注示例图。其中O表示非实体,即不是实体,B-X表示X类型实体片段的开始,即X类型的实体的词首,I-X表示X类型实体片段的中间,即X类型的实体的中间字符。需要说明的是,尽管在图5的示例中没有体现第一标签为E的情况,但是在实际使用中,可以存在E-X,用以表示X类型实体片段的结束,即X类型的实体的结束字符。X表示实体类型(例如,VT表示漏洞类型实体,IM表示影响类型实体)。
例如,词“CVE-2022-29624”的第一标签和第二标签为“B-CVE”,表示“CVE-2022-29624”是CVE类型实体片段的开始。“An”、“in”、“the”、“to”、“via”的第一标签为“O”,表示这些词不是实体。“arbitrary”的第一标签和第二标签为“B-VT”,表示“arbitrary”是漏洞类型实体片段的开始,“file”、“upload”、“vulnerability”的第一标签和第二标签为“I-VT”,表示file”、“upload”、“vulnerability”是漏洞类型实体片段的中间。“execute”的第一标签和第二标签为“B-IM”,表示“execute”是影响类型实体片段的开始,“arbitrary”、“code”的第一标签和第二标签为“I-IM”,表示“arbitrary”、“code”是影响类型实体片段的中间。
S1.2、根据每个词的第一标签和第二标签,从非结构化文本数据中抽取多个第一词进行合并,获得多个第二词。
其中,第一词为第一标签是实体片段的开始或实体片段的中间或实体片段的结束、且第二标签相同的词,每个第二词对应一个第一类实体。例如,抽取B-X和I-X对应的词进行合并,获得多个第二词。
继续以图5为例,抽取B-CVE对应的词合并得到“CVE-2022-29624”,根据第二标签CVE确定“CVE-2022-29624”为CVE实体,抽取B-VT和I-VT对应的词合并得到“arbitraryfile upload vulnerability”,根据第二标签VT确定“arbitrary file uploadvulnerability”为漏洞类型实体,抽取B-IM和I-IM对应的词合并得到“execute arbitrarycode”,根据第二标签IM确定“execute arbitrary code”为影响类型实体。
S1.3、将多个第二词对应的多个第一类实体之间的关系、以及多个第一类实体的属性值,按预设格式存入图数据库中。
其中,多个第一类实体之间的关系是根据多个第二词和漏洞知识图谱本体结构确定的,多个第一类实体的属性值是根据多个第二词确定的。
继续以图5为例,电子设备合并B-X和I-X对应的词之后,获得3个实体,CVE实体“CVE-2022-29624”,漏洞类型实体“arbitrary file upload vulnerability”,影响实体“execute arbitrary code”,以<实体,实体类型,属性,属性值>格式表示,分别为<CVE-2022-29624,cve,漏洞ID,CVE-2022-29624>、<VT-001,vulnerability type,名称,arbitrary file upload vulnerability>、<IM-001,impact,名称,execute arbitrarycode>,其中VT-001为漏洞实体类型实例的唯一ID,IM-001为影响实体实例的唯一ID。根据漏洞知识图谱本体结构中存在的关系<CVE,cve,类型,漏洞类型,vulnerability type>、<CVE,cve,产生,影响,impact>,可得关系实例<CVE-2022-29624,cve,类型,VT-001,vulnerability type>、<CVE-2022-29624,cve,产生,IM-001,impact>。最后将实体实例和关系实例存入图数据库中。
在本申请实施例中,利用实体识别模型即自然语言处理技术,从非结构化文本数据中识别和抽取细粒度的漏洞信息,可以构建数据维度更丰富的漏洞知识图谱。
考虑到实体识别模型在提取非结构化文本数据中的受漏洞影响的软件名称、软件版本、漏洞利用者类型等信息时,可能无法判断漏洞的类型、影响性等信息,因此,在一种可能的实施例中,电子设备可以预先构建训练后的分类模型,通过训练后的分类模型对非结构化文本数据进行类别预测,将预测的类别结果按照<实体,实体类型,属性,属性值>和<实体,实体类型,关系,实体,实体类型>的形式存储到图数据库中。
训练后的分类模型是基于带有漏洞类型、影响性等标注的文本集进行机器学习训练获得的,例如朴素贝叶斯、支持向量机、极端梯度提升(eXtreme Gradient Boosting,XGBoost)等分类模型,本申请实施例不做具体限制。带有类别标注的文本集可以是从网上下载的,也可以是人工标注的。例如收集非结构化文本数据进行数据清洗,人工根据分类目标对文本集进行类别标注,获得带有类别标注的文本集。
具体的,电子设备将非结构化文本数据进行分句处理,获得多句文本数据,将每句文本数据输入训练后的分类模型,获得多句文本数据的多个类别结果,每个类别结果对应一个第一类实体,将多个类别结果对应的多个第一类实体之间的关系、以及多个类别结果对应的多个第一类实体的属性值,按预设格式存入图数据库中。其中,多个类别结果对应的多个第一类实体之间的关系是根据多个类别结果和漏洞知识图谱本体结构确定的,多个类别结果对应的多个第一类实体的属性值是根据多个类别结果确定的。
应当说明的是,电子设备可以根据需求定义预先构建多个训练后的分类模型,将每句文本数据分别输入这多个训练后的分类模型,获得每句文本数据的多个类别结果。其中,多个训练后的分类模型例如漏洞类型分类器、漏洞影响性分类器等,将某句文本数据输入漏洞类型分类器,获得用漏洞类型,例如跨站攻击,注入等,再将该句文本数据输入漏洞影响性分类器,获得漏洞造成的影响类型,如代码执行,数据泄露等。
例如,以CVE-2022-29624的描述文本为例,“An arbitrary file uploadvulnerability in the Add File function of TPCMS v3.2 allows attackers toexecute arbitrary code via a crafted PHP file”,将其输入到漏洞影响性分类器中,得到输出类型为“execute arbitrary code”,可得影响实体实例<IM-002,impact,名称,execute arbitrary code>,再根据本体结构可知CVE漏洞与漏洞影响性存在“产生”关系,因此有关系实例<CVE-2022-29624,cve,产生,IM-002,impact>。
在本申请实施例中,利用实体识别模型抽取非结构化文本数据中的受漏洞影响的软件名称、软件版本、漏洞利用者类型等信息,并利用分类模型抽取非结构化文本数据中的漏洞的类型、影响性等信息,充分地从非结构化文本数据中抽取各种漏洞信息。
考虑到结构化数据和非结构化文本数据的数据抽取任务中,抽取到的实体会存在相同含义不同表示、或同类含义不同数据格式的情况,为避免数据冗余、数据格式不统一,因此,在一种可能的实施例中,电子设备可以对抽取到的关键数据进行规范化处理,将抽取的关键数据转换标准形式或标准格式的数据后,再存入图数据库中。
具体的,将相同含义不同表示的实体统一为标准形式,将同类含义且不同数据格式的实体统一为标准格式。例如,“execute arbitrary code”和“arbitrary codeexecution”都是表示“执行任意代码”,将它们统一为标准形式“execute arbitrarycode”。或者例如,数据中存在“2022-06-02T14:15Z”、“2022-06-0214:15:00”、“2022/06/0214:15:00”等3个不同日期格式,按照标准格式“yyyy-mm-ddThh:mm:ssZ”,上述三个日期均可以表示成“2022-06-02T14:15:00Z”。
本申请实施例中,数据值标准化和数据格式统一不仅可以缓解漏洞知识图谱构建过程中的数据冗余问题,还有利于后续的图谱数据校验工作。
S203、根据预先构建的漏洞知识图谱本体结构,对漏洞知识图谱进行信息补全和/或信息修正,获得校验后的漏洞知识图谱。
为了保证漏洞知识图谱的完整性和准确性,电子设备可以根据预先构建的漏洞知识图谱本体结构,对生成的漏洞知识图谱进行校验,校验方式有多种,下面分别进行介绍。
情况一、对漏洞知识图谱进行信息补全。
电子设备根据漏洞知识图谱本体结构,可以确定漏洞的关键信息。对于生成的漏洞知识图谱中的每个实体,通过获取每个实体的关联信息,关联信息包括每个实体的属性值和关系,并将关联信息与漏洞知识图谱本体结构中对应的属性和关系进行对比,即可确定每个实体是否有缺失的属性值或关系。如果任一实体有缺失的属性值或关系,则将该任一实体缺失的属性值或关系确定为该漏洞知识图谱的缺失信息,对漏洞知识图谱进行信息补全,以完善图谱数据。
例如,图3中的漏洞知识图谱本体结构定义了一种关系<CVE漏洞,cve,产生原因,原因,cause>,然而对于CVE-2022-0839在生成的漏洞知识图谱中没有查询到这一关系数据,则需要对漏洞知识图谱进行信息补全,将关系信息<CVE-2022-0839,cve,产生原因,XML外部实体引用限制不当,cause>扩充到漏洞知识图谱中。
进一步,电子设备对漏洞知识图谱进行信息补全的方式有多种,下面分别进行介绍。
方式一、电子设备根据漏洞知识图谱本体结构,确定漏洞知识图谱中的缺失信息之后,可以显示缺失信息,缺失信息用于指示图谱构建人员对漏洞知识图谱进行信息补全。电子设备再根据图谱构建人员的输入信息,将该输入信息补充到漏洞知识图谱中。
方式二、电子设备根据漏洞知识图谱本体结构,确定漏洞知识图谱中的缺失信息之后,可以使用训练好的预测模型,对缺失信息进行预测,将预测结果补充到漏洞知识图谱中。
情况二、对漏洞知识图谱进行信息修正。
由于收集的多源数据由不同的组织进行维护,会存在相关信息的取值不一致的情况,因此需要修正不一致信息以保证图谱的准确性。
电子设备可以根据漏洞知识图谱本体结构,设定存在相关的属性和关系,根据相关的属性和关系对漏洞知识图谱中的漏洞实体进行逐一排查,对比属性值、关系数据是否一致,如果不一致,则将这不一致的属性值或关系确定为该漏洞知识图谱的错误信息,对漏洞知识图谱进行信息修正。
例如,漏洞知识图谱本体结构中定义了属性<CVE漏洞,cve,风险等级,string>,string为属性值的类型,表示字符串类型。而与CVE漏洞有关的CNNVD漏洞定义了属性<CNNVD漏洞,cnnvd,危害等级,string>,其中“风险等级”和“危害等级”均表示漏洞的威胁程度,取值为高危、中危、低危。若某一CVE漏洞的风险等级为低危,而与该CVE漏洞有关的CNNVD漏洞的危害等级为高危,低危与高危不相等,即相关属性的属性值存在不一致,则需要对漏洞知识图谱进行信息修正。
或者例如,漏洞知识图谱本体结构中存在关系<CVE漏洞,cve,影响资产,CPE,cpe>和<CVE漏洞,cve,影响产品,产品,product>,CPE实体的格式形如cpe:/<part>:<vendor>:<product>:<version>:<update>:<edition>:<language>,产品实体的属性包括产品厂商、产品名称和产品版本。通过对CPE格式进行解析,可以提取出厂商、产品、版本字段,这些字段可与产品实体的属性进行对应。若某一CVE漏洞影响资产的CPE实体为cpe:/a:apache:log4j:2.13.1:~,解析得到字段{厂商:apache,产品:log4j,版本:2.13.1},而该CVE影响产品的产品实体的属性为{产品厂商:apache,产品名称:log4j,产品版本:2.12.3},通过字段的逐一比对,发现影响产品的版本不一致,则需要对漏洞知识图谱进行信息修正。
进一步,电子设备对漏洞知识图谱进行信息修正的方式有多种,下面分别进行介绍。
方式1、电子设备根据漏洞知识图谱本体结构,确定漏洞知识图谱中的错误信息之后,可以显示该错误信息,该错误信息用于指示图谱构建人员对漏洞知识图谱进行信息修正。电子设备再根据图谱构建人员的输入信息,对漏洞知识图谱进行信息修正。
方式2、电子设备预先设置了各种数据来源的可信度排序,电子设备根据漏洞知识图谱本体结构,确定漏洞知识图谱中的错误信息之后,根据可信度更高的数据来源中的数据,对漏洞知识图谱进行信息修正。
情况三、对漏洞知识图谱进行信息补全和信息修正。
具体的,电子设备确定是否对漏洞知识图谱进行信息补全、以及如何进行信息补全的过程请参照前文情况1论述的内容,电子设备确定是否对漏洞知识图谱进行信息修正、以及如何进行信息修正的过程请参照前文情况2论述的内容,此处不再赘述。
在一种可能的实施例中,电子设备可以为各属性和关系设置优先级,按优先级顺序对漏洞知识图谱进行信息补全和/或信息修正。该优先级可以是安全专家根据经验设置的,例如漏洞类型的风险级别越高,其优先级越高。下面分情况进行介绍。
针对情况一、对漏洞知识图谱进行信息补全。
电子设备可以根据漏洞知识图谱本体结构,确定漏洞知识图谱中漏洞实体的缺失信息,若缺失信息为多个,按照预设的第一优先级,依次对漏洞知识图谱进行信息补全,获得校验后的漏洞知识图谱。
针对情况二、对漏洞知识图谱进行信息修正。
电子设备可以根据漏洞知识图谱本体结构,确定漏洞知识图谱中漏洞实体的错误信息,若错误信息为多个,按照预设的第二优先级,依次对漏洞知识图谱进行信息修正,获得校验后的漏洞知识图谱。
针对情况三、对漏洞知识图谱进行信息补全和信息修正。
电子设备可以根据漏洞知识图谱本体结构,确定漏洞知识图谱中漏洞实体的缺失信息和错误信息,若缺失信息为多个,按照预设的第一优先级,依次对漏洞知识图谱进行信息补全,若错误信息为多个,按照预设的第二优先级,依次对漏洞知识图谱进行信息修正,获得校验后的漏洞知识图谱。其中,第一优先级和第二优先级可以相同或者不同。
在本申请实施例中,按照预设的优先级对漏洞知识图谱进行信息补全和/或信息修正,保证漏洞知识图谱中更加重要的属性值或关系可以优先被补全或修正。
在一种可能的实施例中,电子设备在获得校验后的漏洞知识图谱之后,可以将漏洞之间的相似度写入校验后的漏洞知识图谱中,便于后续查找相似漏洞。具体步骤如S3.1-S3.3所述。
S3.1、确定第一漏洞与第二漏洞在多个预设维度下的多个相似度。
电子设备可以根据漏洞图谱本体结构和不同的分析角度,设计多个预设维度,例如:漏洞影响的资产/产品维度(<CVE漏洞,cve,影响资产,CPE,cpe>和<CVE漏洞,cve,影响产品,产品,product>)、漏洞类型维度(<CVE漏洞,cve,有关,CWE,cwe>和<CVE漏洞,cve,类型,漏洞类型,vulnerability type>)、漏洞利用者类型维度(<CVE漏洞,cve,利用者类型,用户类型,user type>)等。
其中,第一漏洞与第二漏洞为校验后的漏洞知识图谱中的任意两个漏洞实体。电子设备可以根据多种预设维度制定查询路径,在校验后的漏洞知识图谱中查询第一漏洞与第二漏洞在任一维度下的关联子图,并计算第一漏洞与第二漏洞的相似度。
电子设备可以根据两漏洞在任一维度下的共有节点数量,来确定两漏洞在任一维度下的相似度。下面介绍具体如何计算第一漏洞与第二漏洞在任一维度下的相似度。
具体的,电子设备可以确定在任一维度下与第一漏洞有关系的第一实体集合,以及在该任一维度下与第二漏洞有关系的第二实体集合,确定第一实体集合与第二实体集合的交集中的实体数量,以及第一实体集合与第二实体集合的并集中的实体数量,根据交集中的实体数量与并集中的实体数量的比值,确定第一漏洞与第二漏洞在该任一维度下的相似度。
相似度越高表示第一漏洞与第二漏洞在该任一维度上的共有节点数占比越多。相似度的计算公式为:
其中,V1表示第一漏洞,V2表示第二漏洞,D表示任一维度,sub_similar_score(V1,D,V2)表示第一漏洞V1和第二漏洞V2在该任一维度D下的相似度。表示在任一维度D下与第一漏洞V1有关系的第一实体集合,表示在任一维度D下与第二漏洞V2有关系的第二实体集合,∪表示并集,∩表示交集,表示交集中的实体数量,表示并集中的实体数量。
同理可得,第一漏洞V1和第二漏洞V2在“产生影响”这一分析维度下的共有节点数为0,其相似度也为0。
S3.2、按照多个预设维度的权重对多个相似度进行加权求和,获得第一漏洞与第二漏洞的总相似度。
电子设备获得第一漏洞与第二漏洞在多个预设维度下的多个相似度,例如为其中,表示第一漏洞V1与第二漏洞V2在Dn维度下的相似度。电子设备可以设置多个预设维度的权重,例如为[ω1,ω2……ωn],其中,ωn表示Dn维度的权重。多个预设维度的权重可以相同,例如均为1,表示多个维度在判断漏洞相似性上同等重要。多个预设维度的权重也可以不同,例如,“漏洞影响的产品”比“漏洞的利用者类型”在判断漏洞相似性上更重要,可以赋予“漏洞影响”这一维度更高的权重。
电子设备按照多个预设维度的权重对多个相似度进行加权求和,加权求和公式如下:
S3.3、将总相似度写入校验后的漏洞知识图谱中,获得更新后的漏洞知识图谱。
电子设备在获得第一漏洞与第二漏洞的总相似度之后,将总相似度写入校验后的漏洞知识图谱中,这样更新后的漏洞知识图谱包括各个漏洞对实体之间的总相似度。
例如在第一漏洞V1与第二漏洞V2对应的节点之间建立一条边,边的属性为总相似度。请参照图7,为本申请实施例提供的两漏洞之间的总相似度的示意图。可见,两漏洞分别是CVE-2021-44228和CVE-2021-4104,它们之间的总相似度为0.96。
在本申请实施例中,计算任意漏洞对例如第一漏洞和第二漏洞在多个预设维度下的相似度,并加权求和得到漏洞对的总相似度,并将漏洞对的总相似度扩充到漏洞知识图谱中,使漏洞知识图谱中的漏洞信息更加丰富。
在一种可能的实施例中,电子设备可以根据更新后的漏洞知识图谱,进行相似漏洞推荐,在一定程度上帮助分析人员快速获得相似漏洞进行协同分析,提高分析效率。
具体的,电子设备接收到查询目标漏洞的相似漏洞的请求,可以根据更新后的漏洞知识图谱,确定与目标漏洞的总相似度大于预设相似度的多个相似漏洞,按照与目标漏洞的总相似度从高到低的顺序,显示多个相似漏洞。
例如,分析人员向电子设备输入目标CVE漏洞的漏洞编号,漏洞编号是官方给定的,如CVE-2022-0168、CNNVD-2022-0168等。电子设备响应于该输入操作,通过查询校验后的漏洞知识图谱中的<CVE漏洞,相似,CVE漏洞>这一关系,可得到与目标CVE漏洞相似的CVE漏洞,再根据预设阈值对总相似度进行过滤和排序,显示与目标CVE漏洞相似的TOP-N个CVE漏洞。
在本申请实施例中,根据更新后的漏洞知识图谱中的各漏洞对之间的总相似度,可以直接得到目标漏洞的相似漏洞,根据预设相似度进行相似漏洞的过滤和排序,向分析人员显示目标漏洞的TOP-N个相似漏洞,可帮助分析人员快速获得相似漏洞进行协同分析,提高分析效率。
在一种可能的实施例中,分析人员可以在漏洞知识图谱中通过组合查询多种属性和关系构建查询语句以获取感兴趣的漏洞信息。电子设备获得校验后的漏洞知识图谱之后,可以接收查询请求,根据校验后的漏洞知识图谱,确定输入的属性信息和/或关系信息对应的漏洞信息,并显示该漏洞信息。
例如,电子设备根据输入的属性“CVE漏洞的风险等级=高危”和关系“影响产品”,查询到受高危CVE漏洞影响的产品。或者例如,电子设备根据关系“影响产品”和“产生原因”可以查询受漏洞影响的产品及产生原因等。
在本申请实施例中,分析人员可以根据实际业务场景,组合多种属性和关系设计相应的查询模式对漏洞进行深入的关联查询和分析,提高了分析效率,扩充了分析角度。
综上所述,考虑到漏洞相关数据存储较为分散,关联性不强,不利于分析人员快速掌握漏洞的全貌和深层关联情况,本申请实施例提供的方法使用知识图谱规范化、统一存储漏洞相关数据。考虑到现有漏洞知识图谱的数据粒度较粗,不利于分析人员了解漏洞的多维信息,本申请实施例从结构化数据和非结构化文本数据中提取漏洞的关键信息填充漏洞知识图谱。考虑到多源数据融合存在字段和取值的差异,直接构建漏洞图谱会给分析人员带来错误判断,本申请实施例对漏洞知识图谱进行完整性和一致性校验,提高了漏洞知识图谱的完整性和准确性,将漏洞之间的相似度写入漏洞知识图谱,分析人员可以在漏洞知识图谱上基于多种分析维度对漏洞进行深入的关联挖掘,分析漏洞全貌,提高理解深度和分析效率。
基于同一发明构思,本申请还提供一种漏洞知识图谱处理装置,可以具体设置于前文论述的电子设备中,请参照图8,该装置包括:
获取模块801,用于获取与漏洞有关的数据集;
生成模块802,用于对数据集进行关键数据抽取,将抽取的关键数据按预设格式存入图数据库中,生成漏洞知识图谱;其中,漏洞知识图谱用于指示漏洞领域内各个第一类实体之间的关系和各个第一类实体的属性值;
校验模块803,用于根据预先构建的漏洞知识图谱本体结构,对漏洞知识图谱进行信息补全和/或信息修正,获得校验后的漏洞知识图谱;其中,漏洞知识图谱本体结构用于指示漏洞领域内各个第二类实体之间的关系和各个第二类实体的属性,第二类实体为包括第一类实体的特征的实体。
在一种可能的实施例中,数据集包括结构化数据和非结构化文本数据。
在一种可能的实施例中,生成模块802具体用于:
将非结构化文本数据输入训练后的实体识别模型,获得非结构化文本数据中每个词的第一标签和第二标签;其中,第一标签用于指示词不是实体、或者词是实体片段的开始、或者词是实体片段的中间、或者词是实体片段的结束,第二标签用于指示词是实体时对应的实体类型;
根据每个词的第一标签和第二标签,从非结构化文本数据中抽取多个第一词进行合并,获得多个第二词;其中,第一词为第一标签是实体片段的开始或实体片段的中间或实体片段的结束、且第二标签相同的词,每个第二词对应一个第一类实体;
将多个第二词对应的多个第一类实体之间的关系、以及多个第一类实体的属性值,按预设格式存入图数据库中;其中,多个第一类实体之间的关系是根据漏洞知识图谱本体结构确定的,多个第一类实体的属性值是根据多个第二词确定的。
在一种可能的实施例中,校验模块803具体用于:
根据漏洞知识图谱本体结构,确定漏洞知识图谱中漏洞本体的缺失信息和/或错误信息;
若缺失信息为多个,按照预设的第一优先级,依次对漏洞知识图谱进行信息补全,和/或,若错误信息为多个,按照预设的第二优先级,依次对漏洞知识图谱进行信息修正;
获得校验后的漏洞知识图谱。
在一种可能的实施例中,该装置还包括写入模块804,写入模块804用于:
在获得校验后的漏洞知识图谱之后,
确定第一漏洞与第二漏洞在多个预设维度下的多个相似度;其中,第一漏洞与第二漏洞为校验后的漏洞知识图谱中的任意两个漏洞实体;
按照多个预设维度的权重对多个相似度进行加权求和,获得第一漏洞与第二漏洞的总相似度;
将总相似度写入校验后的漏洞知识图谱中,获得更新后的漏洞知识图谱。
在一种可能的实施例中,写入模块804具体用于:
确定在任一维度下与第一漏洞有关系的第一实体集合,以及在任一维度下与第二漏洞有关系的第二实体集合;
确定第一实体集合与第二实体集合的交集中的实体数量,以及第一实体集合与第二实体集合的并集中的实体数量;
根据交集中的实体数量与并集中的实体数量的比值,确定第一漏洞与第二漏洞在任一维度下的相似度。
在一种可能的实施例中,该装置还包括查询模块805,查询模块805用于:
在将总相似度写入校验后的漏洞知识图谱中,获得更新后的漏洞知识图谱之后,接收到查询目标漏洞的相似漏洞的请求;
根据更新后的漏洞知识图谱,确定与目标漏洞的总相似度大于预设相似度的多个相似漏洞;
按照与目标漏洞的总相似度从高到低的顺序,显示多个相似漏洞。
作为一种实施例,图8论述的装置可以用于执行图2所示的实施例中所述的漏洞知识图谱处理方法,因此,对于该装置的各功能模块所能够实现的功能等可参考图2所示的实施例的描述,此处不再赘述。
应当注意,尽管在上文详细描述中提及了装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
基于同一发明构思,本申请实施例中还提供了一种电子设备,请参照图9,该设备包括处理器901和存储器902。
存储器902,用于存储程序指令;
处理器901,用于调用存储器902中存储的程序指令,按照获得的程序指令执行前文所述的漏洞知识图谱处理方法。处理器901还可以实现图8所示的装置中各个模块的功能。
本申请实施例中不限定处理器901与存储器902之间的具体连接介质,图9中是以处理器901和存储器902之间通过总线900连接为例。总线900在图9中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线900可以分为地址总线、数据总线、控制总线等,为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器901也可以称为控制器,对于名称不做限制。
其中,处理器901是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器902内的指令以及调用存储在存储器902内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
在一种可能的设计中,处理器901可包括一个或多个处理单元,处理器901可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器901中。在一些实施例中,处理器901和存储器902可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器901可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的漏洞知识图谱处理方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器902作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器902可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等。存储器902是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器902还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过对处理器901进行设计编程,可以将前述实施例中介绍的车辆固件升级方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前文论述的漏洞知识图谱处理方法的步骤。如何对处理器901进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
基于同一发明构思,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被计算机执行时,使计算机执行如前文论述任一的漏洞知识图谱处理方法。由于上述计算机可读存储介质解决问题的原理与漏洞知识图谱处理方法相似,因此上述计算机可读存储介质的实施可以参见方法的实施,重复之处不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种漏洞知识图谱处理方法,其特征在于,包括:
获取与漏洞有关的数据集;
对所述数据集进行关键数据抽取,将抽取的关键数据按预设格式存入图数据库中,生成漏洞知识图谱;其中,所述漏洞知识图谱用于指示漏洞领域内各个第一类实体之间的关系和各个第一类实体的属性值;
根据预先构建的漏洞知识图谱本体结构,对所述漏洞知识图谱进行信息补全和/或信息修正,获得校验后的漏洞知识图谱;其中,所述漏洞知识图谱本体结构用于指示所述漏洞领域内各个第二类实体之间的关系和各个第二类实体的属性,所述第二类实体为包括所述第一类实体的特征的实体。
2.如权利要求1所述的方法,其特征在于,所述数据集包括结构化数据和非结构化数据。
3.如权利要求2所述的方法,其特征在于,对所述数据集进行关键数据抽取,将抽取的关键数据按预设格式存入图数据库中,包括:
将所述非结构化数据输入训练后的实体识别模型,获得所述非结构化数据中每个词的第一标签和第二标签;其中,所述第一标签用于指示每个词不是实体类型、或者词是实体片段的开始、或者词是实体片段的中间、或者词是实体片段的结束,所述第二标签用于指示词是实体时对应的实体类型;
根据每个词的第一标签和第二标签,从所述非结构化数据中抽取多个第一词进行合并,获得多个第二词;其中,所述第一词为第一标签是实体片段的开始或实体片段的中间或实体片段的结束、且第二标签相同的词,每个第二词对应一个第一类实体;
将所述多个第二词对应的多个第一类实体之间的关系、以及所述多个第二词对应的多个第一类实体的属性值,按预设格式存入图数据库中;其中,所述多个第二词对应的多个第一类实体之间的关系是根据所述漏洞知识图谱本体结构确定的,所述多个第二词对应的多个第一类实体的属性值是根据所述多个第二词确定的。
4.如权利要求1-3任一项所述的方法,其特征在于,根据预先构建的漏洞知识图谱本体结构,对所述漏洞知识图谱进行信息补全和/或信息修正,获得校验后的漏洞知识图谱,包括:
根据所述漏洞知识图谱本体结构,确定所述漏洞知识图谱中的漏洞实体的缺失信息和/或错误信息;
若所述缺失信息为多个,按照预设的第一优先级,依次对所述漏洞知识图谱进行信息补全,和/或,若所述错误信息为多个,按照预设的第二优先级,依次对所述漏洞知识图谱进行信息修正;
获得所述校验后的漏洞知识图谱。
5.如权利要求1-3任一项所述的方法,其特征在于,在获得校验后的漏洞知识图谱之后,所述方法还包括:
确定第一漏洞与第二漏洞在多个预设维度下的多个相似度;其中,所述第一漏洞与所述第二漏洞为所述校验后的漏洞知识图谱中的任意两个漏洞实体;
按照所述多个预设维度的权重对所述多个相似度进行加权求和,获得所述第一漏洞与所述第二漏洞的总相似度;
将所述总相似度写入所述校验后的漏洞知识图谱中,获得更新后的漏洞知识图谱。
6.如权利要求5所述的方法,其特征在于,确定第一漏洞与第二漏洞在多个预设维度下的多个相似度,包括:
确定在任一维度下与所述第一漏洞有
关系的第一实体集合,以及在所述任一维度下与所述第二漏洞有关系的第二实体集合;
确定所述第一实体集合与所述第二实体集合的交集中的实体数量,以及所述第一实体集合与所述第二实体集合的并集中的实体数量;
根据所述交集中的实体数量与所述并集中的实体数量的比值,确定所述第一漏洞与所述第二漏洞在所述任一维度下的相似度。
7.如权利要求5所述的方法,其特征在于,在将所述总相似度写入所述校验后的漏洞知识图谱中,获得更新后的漏洞知识图谱之后,所述方法还包括:
接收到查询目标漏洞的相似漏洞的请求;
根据所述更新后的漏洞知识图谱,确定与所述目标漏洞的总相似度大于预设相似度的多个相似漏洞;
按照与所述目标漏洞的总相似度从高到低的顺序,显示所述多个相似漏洞。
8.一种漏洞知识图谱处理装置,其特征在于,包括:
获取模块,用于获取与漏洞有关的数据集;
生成模块,用于对所述数据集进行关键数据抽取,将抽取的关键数据按预设格式存入图数据库中,生成漏洞知识图谱;其中,所述漏洞知识图谱用于指示漏洞领域内各个第一类实体之间的关系和各个第一类实体的属性值;
校验模块,用于根据预先构建的漏洞知识图谱本体结构,对所述漏洞知识图谱进行信息补全和/或信息修正,获得校验后的漏洞知识图谱;其中,所述漏洞知识图谱本体结构用于指示所述漏洞领域内各个第二类实体之间的关系和各个第二类实体的属性,所述第二类实体为包括所述第一类实体的特征的实体。
9.一种电子设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211599686.1A CN115827895A (zh) | 2022-12-12 | 2022-12-12 | 一种漏洞知识图谱处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211599686.1A CN115827895A (zh) | 2022-12-12 | 2022-12-12 | 一种漏洞知识图谱处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115827895A true CN115827895A (zh) | 2023-03-21 |
Family
ID=85546982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211599686.1A Pending CN115827895A (zh) | 2022-12-12 | 2022-12-12 | 一种漏洞知识图谱处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827895A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579765A (zh) * | 2022-03-07 | 2022-06-03 | 四川大学 | 一种基于开源情报分析的网络靶场武器库构建方法 |
CN116468960A (zh) * | 2023-06-19 | 2023-07-21 | 南京朵盛信息技术有限公司 | 一种视频图像分析检索方法及系统 |
CN116467722A (zh) * | 2023-06-20 | 2023-07-21 | 四维创智(北京)科技发展有限公司 | 安全漏洞描述的生成方法、装置、介质和电子设备 |
CN116484025A (zh) * | 2023-06-15 | 2023-07-25 | 北京电子科技学院 | 漏洞知识图谱构建方法、评估方法、设备及存储介质 |
CN116775910A (zh) * | 2023-08-18 | 2023-09-19 | 北京源堡科技有限公司 | 基于情报收集的自动化漏洞复现知识库构建方法及介质 |
-
2022
- 2022-12-12 CN CN202211599686.1A patent/CN115827895A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579765A (zh) * | 2022-03-07 | 2022-06-03 | 四川大学 | 一种基于开源情报分析的网络靶场武器库构建方法 |
CN116484025A (zh) * | 2023-06-15 | 2023-07-25 | 北京电子科技学院 | 漏洞知识图谱构建方法、评估方法、设备及存储介质 |
CN116468960A (zh) * | 2023-06-19 | 2023-07-21 | 南京朵盛信息技术有限公司 | 一种视频图像分析检索方法及系统 |
CN116468960B (zh) * | 2023-06-19 | 2023-08-25 | 南京朵盛信息技术有限公司 | 一种视频图像分析检索方法及系统 |
CN116467722A (zh) * | 2023-06-20 | 2023-07-21 | 四维创智(北京)科技发展有限公司 | 安全漏洞描述的生成方法、装置、介质和电子设备 |
CN116467722B (zh) * | 2023-06-20 | 2023-09-01 | 四维创智(北京)科技发展有限公司 | 安全漏洞描述的生成方法、装置、介质和电子设备 |
CN116775910A (zh) * | 2023-08-18 | 2023-09-19 | 北京源堡科技有限公司 | 基于情报收集的自动化漏洞复现知识库构建方法及介质 |
CN116775910B (zh) * | 2023-08-18 | 2023-11-24 | 北京源堡科技有限公司 | 基于情报收集的自动化漏洞复现知识库构建方法及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2940760C (en) | Intelligent data munging | |
CN115827895A (zh) | 一种漏洞知识图谱处理方法、装置、设备及介质 | |
CN111061833B (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
EP3584728B1 (en) | Method and device for analyzing open-source license | |
US11599539B2 (en) | Column lineage and metadata propagation | |
CN110674360B (zh) | 一种用于数据的溯源方法和系统 | |
CN111078776A (zh) | 数据表的标准化方法、装置、设备及存储介质 | |
US20210241273A1 (en) | Smart contract platform | |
US10346294B2 (en) | Comparing software projects having been analyzed using different criteria | |
CN111159016A (zh) | 一种规范检测方法及装置 | |
US8650180B2 (en) | Efficient optimization over uncertain data | |
CN110895587B (zh) | 用于确定目标用户的方法和装置 | |
CN113094625B (zh) | 页面元素定位方法、装置、电子设备及存储介质 | |
Yu et al. | Localizing function errors in mobile apps with user reviews | |
US11605012B2 (en) | Framework for processing machine learning model metrics | |
US11409959B2 (en) | Representation learning for tax rule bootstrapping | |
CN113760891A (zh) | 一种数据表的生成方法、装置、设备和存储介质 | |
CN111859862A (zh) | 文本的数据标注方法和装置、存储介质及电子装置 | |
CN116484025A (zh) | 漏洞知识图谱构建方法、评估方法、设备及存储介质 | |
CN109446054B (zh) | 基于大数据的越权操作请求的处理方法及终端设备 | |
CN115795059A (zh) | 一种面向敏捷开发的威胁建模方法及系统 | |
CN109597873B (zh) | 语料数据的处理方法、装置、计算机可读介质及电子设备 | |
CN113869904A (zh) | 可疑数据识别方法、装置、电子设备、介质和计算机程序 | |
WO2024021874A1 (zh) | 漏洞分析方法、装置、设备及计算机可读存储介质 | |
US20230132618A1 (en) | Method for denoising click data, electronic device and storage medium |
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 |