一种基于知识图谱的网络安全动态预警方法转让专利

申请号 : CN201710234882.1

文献号 : CN106897273B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈星张祖文叶靓

申请人 : 福州大学

摘要 :

本发明涉及一种基于知识图谱的网络安全动态预警方法,针对复杂异构环境的网络安全数据和领域知识进行知识图谱的构建后,使用面向网络安全领域的图查询方法进行目标信息的抽取,通过对安全数据的整理和分析,精确的描述最终得到目标信息。本发明能够降低网络安全数据处理的难度和复杂度。

权利要求 :

1.一种基于知识图谱的网络安全动态预警方法,其特征在于:包括以下步骤:

步骤S1:获取网络安全知识,所述网络安全知识包括网络安全攻击数据和网络安全领域知识;所述网络安全领域知识包括三个信息库,分别是攻击源IP对应的位置信息数据、攻击目标IP对应的企业行业数据、攻击类型信息数据;所述三个信息库以及网络安全攻击数据信息库均为通过领域知识转化的数据表;

步骤S2:建立面向网络安全大数据的知识图谱:根据数据间的关联性,建立相关联的知识图谱来表示知识库,通过提取信息库中的实体名称和关系名称将关系型数据库转化为三元组形式结构化知识的框架,再通过构建图数据库的方式将三元组结构化数据转化为知识图谱,最终形成面向网络安全领域的知识库;

步骤S3:网络安全领域的查询和信息获取:在步骤S2建立的知识图谱中,通过文件获取用户需要查询的内容,得到包括关键词、关系、疑问词在内的信息,将这些信息转化为图中的结点和边,找到问题所包含的同构子图,通过子图匹配的方法不断寻找同构子图得到最佳匹配,最终获得目标查询答案;所述步骤S2具体包括以下步骤:步骤S21:将关系型数据库转化为三元组形式:{实体1,关系,实体2};其中,同一关系型数据库转换的三元组必须有相同的id值,即属于相同关系型数据库的三元组或嵌套结构中处于同一层的三元组的id值相同;嵌套的键-值对的集合需进行递归转换,为了表示集合的嵌套关系,需增加一个三元组关系,它的value值是子集合的id值,其中将任意嵌套集合转换为三元组采用如下转换公式:其中,S表示嵌套的键-值对集合,p代表其中的一个键值对,函数下标表示同一级的三元组有相同的id值i,函数φi用来转换单个键值对,ψi用来转换键-值对集合,在函数φi中定义了变量j,表示嵌套子集的id值,通过上面两个函数的递归调用可以将任意嵌套的键值对结构转换为三元组;

步骤S22:得到三元组形式的RDF数据,每个数据列为{实体1,关系,实体2};其中提取实体为V,提取关系为E,构建图模型;一个完整的图集合表示为一个二元组:G(V,E);

其中:实体V是顶点集合;E是图边的集合,且满足E=V×V;

步骤S23:将步骤S1中获得的存储在关系型数据库mysql中的四个信息库中的知识存储到图数据库neo4j中;所述四个信息库为网络安全攻击数据信息库、攻击源IP对应的位置信息数据信息库、攻击目标IP对应的企业行业数据信息库以及攻击类型信息数据信息库;

步骤S24:步骤S23中的四个信息库为通过领域知识转化的数据表,对存储后的4个数据表建立索引,接着创建边关系,最终构建出一副实体与关系的图数据库;

步骤S25:在构建好的图数据库中,拥有多种类型的结点和关系,通过对这些实体结点和关系的划分,得到一张实体关系值表,作用于图匹配查询的实体关系的获取。

2.根据权利要求1所述的一种基于知识图谱的网络安全动态预警方法,其特征在于:步骤S1中,所述攻击源IP对应的位置信息数据是通过企业数据建立的“IP-位置信息”关联图,其中IP信息是根据基于特征选择的入侵检测算法检测到的攻击数据集中“address”类中的IP子类数据中的SIP属性,而位置信息则是这些IP对应的城市地区名称,在此之上,添加安全企业旗下所登记的部分攻击目标来源频繁的地区和地点作为补充;

所述攻击目标IP对应的企业行业数据是通过企业数据建立的“IP-公司信息-行业信息”关联图,其中IP信息是根据基于特征选择的入侵检测算法检测到的攻击数据集中“address”类中的IP子类数据中的OIP属性,公司信息则是这些IP对应的公司名称,行业名称是根据公司名称对应的行业来进行的行业划分,同时添加安全企业旗下所登记的公司以及他们相应的IP作为补充;

所述攻击类型信息数据是通过基于特征选择的入侵检测算法检测到的攻击数据集。

3.根据权利要求1所述的一种基于知识图谱的网络安全动态预警方法,其特征在于:所述步骤S3具体包括以下步骤:步骤S31:对关键词进行提取,分为实体名和关联词名,确定实体名和关联词名的类目,通过查询输入到系统中的key-value值,查询最终的key值;

步骤S32:提取出的实体构成集合V,关联词构成集合E,将各集合中的点和边匹配于知识图谱构建的图数据库中,关联并标记出来,判断所标记的结点和边能否构成连通子图;将提取出的实体和关联词一一匹配于图数据库中的实体和边,使用深度优先搜索算法遍历这些实体和边,若能遍历成功,则确定所标记的结点和边能构成连通子图;

步骤S33:在图数据库中标记出连通子图,取出疑问词所对应结点的值即为最终答案。

说明书 :

一种基于知识图谱的网络安全动态预警方法

技术领域

[0001] 本发明涉及网络技术领域,特别是一种基于知识图谱的网络安全动态预警方法。

背景技术

[0002] 随着网络技术和规模的不断发展,网络信息安全成为世界各国共同关注的焦点。主要表现有:一方面,针对信息泄露、篡改,系统入侵等网络违法犯罪活动缺乏高技术监管手段和设备,不适应网络攻防技术的发展;另一方面,企业普遍存在技术和管理水平有限、网络安全防护能力薄弱、人员和资金投入不足等问题,其网站服务器成为遭受攻击的“重灾区”。因此,能否主动、有效地应对各种安全事件,已经成为网络安全监管的关键任务之一。
[0003] 因此我们提出建立了一个分析平台架构,该平台基础架构需要提供较高的部署灵活性,支持对不断演变的安全威胁进行持续分析,可随新业务需求的增长而不断扩展。现有的主要的功能是对复杂异构环境下采集的网络安全数据进行知识图谱的构建后,使用面向网络安全领域的图查询方法进行目标信息的抽取,通过对安全数据的整理和分析,精确的描述最终得到目标信息。

发明内容

[0004] 有鉴于此,本发明的目的是提出一种基于知识图谱的网络安全动态预警方法,能够降低网络安全数据处理的难度和复杂度。
[0005] 本发明采用以下方案实现:一种基于知识图谱的网络安全动态预警方法,包括以下步骤:
[0006] 步骤S1:获取网络安全知识,所述网络安全知识包括网络安全攻击数据和网络安全领域知识;所述网络安全领域知识包括三个信息库,分别是攻击源IP对应的位置信息数据、攻击目标IP对应的企业行业数据、攻击类型信息数据;所述三个信息库以及网络安全攻击数据信息库均为通过领域知识转化的数据表;
[0007] 步骤S2:建立面向网络安全大数据的知识图谱:根据数据间的关联性,建立相关联的知识图谱来表示知识库,通过提取信息库中的实体名称和关系名称将关系型数据库转化为三元组形式结构化知识的框架,再通过构建图数据库的方式将三元组结构化数据转化为知识图谱,最终形成面向网络安全领域的知识库;
[0008] 步骤S3:网络安全领域的查询和信息获取:在步骤S2建立的知识图谱中,通过文件获取用户需要查询的内容,得到包括关键词、关系、疑问词在内的信息,将这些信息转化为图中的结点和边,找到问题所包含的同构子图,通过子图匹配的方法不断寻找同构子图得到最佳匹配,最终获得目标查询答案。
[0009] 进一步的,步骤S1中,所述攻击源IP对应的位置信息数据是通过企业数据建立的“IP-位置信息”关联图,其中IP信息是根据基于特征选择的入侵检测算法检测到的攻击数据集中“address”类中的IP子类数据中SIP属性,而位置信息则是这些IP对应的城市地区名称,在此之上,添加安全企业旗下所登记的部分攻击目标来源频繁的地区和地点座位补充;
[0010] 所述攻击目标IP对应的企业行业数据是通过企业数据建立的“IP-公司信息-行业信息”关联图,其中IP信息是根据基于特征选择的入侵检测算法检测到的攻击数据集中“address”类中的IP子类数据中OIP属性,公司信息则是这些IP对应的公司名称,行业名称是根据公司名称对应的行业来进行的行业划分,同时添加安全企业旗下所登记的公司以及他们相应的IP作为补充;
[0011] 所述攻击类型信息数据是通过基于特征选择的入侵检测算法检测到的攻击数据集。
[0012] 进一步的,所述步骤S2具体包括以下步骤:
[0013] 步骤S21:将关系型数据库转化为三元组形式:{实体1,关系,实体2};其中,同一关系型数据库转换的三元组必须有相同的id值,即属于相同关系型数据库的三元组或嵌套结构中处于同一层的三元组的id值相同;嵌套的键-值对的集合需进行递归转换,为了表示集合的嵌套关系,需增加一个三元组关系,它的value值是子集合的id值,其中将任意嵌套集合转换为三元组采用如下转换公式:
[0014]
[0015]
[0016] 其中,S表示嵌套的键-值对集合,p代表其中的一个键值对,函数下标表示同一级的三元组有相同的id值i,函数φi用来转换单个键值对,ψi用来转换键-值对集合,在函数φi中定义了变量j,表示嵌套子集的id值,通过上面两个函数的递归调用可以将任意嵌套的键值对结构转换为三元组;
[0017] 步骤S22:得到三元组形式的RDF数据,每个数据列为{实体1,关系,实体2};其中提取实体为V,提取关系为E,构建图模型;一个完整的图集合表示为一个二元组:
[0018] G(V,E)
[0019] 其中:实体V是顶点集合;E是图边的集合,且满足E=V×V;
[0020] 步骤S23:将步骤S1中获得的存储在关系型数据库mysql中的四个信息库中的知识存储到图数据库neo4j中;所述四个信息库为网络安全攻击数据、攻击源IP对应的位置信息数据、攻击目标IP对应的企业行业数据以及攻击类型信息数据;
[0021] 步骤S24:步骤S23中的四个信息库为通过领域知识转化的数据表,对存储后的4个数据表建立索引,接着创建边关系,最终构建出一副实体与关系的图数据库;
[0022] 步骤S25:在构建好的图知识库中,拥有多种类型的结点和关系,通过对这些实体结点和关系的划分,得到一张实体关系值表,作用于图匹配查询的实体关系的获取。
[0023] 进一步的,所述步骤S3具体包括以下步骤:
[0024] 步骤S31:对关键词进行提取,分为实体名和关联词名,确定实体名和关联词名的类目,通过查询输入到系统中的key-value值,查询最终的key值;
[0025] 步骤S32:提取出的实体构成集合V,关联词构成集合E,将各集合中的点和边匹配于知识图谱构建的图数据库中,关联并标记出来,判断所标记的结点和边能否构成连通子图;将提取出的实体和关联词一一匹配于图数据库中的实体和边,使用深度优先搜索算法遍历这些实体和边,若能遍历成功,则确定所标记的结点和边能构成连通子图;
[0026] 步骤S33:在图数据库中标记出连通子图,取出疑问词所对应结点的值即为最终答案。
[0027] 与现有技术相比,本发明有以下有益效果:本发明支持对不断演变的安全威胁进行持续分析,可随新业务需求的增长而不断扩展。本发明针对复杂异构环境的网络安全数据和领域知识进行知识图谱的构建后,使用面向网络安全领域的图查询方法进行目标信息的抽取,通过对安全数据的整理和分析,精确的描述最终得到目标信息。通过分析平台本发明可以清楚的找出需要得到的信息,将复杂的网络安全数据统一管理。因此,本发明能够降低网络安全数据处理的难度和复杂度。

附图说明

[0028] 图1为本发明实施例的方法概要图。
[0029] 图2为本发明实施例中网络安全信息库的模型。
[0030] 图3为本发明实施例中的知识库的一个子部分。
[0031] 图4为本发明实施例中的安全数据知识图谱示意图。
[0032] 图5为本发明实施例中图与子图的一个例子。
[0033] 图6为本发明实施例中查询的具体表示形式和子图匹配的伪代码表示查询的过程示意图。
[0034] 图7为本发明实施例中的信息查询方法示意图。
[0035] 图8为本发明实施例中子徒匹配算法查询信息例子示意图。

具体实施方式

[0036] 下面结合附图及实施例对本发明做进一步说明。
[0037] 本实施例提出的方法由三个部分组成:网络安全知识、网络安全知识图谱以及面向网络安全知识库的信息查询,如图1所示。其中网络安全数据已经通过特定的网络安全数据采集系统采集,网络安全领域知识也已构建好。本实施例的主要功能是构建面向安全领域的知识库,通过自带的查询语言可查询知识库中的相关数据信息,并对频繁遭受攻击的网络进行动态预警,提升网络安全监测和预防能力。
[0038] 第一部分是网络安全知识。是指通过特定安全系统获取到的网络安全攻击数据和网络安全领域知识。网络安全领域知识是指网络安全行业内的部分数据对应信息,包括三个信息库分别是攻击源IP对应的位置信息数据、攻击目标IP对应企业行业数据、攻击类型信息数据。
[0039] 第二部分是面向网络安全大数据的知识图谱建立。云架构下的安全预警系统检测到的各个数据中关联性较强,可根据其关联性,建立相关联的知识图谱来表示知识库。通过提取信息库中的实体名称和关系名称将关系型数据库转化为三元组形式结构化知识的框架,再通过构建图数据库的方式将三元组结构化数据转化为知识图谱,最终形成面向网络安全领域的知识库。
[0040] 第三部分是网络安全领域的查询方法和信息获取。在已建立的知识图谱中,查询系统通过文件获取用户需要查询的内容,得到关键词、关系、疑问词等信息,将这些信息转化为图中的结点和边。本实施例最终的目的就是找到该问题所包含的同构子图,通过子图匹配的方法不断寻找同构子图得到最佳匹配,最终获得目标查询答案。
[0041] 以下为本实施例中面向网络安全大数据的知识图谱建立过程:
[0042] 首先本实施例需要把数据由关系型数据库处理成为图数据库形式,之后就可以用面向图查询的特定查询方法对其进行查询,更方便地进行搜索。特别的,由于计算机中数据存储有多种形式(结构化、半结构化以及非结构化),可以根据不同的信息提取方式对数据进行划分,从而得到目标信息。
[0043] 网络安全大数据包括网络安全攻击数据和网络安全领域知识。其中领域知识又包括三个信息库分别是攻击源IP对应的位置信息数据、攻击目标IP对应企业行业数据、攻击类型信息数据。上述三个信息库都是通过领域知识转化的数据表。接下来详细介绍网络安全攻击数据和三个领域知识信息库。
[0044] 其中网络安全攻击数据是通过基于特征选择的入侵检测算法检测到的攻击数据而来。数据的采集可参考另一篇专利(一种基于特征选择的入侵检测算法2016102461783),下同。
[0045] 其中攻击源IP对应的位置信息数据是通过企业数据建立的“IP-位置信息”关联图,其中IP信息是根据基于特征选择的入侵检测算法检测到的攻击数据集中“address”类中的IP子类数据中SIP属性,而位置信息则是这些IP对应的城市地区名称。在此之上,本实施例添加了安全企业旗下所登记的部分攻击目标来源频繁的地区和地点座位补充,更好地丰富了相关数据的完整度。
[0046] 其中攻击目标IP对应的企业行业数据是通过企业数据建立的“IP-公司信息-行业信息”关联图,其中IP信息是根据基于特征选择的入侵检测算法检测到的攻击数据集中“address”类中的IP子类数据中OIP属性,而公司信息则是这些IP对应的公司名称,行业名称是根据公司名称对应的行业来进行的行业划分,其中各种行业的分类是根据国民经济行业分类与代码(GB/4754-2011)来进行分类。同时本实施例添加了安全企业旗下所登记的公司以及他们相应的IP作为补充,更好地丰富了相关数据的完整度。
[0047] 其中攻击类型信息数据是通过基于特征选择的入侵检测算法检测到的攻击数据集,通过特征选择的网络入侵检测方法使用KDD99获得的数据集有5种类型。分别是:
[0048] 1.DOS,denial-of-service.拒绝服务攻击,例如ping-of-death,smurf等;
[0049] 2.R2L,unauthorized access from a remote machine to a local machine.未得到应许的,从远程主机到本地主机的访问,例如guessing password;
[0050] 3.U2R,unauthorized access to local superuser privileges by a local unpivileged user.未授权的本地超级用户特权访问,例如buffer overflow attacks;
[0051] 4.PROBING,surveillance and probing,端口监视或扫描,例如port-scan,ping-sweep等。
[0052] 5.NORMAL,正常。
[0053] 由于大数据网络的安全态势感知平台上的数据信息量比较大,虽然每条记录所包含的属性大致相同,但是由于所含字段的种类比较多,如果直接将其存储到关系型数据库中,之后信息的检索和答案的抽取效率会比较底下。同时,这些数据相互之间的关联比较大,直接存储到表中需要建立复杂的联系,因此本实施例直接根据网络安全数据内容制定一套网络安全信息库的模型,建立用知识图谱形式来表示数据的知识库。网络安全信息库的模型如图2所示:图2为本发明实施例中网络安全信息库的模型
[0054] 知识库,就是采用一定的数据结构来表示知识,使这些知识信息更加有序、有组织的排列在一起。结合网络安全数据预警系统的特点,本实施例的设计与实现所构造的知识库主要是网络安全攻击数据和领域知识库的信息。以知识图谱形式构造的知识库的传统构建形式如下:
[0055] 首先,将攻击数据和攻击源IP对应的位置信息数据、攻击目标IP对应的企业行业数据、攻击类型信息数据表示成一个一个的三元组,每一个三元组由两个实体和一个关联词组成(实体1,关联词,实体2)。这些三元组表示攻击的知识,每一个三元组可以理解为一个原子服务,也就是最基础的知识。例如三元组(福建省省立医院,行业,事业单位)表示“福建省省立医院的行业属性是事业单位”这一条知识。之后,本实施例使用一张图来表示这些知识,图的结点表示三元组中的一个实体,两个结点之间的边表示两个实体之间的关联词。图3展示了该知识库的一个子部分:图3中,围绕一条ID为24的检测数据这个实体,我们构建了若干个和它相关的实体,中间用一部分的关联词叫这两个实体连接起来。图3为本发明实施例中的知识库的一个子部分。
[0056] 构建知识图谱中,本实施例用到的具体工具是图数据库。图数据库是一个完全不同于关系型数据库的新型数据库,它处理的是大规模的数据和不断变化的需求。世界上大部分领域其实本身就是用图形式表示出来的,所以在存储数据库时用图数据库的形式更加符合现实。
[0057] 下面具体举例说明关系型数据库转化为三元组形式后构建图数据库的步骤。
[0058] neo4j是一种图数据库,同时它也是一种嵌入式数据库。它对图数据是以节点和边(关系)模式进行存储。每个节点可以包含一系列信息,通过Node类里面的setProperty()方法对节点信息进行存储,Node也可以使用createRelationshipTo()方法实现个节点和其他节点的联系,并且该方法返回的是一个Relationship对象,本实施例也可以对Relationship设置属性,也就是节点和节点之间的关系属性,关系属性就是描叙两个节点之间的关系类型。这就方便在对节点进行查找的时候对节点进行过滤。
[0059] 由于本实施例之前获得的四个信息库,网络安全攻击数据、攻击源IP对应的位置信息数据、攻击目标IP对应企业行业数据、攻击类型信息数据是存储于关系型数据库mysql中,所以首先需要将这四个关系型数据库中的知识存储到图数据库neo4j中。
[0060] 将mysql的数据导出后,接下来需要基于Cypher导入数据,通过Cypher的LOADCSV实现数据导入。导入后对以上四个存储后的表建立索引,以便在下一步创建边关系的时候能快速检索到各点。
[0061] 接着创建边关系,下面以创建unify与OIP的边关系为例子说明。最终构建出一副实体与关系的图数据库。如图4所示,图4为本发明实施例中的安全数据知识图谱示意图。
[0062] 本实施例在构建好的知识图谱中,拥有多种类型的结点和关系,通过对这些实体结点和关系的划分,可以得到一张实体关系值表,作用于图匹配查询的实体关系的获取。如下表所示:
[0063]
[0064]
[0065] 接下来是本实施例中的面向网络安全领域的图查询方法:
[0066] 在传统的关系型数据库或者其它数据库形式表示的知识库中,查询方法有多种多样,比如最为常见的数据库查询语言,难度较高的自然语言处理(Natural Language Processing)查询等方法,但这些方法都有自身的局限性和不完整性。自然语言处理后的查询方法,一般是先进行问题理解后,再通过匹配数据库查询语句进行信息的提取,但是这种方法当前都是存在各种各样的问题而且十分复杂。从现有的理论和技术现状看,通用的、高质量的自然语言处理系统,仍然是较长期的努力目标,部分针对一定应用,具有相当自然语言处理能力的实用系统有出现。造成困难的根本原因是自然语言文本和对话的各个层次上广泛存在的各种各样的歧义性或多义性。
[0067] 因此,建立一套面向网络安全大数据领域的查询方法是必须且必要的。在上文中,本实施例通过网络安全攻击数据和领域知识建立了以图数据库为工具,以知识图谱为形式的知识库。在此基础上,本实施例使用子图匹配的方法,对图数据库中的知识进行匹配和查询,进一步来获取目标信息。
[0068] 首先,知识图谱表示的知识库中的的信息数据包含2000个以上结点的知识网络,网络中的任意两个相连的结点及其边表示一条知识。
[0069] 假设G=(V,E)和G1=(V1,E1)是两个图,如果存在一个映射m:V→V1,使得对所有的x,y∈V均有xy∈E等价于m(x)m(y)∈E1,则称G和G1是同构的,这样的一个映射m称之为一个同构,G1是G的子图。图5是本发明实施例中图与子图的一个例子。
[0070] 本实施例通过构建好的知识图谱使用子图匹配的方法进行对目标知识图谱形式的知识库进行查询和目标信息的提取,图6是本发明实施例中查询的具体表示形式和子图匹配的伪代码表示查询的过程示意图。
[0071] 如图6所示,在本实施例中,网络安全领域的图查询方法中查询关键词的获取通过输入疑问、实体、关系的值来获取子图的信息后,再通过子图匹配方法进行查询。图6中最上一栏中的key指的是目标信息的key值,value指的是目标信息的value值。下左一栏中的key1、key2、key3、key4表示给定的实体key值,下中一栏中的value1、value2、value3、value4表示给定的实体value值,下右一栏中的relationship1、relationship2、relationship3、relationship4表示给定的关系值。通过输入疑问词、实体词、关系词确定查询的的子图形式。具体代码如下:
[0072]
[0073]
[0074] 上述伪代码描述子图遍历和子图匹配,其具体查询步骤如下描述:
[0075] 第一步:对关键词进行提取,分为实体名和关联词名,确定实体名和关联词名的类目,输入到系统中的key-value值,查询最终的key值。
[0076] 第二步:提取出的实体构成集合V,关联词构成集合E,将各集合中的点和边匹配于知识图谱构建的图数据库中,关联并标记出来,判断所标记的结点和边能否构成连通子图(默认得到的key-value值是属于图数据库中的结点和边的)。将提取出的实体和关联词一一匹配于图数据库中的实体和边,使用深度优先搜索算法遍历这些实体和边,若能遍历成功,则确定所标记的结点和边能构成连通子图。
[0077] 第三步,在图数据库中标记出连通子图,取出疑问词所对应结点的值即为最终答案。
[0078] 在本实施例中,如图7所示,图7中例如对于语义为“ID为24的攻击数据对应目标IP的企业是什么?”,输入中query的key为企业名。实体中key为“ID”、“IP地址”、实体中value值为“24”,relationship值为“攻击ID”“企业”。查询值为query中实体的value值。查询方法如图7所示,图7为本发明实施例中的信息查询方法示意图。
[0079] 在本实施例中,通过获取实体的key和value值,在已经用图数据库构建好的网络安全攻击数据和领域知识的知识图谱中然后找到一个连通子图(即图8中灰色部分),最终对应的结点key值“福建航天星联信息科技有限公司”即为正确答案。图8为本发明实施例中子徒匹配算法查询信息例子示意图。
[0080] 以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。