基于连续时间动态异质图神经网络的APT检测方法及系统与流程

文档序号:33710243发布日期:2023-03-31 23:27阅读:171来源:国知局
基于连续时间动态异质图神经网络的APT检测方法及系统与流程
基于连续时间动态异质图神经网络的apt检测方法及系统
技术领域
1.本发明属于网络安全领域,具体涉及到基于连续时间动态异质图神经网络的apt检测方法及系统。


背景技术:

2.近年来以高级持续性威胁(advanced persistent threat, apt)为代表的针对电力系统的网络攻击频发。apt攻击是具有高水平专业知识和丰富资源的组织利用复杂的攻击手段对特定目标进行的长期持续性的网络攻击行为。在apt攻击中,攻击者首先通过各种方式绕过边界防护入侵网络;然后将失陷主机作为“桥梁”,逐步获得更高的网络权限,并不断地窥探目标数据;最后攻击者破坏系统并删除恶意行为痕迹。相较于传统的网络攻击模式,apt攻击具有“时空稀疏”,即“低姿态-低频率”(low-and-slow)的特点,使得针对apt攻击的识别非常困难,造成的危害极大。
3.针对apt攻击的检测技术总体上可分为特征检测(误用检测)和异常检测。特征检测通过定义网络入侵的特征码,基于模式匹配判断网络系统中的流量、用户操作、系统调用等实体行为是否包含入侵行为。此类方法基于专家知识和经验积累了大量行之有效的规则,对于已知的攻击行为可以实现高效准确地检测,但是无法有效检测出未知攻击行为。基于统计机器学习的异常检测方法,通过收集网络系统中各种实体的行为数据来训练基线模型,当出现偏离基线达到阈值时则被判定为网络攻击行为。此类异常检测方法的主要优点是具有一定的泛化能力,能够检测特征库以外的未知攻击行为。但是,一方面根据下游任务不同,检测结果非常依赖基于人工经验的特征工程的质量。另一方面存在对apt检测误报率高的问题。主要原因是apt攻击具有“时空稀疏”特性,攻击者长期潜伏,并且涉及用户和主机多个维度的行为,各种行为的痕迹少,且不规律,很难在海量正常行为的数据中精准捕获异常行为。
[0004]“图”(graph)可以在计算机网络的非欧式空间中更自然、更完整地表示主体(例如,用户)和对象(例如,pc)之间的动态关系(例如,登录后退出)。近年基于图神经网络(graph neural networks,gnn)的异常检测方法受到了广泛关注。此类方法首先以“图”的方式对网络中的主体和对象以及它们之间的关系建模,接着输入gnn模型进行图表示学习获得图的嵌入表示(embedding)信息,然后通过分类算法完成攻击检测乃至溯源和预测任务。当前基于gnn的检测方法通常通过图快照的序列来表示动态图。然而,这种离散动态图的方式不能完全表征计算机网络的属性,因为真实计算机网络的交互事件通常在连续时间动态图下进行(边可以随时出现)和演变(节点属性不断更新)的。
[0005]
因此,目前基于图神经网络的方法在apt检测方面的性能仍然有限,本质原因是各种检测模型存在对网络实体自身及其交互事件的嵌入信息提取能力不足的挑战,主要体现在以下三个方面:1)由于apt攻击行为在时间和空间上的稀疏分布,离散图快照序列表示可能导致丢失一些重要的“桥梁”交互事件,从而降低检测性能;2)网络中的实体及其行为是多维异质的,连续发生的,缺乏实体自身和实体间交互事件的完整的上下文信息,恶意攻击
很难被识别;3)基于离散图快照的方法对整个网络拓扑的全图进行检测,不仅需要大的内存空间进行实时流分析,而且会导致粗粒度的结果,缺少上下文信息。


技术实现要素:

[0006]
为解决上述问题,本发明提供了一种基于连续时间动态异质图神经网络(continuous-time dynamic heterogeneous graph network, cdhgn)的端到端的apt攻击检测方法及系统。其核心思想是将“点”“边”独立的异质的记忆体和注意力机制融入到了图中节点和边的信息传播过程中,对连续时间动态图中承载的计算机网络实体自身和实体间的交互信息进行时间维度和空间维度的深层关联,进而捕获异常边(异常交互事件)。
[0007]
本发明采用以下技术方案。
[0008]
一方面,本发明提供基于连续时间动态异质图神经网络的apt检测方法,包括:选取指定时间段内的网络交互事件数据,从所述网络交互事件数据中提取实体作为源节点和目标节点,提取源节点和目标节点之间交互事件作为边,确定节点类型和属性、边的类型和属性,以及交互事件发生的时刻,获得连续时间动态异质图;利用连续时间动态异质图网络编码器,将所述连续时间动态异质图的各类型边转化为向量,得到各类型边的嵌入表示;利用连续时间动态异质图网络解码器,对连续时间动态异质图中各类型边的嵌入表示进行解码,获得各类型边是否为异常边的检测结果。
[0009]
进一步地,所述连续时间动态异质图表示为十元组的集合,表示为:{(src,e,dst,t,src_type,dst_type,edge_type,src_feats,dst_feats,edge_feats)},其中src表示源节点,dst表示目标节点;e表示连接源节点和目标节点的边;t表示源节点与目标节点发生交互事件的时刻;src_type,dst_type,edge_type分别为源节点的类型、目标节点的类型和边的类型;src_feats,dst_feats,edge_feats分别为源节点的属性、目标节点的属性和边的属性。
[0010]
进一步地,利用连续时间动态异质图网络编码器,将所述连续时间动态异质图的各类型边转化为向量,得到各类型边的嵌入表示,包括:针对连续时间动态异质图中每一个边,均利用消息函数,根据交互事件发生的当前时刻和上一时刻的时间间隔、连接源节点和目标节点的边、源节点和目标节点在交互事件发生的当前时刻之前时刻的嵌入表示记忆,分别生成各源节点和目标节点在交互事件发生的当前时刻对应的消息值;利用聚合函数分别将本批次所有源节点和目标节点在各交互事件发生的时刻对应消息值进行消息聚合,分别获得各源节点和目标节点在本批次的嵌入表示记忆;在源节点和目标节点之间发生交互事件后更新节点在本批次各源节点和目标节点的嵌入表示记忆;分别将各源节点和目标节点在本批次更新后的嵌入表示记忆,与上一批次的嵌入表示记忆进行记忆融合,分别获得本批次各源节点和目标节点包含时间上下文信息的嵌入表示;根据各源节点和目标节点包含时间上下文信息的嵌入表示、源节点和目标节点之间的边、预设的节点的注意力权重矩阵和边的注意力权重矩阵,计算各节点的注意力分数;根据预设的边的消息权重矩阵、节点的消息权重矩阵,对目标节点利用消息传递
函数,抽取其对应的各个源节点的多头消息值,并进行拼接,生成各源节点的消息向量;根据各节点的注意力分数,聚合各源节点的消息向量后传递给目标节点,得到各源节点和目标节点包含空间上下文信息的嵌入表示;将边的源节点包含时间上下文信息的嵌入表示和目标节点包含空间上下文信息的嵌入表示进行合并,根据边的类型得到各类型边的包含时间和空间上下文信息的嵌入表示。
[0011]
再进一步地,进行消息聚合时分别考虑以下情况:情况一、若同一源节点同时连接到不同的目标节点,聚合函数取所有消息值的平均值;情况二、若同一个源节点在不同时间连接到同一个目标节点,聚合函数只保留给定节点的最新时刻的消息值;情况三、若同一个源节点在不同的时间连接到不同的节点目标,聚合函数也设置为所有消息值的平均值。
[0012]
进一步地,所述连续时间动态异质图网络解码器的训练方法包括:输入各类型边的嵌入表示,通过对各类型边的嵌入表示进行样本标注获得样本标签,对所述连续时间动态异质图网络编码器和所述连续时间动态异质图网络解码器进行有监督训练,从而确定在某个时间点某源节点和某目标节点之间边的嵌入表示是否存在异常。
[0013]
进一步地,所述连续时间动态异质图网络解码器采用二分类交叉熵损失函数定义如下:;其中,是由所述连续时间动态异质图模型输出的t时刻第

个边异常判定的结果,是对应的样本标签值。
[0014]
第二方面,本发明提供了基于连续时间动态异质图神经网络的apt检测系统,包括:图构建模块、网络编码器和网络解码器;所述图构建模块,用于选取指定时间段内的网络交互事件数据,从所述网络交互事件数据中提取实体作为源节点和目标节点,提取源节点和目标节点之间交互事件作为边,确定节点类型和属性、边的类型和属性,以及交互事件发生的时刻,获得连续时间动态异质图;所述网络编码器,用于将所述连续时间动态异质图的各类型的边转化为向量,得到各类型边的嵌入表示;所述网络解码器,用于对连续时间动态异质图中各类型边的嵌入表示进行解码,获得各类型边是否为异常边的检测结果。
[0015]
进一步地,所述系统还包括训练模块,所述训练模块用于训练所述网络编码器和网络解码器。
[0016]
进一步地,网络编码器包括节点时间记忆网络和节点空间注意力网络;所述节点时间记忆网络包括第一消息模块、第一聚合模块、记忆更新模块和记忆融合模块;所述节点空间注意力网络包括注意力模块、第二消息模块和第二聚合模块;
所述第一消息模块,用于针对连续时间动态异质图中每一个边,均利用消息函数,根据交互事件发生的当前时刻和上一时刻的时间间隔、连接源节点和目标节点的边、源节点和目标节点在交互事件发生的当前时刻之前时刻的嵌入表示记忆,分别生成各源节点和目标节点在交互事件发生的当前时刻对应的消息值;所述第一聚合模块,用于利用聚合函数分别将本批次所有源节点和目标节点在各交互事件发生的时刻对应消息值进行消息聚合,分别获得各源节点和目标节点在本批次的嵌入表示记忆;所述记忆更新模块,用于在源节点和目标节点之间发生交互事件后更新节点在本批次各源节点和目标节点的嵌入表示记忆;所述记忆融合模块,用于分别将各源节点和目标节点在本批次更新后的嵌入表示记忆,与上一批次的嵌入表示记忆进行记忆融合,分别获得本批次各源节点和目标节点包含时间上下文信息的嵌入表示;所述注意力模块,用于根据各源节点和目标节点包含时间上下文信息的嵌入表示、源节点和目标节点之间的边、预设的节点的注意力权重矩阵和边的注意力权重矩阵,计算各节点的注意力分数;所述第二消息模块,用于根据预设的边的消息权重矩阵、节点的消息权重矩阵,对目标节点利用消息传递函数,抽取其对应的各个源节点的多头消息值,并进行拼接,生成各源节点的消息向量;所述第二聚合模块,用于根据各节点的注意力分数,聚合各源节点的消息向量后传递给目标节点,得到各源节点和目标节点包含空间上下文信息的嵌入表示;将边的源节点包含时间上下文信息的嵌入表示和目标节点包含空间上下文信息的嵌入表示进行合并,根据边的类型得到各类型边的包含时间和空间上下文信息的嵌入表示。
[0017]
进一步地,所述注意力模块包括相连的若干异质图卷积层和连接在若干异质图卷积层之后的线性变换层;注意力模块计算各节点的注意力分数的方法包括:上一个异质图卷积层的目标节点与边的嵌入表示拼接生成向量,表示为:;将上一个异质图卷积层的源节点与边的嵌入表示拼接生成向量,表示为:;其中为当前异质图卷积层的层数,表示边的第异质图卷积层的嵌入表示;表示源节点的第异质图卷积层的嵌入表示;表示目标节点的第异质图卷积层的嵌入表示;使用线性变换层k-linear-noded和q-linear-noded,将向量和向量映射到第d个key向量和第d个query向量;
为不同的节点类型分配一个独立的节点的注意力权重矩阵;为不同的边类型分配一个独立的边的注意力权重矩阵;对于第d个注意力头,结合第d个key向量、第d个query向量、节点的注意力权重矩阵和边的注意力权重矩阵,计算源节点的第d个注意力头的注意力分数,表达式如下:;;;对所有m个头的注意力分数进行拼接并进行归一化,得到源节点与目标节点之间在当下异质图卷积层的最终注意力分数,表达式为;其中n(dst)为目标节点的所有相邻节点。
[0018]
进一步地,所述第二消息模块,执行以下步骤:在计算当下异质图卷积层的注意力分数的同时,对于第d个注意力头,使用线性变换层v-linear-noded,将上一个异质图卷积层的源节点与边的嵌入表示拼接生成的向量,表示为:,进行线性映射;为不同的节点类型分配一个独立的节点的消息权重矩阵,为不同的边类型分配一个独立的边的消息权重矩阵;对于第d个注意力头,结合v-linear-noded线性变换后的向量、节点的消息权重矩阵和对应边的消息权重矩阵生成第d个注意力头的消息向量,表示为:;对所有m个头的消息向量进行拼接,得到源节点在当下第异质图卷积层的最终消息值,表示为:。
[0019]
进一步地,针对目标节点,根据各目标节点和各源节点的最终注意力分数,聚合各源节点的最终消息值后传递给目标节点,得到各目标节点在当下异质图卷积层的空间上下
文信息的嵌入表示,其中目标节点的第异质图卷积层的嵌入表示表示为:。
[0020]
本发明的有益技术效果:本发明将“点”“边”独立的异质的记忆体和注意力机制融入到了图中节点和边的信息传播过程中,对连续时间动态图中承载的计算机网络实体自身和实体间的交互信息进行时间维度和空间维度的深层关联,进而捕获异常边(异常交互事件);充分利用了体自身和实体间交互事件的完整的上下文信息,容易识别恶意攻击。
附图说明
[0021]
图1为本发明实施例提供的检测方法的原理框图;图2为本发明实施例中连续时间动态异质图示意图;图3为本发明实施例中连续时间动态异质图神经网络结构示意图。
具体实施方式
[0022]
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本公开实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本公开。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本公开的描述。
[0023]
下面将结合附图详细说明基于连续时间动态异质图神经网络的apt检测方法。如图1所示,本方法包括使用离线数据训练(离线训练)和对在线数据检测(在线检测)两个阶段。
[0024]
1.整体流程阶段 (1) 离线训练包括以下步骤:步骤101:历史日志数据获取:根据应用场景确定所需数据项,然后收集网络中对应的各类安全设备产生的海量异质历史日志。例如,包括但不局限于系统日志数据(process进程调用,http网络访问,email收发邮件,logon用户登录主机,file访问文件等)。
[0025]
步骤102:连续时间动态异质图(continuous-time dynamic heterogeneous graph, cdhg)构建:对步骤101提供的历史日志数据进行预处理,本实施例中,选中相关用户在指定时间段内数据并进行格式化;然后从中提取用户和实体间的行为(“用户-用户”、“用户-实体”、“实体-实体”),进而并构建连续时间动态异质图cdhg)。
[0026]
步骤103:连续时间动态异质图网络(cdhgn)编码器:将步骤102生成的连续时间动态异质图数据,输入cdhgn编码器进行编码,获得各网络交互事件对应的“边”的嵌入表示(向量)。
[0027]
步骤104:连续时间动态异质图网络(cdhgn)解码器:将步骤103生成的边嵌入表示(向量)输入cdhgn解码器,进行异常边概率模型离线训练。
[0028]
阶段(2)在线检测包括以下步骤:步骤201:
ꢀꢀ
当前日志数据:参照训练阶段采集的数据项,进行实时的各项日志数
据的收集。
[0029]
步骤202:连续时间动态异质图(cdhg)的构建:与阶段(1)离线训练阶段的步骤102相同,参照阶段(1)中步骤102描述的步骤构建连续时间动态异质图。
[0030]
步骤203 :连续时间动态异质图网络(cdhgn)编码器:直接使用阶段(1)训练完毕的cdhgn的所有参数,对输入的各网络交互事件对应的“边”,计算出嵌入表示(向量)。
[0031]
步骤204:连续时间动态异质图网络(cdhgn解码器:将在线检测阶段中步骤203生成的边嵌入表示(向量)输入cdhgn解码器,并直接输出是否为异常边的检测结果。
[0032]
本方法采用“编码器-解码器”架构,详细解释见“3.连续时间动态异质图网络(cdhgn)编码器”和“4.连续时间动态异质图网络(cdhgn)解码器”。
[0033]
编码器包含两部分:节点时间记忆网络和节点空间注意力网络。
[0034]
节点时间记忆网络包括以下部分:异质消息(第一消息)、消息聚合(第一聚合)和记忆融合/记忆更新。节点时间记忆网络在时间维度上,独立融合并更新不同类型节点(实体)和边(交互)的历史状态信息。
[0035]
节点空间注意力网络包括以下部分:异质注意力(计算各节点的注意力分数)、异质消息传递(第二消息)和异质消息聚合(第二聚合)。节点空间注意力网络在空间维度上,为不同类型的节点和边使用专门的参数矩阵,对节点的邻居节点进行消息传递和聚合,进而为不同类型的节点和边计算异质注意力分数。
[0036]
解码器包含两个部分:多层感知机(multilayer perceptron, mlp)网络和损失函数。解码器部分通过复原已编码的标注样本数据的嵌入表示来完成模型的有监督训练,实现在某个时刻,根据某源节点和某目标节点的嵌入表示将这两个节点间的连接“边”,即交互事件,分类为正常或异常。
[0037]
2.连续时间动态异质图(cdhg)构建可选地,使用以下流程预处理原始日志的数据:1)过滤器(filter)在原始历史日志中获取指定时间窗口内的数据,并过滤掉无效的数据;2)采样器(sampler)在时间窗口内随机采样出实体集合,以及这些实体相关的交互事件集合;3)格式化器(formatter)针对采样得到的实体和相应的交互事件进行格式化处理,获得按时间有序排列的交互事件列表。
[0038]
采用连续时间动态异质图对计算机网络中交互式关系进行建模。令src表示源节点,dst表示目标节点;e表示连接源节点和目标节点的边,即交互事件;t表示源节点与目标节点发生交互事件的时刻;src_type,dst_type,edge_type分别为源节点的类型,目标节点的类型和边的类型;src_feats,dst_feats,edge_feats分别为源节点的属性,目标节点的属性和边的属性。因此,带时间戳的交互事件日志定义为十元组(src,e,dst,t,src_type,dst_type,edge_type,src_feats,dst_feats,edge_feats)。相应地,连续时间异质动态图(continuous-time dynamic heterogeneous graph,cdhg)定义为该元组的集合{(src,e,dst,t,src_type,dst_type,edge_type,src_feats,dst_feats,edge_feats)}。
[0039]
如图2显示为一个连续时间动态异质图的实例。不同类型的填充图案/连接线表示不同类型的节点/边,即异质节点/异质边。计算机网络中不同类型的节点之间存在多种不
同关系,为了展示数据的连续时间动态特性,采用“主体

行为@时刻

客体”的标注方式。这里主体为源节点src,客体为目标节点dst。例如,当用户(user123)在时间t登录pc(pc456)时,时间t将分配给用户和pc之间的边。根据发生的事件时间,各节点可以分配多个时间戳对应的操作:user123

logon@9am

pc456表示user123在上午9:00对pc456执行了logon登陆操作,这意味着员工早上刚刚在工作站打开计算机。以此类推,pc456

visit@10am

website、website

download@11am

file,表示pc456在上午10:00对某website网站执行了visit访问操作,接着于上午11:00在该网站下载了文件file;pc456

open@2pm

file、pc456

write@5pm

file表示pc456在下午2点打开文件,并在下午5:00对该文件进行了写操作;user123

logoff@8pm

pc456表示用户user123在晚上8:00对pc456执行了logoff登出操作,这可能意味着员工下班后关闭了电脑。
[0040]
3.连续时间动态异质图网络(cdhgn)编码器cdhgn编码器,如图3所示,包括节点时间记忆网络和节点空间注意力网络两个部分。相关公式变量注释如下。
[0041] 为第

类节点的第

个节点;为第

类节点的第

个节点;为连接节点和节点的边;为在

时刻前节点的记忆;为在

时刻前节点的记忆;为源节点消息函数,为目标节点消息函数;为节点(连接着节点)的消息值;为节点(连接着节点)的消息值;agg为聚合函数;为

时刻的节点的记忆;为融合历史信息的节点

的嵌入表示;为源节点的第d个注意力头的注意力分数;为边的第异质图卷积层的嵌入表示;为源节点的第异质图卷积层的嵌入表示;为第d个key向量;为第d个query向量;为边的注意力权值矩阵;为目标节点的所有相邻节点;为第d个注意力头的消息向量;为边的消息权重矩阵;为目标节点的第异质图卷积层的嵌入表示。
[0042]
具体计算流程可以分为以下步骤:

输入前一批数据:将前一批的原始数据向量化得到输入向量;

第一消息:由

所输入的向量通过第一消息函数(异质消息函数)计算得到输入节点的消息值;

第一聚合:根据聚合策略,聚合本批次每个节点的消息值。
[0043]

记忆更新:通过lstm循环神经网络生成每个节点的历史记忆嵌入;

输入当前批次数据:将当前批次的原始数据向量化得到输入向量;

记忆融合:将当前批次数据涉及的节点的历史记忆嵌入与由

得到的输入向量进行融合,此处融合采用向量相加的方式,但融合方式不局限于此方式;

时间上下文嵌入:由

计算获得各个节点的嵌入表示,即向量值,即为该节点的时间上下文嵌入表示;

时间空间上下文嵌入:将由

获得的各节点的时间上下文嵌入,输入共l层的节点注意力网络,获得各节点的时间空间上下文嵌入表示;并将源节点和目标节点的时间空间上下文嵌入表示进行合并,获得边的时间空间上下文嵌入表示;

异常边检测:将由

获得的边的时间空间上下文嵌入表示输入cdhgn解码器并判别此边为正常或异常;

输入下一批次数据:将下一批次的原始数据向量化得到下一批次的输入向量,循环以上步骤。
[0044]
以下进行详细说明。
[0045]
(1)节点时间记忆网络节点时间记忆网络包括异质消息(第一消息)、消息聚合(第一聚合)和记忆融合/记忆更新三个部分。节点时间记忆网络在时间维度上,独立融合并更新不同类型节点(实体)和边(交互)的历史信息。
[0046]
节点空间注意力网络包括异质注意力(注意力)、异质消息传递(第二消息)和异质消息聚合(第二聚合)三个部分。节点空间注意力网络在空间维度上,为不同类型的节点和边使用专门的参数矩阵,对节点的邻居节点进行消息传递和聚合,进而实现不同类型的节点和边计算异质注意力分数。
[0047]
11)异质消息(heterogeneous message)对涉及节点(实体)的所有网络交互事件,均生成对应的消息值。根据交互事件源节点和目标节点在t时刻发生交互事件,生成连接节点和节点的边,则生成两个消息和消息,其中消息表示节点(连接着节点)的消息值,表示节点(连接着节点)的消息值;;;其中表示时间间隔。源节点消息函数和目标节点消息函数直接将输入的向量进行拼接。这里消息函数可扩展设置为可学习的函数。
[0048]
12)消息聚合(message aggregator)模型训练过程中,一个训练批次的数据中会遇到多个交互事件涉及同一节点的情况。因此,当每个交互事件生成一条消息时,使用以下机制来进行聚合,获得聚合结果,其中:
;其中,

,表示本批次源节点在各交互事件发生的时刻,t表示源节点与目标节点发生交互事件的时刻,即本批次源节点在各交互事件发生的当前时刻;这里,agg表示聚合函数。在此阶段,根据异质性,聚合函数面临三种情况:情况一、同一个源节点同时连接到不同的目标节点;情况二、同一个源节点在不同时间连接到同一个节点;情况三、同一个源节点在不同的时间连接到不同的节点。
[0049]
相应地,聚合函数的聚合策略分为三种类型:对于情况一,聚合函数取所有消息的平均值。对于情况二,聚合函数只保留给定节点的最新时刻的消息值。对于情况三,聚合函数也设置为所有消息的平均值。这里,聚合函数的各个聚合策略作可设置为可学习函数。
[0050]
13)记忆更新;每个交互事件(边)涉及的节点(源节点和目标节点)的记忆信息都会在交互事件发生后进行更新。这里,mem是一个可学习的记忆更新函数,采用长短期记忆网络(long short-term memory,lstm)。
[0051]
14)记忆融合上一个批次的数据更新了记忆体信息,在当前批次的交互事件到来时,将该批次的数据涉及的节点的最新信息和这些节点的历史信息通过融合函数进行融合。这里的融合函数定义为:;表示由节点的属性构成的向量。
[0052]
(2)节点空间注意力网络每个批次的各个节点在经过节点时间记忆网络的计算流程后,获得其对应的嵌入表示。接下来,融合历史信息的节点

的嵌入表示被输入节点空间注意力网络。
[0053]
节点空间注意力网络在空间维度上,为不同类型的节点和边使用专门的参数矩阵,对节点的邻居节点进行消息传递和聚合,进而实现不同类型的节点和边计算异质注意力分数。
[0054]
异质注意力网络包括异质注意力(注意力)、异质消息传递(第二消息)和异质消息聚合(第二聚合)三个部分:1)异质注意力,计算连接到每个不同边的源节点的权重;2)异质消息传递,提取源节点和边的信息;3)异质消息聚合,通过注意力权重系数聚合得到目标节点的所有源节点信息。
[0055]
21)注意力-异质注意力
令交互事件(边)e的目标节点的嵌入表示和源节点src的嵌入表示。然后将目标节点dst映射到query向量,源节点src映射到key向量。
[0056]
在复杂的apt攻击检测任务中,为了更好地利用连接源节点和目标节点的边所包含的信息,将边的特征分别与query和key向量进行拼接扩展得到向量和向量。为了最大化参数共享,同时仍然保持不同关系之间的唯一性,对不同类型的节点和边使用独立的参数矩阵。||为拼接函数。注意力分数的计算机制如下:;;;;首先,将上一个异质图卷积层的目标节点与边的嵌入表示拼接生成向量,表达式为,将上一个异质图卷积层的源节点与边的嵌入表示拼接生成向量,即表达式为,其中为当前异质图卷积层的层数;使用线性变换层k-linear-noded和q-linear-noded,将它们映射到第d个key向量和query向量;为不同的节点类型分配一个独立的节点的注意力权重矩阵;为不同的边类型分配一个独立的边的注意力权重矩阵;对于第d个注意力头,结合、向量、节点的注意力权重和边的注意力权重矩阵,计算源节点的第d个注意力头的注意力分数,表达式如下:;其中、为中间参数,表达式为:;;然后,对所有d个头的注意力分数进行拼接并使用softmax函数进行归一化,得到
源节点在当下异质图卷积层的最终注意力分数,表达式为。
[0057]
22)异质消息传递在计算当下异质图卷积层的注意力分数的同时,对于第d个互注意力头,使用线性变换层v-linear-noded,将上一个异质图卷积层的源节点与边的嵌入表示拼接生成的向量,表达式为,进行线性映射;然后,为不同的节点类型分配一个独立的节点的消息权重矩阵,为不同的边类型分配一个独立的边的消息权重矩阵,以缓解不同类型节点和边的分布差异;然后,对于第d个互注意力头,结合v-linear-noded线性变换后的向量、和生成第d个互注意力头的消息向量,表达式为:;然后,对所有d个头的消息向量进行拼接,得到源节点在当下异质图卷积层的最终消息值,表示为:。
[0058]
23)异质消息聚合最后,在聚合阶段,根据不同的边连接关系聚合源节点和目标节点的信息。
[0059]
针对目标节点,根据各目标节点和各源节点的互注意力分值,聚合各源节点的消息值后传递给目标节点,得到各目标节点的第异质图卷积层的嵌入表示,表示为:;最后,编码器将边的源节点和目标节点的嵌入表示进行合并,得到各类型的各边的包含时间和空间上下文信息嵌入表示,供解码器使用。需要说明的是,本技术中不需要限定具体合并的方式,“合并”的方式可有很多方法,比如在实施例中采用相加,向量点乘或求均值等等。
[0060]
4.连续时间动态异质图网络(cdhgn)解码器cdhgn解码器为多层感知机(multilayer perceptron,mlp)网络结构。解码器部分通过复原已编码的标注样本数据的嵌入表示来完成模型的有监督训练,实现在某个时间点的某源节点和某目标节点的嵌入表示来计算出这两个节点间的连接,即交互事件,是否存在异常。
[0061]
异常边概率模型大多数图神经网络专注于获取节点的嵌入表示,但是复杂的 apt攻击检测任务依赖于图中的边的关系来确定是否为攻击行为。为此,本方法将边两侧节点的嵌入表示进行拼接得到边的嵌入表示,接着将边的嵌入表示输入全连接层映射回高维特征空间,最后输入到softmax层得到该边属于攻击交互事件的概率。
[0062]
损失函数
此处攻击行为检测只有正例和负例,是二分类任务,两者的概率之和为1,其二分类交叉熵损失函数定义如下:;其中,是由所述连续时间动态异质图模型输出的t时刻第

个边异常判定的结果,是对应的样本标签值。
[0063]
5.实验分析51)基线方法实验的基线方法包括tiresias(tiresias: predicting security events through deep learning[j]. proceedings of the 2018 acm sigsac conference on computer and communications security, 2018)、log2vec/log2vec++(log2vec: a heterogeneous graph embedding based approach for detecting cyber threats within enterprise[j]. proceedings of the 2019 acm sigsac conference on computer and communications security, 2019)、ensemble(an unsupervised multidetector approach for identifying malicious lateral movement[c]//2017 ieee 36th symposium on reliable distributed systems (srds). ieee, 2017: 224-233)、markov-c(a new take on detecting insider threats: exploring the use of hidden markov models[c]//proceedings of the 8th acm ccs international workshop on managing insider security threats. 2016: 47-56)、streamspot(fast memory-efficient anomaly detection in streaming heterogeneous graphs[c]//proceedings of the 22nd acm sigkdd international conference on knowledge discovery and data mining. 2016: 1035-1044)以及rshield(a refined shield for complex multi-step attack detection based on temporal graph network[c]//dasfaa. 2022)。
[0064]
tiresias是一种先进的日志级监督方法,通过利用循环神经网络rnn,根据历史交互事件数据来预测对未来交互事件进行异常检测。该方法可以在各种带有噪声的交互事件中进行安全交互事件预测。
[0065]
log2vec是一种无监督方法,可将恶意活动和良性活动分成不同的集群并识别恶意活动。该方法包括三个部分:图构建,图嵌入学习,以及检测算法。具体来说,log2vec首先通过基于规则的启发式方法构建包含日志记录间关系映射的异质图,利用映射可以表示用户的典型行为以及恶意操作;其次,log2vec基于人为设定的规则将日志记录转换成序列和子图,以此来构建成一个异质图;最后,针对不同的攻击场景,log2vec通过改进随机游走的方式来提取每个节点的上下文,并利用聚类方法来进行识别恶意行为的类别。
[0066]
ensemble提出了一种面向基于横向移动的攻击检测方法,该方法通过图模型对目标系统安全状态建模,并通过使用多种异常检测技术来关联和识别受感染的主机的多种行为指标的异常行为。
[0067]
markov-c研究通过对用户正常行为进行建模来检测是否存在内部异常行为。具体来说,利用隐马尔可夫模型来学习正常行为的构成元素,然后使用它们来检测与该行为的
显着偏差。
[0068]
streamspot是一种检测恶意信息流的先进方法,首先获取图概要,然后通过聚类来确定概要中的异常。
[0069]
rshield是一种基于tgn模型的有监督的多步骤复杂攻击检测模型。该模型引入了一种连续图构建方法来对网络行为进行建模,在此基础上,采用改进的时间图分类器来检测恶意网络交互事件。改模型仅支持同质图建模,捕获网络实体行为的上下文信息的能力仍然有限。
[0070]
52)评估指标为了衡量研究问题中提到的检测结果,本方法采用auc分值作为性能指标。auc相对而言对数据集的不平衡性不太敏感,在取值1处达到其最佳值,在0处达到最差值。如果一个方法在数据集上的auc分值较高,则认为其预测更正确。
[0071]
53)实验环境实验运行在intel core i9 2.8ghz 32gbram的pc主机上,操作系统为windows10 64bit,gpu为nvidia rtx2060s,8gb 现存。原型系统基于python开发,版本为3.8.5,pytorch版本为1.10.0,实现了ctdg构造,ctdgn模型训练和流式异常交互事件检测。
[0072]
54)数据集实验中使用了两个网络安全数据集:一个是真实数据集-lanl 的综合网络安全交互事件数据集(cyber security data sources for dynamic network research[m]// dynamic networks and cyber-security. [s.l.]: world scientific, 2016: 37-65),另一个是人工智能生成的数据集-cert内部威胁测试数据集(bridging the gap: a pragmatic approach to generating insider threat data[c]//2013 ieee security and privacy workshops. ieee, 2013: 98-104)。
[0073]
lanl数据集代表从该公司内部计算机网络中的五个来源(authentication, process, network flow, dns and redteam)收集的连续58天的交互事件数据。lanl数据集的身份验证(authentication)交互事件包括在lanl公司内部计算机网络中为12,425位用户和17,684台计算机在58天内收集的1,648,275,307条日志记录。redteam数据为红队成员在身份验证数据中人工标注的攻击交互事件,这些交互事件用作与正常用户和计算机活动不同的不良行为的基本事实。因此,本文只使用认证数据形成连续时间动态图来检测恶意样本。在预处理阶段,本文随机选择了lanl数据集的子集,其中包含从10,895个节点(用户-主机对)生成的9,918,928条边,以及由104个用户生成的所有691次恶意交互事件。
[0074]
cert数据集包含来自模拟机构计算机网络的内部威胁活动的交互事件日志。该数据集由复杂的用户模型生成,共包含五类日志文件,模拟了组织中所有员工的基于计算机的活动,包括登录/注销活动(logon/logoff activity),http流量(http traffic),电子邮件流量(email traffic),文件操作(file operations),和外部存储设备使用情况(external storage device usage)。本文将它们与组织结构(organization structure)和用户信息(user information)结合使用。在516天的过程中,4,000名用户生成了135,117,169个交互事件(日志行)。其中包括由领域专家手动注入的攻击交互事件,代表正在发生的五种内部威胁场景。此外,还包括用户属性元数据;即六类属性:角色(role)、项目(project)、职能单元(functional unit)、部门(department)、团队(team)、主管
(supervisor)。与lanl数据集不同,cert(v6.2) 数据集是的五个攻击场景中,同一场景下只有一个恶意用户的一系列攻击步骤,这使得有监督检测任务更具挑战性。原始数据中,内部人员活动的日志分别存储在五个独立的文件中(登录/关闭、可移动设备、http、电子邮件和文件操作)。为此,将异质的日志信息整合到一个同质文件中,并进行内部人员恶意行为的特征提取。本文从cert数据集中提取两种类型的信息作为数据特征:属性特征和统计特征。属性特征包括:上述6项用户属性元数据、email 地址、行为和时间戳。统计特征包括:是否在正常工作时间以外登陆或使用可移动设备,是否在2个月内离职、是否访问“wikileaks.org”等可疑网页、是否登陆他人账号。
[0075]
55)实验结果本文在lanl和cert数据集上将ctdgn与最先进的基线方法tiresias、log2vec/log2vec++、ensemble、markov-c、streamspot以及rshield进行了对比。
[0076]
1)典型数据集上不同方法的检测结果(auc值),见表1表1 典型数据集上不同方法的检测结果(auc值)2)cdhgn消融实验结果(直推设置,auc值),见表2h-attn:异质注意力网络;tgn_mem+tgat:同质记忆体网络+同质注意力网络htgn_mem+tgat:异质记忆体网络+同质注意力网络htgn_mem+h_attn:异质记忆体网络+异质注意力网络 表2 cdhgn消融实验结果3)cdhgn消融实验结果(归纳设置,auc值),见表3表3cdhgn消融实验结果
表2表明在国际通用数据集lanl和cert上,ctdhg的性能优于其他基线方法。在lanl数据集中,与sota方法rshield相比,ctdhg使用直推式和归纳式设置下,分别增加了3.4%和5.6%的auc值。在cert数据集中,采用直推式和归纳式设置下,与sota方法rshield相比,auc值分别增加了2.8%和4.4%。需要说明的是,rshield并不支持异质图的情况,因此在实际网络中的效果将会拉开更大的差距。
[0077]
表2和表3表明ctdhg在不同模块组合下表现出不同的检测效果。当同时使用异质记忆体网络(htgn_mem)和异质注意力网络(h-attn)时,ctdhg在lanl和cert数据集上取得了最好的结果,分别为0.9991和0.9997。
[0078]
从实验结果可以看出,对于这两个数据集,ctdhg方法都有较好的检测效果。一方面,当更多的数据用于训练时,即训练集、验证集和测试集按照0.8:0.1:0.1划分时,auc值可以达到0.9998、0.9992(直推)和0.9991,0.9997(归纳),分别。另一方面,当使用较少的数据进行训练时,即当训练集、验证集和测试集按照0.22:0.04:0.74进行划分时,auc仍然可以达到0.9977、0.9597(直推)和0.9866,0.9021(归纳)。实验中的lanl和cert数据集是已经被广泛使用的成熟数据集,它们也被基线方法用于他们的实验。因此,在此数据集上进行的实验可以表明方法的泛化性和有效性。
[0079]
与以上实施例提供的apt检测方法相对应地,本发明还提供了基于连续时间动态异质图神经网络的apt检测系统,包括:图构建模块、网络编码器和网络解码器;所述图构建模块,用于选取指定时间段内的网络交互事件数据,从所述网络交互事件数据中提取实体作为源节点和目标节点,提取源节点和目标节点之间交互事件作为边,确定节点类型和属性、边的类型和属性,以及交互事件发生的时刻,获得连续时间动态异质图;所述网络编码器,用于将所述连续时间动态异质图的各类型的边转化为向量,得到各类型边的嵌入表示;所述网络解码器,用于对连续时间动态异质图中各类型边的嵌入表示进行解码,获得各类型边是否为异常边的检测结果。
[0080]
进一步地,所述系统还包括训练模块,所述训练模块用于训练所述网络编码器和网络解码器。
[0081]
进一步地,连续时间动态异质图网络编码器包括节点时间记忆网络和节点空间注意力网络;所述节点时间记忆网络包括第一消息模块、第一聚合模块、记忆更新模块和记忆融合模块;所述节点空间注意力网络包括注意力模块、第二消息模块和第二聚合模块;所述第一消息模块,用于针对连续时间动态异质图中每一个边,均利用消息函数,根据交互事件发生的当前时刻和上一时刻的时间间隔、连接源节点和目标节点的边、源节点和目标节点在交互事件发生的当前时刻之前时刻的嵌入表示记忆,分别生成各源节点和
目标节点在交互事件发生的当前时刻对应的消息值;所述第一聚合模块,用于利用聚合函数分别将本批次所有源节点和目标节点在各交互事件发生的时刻对应消息值进行消息聚合,分别获得各源节点和目标节点在本批次的嵌入表示记忆;所述记忆更新模块,用于在源节点和目标节点之间发生交互事件后更新节点在本批次各源节点和目标节点的嵌入表示记忆;所述记忆融合模块,用于分别将各源节点和目标节点在本批次更新后的嵌入表示记忆,与上一批次的嵌入表示记忆进行记忆融合,分别获得本批次各源节点和目标节点包含时间上下文信息的嵌入表示;所述注意力模块,用于根据各源节点和目标节点包含时间上下文信息的嵌入表示、源节点和目标节点之间的边、预设的节点的注意力权重矩阵和边的注意力权重矩阵,计算各节点的注意力分数;所述第二消息模块,用于根据预设的边的消息权重矩阵、节点的消息权重矩阵,对目标节点利用消息传递函数,抽取其对应的各个源节点的多头消息值,并进行拼接,生成各源节点的消息向量;所述第二聚合模块,用于根据各节点的注意力分数,聚合各源节点的消息向量后传递给目标节点,得到各源节点和目标节点包含空间上下文信息的嵌入表示;将边的源节点包含时间上下文信息的嵌入表示和目标节点包含空间上下文信息的嵌入表示进行合并,根据边的类型得到各类型边的包含时间和空间上下文信息的嵌入表示。
[0082]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0083]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1