本发明涉及一种基于图表示学习的内网横向移动检测系统及方法,属于网络安全技术领域。
背景技术:
近年来,网络攻击的形式呈现出高级性、持续性和隐蔽性的特点。同时,大多数攻击者不再以破坏目标网络或基础设施为目的,窃取机密数据或者核心知识产权成为了他们的首要任务,企业网络就是这些网络攻击和数据泄露经常发生的重灾区。
攻击者在内网中利用多种手段来寻找资产作为跳板,获取额外的特权,从而能够隐蔽地从一个系统移动到另一个系统,尽可能搜索内网重要数据的同时不被安全检测系统发现,这个阶段被称为恶意横向移动。有研究表明,在一次攻击中攻击者所投入时间和资源的80%都被用于恶意横向移动,因此,这也是攻击者最容易被发现的地方。
目前内网中恶意横向移动检测仍面临着不少挑战。首先,攻击工具不断进化,没有明显可供检测的特征。工具实现原理各不相同,攻击者也不会遵循固定的攻击模式或路线,所以难以全面防御。其次攻击者从主机内存中获取用户证书后通常会冒充正常用户在内网中活动,很难引起it管理员的注意,因为他们只检查失败的登录,而不跟踪成功的登录。最后,目前普遍难以获取横向移动路径行为相关的数据集,导致无法使用监督式机器学习方法构建有效的攻击模型,并无法评价模型性能。
传统的基于入侵检测系统(ids)的入侵检测方法、可视化策略、蜜罐/蜜网方法和基于系统调用的入侵检测方法是针对内部问题寻找解决方案时采用的几种外部威胁检测技术。然而这些检测手段对于内网的恶意横向移动都束手无策。
由于恶意的横向运动难以检测和防范,因此有许多关于降低风险的轮渡策略的研究。johnson等人提出了测量网络遭受横向移动攻击的风险指标;hagberg等人评估了不同主机成为基于登录凭证攻击受害者的风险大小。aaron基于动态认证二分图来降低网络中最大连接组件大小的缓解策略来减少从某些起始节点可访问的节点数量。
以上方法通常是通过选择一组要删除的边来实现。这些方法虽然有效,但没有完全利用这些认证数据所代表的计算机网络的性质,也并没有对异常横向移动进行检测,是被动的网络级别的防御。
目前有很多工作将横向移动检测转换为内网中异常用户或主机的检测,这类检测通常是对所有用户或主机进行建模。kent等人提出了认证图概念,使用机器学习方法对一般用户和管理员、良性用户和被入侵用户进行分类。siadati等人使用了一种基于签名检测恶意登录行为。
然而现有技术存在以下几点缺点和不足:首先,随着内网日志数据量的剧增,为实现在合理时间内执行的高效算法带来了困难,并且误报率通常很高。其二,目前研究都是针对用户在主机上的操作行为,往往忽略了多个时间下连续恶意操作之间可能存在的关联性分析。
而横向移动路径可以将多个行为事件关联分析,为内网管理员实时监控内网安全走势提供更准确的信息。其次,路径关联分析的是用户横向移动行为的每一次操作,细化到事件级别的检测,能准确的定位到当前网络的异常。如果能捕捉到攻击者的攻击轨迹,不仅能及时防御遏制其行动,还能为后续的异常分析提供有利的证据链。
技术实现要素:
本发明技术解决问题:克服现有技术的不足,提供一种基于图表示学习的内网横向移动检测系统及方法,能有效的检测内网中存在的异常横向移动路径可以将多个行为事件关联分析,为内网管理员实时监控内网安全走势提供更准确的信息。
本发明技术解决方案:一种基于图表示学习的内网横向移动检测系统,包括:图处理单元和异常检测单元;
图处理单元,对于历史的结构化登录日志数据进行数据预处理,过滤掉不可用或敏感数据,得到预处理后的结构化数据;为了适应内网用户的本地登录行为和远程登录行为,将预处理后的结构化数据转化为两种图结构:分别为二分图和同构图,其中二分图代表图中具有两种类型的节点,分别是主机类节点和用户类节点,图中每条边代表着一个用户登录一台主机的本地登录行为;同构图是图中所有的节点属于同一类,每个节点都代表一个登录实体,而每个登录实体包括一个主机和一个用户,同构图刻画了用户的远程登录行为,即同构图中每条边代表从源登录实体转移到目的登录实体;同时,为了确定用户在内网中的横向移动行为,在同构图上提取出正常的横向移动路径集合和异常的横向移动路径集合用于后续的路径特征提取,为了提取正常的横向移动路径,在同构图上基于时间事件图模型以及广度优先遍历搜索实现候选横向移动路径搜索;时间事件图模型定义正常横向移动路径应满足的路径时间约束性,而广度优先遍历使得正常的横向移动路径满足有向图的方向性;对于异常横向移动路径的提取,基于远程跳转和直接跳转两种横向移动攻击场景在同构图上通过随机游走来模拟生成;通过路径熟悉度来区分正常横向移动和异常横向移动路径,其中通过路径上节点向量的多种相似性特征来整体度量路径熟悉度,使用图表示学习将两种图中的节点转化为固定维数的向量,并计算节点向量之间的余弦相似度定义路径熟悉度多种路径特征,最终每条路径对应一个特征向量来表示;
异常检测单元,对模型的训练以及对于新数据的实时预测监控;在图处理单元中,基于历史的登录日志数据,利用图表示学习等手段,最终得到正常和异常路径的特征向量,利用这个包含正常和异常横向移动路径的数据集,训练构建正常横向移动模型,使其能很好区分横向移动路径是否为异常;对于新收集的内网登录数据,提取新路径上每个节点的图表示学习得到的向量并计算路径特征,实时的将新生成的路径特征向量输入到训练好的模型中并判断其是否为异常的内网横向移动,并将可疑路径输出处理。
所述图处理单元中,候选路径的搜索,包括正常横向移动路径的提取以及异常横向移动路径的模拟生成,具体实现步骤如下:
(1)将结构化的登录日志数据转化为表示远程登录行为的同构图gh,其中图中每个节点由一个用户和一个主机标识,每条边代表由源节点转移到目的节点的有向连接关系,搜索得到的每条横向移动路径都是该同构图的子图;
(2)对于提取正常的横向移动路径,首先从入度为0的节点开始,利用广度优先遍历算法在同构图gh上搜索出所有的横向移动路径,使正常横向移动路径满足方向性;然后正常横向移动路径要满足时间约束性,基于时间事件图算法过滤掉所有不满足时间约束的路径,具体时间约束定义如下:对于一条候选路径p={e1,e2,…,ek},t(ei,ei+1)表示连接边(ei,ei+1)发生的时间,对于候选路径p中的每条边(ei,ei+1),必须满足|t(ei,ei+1)-t(ei+1,ei+2)|<δt并且t(ei,ei+1)<t(ei+1,ei+2),即路径p中前后边的时间间隔不能超过δt并且后一条边的发生时间必须大于前一条边;
(3)对于提取异常横向移动路径,设计几种攻击场景,同样在共构图gh上随机游走产生,不需要满足有向性和时间性。
所述图处理单元中,通过路径熟悉度来区分正常横向移动和异常横向移动路径的具体步骤如下:
(1)将结构化的登录日志数据转化为表示本地登录行为的二分图gb,其中两类节点分别为用户类和主机类,每条边代表一个用户登录了一台主机;
(2)分别利用图表示学习方法bine和line将图gb和gh中的各个节点转化为固定维度的向量,矩阵分解,自编码器以及神经网络也能实现将图节点转化为向量;
(3)通过计算路径上各向量的余弦相似度,最终构建正常横向移动路径模型来衡量路径熟悉度,其中各向量包括路径上用户与用户向量的相似度、主机与主机向量的相似度以及源节点与目的节点之间的相似度,构建正常横向移动行为模型时,采用单类svm算法、isolationforest、自编码器或robustcovariance方法。
本发明与现有技术相比的优点在于:
(1)本发明专注于对横向移动路径进行分析与检测,更好的分析内网中用户的正常横向移动行为的模式,基于正常横向移动路径构建正常的用户行为模型,进而可以检测未知的横向移动攻击,为安全管理员提供证据链,捕捉异常事件之间的关联;
(2)本发明采用图表示学习的手段学习内网中每个节点的低维向量表示,节省内存存储的同时还能保留原内网中各实体之间,即通联关系的结构。这样对以后路径数据的分析可以直接调用节点向量,计算路径相似度等特征计算异常分数值,实时检测效率高;
(3)衡量路径的熟悉度可以细化到衡量每条边的熟悉度,进而可以进行可视化,更形象的实时监督内网横向移动状态。
附图说明
图1为本发明的组成框图;
图2为本发明的两种内网行为数据的图表示,(a)远程登录同构图gh示例,(b)本地登录二分图gb示例;
图3为时间事件图形象说明,其中δt=3。
具体实施方式
下面结合附图及实施例对本发明进行详细说明。
当前对内网横向移动的检测主要专注于网络级的度量遭受横向移动攻击的风险以及个体级的检测内网中的异常用户或主机,缺少移动事件之间的关联分析。为了更好的理解攻击者如何在内网中移动而不被发现,更好的挖掘内网中正常用户的横向移动行为,本发明提出一种基于图表示学习来的横向移动检测系统及方法,首先将内网数据表示为两种图结构:表示本地登录行为的二分图和表示远程登录行为的同构图;并利用图表示学习的手段将节点表示为向量的同时更好的保存图数据之间的结构关系,同时在同构图上提取正常和异常的横向移动路径。最终通过提取多种路径相似度特征来对横向移动路径进行建模分类。本发明能够将用户的登录行为关联起来,实现更实时、更具有解释性的横向移动检测。
如图1所示,本发明图处理单元和异常检测单元。
图处理单元主要任务是将结构化的日志数据转换为多种图结构,使用图表示学习的手段将图中的节点转化为低维向量,分别对应下面的图的生成部分和图表示学习部分;另一方面,在正常的连通图中搜索正常的横向移动路径以及注入生成异常的横向移动路径,并提取多种路径相似性特征进行后续的分类任务,详细介绍在下文的候选路径搜索部分以及路径特征提取部分。
异常检测单元是基于历史的横向移动路径数据训练出正常的行为模型,这样就可以对后续实时的横向移动路径进行分类任务,输出可疑的路径并通知管理员。
下面将详细介绍图的生成、图表示学习、候选路径搜索、路径特征提取和异常检测这几个重要部分的实施步骤。
1.图的生成
将一段时间内内网实体之间的交互行为记录为按时间顺序出现的日志事件集合e={ei|i=1,2,…,k},每个事件ei由[源用户,源主机,目的用户,目的主机,时间]五元组表示:
ei=(srcui,srcci,dstui,dstci,ti)
表1提供了几个事件,其中srcui,dstui∈u={u1,u2,…,un}分别表示远程转移的源用户和目的用户;srcci,dstci∈c={c1,c2,…,cm}分别表示源主机和目的主机;
表1登录认证事件日志示例
为了更好的形式化表示内网中用户的操作行为,将用户行为分为本地登录[用户,主机]和远程转移[源实体,目的实体]两种,并分别构建二分图和同构图来表示。
(1)远程同构图
为了更好的捕捉用户在内网中的横向移动轨迹,本文将登录事件的日志记录生成为一个有向图,描述从源实体到目的实体的转移信息。其中每个登录实体由唯一(用户-主机)对标志。
定义1.远程同构图gh=(v,eh)。其中
如图2中的(a)所示,远程同构图提供每个潜在横向移动路径涉及的相关实体。例如{u1_c1,u1_c2,u1_c3}便是一条潜在的横向移动路径。有向图中具有连通性的路径可以直接帮助安全响应团队提高或降低安全警报和/或相关实体调查的重要性。例如,当传递票证警报发出时,被盗票证的源计算机、被盗用用户和目标计算机都是指向敏感用户的潜在横向移动路径的一部分。
很明显,每条横向移动路径其实都是图gh的一个子图。
定义2.横向移动图
需要注意的是,这里并没有区分良性和恶意的横向运动。
(2)二分图
内网中的行为除了明显的远程跳转行为之外,其实也包含了本地的登录信息,即源节点登录源主机、目的用户登录目的主机。为了分析横向移动路径中用户与用户的相似性、主机与主机的相似性,我们也将用户本地操作行为的日志数据表示为二分图形式。
定义3.二分图gb=(u,c,eb)。其中u和v分别表示两类节点,
2.图表示学习
对于图数据,常见的特征有节点的度、hits值等。但这些简单的图结构并不能反应图节点之间潜在的关系;另一方面,这种人工提取的特征会使得检测效率很低。所以选择已有的图表示学习算法,将图中所有节点在保存原有的结构的同时转换为低维向量,进而进行后续的路径特征提取。
(1)同构图嵌入
远程同构图中每个节点代表的是内网中的实体,都是同一类节点,对同构图的嵌入我们选择line算法。
line[21]是一种基于邻域相似假设的方法,与deepwalk不同,它可以应用在带权重图中。在本发明中,采用1阶相似度,用于描述图中成对顶点之间的局部相似度。
对于每条边(vi,vj),定义顶点vi和vj之间的联合概率为:
其中
同时定义经验分布:
优化目标最小化函数为:
本发明使用line算法对远程同构图进行嵌入,最后得到每个登录实体节点
(2)异构图嵌入
二分图是一种特殊的异构图,也就是图中节点的种类并不唯一。
bine算法是2018年提出的一个适合二分图的网络表示学习方法。同line方法一样,bine算法首先考虑两类节点间显性连接的一阶相似性,目标函数o1同公式(5);另一方面,bine算法还会考虑同类节点之间的隐性关系,采用随机游走分别生成两类节点的同构网络,然后利用skip-gram模型进行训练。
对于随机游走产生的两个同构网络,定义子目标损失函数o2和o3来最大化随机游走路径中节点的出现概率,最终得到一个总的目标函数:
l=αlogo2+βlogo3-γo1(6)
其中α、β、γ代表不同部分的权重。
本文使用bine算法对[用户-主机]二分图进行嵌入,最后分别得到用户节点和主机节点的向量表示
3.候选路径搜索
(1)正常路径的搜索:
为了刻画内网中用户的正常横向移动行为,本发明基于远程同构图将所有的满足时间约束的横向移动路径搜索出来。
定义4.路径的可达性。登录实体{v1,v2,…,vk}组成一个时间的横向移动路径
如果这样一条路径存在,就可以说在时间tk-1内从v1到vk是一条正常的横向移动路径。
为了使提取的路径满足时间间隔约束,将之前带有时间的网络看作一个事件图eg来进行切割。一个事件图是一个时间网络的二阶时间展开模型,其中原始网络中的事件是事件图中的节点。事件图可以定义为
定义一个事件图eg的子图δt_eg,其中新的边的集合lδt={(ei,ej)∈l|tj-ti≤δt}。子图会捕获以相对接近的时间发生的登录事件序列并共享一个或多个节点,假设这些节点暗示事件之间的因果关系水平。时间事件图形象化说明如图3所示。
广度优先遍历搜索候选正常横向移动路径的步骤如下:正常路径起始于入度为0的节点v0,从v0出发,分别访问每个未曾访问的邻接点v1,v2,…,vk构建出路径p1,p2,…,pk,然后依次从v1,v2,…,vk出发访问各自未被访问的邻接点并添加到相应的路径中,直至所有节点都被访问为止。
利用广度优先遍历搜索出所有可能的候选正常横向移动路径,再根据时间事件图算法对路径时间的约束进行路径过滤,最终得到所有的正常横向移动路径。
(2)异常路径的创建
内网中恶意的横向移动数据异常稀缺,为了验证训练模型的有效性,依据真实的网络攻击场景构建恶意移动路径。对远程跳转和直接跳转两种转移行为进行抽象的概念模型。
a.远程跳转
在网页浏览行为中,远程跳转是指用户不遵循站内链接的指引而是直接跳转到新的页面,创建新的边。
任意结合(用户-主机)对来生成恶意横向移动路径上部分新的登录实体,登录实体之间的转移也是随机跳转生成的,这样生成的恶意横向移动路径是从未在远程同构图中出现的。
当攻击者已经入侵到企业内网,他们可能会利用软件漏洞来部署恶意代码,从而在受感染的机器之间建立通道。如果用户突然开始登录以前从未访问过的主机,并产生新的可疑的横向移动路径,这通常说明用户证书密码被盗,或设备已被木马控制。另一方面,在apt攻击扫尾阶段,攻击者通常会留下后门,目的是对已被攻击的目标主机进行长期的控制,他可能会尝试在目标主机中创建新的用户。
b.直接跳转
直接跳转是指沿着远程同构图上已有的路径进行转移,路径生成策略整体和正常横向移动路径的搜索是一致的,区别主要有如下几点:首先路径的起始节点v0是从所有节点中随机选取,之后路径的下一个节点从其所有的邻接节点中随机选择一个,以此类推直至没有后续节点。这种路径是基于随机游走思想产生的,并且不需要满足路径的时间约束。
在最初的主机入侵之后,利用现有的工具和协议,攻击者会尽可能的移动扩大控制范围。但这可能并不会引起it管理员或安全检测产品的注意,因为他们只检查失败的登录,而不跟踪成功的登录。这是攻击者长期持续潜伏在内网中并隐蔽移动的一个关键方面。然而即使是最精明的攻击者也会在网络中进行“盲操作”,因为其并不知道内网用户正常的横向移动模式,所以路径的生成是随机性的。
4.路径特征提取
如何衡量横向移动路径熟悉度是本文重点部分。本发明认为路径熟悉度越高会导致路径上各元素之间的相似性越高:给各用户/主机分配相似性得分说明主机和用户的相似性,另一方面基于路径上登录实体和实体的转移关系解释相关性。例如当用户与常用主机相似性得分有明显差别时,说明该横向移动并不是以前常见模式。
对于每条横向移动路径l(vl,el):
l(vl,el)={ui_cj∈el|ui∈ul,cj∈cl}
其中,ul表示这条路径中的所有出现的用户集合,cl表示这条路径出现的所有主机集合。基于上一步嵌入后的登录实体向量以及用户主机向量,提取以下特征来表示每条路径的当前状态:
路径边特征。line算法是直接基于远程同构图计算登录主体的向量,所以路径边的相似性我们提取了平均值sime_avgl、范围sime_rgl、内距sime_iqrl以及平均绝对偏差sime_madl这4个特征。定义路径上边的相似性集合
sime_rgl=max(simei)-min(simei)(8)
内距sime_iqrl也被称为四分差,定义为样本中第75%和第25%之间的差值。与仅基于两个最极端值的范围特征相比,sime_iqrl测量了样本中心50%的离散度。
平均绝对偏差sime_madl定义为单个样本与整体中值之差绝对值的中值。能更好的衡量集合数值分布的离散情况。
登录实体特征。对于路径上的每个登录实体{ui_cj}等价于二分图中用户ui登录cj的一条边,将bine预测边是否应该存在的概率来表示路径上登录实体是否是一次正常的本地登录。对于每条横向移动路径l={1,2,…},定义每个登录主体的正常概率为pi,则每个路径的平均节点正常率为:
用户特征。正常用户产生的横向移动路径是具有稳定模式的,这样正常横向移动路径上的用户应该是相似性很相近的,而恶意用户则是在网络中随机游走。所以每条路径上平均用户相似性定义为:
其中,cos(,)表示计算向量的余弦相似度。
主机特征。定义类似用户特征:
5.异常检测
本发明利用单类分类器oneclasssvm训练出正常的横向移动行为模型。oneclasssvm有能力捕获单类数据集的形状,对于强非高斯数据有更加优秀的效果。oneclasssvm的训练集不能包含异常样本,否则的话,可能在训练时影响边界的选取。
利用oneclasssvm训练出正常横向移动行为的模型后,将新的横向移动路径数据输入模型,若超出正常模型边界的即认为异常。
以上虽然描述了本发明的具体实施方法,但是本领域的技术人员应当理解,这些仅是举例说明,在不背离本发明原理和实现的前提下,可以对这些实施方案做出多种变更或修改,因此,本发明的保护范围由所附权利要求书限定。