来源:网络与信息安全学报

基于网络防御知识图谱的0day攻击路径预测方法

孙澄, 胡浩, 杨英杰, 张红旗

信息工程大学

摘要针对 0day 漏洞未知性造成的攻击检测难问题,提出了一种基于知识图谱的 0day 攻击路径预测方法。通过从现有关于网络安全领域本体的研究成果及网络安全数据库中抽取“攻击”相关的概念及实体,构建网络防御知识图谱,将威胁、脆弱性、资产等离散的安全数据提炼为互相关联的安全知识。在此基础上,依托知识图谱整合的知识,假设并约束0day漏洞的存在性、可用性及危害性等未知属性,并将“攻击”这一概念建模为知识图谱中攻击者实体与设备实体间存在的一种关系,从而将攻击预测问题转化为知识图谱的链接预测问题。采用基于路径排序算法的知识图谱推理方法挖掘目标系统中可能发生的 0day 攻击,并生成 0day 攻击图。复用分类器输出的预测得分作为单步攻击发生概率,通过计算并比较不同攻击路径的发生概率,预测分析 0day 攻击路径。实验证明,所提方法能够依托知识图谱提供的知识体系,为攻击预测提供较全面的知识支持,降低预测分析对专家模型的依赖,并较好地克服 0day 漏洞未知性对预测分析造成的不利影响,提高了 0day 攻击预测的准确性,并且借助路径排序算法基于图结构这一显式特征进行推理的特点,能够对推理结果形成的原因进行有效反溯,从而一定限度上提高了攻击预测分析结果的可解释性。

关键词知识图谱 ; 0day攻击 ; 攻击路径预测

论文引用格式:

孙澄, 胡浩, 杨英杰, 等. 基于网络防御知识图谱的0day攻击路径预测方法[J]. 网络与信息安全学报, 2022, 8(1): 151-166.

SUN C, HU H, YANG Y J, et al. Prediction method of 0day attack path based on cyber defense knowledge graph[J]. Chinese Journal of Network and Information Security, 2022, 8(1): 151-166.

0 引言

在当今网络攻防体系中,0day漏洞是指未被安全厂商发现,却可能被黑客组织掌握的系统脆弱性的总称。在被用于发起0day攻击时,因其对于防御者具有未知性,造成攻防双方严重的信息不对称,使防御者缺乏漏洞细节信息,难以实施有效检测,攻击者因此提高了攻击的隐蔽性及成功率。当前,0day攻击常被应用于入侵高防护级别的信息系统并实现攻击的隐蔽持续,如“震网”事件。由此可见,如何克服0day漏洞未知性导致的 0day 攻击难以检测的问题已成为当前网络安全领域面临的一大难题。

关于 0day 攻击检测的研究主要包括事前的攻击预测及融合告警的实时检测两方面,其中,攻击预测是指在攻击发生前,综合系统配置信息及有关攻击知识,对目标系统中潜在0day攻击的位置、可能性及影响进行预判。具体可分为基于统计学的预测技术及基于攻击场景的预测技术。前者通过统计分析现有漏洞的生命周期,对新漏洞出现的时间、数量及宿主等进行预测,进而实现 0day 攻击的预测,然而,此类预测技术未结合攻击场景,分析0day攻击对系统安全造成的危害,且准确度不高。后者则以已知漏洞利用模型为参照,构建0day攻击模型,在生成已知攻击路径的基础上,依据同一路径所属攻击的前后依赖关系,匹配攻击的前后置条件,从而预测0day攻击。Wang等基于漏洞存在及利用的最坏情况假设,构设 0day 漏洞利用规则,在生成全局0day攻击图的基础上,提出了k-0day安全度量,依据攻陷目标节点所需 0day 漏洞最小数量评估网络安全性,该研究虽然实现了0day攻击危害性的度量,但在最坏情况假设下生成的全局攻击图,规模过大,难以应用于节点规模较大的网络。而Albanese 等则提出了无须事先生成全局攻击图即可评估系统 k-0day 安全性的算法,提高了k-0day安全度量的可行性。然而以上研究均以安全度量为研究重点,未深入涉及0day攻击的推理方法。Yang等参照已知漏洞利用规则,构建提权、DDoS及信息泄露等多种0day攻击模型,并提出了较为完整的0day攻击图生成算法,但该算法不加约束地假设系统每个设备均存在一个0day漏洞,导致攻击图中存在大量发生概率较低的0day攻击。叶子维等基于已知攻击路径及权限提升原则,对 0day 攻击条件进行了约束,排除了部分冗余的0day攻击,然而其关于0day攻击的推理依赖前期生成完整的已知攻击路径,难以应对已知漏洞较少,不足以构建完整攻击路径的场景。

0day攻击的实时检测是指基于攻击图等预测结果,融合实时告警信息,通过攻击级联,依据被检测的已知攻击间的“跳跃”状况,对可能已发生的0day攻击进行的推理。Ahmadinejad等通过设置攻击级联阈值,判断出现攻击“跳跃”的路径是否出现未知攻击。Sun等通过构建系统调用依赖图,结合入侵报警信息,在系统调用层面实现了0day攻击检测,提高了检测精度。而Singh 等则提出了利用并行处理提高检测实时性的分层式0day攻击检测架构。然而,以上攻击实时检测的研究本质上仍需以攻击预测生成的结果作为先验知识实施推理。

综上所述,攻击预测技术是0day攻击检测研究的关键。然而,关于0day攻击预测的研究普遍依靠假设的条件、专家知识构建的攻击模型以及同一攻击路径中攻击的前后依赖关系来应对0day漏洞未知性的影响,这一过程存在3个方面的不足:一是条件假设缺乏有效约束,易导致0day攻击的预测结果规模过大,降低了预测的意义;二是专家知识构建的攻击模型,易受专家主观知识面的制约;三是在已知攻击路径不完整的情况下,预测方法难以适用。针对以上不足,本文提出了基于知识图谱的0day攻击路径预测方法,利用网络防御知识图谱将攻击相关的威胁、资产、脆弱性等数据融合为知识相互关联且覆盖面较广的安全知识库,依据其中整合的漏洞数据、攻击意图等知识,对0day漏洞未知属性的假设条件进行合理约束;其次,利用路径排序算法,以知识图谱中链接攻击者实体与目标实体的关系路径为特征,从更全面的角度对0day攻击展开预测,克服专家知识构设模型的局限性;最后,以历史攻击数据为样本,设计并训练 Logistic 二元分类器,实施单步攻击预测,从而摆脱对已知攻击路径的依赖,并通过复用 Logistic 二元分类器输出的单步攻击发生概率,计算攻击路径综合利用率,预测针对目标资产最有可能被攻击者利用的 0day攻击路径,从而支持防御决策。

1 预备知识

为使表述清晰准确,对文中相关概念定义如下。

定义 1 网络防御知识图谱(CKG,cyber defense knowledge graph)

CKG以三元组(CSO, FACT, T)表示,其中, CSO=(C, R, P)为网络安全本体,C为类集,R为关系类型集,P为属性类型集,FACT为以RDF (resource description framework)三元组格式表示的数据知识的集合,T为CSO中的类与FACT中的实体对象的类型从属关系集合。

定义2 0day漏洞

0day漏洞指未被安全厂商发现,却可能被黑客组织掌握的系统脆弱性的总称。为使研究更具针对性,以下0day漏洞仅指未被安全厂商发现的技术漏洞。

定义3 0day攻击

0day攻击指攻击者利用掌握的0day漏洞发起的单步攻击,记为 a0。相对地,已知攻击 ak为攻击者利用已知漏洞发起的单步攻击。

定义4 0day攻击路径zap

zap是指包含0day攻击的一组前后依赖的单步攻击构成的无环攻击序列,表示为(A,E),其中, A为单步攻击集,E为链接单步攻击的有向边集。

定义5 0day攻击图ZAG

ZAG指包含0day攻击的攻击图,表示为(A, Priv, L, Prob),其中,A={a0}∪{ak}为0day攻击与已知攻击组成的单步攻击集,单步攻击 a以二元组(host, vul)表示,host为目标设备,vul为利用的脆弱性,Priv 为单步攻击的前后置权限集,L={A×Priv}∪{Priv×A}为单步攻击与权限间存在的链接,表示相互间的前后置关系, Prob为单步攻击发生概率的集合。

定义6 关系路径(rp,relation path)

rp指由知识图谱中的一组关系类型组成的序列,写作。其中,ci=Domain(ri+1)=Range(ri),c0≡Domain(rp), cl≡Range(rp),l=|rp|表示关系路径长度,为关系路径包含的关系类型总数,0≤i≤l。

本文中知识图谱与攻击图的关系如下:CKG是攻击预测算法的输入,作为知识库,为攻击预测提供所需的知识;0day 攻击图ZAG 则是攻击预测结果的图形表示。

关系路径与攻击路径的区别如下:rp用作路径排序算法中logistic regression模型执行攻击预测使用的特征;0day 攻击路径 zap 则是以 0day攻击图为参照,结合多步攻击发生概率,提取的攻击路径预测结果。

对本文中出现的主要符号描述如表1所示。

2 网络防御知识图谱

知识图谱是一种利用图模型描述知识并建模万物间关联关系的有效技术方法。将该技术应用于网络安全领域,构建网络防御知识图谱,可将异构碎片化的网络安全数据整合为格式统一、互相关联的安全知识,为攻击预测提供支持,有利于实施针对性防御。以下重点对网络防御知识图谱架构构建以及网络安全本体设计进行详细介绍。

2.1 架构构建

根据定义1可知,网络防御知识图谱可分为模式层与数据层两部分,其中,模式层为知识图谱的核心,以网络安全本体(CSO,cyber security ontology)定义了网络防御的基本概念体系,为数据层知识的建模提供模式定义。数据层则是知识图谱的主体,是通过知识抽取、知识融合等步骤获取的具体事实,在模式定义下建模而成的数据知识的集合,数据知识以RDF三元组形式表示为(subject, predicate, object)。两层关系示例如图1所示,该示例的模式层定义了攻击模式类、脆弱性类以及分别以两者为定义域、值域的关系类型exploit,数据层则以此模式建模了数据知识(CVE-2017-0290, Code Injection, exploit),表示代码注入这一攻击模式能够利用漏洞 CVE2017-0290。

图1   模式层与数据层关系示例

根据知识图谱的分层结构,其构建主要有自顶向下、自下而上两种方法。由于当前网络安全领域概念体系的研究已较为成熟,因此网络防御知识图谱适用于自顶向下的知识图谱构建方法,即首先构建以网络安全本体为内容的模式层,再以模式层为基础,综合多种知识抽取及融合技术,从异构数据源提取并建模数据知识,构建数据层。网络防御知识图谱架构构建如图2所示。

图2   网络防御知识图谱构建架构

图中绿色、橙色箭头分别代表模式层、数据层构建涉及的步骤,蓝色箭头则为两者共同涉及的步骤,箭头序号表示步骤次序。对于自顶而下的知识图谱构建方法,首先抽取现有网络安全领域本体的研究成果,利用本体集成的方式构建网络安全本体,完成模式层构建,在此基础上,以本体定义的知识模式为参照进行数据层的知识抽取、融合,实现数据层构建,知识抽取过程中,针对关系数据库提供的结构化数据以及以文本为代表的非结构化数据,可分别使用D2R(relational database to RDF)工具及深度学习的方法实现知识抽取。最终,为更好地支持路径排序算法等图结构算法进行知识推理,使用图数据库将数据知识存储为以节点、边为元素的属性图格式,完成知识存储,由图数据库对外提供统一的知识图谱应用接口。

2.2 本体设计

由自顶而下的知识图谱构建顺序可知, CSO 是决定网络防御知识图谱质量的关键。本文利用本体集成的方式构建 CSO,通过将现有研究较为成熟的网络安全本体融合为一个统一本体,借鉴当前该领域研究成果并实现不同成果间的优势互补。由于司成等 提出的NSSEKB_O(ontology of network security situation element knowledge base)从领域本体、应用本体、原子本体 3 个层面对网络安全知识体系进行了系统梳理,具有较好的知识完备性,而谢敏容等构建的 AFACSDO(asset fragility attack cyber security domain ontology)复用了多个有代表性的网络安全本体,是网络安全本体研究的最新成果,具有较好的时效性。因此,本文选取以上两项研究成果作为集成对象实施本体集成。

网络安全本体以资产、威胁、脆弱性三大知识模块为基础,融合 NSSEKB_O 及 AFACSDO的相关概念知识,如图3所示。其中,资产模块以设备类为核心,集成了设备存在的组件,操作设备的职员、设备承载的功能、提供的服务、存储的数据等资产以及设备的权限等类;威胁模块以攻击者类为核心,集成了竞争对手、黑客组织等攻击者类的子类以及攻击者能够运用的攻击模式、攻击模式常用的工具、所属的战术等类;脆弱性模块以脆弱性为核心,集成了脆弱性利用产生的后果,并将脆弱性类细化为已知漏洞、0day漏洞、人性弱点等子类。为提高图3的可视性,图中使用有向边表示不同的关系类型,有向边的起始类及目标类分别为关系类型的定义域与值域。关系类型将同一知识模块中的不同类以及不同知识模块互相关联起来,构成知识体系。

3 0day攻击路径预测

网络防御知识图谱将攻击这一概念定义为以攻击者类为定义域、设备类为值域的关系类型(图3红色虚线),具体攻击行为的推理问题即转化为知识图谱数据层中攻击者实体与设备实体间攻击关系的预测问题。而路径排序算法(PRA,path ranking algorithm)是一种用于知识图谱链路预测的有效方法,其预测结果不仅准确率高,且可解释性强,能够便于防御者在获取预测结果后对攻击成因等知识进行挖掘,因此本文选用PRA算法执行单步攻击预测,并实现0day攻击图的构建。在此基础上,通过分析比较不同攻击路径的综合利用率,预测攻击者最有可能利用的0day攻击路径。

图3   网络安全本体示意

3.1 0day漏洞未知属性分析

在实施预测前,通过未知属性分析,对缺失的0day漏洞属性进行假设并实施约束,这是预测分析的基础。0day漏洞未知的属性主要包括漏洞存在位置、利用条件以及产生影响等信息。当前相关研究主要通过条件假设的方式对未知的0day漏洞信息进行补全,在此过程中,如何对假设的漏洞信息进行合理约束是决定预测结果质量的关键。本文基于知识图谱整合的知识,在提出0day漏洞存在性、可用性、危害性假设的基础上,分别采用统计分析、样本训练及意图分析的方式对相关假设进行约束。

3.1.1 0day漏洞存在性

存在性假设:0day漏洞可能存在于设备的任意组件中。

NVD、CNNVD等数据库提供的漏洞数据显示,不同组件已曝光的漏洞数量存在明显差别,表明漏洞的存在性与作为其载体的组件存在关联。因此对于该假设,可利用组件特征进行约束,将0day漏洞视为组件将来可能曝光的漏洞,通过统计分析不同组件的漏洞曝光历史数据,对不同组件存在0day漏洞的可能性进行量化。

图4为以CNNVD公布的2015年7月以来的漏洞数据为样本,抽取厂商(vendor)、组件类型(ctype)两类组件属性作为特征,按月统计获取的不同属性组件月漏洞曝光数的平均占比,平均占比越高表示具有相应属性的组件相对于其他组件存在0day漏洞的可能性越高。如图4所示,不同厂商组件的漏洞曝光平均占比由高到低呈现明显的阶梯状下降趋势,据此可将厂商划分为高、中、低3类。高占比厂商(HPV, high production vendor)包括 Google、Oracle、Microsoft,月平均占比约 6%,中等占比厂商(MPV, middle production vendor)包括 IBM、Adobe、Apple、Cisco,月平均占比约4%,低占比厂商(LPV, low production vendor)为Mozilla至GitLab等,月平均占比约 1%,其余图中未显示的厂商占比相对较低,认为其存在0day漏洞的可能性极小,设为0。而组件类型方面,应用及操作系统类型组件的漏洞曝光数占比均接近50%,而硬件类型组件远远小于前者,仅占 3%。对以上占比数据进行归一化处理,构造0day漏洞存在概率p的赋值矩阵,如表1所示。

图4   漏洞曝光数平均占比统计分析

根据存在性假设,在知识图谱中建立0day漏洞实体至全部组件实体的关系“P-exist-1”,记indv(0day)、indv(Cmpt)分别为某0day漏洞实体及某组件实体,则两实体间的关系“P-exist-1”成立的概率prob(P-exist-1)为:prob(P-exist-1(indv(0day), indv (Cmpt)) = p(indv (Cmpt).vendor, indv(Cmpt).ctype)

由上述可见,0day漏洞的存在性假设受到了组件特征的约束,当厂商、类型取值为不同的组合时,0day漏洞存在于相应组件的概率也不同。

3.1.2 可用性与危害性

可用性假设:0day漏洞可能被目标设备上的任意权限触发。

权限在知识图谱中以权限实体的形式存在,不同漏洞的触发需要不同程度的权限,而权限越高,越便于攻击者触发漏洞。在知识图谱中设置关系“trigger”的属性“tri_prob”表示权限触发0day漏洞的概率,依据权限高低进行赋值。关系“trigger”包含于攻击者实体与目标设备实体间的关系路径中,因而“tri_prob”通过参与路径特征的计算,可体现于样本特征中。在利用攻击样本对 Logistic 二元分类器进行训练的过程中,依据正负样本的区别,可将0day漏洞的利用条件约束于样本中的情景。当分类器判定0day攻击关系成立时,通过查询知识图谱中攻击者实体在设备实体上已获取的权限实体,可确定本次触发0day漏洞所使用的权限。

危害性假设:0day 漏洞利用产生的危害仅能够满足攻击者实现对目标设备攻击意图的最低需求。

漏洞利用产生的危害在知识图谱中以后果实体的形式表示,同时,知识图谱通过威胁实体,对攻击者的攻击意图进行了整合。由于攻击者利用漏洞发起攻击是以实现攻击意图为目的的,如果漏洞利用产生的后果不足以支持攻击意图的实现,则攻击者没有利用该漏洞的必要,而当后果超出实现攻击意图的需要时,超出的部分对于攻击者而言意义也不大,因此以上假设利用攻击意图约束 0day 漏洞利用产生的危害性是可行且较为合理的。例如,攻击者实体 APT-28 主要从事窃密活动,目标设备实体存储有机密资料,在知识图谱中构建威胁实体“窃取机密”作为APT-28对该设备的攻击意图,若预测APT-28利用0day漏洞对该设备发起了攻击,则产生的后果通过威胁实体约束为“机密性损害”,不再额外涉及完整性、可用性等其他方面的影响。

3.2 路径排序算法

路径排序算法的基本思想是将链接两个实体的关系路径作为特征来预测实体间是否存在某种特定关系。具体而言,该算法依托知识图谱提取实体间的一组关系路径,选择合适的方法计算起始实体沿该路径到达目标实体的概率,记为路径特征,以此为输入,利用训练好的 Logistic Regression 模型综合全部路径特征计算待测关系成立的概率,并依据阈值判断关系是否成立。

3.2.1 算法示例说明

引用一个简单的PRA算法应用实例,简要说明该算法的操作过程。知识图谱子图如图5所示。

图5   知识图谱子图的实例

需要预测的目标关系为born In City。第一步,提取定义域、值域分别为Person类及City类的关系路径,并限制路径长度不超过 2;第二步,获取目标关系的实例,正例如(Tom, Paris),负例如(Tom, Lyon);第三步,计算关系实例中起止实体间的路径特征,构造样本;第四步,利用样本数据训练分类器;最后,使用训练完成的分类器进行预测。各步骤产生的数据如表2所示。

3.2.2 关系路径提取

由定义6可知,关系路径为关系类型的序列,属于模式层知识,通过查询网络安全本体,提取Domain(rp)=Adversary,Range(rp)=Device,长度不超过6的关系路径rp,如表3所示。

给定起止实体的情况下,表3中的关系路径反映了实体间在不同方面的关联性,如路径rp2从攻击意图对设备承载功能产生的威胁方面刻画攻击者与目标设备的联系,而rp8则从脆弱性对设备承载功能的危害方面刻画了两者间的联系。

3.2.3 路径特征计算

路径排序算法利用随机游走的方法计算路径特征,对于任意关系路径rp:

给定起始实体 s∈Domain(rp),目标实体d∈Range(rp),则路径特征hs,rp(d)计算如下:

当rp=∅时,

当rp≠∅时,记rp':

采用递归的方式计算特征,

其中,是以实体d'为起点沿rl经单步游走到达实体d的概率,表示实体d'与d间关系rl的存在性,若关系存在,则,否则为0。

使用以上方法计算获取的路径特征值本质上决定于游走者(walker)在游走过程中经过的实体在知识图谱中的数量分布,该方法未考虑实体特殊性对关系存在性产生的影响,且对于实体数量分布过于敏感。以关系路径Sample:为例,计算由攻击者实体a到脆弱性实体c的路径特征,为便于说明,假设知识图谱中a能够运用的攻击模式集为AM,AM中任一攻击模式b均能够利用的脆弱性c,且其能够利用的脆弱性的集合为Vb,则根据随机游走算法,第一步游走:a 到达任意一个攻击模式实体b的概率Pr(b|a;apply)=1/|AM|,第二步游走:由攻击模式集AM中的实体游走到脆弱性实体 c,对于任一实体 b∈ AM,Pr(c|b;exploit)=1/|Vb|,综合两步游走,路径特征,可见,特征计算结果仅与攻击模式实体及脆弱性实体的数量分布相关。对于利用难度不同的脆弱性实体,在相关实体数量分布一致的情况下,具有相同的路径特征值,将此特征值应用于攻击预测,显然并不合理。且当攻击者a 新增一种攻击模式,而该模式无法利用脆弱性 c 时,路径特征值受攻击模式数量变化影响,减小为,而事实上新增的这一攻击模式由于不能利用脆弱性c,不会对路径特征产生影响。鉴于此,为提高路径特征计算的合理性,将实体的特殊性纳入路径特征的计算,并降低路径特征对实体数量分布的敏感性,将式(2)改变如下:

exp(r(d',d))为给定实体d'与d间关系r存在的期望,期望计算如式(4)所示。通过在计算过程中加入关系存在概率prob,将实体特殊性产生的影响计入路径特征,并将沿关系路径转移的最大概率作为路径特征,有效消除了无关实体新增对路径特征产生的不合理影响。如出现上节实例的情况时,由于新增攻击模式实体与脆弱性c不存在利用关系,经该实体到达脆弱性 c 的概率为 0,不影响最大概率的选取。

prob(r(d',d))取值受实体特殊性影响并需结合实际选择合理的方法进行计算,如 3.1 节对于关系“P-exist-1”存在概率的赋值,需通过统计不同属性组件的漏洞曝光历史数据,横向比较数量占比,进行量化计算,此处不再赘述。

3.2.4 攻击分类器构造

路径预测算法利用Logistic Regression模型构造二元分类器实施链路预测。在完成路径特征计算的基础上,通过设计得分函数,综合不同的路径特征,计算待测关系成立的得分,得分越高表示关系成立的可能性越高。得分函数如式(5)所示。

其中,θi为关系路径权重,表示相应关系路径对待测关系是否成立的影响程度,n 为路径特征数量。令,则得分函数可写作θT H,以其为输入,二元变量y表示待测关系是否成立,Logistic二元分类器构造如下:

上式表示取定参数θ,路径特征向量为H的情况下,待测关系成立的概率。Logistic二元分类器以 0.5 为阈值,当 Pr>0.5 时,判断关系成立。为取定合适的参数θ,需利用样本对分类器进行训练,记样本集为D={(Hj,yj)},m=|D|为样本规模,Logistic分类器的损失函数称为交叉熵,如式(7)所示。

训练过程为求解使损失函数在样本集上取值最小的一组参数作为最优解。训练完成后,将参数最优解代入式(6),通过输入给定两实体间的关系路径特征H,可对实体间待测关系进行预测。

3.3 攻击路径预测

利用给定系统的历史攻击数据构造攻击样本,训练分类器LCA用于预测攻击是否发生,在此基础上,从攻击正样本中区分 0day 攻击、已知攻击,构造0day攻击样本,训练分类器LCZ用于判断发生的单步攻击是否为 0day 攻击。完成攻击预测后,利用图数据库的查询功能,以起止实体及关系路径为条件,对攻击利用的脆弱性及前后置条件进行挖掘,构造单步攻击,并生成0day攻击图。

依托 0day 攻击图,以攻击者初始权限为起点,目标权限为终点,提取0day攻击路径,并通过复用LCA分类器输出的单步攻击发生的概率,计算不同攻击路径的综合利用率,以此为依据,预测攻击者最有可能利用的0day攻击路径。综合利用率计算如式(8)所示。

0day攻击路径预测算法如算法1所示。

算法1 0day攻击路径预测算法

输入 网络防御知识图谱CKG;关系路径集RP;攻击样本D1;0day攻击样本D2

输出 0day攻击图ZAG=(A, Priv, L, Prob);0day攻击路径集ZAP;综合利用率集CE;最优攻击路径opt_zap

1) InitializeA, L, Prob, Priv, Thr, Cons, ZAP, CE=∅;

2) att=selectAttacker(CKG);//选取攻击者

3) Host←selectHost(CKG);//提取系统设备集

4) Init_Priv←Query _Privilege (att, CKG);//查询攻击者初始权限集

5) LCA.fit (D1);LCZ.fit (D2);//分类器训练

6) while 1:

7)Atmp=A;

8) for host in Host:

9) Calculate Hatt, host;//特征计算

10) y=LCA.predict (Hatt, host);

11) if(y==0)//分类器判断攻击未发生,跳出本次循环

12) continue;

13) if(LCZ.predict (Hatt, host))://判断攻击为0day攻击

14) vul=Query _0day (att, host, CKG, RP);//在知识图谱中查询攻击利用的0day漏洞实体

15) Thr←Query_Threat(att, host, CKG, RP);//查询攻击者对目标设备的攻击意图

16) Create post_priv satisfy Thr;//创建满足攻击意图的权限实体作为攻击后置权限

17) else

18) vul=Query _Known (att, host, CKG, RP);//在知识图谱中查询攻击利用的已知漏洞实体

19) Cons←Query_Consequence (vul, CKG, RP);//查询漏洞利用的后果

20) post_priv=Evaluate(Cons);//根据后果评估攻击者获取的权限作为后置权限

21) a=Create Attack(host, vul);//构造单步攻击

22) if(a∩A==a)://判断攻击不为新攻击,则跳出本次循环

23) continue;

24) A←a;

25) prob(a)=LCA.prediction _prob(Hatt, host);//提取攻击发生的概率

26) Prob←prob(a);

27) Priv←post_priv;

28) L←CreateLink(a, post_priv);

29) pre_priv=Query_Privilege(att, host, CKG, RP);//查询攻击的前置权限

30) Priv←pre_priv;

31) L←CreateLink(pre_priv, a);

32) CKG=CKG.update(post_priv);//更新知识图谱中攻击者获取的权限

33) if (Atmp==A)//判断本轮预测未出现新的攻击,则结束预测

34) break;

35) endwhile

36) Goal_Priv←check(Priv);//选取目标权限

37) ZAP←AttackPathExtraction(Init_Priv, Goal_Priv);//提取攻击路径

38) forzapin ZAP:

39) Calculateexploit(zap);

40) CE←exploit;

41) opt_zap=argmax(exploit(zap), zap);

42) Return ZAG=(A, Priv, L, PR), ZAP, CE, opt_zap

算法的核心为步骤13~32,利用步骤5训练完成的分类器逐个预测系统设备可能发生的单步攻击,并区分已知攻击、0day攻击。依托网络防御知识图谱对攻击利用的漏洞及前后置权限进行挖掘,按前后置关系将单步攻击链接为攻击图。由于新的攻击可能使攻击者获取新的权限,因此步骤 29 对知识图谱CKG 进行了实时更新。执行完一轮预测后,若步骤 33 判断无新攻击出现时,预测结束,输出0day攻击图ZAG,并进行攻击路径提取;否则,开始新一轮预测。由于图数据库查询的代价与知识图谱规模无关,仅与遍历范围成正比,而以上查询均以关系路径为约束条件,关系路径长度不超过6,因此每次查询的开销最大为O(6)。假设系统中漏洞数量为N,设备数量为M,每个漏洞均能导致攻击,且每一轮只能发现一例新的攻击,则需执行N轮预测,每一轮包括M次预测,算法时间复杂度为O(6MN)。

4 实验

为验证本文方法的有效性,设计实验环境如图6所示。该实验环境由3个子网组成,子网间部署防火墙实现访问控制。其中,DMZ区域部署的Web服务器及邮件服务器分别提供对外应用服务接口及对内邮件服务;子网1为办公区,部署两台主机及一台文件服务器,文件服务器存储企业机密文件;子网2为业务区,部署应用服务器,为Web服务器提供应用业务支撑。

图6   实验环境

系统中各实体间权限关系矩阵如表4所示,其中,纵向实体为权限拥有者,横向实体为权限载体。系统中脆弱性的分布区分为10组训练场景及1组实验场景,分别用于训练分类器及实施预测。其中,使用9组训练场景生成的攻击样本训练分类器,剩余1组用于生成测试集,测试分类器性能参数;实验场景则主要用于生成0day攻击图、预测0day攻击路径,对比现有研究成果,检验本文方法的优势。表5为训练场景10与实验场景的脆弱性分布信息。

4.1 图谱生成

利用Neo4j desktop 1.3.8图数据库,以网络安全本体(图3)定义的知识模式为基础,建模数据层知识,生成网络防御知识图谱。威胁、资产、脆弱性3个知识模块分别以信息工程大学CTF战队模拟的黑客组织、实验环境设备以及不同场景中存在的脆弱性为核心构建相应实体,并从CAPEC、NVD、CNNVD等公开数据库抽取实体关系、属性等知识。其中,威胁知识方面,攻击者实体命名为“CTF001”,设定其以窃取文件服务器内信息为主要攻击意图,对于其余系统设备以制造攻击“跳板”为意图,其知识图谱表示如图7所示。图7中粉色模块表示攻击模式实体;灰色模块表示设备权限实体;棕色模块表示威胁实体,包括对文件服务器的数据窃取(如 data_stolen_file_server),对防火墙的功能阻断(如function_blocked_ firewall_1)以及对其余设备转发功能的篡取(如function_grabbed_web_server)。脆弱性知识方面,系统中存在的0day漏洞实体及相应关系根据 3.1 节的相关假设进行构建。实际实验过程中,选取可用且能满足攻击者对相应设备攻击意图的技术漏洞模拟攻击者掌握的0day 漏洞。例如,以代码执行漏洞 CVE-202014841模拟App_Server的weblogic_server组件存在的0day漏洞,该漏洞仅需远程访问权限即可触发,获取权限越高,越容易触发,符合0day漏洞可用性假设,且执行后能够完成目标设备的控制,从而满足攻击者对App_Server的攻击意图。

图7   攻击者实体的知识图谱

需要注意的是,不同场景下,漏洞种类、数量、分布不同,在计算路径特征时,需根据场景对知识图谱的相应部分进行替换。

4.2 样本训练

以模拟攻击者的 CTF 战队对不同训练场景下的目标系统的攻击数据为基础,依托知识图谱,以其中被攻击成功的设备为目标实体,计算路径特征,构建攻击正样本{(Hi, y=1)},以攻击失败及未被选择为攻击目标的设备为目标实体,构建攻击负样本{(Hj,y=0)}。在Python3.5环境中使用模型sklearn.linear_model_LogisticRegression构造二元分类器,利用训练场景1~9生成的攻击样本训练LCA。在此基础上,在攻击正样本中,区分0day攻击与已知攻击,分别构造0day攻击正样本及负样本,训练LCZ。使用5-fold交叉验证,获取分类器学习曲线,如图8所示。

图8   分类器学习曲线

使用训练场景10生成的样本作为测试集,进行分类器测试,对比预测结果与实际攻击情况,获取分类器 LCA的精准率为 0.875、召回率为0.917、调和平均值F1为0.883。而分类器LCZ对该测试集的预测结果与实际情况相符。由此可见,分类器对 0day 攻击具有较好的识别能力。

4.3 实验结果

利用4.2节训练完成的分类器LCA与LCZ对实验场景下的目标系统中可能发生的攻击进行预测,生成 0day 攻击图,如图9 实线部分所示。

图9   实验场景0day攻击图

由图9可知,预测攻击过程为:攻击者首先利用远程访问权限对firewall_1发起0day攻击,突破访问控制后,获取E-mail_Server的远程访问权限,利用其操作系统 CentOS 存在的CVE-2018-18772漏洞,发起跨站请求攻击,获取Host_1及 firewall_2的访问权限,可分别利用两者存在的 CVE-2018-12714、CVE-2017-17156 漏洞发起代码注入攻击,通过 Host_1 获取File_server 的访问权限,通过 firewall_2 获取Host_2的访问权限,此时,可直接利用访问权限对File_server发起0day攻击,或对Host_2发起0day攻击,获取File_Server的用户权限,从而触发已知漏洞 CVE-2018-8169。LCA输出单步攻击的发生概率如表6所示。

以获取root_File_Server为最终攻击目的,提取0day 攻击路径包括:zap1:a1→a2→a3→a4以及zap2:a1→a2→a5→a6→a7,利用式(8)计算两路径的综合利用率分别为 0.18、0.21。由此可知,攻击路径zap2虽然涉及5次攻击,多于zap1的4次攻击,但其综合利用率更高,更有可能被该攻击者利用。

4.4 实验分析

根据实验结果,通过对比本文与文献提出的方法,从预测结果的准确性、方法便捷性、适用性、相关知识的全面性以及预测结果可解释性等方面分析本文方法的优势,以验证本文方法的有效性。具体对比分析如表7所示。

准确性方面,利用文献提出的方法生成的0day攻击图除图9实线部分外,还包括虚线所示部分,并且文献简单的根据 0day 攻击数量预测攻击路径 zap1 更可能成为攻击者选择的攻击路径。而本文通过对 0day 存在性假设的约束(Web_Server 中存在 0day 漏洞可能性最高的为apachewebserver 组件,可能性为 0.05),并利用训练完成的分类器 LCA对 Web_Server 发生攻击的概率进行了计算(攻击发生概率0.3),判定攻击关系不成立,较为合理地排除了此处的0day攻击,缩减0day攻击预测结果规模,同时根据综合利用率更合理地预测 zap2 为攻击者选择的攻击路径,提高了预测准确性。

便捷性方面,文献在实施预测前不仅需要收集相关知识,且需构建专门的0day攻击规则作为预测分析的基础,造成了一定的开销,而本文依托网络防御知识图谱及知识图谱推理方法实施预测,无须专门构建0day攻击规则,节省了开销,提高了方法的便捷性。

适用性方面,文献提出的方法,需依赖较为完整的已知攻击路径实施攻击推理,而本实验环境中,Web_server不存在已知漏洞且firewall_1的已知漏洞CVE-2019-1934需用户级权限触发,因而无法在初始权限条件下生成已知攻击路径,文献的方法无法适用于此类场景。

知识全面性方面,本文以当前研究已较为成熟的网络安全领域概念知识为基础,从威胁、资产、脆弱性3个方面构建网络防御知识图谱,并提取关系路径作为特征应用于攻击预测,预测过程不仅使用了文献等涉及的漏洞存在性、可用性、影响等漏洞知识,也结合了攻击意图、资产类型等知识,使预测分析更加全面,提高了预测结果的合理性。

除以上优势外,本文方法生成的预测结果也具有较好可解释性,以发生在Host_2的0day攻击(Host_2, 0day-005)为例,Host_2存在已知漏洞CVE-2018-8472,不需要特殊权限即可触发,然而,分类器 LCZ判断攻击者攻破 firewall_2 获取访问Host_2的能力后,最终实施了0day攻击。依托知识图谱查询实体“CTF001”与“Host_2”间存在的路径如图10 所示,依据图中实体及关系,分析攻击者发起 0day 攻击的原因包括两方面:一方面,由图10中路径可知,攻击者以夺取Host_2的转发功能为目的,但是CVE-2018-8472属性显示,该漏洞仅对目标的机密性产生影响,攻击者无法利用该漏洞实现攻击意图;另一方面,Host_2的windows 7系统属于Microsoft 推出的操作系统,存在0day漏洞的可能性相对较高(表1赋值为0.26),且根据0day漏洞危害性假设,0day攻击能够满足攻击者对目标设备攻击意图。因此,导致攻击者更倾向于使用0day攻击,而不是利用已知漏洞。

图10   实体“CTF001”与“Host_2”间路径

综合以上5个方面可见,本文提出的方法有效可用。

5 结束语

本文针对0day漏洞未知性导致的0day攻击检测难问题以及现有研究在利用条件假设、攻击前后关联等方法克服未知性影响过程中出现的不足,提出了基于网络防御知识图谱的 0day攻击路径预测方法。利用当前研究较为成熟的网络安全本体知识,构建了知识覆盖较全面的网络防御知识图谱,将离散的威胁、脆弱性、资产知识整合为高度关联的知识体系,为攻击预测提供了完备的知识支撑。在此基础上,将攻击预测问题转化为链接预测问题,选取预测精度高且预测结果可解释性强的路径排序算法,提取攻击者实体与目标设备实体存在的关系路径作为特征,更全面地对攻击进行了预测,有效克服了0day漏洞未知性以及专家知识片面性的影响,提高了预测准确性,并对预测结果的可解释性提供了支持。

下一步,在持续优化网络防御知识图谱的基础上,将进一步拓展知识模块,提高攻击预测的准确性,并对同时存在多攻击者情况下,基于知识图谱的网络攻击者溯源问题展开探索。

作者简介

孙澄(1991−),男,江苏常州人,信息工程大学硕士生,主要研究方向为APT检测跟踪 。

胡浩(1989−),男,安徽池州人,博士,信息工程大学讲师,主要研究方向为网络态势感知 。

杨英杰(1971−),男,河南郑州人,博士,信息工程大学教授,主要研究方向为信息安全 。

张红旗(1962−),男,河北遵化人,博士,信息工程大学教授、博士生导师,主要研究方向为网络安全、移动目标防御、等级保护和信息安全管理 。

联系我们:

Tel:010-81055448

010-81055490

010-81055534

E-mail:bdr@bjxintong.com.cn

http://www.infocomm-journal.com/bdr

http://www.j-bigdataresearch.com.cn/

转载、合作:010-81055307

大数据期刊

《大数据(Big Data Research,BDR)》双月刊是由中华人民共和国工业和信息化部主管,人民邮电出版社主办,中国计算机学会大数据专家委员会学术指导,北京信通传媒有限责任公司出版的期刊,已成功入选中国科技核心期刊、中国计算机学会会刊、中国计算机学会推荐中文科技期刊,以及信息通信领域高质量科技期刊分级目录、计算领域高质量科技期刊分级目录,并多次被评为国家哲学社会科学文献中心学术期刊数据库“综合性人文社会科学”学科最受欢迎期刊。

关注《大数据》期刊微信公众号,获取更多内容

虚拟专题:知识图谱 | 基于网络防御知识图谱的0day攻击路径预测方法相关推荐

  1. 【路径规划】基于蚁群算法的多配送中心车辆路径优化方法matlab代码

    1模型介绍 一种基于蚁群算法的多配送中心车辆路径优化方法,首先,针对多配送中心车辆路径优化问题,对各个客户点设计了以最近配送中心为启发式信息的惩罚函数;其次,将具有上述启发式信息的罚函数加入到各配送点 ...

  2. matlab8邻域搜索算法,一种基于可搜索连续邻域A*算法的路径规划方法与流程

    本发明涉及的是一种UUV全局路径规划方法. 背景技术: 无人水下航行器(Unmanned underwater vehicle,UUV)作为一种高技术手段,在海洋这块未来极具价值的发展空间中起着至关重 ...

  3. python路径规划算法可视化_基于粒子群算法的牙齿正畸路径规划方法python实现

    这篇是基于粒子群算法的牙齿正畸路径规划研究的python实现,参考的是徐晓强等人的<基于改进粒子群算法的牙齿正畸路径规划方法>,与这篇文章的区别在于: 1.徐等的文章设计了一种改进的粒子群 ...

  4. 基于网络的入侵检测数据集研究综述(A Survey of Network-based Intrusion Detection Data Sets)

    A Survey of Network-based Intrusion Detection Data Sets 基于网络的入侵检测数据集研究综述 摘要:标记数据对于基于异常的网络入侵检测系统的训练和评 ...

  5. 针对网络脆弱性的攻击图分析方法总结

    简介 目前,有很多网络攻击.网络脆弱性的评估方法,如攻击树.Petri网.攻击图等.攻击图在1997年被提出,已经成为解决网络安全问题广泛使用的方法之一.由于网络拓扑本身就是图结构,攻击图方法主要描述 ...

  6. 基于双向 lstm 和残差神经网络的 rna 二级结构预测方法

    目录 结果 结论 背景 结果 学习结果和演示 预测结果和比较 讨论 结论 材料和方法 数据收集和处理 摘要 背景: 研究表明,rna 二级结构是由配对碱基构成的平面结构,在基本生命活动和复杂疾病中发挥 ...

  7. 一种基于Gradient Boosting的公交车运行时长预测方法

    一种基于Gradient Boosting的公交车运行时长预测方法 赖永炫1,2, 杨旭3, 曹琦4, 曹辉彬1,2, 王田5, 杨帆6 1 厦门大学信息学院,福建 厦门 361005 2 厦门大学深 ...

  8. 基于小波Elman神经网络的短期风电功率预测

    风力发电在全球范围内快速发展,装机容量逐年增加,截止2013 年底,中国风电新增装机容量约 16.1GW,较 2012 年的 12.96GW 大幅提高了 24%,中国风电累计装机已超过 90GW. 风 ...

  9. 基于张量的多元多阶马尔科夫多模态预测方法

      本博客整理自研读的论文,文末会附上出处. 基于张量的多元多阶马尔科夫多模态预测方法 一.问题背景 二.多元多阶马尔科夫模型 1.张量连接和张量统一乘 2.多元多阶马尔科夫转移模型 3.多元多阶马尔 ...

最新文章

  1. Java项目:在线课程会员系统(java+Springboot+Maven+JSP+Spring+Mysql+layui)
  2. TDD可以驱动设计吗?
  3. 「思想钢印」成真!33位中美科学家最新成果:用光成功改变大脑认知
  4. SICStus Prolog 3.10.0正式版下载
  5. 面试「计算机操作系统」知识点大集合!
  6. 浅入深出Vue:发布项目
  7. ElementTree中的getchildren and getiterator
  8. 关于“无法完成该动作 到Microsoft Exchange的连接不可用”的解决办法
  9. 零食嘴----美食领域的美丽说
  10. 时间加密算法_物联网安全:可计算加密算法
  11. 如何解压POSIX tar archive文件
  12. win7欢迎界面时间长_win7系统msvcr100.dll丢失如何解决msvcr100.dll丢失解决方法【详解】...
  13. 科大讯飞语音合成python版
  14. Flash键盘钢琴谱
  15. 两年小前端裸辞求职经历
  16. 9 与python2交互
  17. MySQL 的安装与启动
  18. php苹果笔记本编程,Mac端软件推荐,让你成为编程高富帅!
  19. 复选框的全选、全不选、和获取选中的值;
  20. 大数据专业毕业后职业前景如何?

热门文章

  1. python 根据文件夹大小删除修改时间比较早的文件
  2. js实战代码系列—带你玩jQuery带你飞
  3. PHP获取客户端ip的五种方式
  4. Unity手游之路十自动寻路Navmesh之跳跃,攀爬,斜坡
  5. Android 4.1新增功能特性
  6. 扬长避短使用Windbg和Visual Studio高效调试调试你的代码
  7. 奉献一个窗口置顶的小工具
  8. 机器学习基石-作业四-代码部分
  9. [读书笔记] Effective C++
  10. PAT L3-015 ---- 球队“食物链”(DFS)