APP下载

一种基于知识图谱的威胁路径生成方法

2022-05-14刘京菊

计算机仿真 2022年4期
关键词:攻击者本体图谱

张 凯,刘京菊

(1. 国防科技大学电子对抗学院,安徽 合肥 230037;2. 中国酒泉卫星发射中心,甘肃 酒泉 732750)

1 引言

互联网的大规模普及极大的方便了人们的生活,然而,伴随互联网而来的网络安全问题也愈发严重。网络中的攻击者会利用目标网络中存在的漏洞,发动一系列有序攻击行为,最终实现其攻击目标。威胁路径则是对攻击者利用漏洞实施攻击行为的一种描述方式,也称攻击路径。如何准确高效地评估针对目标网络的威胁路径,是网络空间安全防御的重要研究内容。

目前的网络威胁路径生成方法大多是基于攻击图技术[1, 2]。攻击图主要分为状态攻击图[3, 4]和属性攻击图[5],由于状态攻击图存在状态爆炸的问题,目前攻击图的相关研究主要针对属性攻击图。基于攻击图的方法存在以下三个方面的问题:

1)缺乏有效的方法整合多源信息。攻击图的构建依赖于多源的输入信息,主要包括网络拓扑、漏洞、网络配置和节点权限等信息[6-8]。随着信息技术的发展,网络空间中的安全相关信息来源多、数量大,基于攻击图的方法难以统一表达多源信息;

2)随着网络规模的增大,攻击图生成效率不能满足现实需求。文献[9,10]采用不同的优化方法生成威胁路径,但效率问题依然没有解决;

3)难以适应网络攻防态势的快速变化。大数据分析、威胁情报技术等的发展,不仅为安全研究人员提供了便利,也为攻击者提供了新思路。现有的攻击图技术难以满足攻防双方对网络态势快速反应的需求。

知识图谱是以符号形式描述物理世界中的概念及其相互关系的结构化的语义知识库[11]。知识图谱在构建过程中,能够从多种数据源及互联网中抽取实体、关系和属性信息,将实体通过关系连接,用属性刻画实体,有效地表示异构数据,整合多源信息,并对实体间可能具有的关系进行推理。本文的主要贡献有如下两点:

1)基于网络安全本体构建知识图谱。构建了网络安全本体,以本体指导自动化的信息抽取,提高了信息获取的效率;将防火墙策略以本体中概念关系的形式进行描述;

2)基于Neo4j图数据库存储知识图谱,设计了基于知识图谱的正向迭代威胁路径生成算法,提高了威胁路径生成效率。

2 相关工作

为设计适用于攻击图生成和分析的本体及知识图谱,需要对攻击图和知识图谱领域的现有成果进行总结分析,以确定所需的实体及关联关系。下面介绍现有的研究成果。

2.1 攻击图生成

在攻击图生成方面,文献[12]提出采用前向搜索策略来生成攻击路径,但是会引起状态空间爆炸问题,文献[13]提出了反向搜索的方法生成攻击路径,以缩小状态空间,加速攻击路径生成。文献[14]提出了逻辑攻击图的概念,建模了漏洞之间的依赖关系,以避免状态爆炸问题,但结果难以解释。为了发现最佳的攻击路径,文献[15]通过改进蚁群算法计算了低成本的网络安全加固策略。文献[16]提出基于启发式搜索策略的全局攻击图生成方法。

文献[17]将经典规划技术引入到攻击路径生成中。文献[18]对复杂网络进行子网划分,生成子网攻击图再进行合并。文献[19]提出了基于超图划分的前向搜索攻击图生成方法;文献[20]提出基于紧凑图规划的改进攻击路径发现算法。

文献[21]首先提出基于关系型数据库生成攻击图,但受限于关系型数据库的查询深度;文献[22]基于图数据库研究威胁路径的生成,但没有考虑含圈路径消除问题。

现有的攻击路径生成方法仍然存在一些局限性。计算的复杂性限制了基于攻击图方法的应用。基于经典规划的攻击路径生成,并未深入考虑目标状态相关的信息,影响了生成效率。

2.2 网络安全领域知识图谱

目前知识图谱在网络安全领域的应用方兴未艾,主要研究包括网络安全本体的构建、网络安全信息的自动化抽取、威胁路径生成与分析等。

针对不同的应用需求,研究人员设计了不同的本体模型。文献[23]为构建网络安全知识图谱开发了本体,为来自各种结构化和非结构化数据源的信息和域内所有相关概念,提供有组织的架构。文献[24]提出了旨在支持网络安全系统中的信息集成和网络态势感知的统一网络安全本体,整合了来自不同网络安全系统的异构数据和知识模式,以及用于信息共享和交换的网络安全标准。文献[25]使用本体来表示和存储有关警报、上下文和漏洞信息以及攻击情形的信息。

文献[26]提出了一种构建网络安全知识图谱的框架,通过构建的本体指导网络安全相关实体的抽取。文献[27]针对网络安全命名实体识别和关系抽取进行了研究,基于神经网络模型实现实体抽取和关系抽取。文献[28]提出了一种基于知识图谱的扩展攻击图生成方法,文中设计的原子攻击本体较为简单,不能全面表征网络状态,且没有考虑含圈路径问题。文献[29]提出了一种最优渗透路径生成方法,文中的知识图谱针对单个主机构建,没有凸显知识图谱在信息关联上的优势。

3 基于知识图谱的威胁路径生成

知识图谱从逻辑上可以分为数据层和模式层,数据层主要由一系列事实组成,如(实体1,关系,实体2)、(实体,属性,属性值)这样的事实。模式层是构建在数据层之上,通过本体来规范数据层的事实表达。本体是结构化知识库的概念模板,是特定领域公认的关于该领域的对象及其关系的概念化表述[30]。

知识图谱主要有两种存储方式:RDF和图数据库。RDF一个重要的设计原则是数据的易于发布以及共享,图数据库则着重于高效的图查询和搜索上。Neo4j图数据库[31]是基于数学里图论的思想和算法而实现的高效处理复杂关系网络的数据库,善于高效处理大量的、复杂的、互连的、多变的数据。

本文旨在利用知识图谱提高威胁路径生成效率,增强可交互性,下面从网络安全本体构建、知识图谱构建、威胁路径生成和含圈路径消除四个方面介绍本文工作。

3.1 网络安全本体构建

知识图谱可以通过自顶向下和自底向上两种方式构建[32]。自顶向下是指先为知识图谱定义好本体与数据模式,然后将实体加入到知识库中,这种构建方式需要现有的结构化知识库的支持,以作为其基础数据库。自底向上是指通过信息抽取技术,从开放链接数据中提取出实体、关系和属性等信息,将其中置信度较高的加入到知识库中,再构建顶层的本体模式。

由于网络安全的垂直知识的构建必须考虑知识的深度和整体层次结构,本文采用自顶向下的方法构建网络安全知识图谱。由于生成威胁路径同样需要网络拓扑、网络配置和漏洞相关信息,本文从这三个方面考虑构建网络安全本体,如图1所示。

图1 网络安全本体模型

图中方框表示概念,方框之间的连线表示概念间的关系。其中防火墙(Firewall)、域(Domain)和主机(Host)是网络拓扑(Topology)的子类,用于描述网络拓扑信息。防火墙可以视为一种网关设备,可以过滤多个域之间的流量。域是IP地址的最大集合,因此该域中任何两个地址之间发送的数据包都不会通过任何过滤网关。主机属于各自的域,并由唯一的IP地址标识。系统(System)、服务(Service)、端口(Port)和权限(Private)描述网络配置信息。系统表示运行于主机上的操作系统,如Windows系统、Linux系统等;服务表示主机提供的服务,如ssh服务、web服务等。端口表示主机提供远程服务需要的端口号;权限表示用户在主机上拥有的权限,如攻击者利用了主机上的一个漏洞,该漏洞可以使攻击者获得用户权限。攻击者、攻击和漏洞用于描述网络攻击。本体中的概念还有属性描述,如对于漏洞,有属性CVE编号、CVSS评分等信息,主机有IP地址属性用于唯一确定一个主机实体。

3.2 基于本体的知识图谱构建

基于本体的知识图谱构建流程如图2所示,首先通过自动化扫描工具对网络拓扑和主机信息进行探测,将探测得到的网络拓扑和配置信息通过本体中定义的概念和关系进行实例化,同时对探测到的漏洞在漏洞库中查询,抽取漏洞的详细信息并根据本体创建实例与属性描述。将得到的知识单元导入Neo4j图数据库存储,实现基于图数据库存储的知识图谱的构建。

图2 基于本体的知识图谱构建流程

3.3 威胁路径生成算法

知识图谱在Neo4j图数据库中的存储以节点和关系的形式存储,通过节点及关系可以快速地匹配到需要搜索的模式。威胁路径生成依赖于网络中存在的漏洞,在生成威胁路径时漏洞利用的依赖关系是重要的依据。本文在图数据库存储知识图谱的基础上,设计了正向搜索的迭代构建威胁路径的算法。

算法的主要思想是从攻击者具有权限的主机出发,查找主机可以访问的具有漏洞的服务,当漏洞利用条件可以满足时,则可以创建漏洞利用节点,生成威胁路径,通过迭代搜索完成全部威胁路径生成。

算法1 基于知识图谱的威胁路径生成算法

输入 知识图谱KG,攻击者控制的主机节点na

输出 含威胁路径的知识图谱TPKG

1)Queen Q=null ∥主机节点队列

2)enQueen(na)

3)while(not empy Q)

4) hs=deQueen()

5) if hs.visited==false

6) Ns=∅ ∥服务节点集合

7) if ∃nserand hs-[:Accessto]->nser

8) Ns=Ns+nser

9) end if

10) for ni∈Nsand hd-[Run]->ni

11) if ni-[:Hasvul]->v and v.condition==true

12) create Exploit node and relationships

13) create Private node relationships

14) enQueen(hd)

15) end if

16) end for

17) end if

18) hs.visited=true

19)end while

算法说明:第1-2步,初始化攻击者拥有权限的主机节点队列,攻击者最初在主机节点na拥有完全权限;第3-8步,当队列不空时,取队列头节点,且该节点未作为源节点被访问过,查找该节点可以访问的服务节点集合;第10-14步,若主机可访问的服务节点存在漏洞,且漏洞利用条件已满足,则创建攻击利用节点和权限节点,并创建相应关系,将运行该服务的节点入队列;第18步,将源主机节点标记为已访问。

3.4 含圈路径消除算法

在威胁路径生成以后,可能会出现环路情况,如图3所示。假设攻击者通过H0利用了H1和H2的漏洞并获得了权限,再次迭代搜索生成威胁路径时,则可生成从H1至H2、从H2至H1两条威胁路径,从而形成环路。因此,本文提出一种威胁路径环路消除算法。

图3 含圈路径示例

算法2 含圈路径消除算法

输入 路径起点na,路径终点ngoal,含威胁路径的知识图谱TPKG,节点集合N

输出 威胁路径集合Path

1) Queen Q=null ∥路径队列

2) P=(na) ∥初始路径

3) enQueen(P)

4) while(not empy Q)

5) P=deQueen()

6) Nodelist=Nodes(P)

7) for Ni∈N

8) if ∃Nisatisfy P→exp→Ni

9) if Ni==ngoal

10) Path=Path+(P, Ni) continue

11) end if

12) if NiNodelist

13) enQueen( (P, Ni) )

14) end if

15) end if

16) end for

17) end while

算法说明:第1-3步,将攻击者节点设置为初始路径,并将路径入队列。第4-6步,while循环判断当队列不空时,取队列头记为路径P,并获取路径中的主机节点列表为Nodelist;第7-8步,查找与路径P通过Exploit节点相连接的下一跳节点Ni;第9-11步,若Ni为目标节点,则找到一条路径;第12-13步,若Ni不属于已有路径中包含的主机节点列表,则将Ni加入路径P,并将路径入队列。

4 实验与分析

4.1 网络环境

为验证本文提出的算法的有效性和正确性,搭建网络环境如图4所示。

图4 网络拓扑结构图

在此网络配置中,Firewall-1控制外部网络和内部网络之间的通信。主机H0在外部网络中,表示受攻击者完全控制的主机。在内部网络的DMZ中,主机H1运行web服务,而主机H2运行ssh服务。Firewall-1仅允许http和ssh流量分别进入H1和H2,并阻止所有其流量。 Firewall-2允许来自H1和H2的流量访问数据库服务器H3。 H1运行Apache Web服务器的易受攻击的版本,该版本具有漏洞(CVE-2017-7269),该漏洞使远程攻击者可以利用Web服务器并获得用户特权。

H2上的ssh服务存在一个漏洞(CVE-2014-4877),该漏洞使远程攻击者可以获得用户特权。数据库服务器H3是一个运行MySQL数据库的Linux机器,该数据库具有一个可远程利用的漏洞(CVE-2018-8273),使攻击者可以获得用户特权。

表1列出了示例网络的Firewall-1和Firewall-2的策略。

表1 防火墙策略

根据所构建的本体模型,对网络拓扑、网络配置数据和漏洞信息进行抽取,得到概念实例化的实体,在Neo4j中创建实体对应的节点并以关系连接节点,得到如图5所示的知识图谱。

图中圆代表实体,是本体中概念的实例化,实体间通过关系相连接。圆的颜色表示实体的标签,Neo4j图数据库提供了通过标签进行查询的功能,标签的设置能够提高图数据库的检索效率。

图5 生成的知识图谱

对于防火墙策略可以视为主机对相应服务的访问权限,可以将防火墙策略转化为对服务访问的约束。对于Firewal-1的第一条规则,当满足约束

(Host)-[:Connect]->(Firewall-1)-[:Connect]->(Domain:DMZ)<-[:Memberof]-(H1)-[:Run]->(Service:web)-[:Open]->(Port:80)

的访问可以通过防火墙,可用关系[:Accessto]来表示主机对服务的访问权限,即(Host)-[:Accessto]->(Service)这种节点关系模式。

4.2 实验结果

在构建的知识图谱上应用本文提出的威胁路径生成算法,程序运行环境为Ubuntu16.04版本64位的虚拟机,运行内存2G,Neo4j版本为社区版3.5.7,使用python3.5编程与Neo4j图数据库交互来实现算法并运行。假设查询从攻击者Attacker起始至数据库服务器dbServer的威胁路径,在图数据库中使用Cypher语句查询威胁路径:

MATCHpath=(start:Topology{name:′Attacker′})-[*]->(end:Topology{name:′dbServer′})

RETURNpath

查询结果如图6所示。可以看到图中的路径存在环路,在ftpServer和webServer之间可能形成循环路径。对生成的威胁路径运用含圈路径消除算法,最终得到4条正确的威胁路径如图7所示,图中所示为构成路径的边。将路径中的Exploit节点略去即可得到如图8所示的4条威胁路径。

图6 威胁路径查询结果

图7 威胁路径查询结果

图8 威胁路径

4.3 结果分析

在同样的系统和配置条件下,不断增加网络中具有漏洞的主机,并将增加的主机信息导入知识图谱中,运行威胁路径生成算法,运行时间为运行算法10次所取得平均值。为对比研究基于知识图谱的威胁路径生成方法的性能,本文选择开源的攻击图生成工具Mulval作为对比,在相同条件下使用Mulval生成攻击图,记录运行时间并绘制如图9所示。

图9 威胁路径生成时间对比

在网络规模达到200个节点时,本文方法生成威胁路径仅用374ms,基于Mulval的方法用时8219ms。从图中可以发现,随着网络规模的增大,基于知识图谱的方法所用时间相比Mulval所用时间具有较大缩短。基于知识图谱的方法能够更加适合于实时的网络威胁分析任务。

本文的算法的核心是以Cypher语言对图数据库进行操作,在算法中,主要的部分是遍历图数据库以查找符合漏洞利用依赖关系的节点关系模式,Neo4j采用了免索引邻接这一属性,为图数据库提供了快速、高效的图遍历能力。Neo4j图数据库中的每个节点都会维护与它相邻节点的引用,即每个节点都相当于与它相邻节点的微索引,这比使用全局索引的代价小得多。即查询时间和图的整体规模无关,只与它附近节点的数量成正比。

本文算法生成威胁路径需要匹配的节点关系模式可表示为:

(Nhost)-[:Accessto]->(Nser)-[:Hasvul]->(Nvul),

即从一个节点出发可访问的服务,该服务有可利用的漏洞。免索引邻接的使用使得遍历物理关系的时间复杂度仅为O(1)。假设平均每个主机可访问的服务为m(m为常数),那么上述关系模式在知识图谱中最多有nm个,将所有这些模式遍历一次时间复杂度为O(mn),m为常数,时间复杂度即为O(n),n为主机节点数。

根据文献[14]中的理论推导,当主机节点为n时,Mulval生成攻击图的时间复杂度为O(n2log(n))。分别对两种方法所用时间进行拟合可以发现,实验结果符合上述分析,如图10和图11所示。

图10 基于知识图谱的方法时间拟合

图11 基于Mulval的方法时间拟合

5 结束语

本文通过构建网络安全本体,通过本体建模领域概念及关系,以此关联整合多源信息,并以此进行信息抽取,构建了以Neo4j图数据库存储的知识图谱。设计了基于知识图谱的威胁路径生成算法和含圈路径消除算法。在不同的网络规模上与Mulval方法进行对比,实验表明,本文提出的方法能够有效提高威胁路径生成效率,并消除威胁路径的环路,为后续的路径分析提供基础。

下一步将主要研究构建面向真实互联网环境的知识图谱,并以此为基础进行网络安全威胁分析,不断拓展知识图谱在网络空间安全领域的应用。

猜你喜欢

攻击者本体图谱
“植物界大熊猫”完整基因组图谱首次发布
基于伪谱法的水下航行体快速操舵变深图谱研究
基于贝叶斯博弈的防御资源调配模型研究
继齐韵往昔,以今声开来——思考自五音戏主奏乐器的演变、本体及延伸
眼睛是“本体”
正面迎接批判
图表
正面迎接批判
专题
Care about the virtue moral education