廖铎烽
(广州市香江中学国际部,广东 广州 511340)
近年高级可持续威胁(Advanced Persistent Threat,APT)逐渐引起人们的关注。APT 攻击也称为定向攻击,通常是具有高水平专业知识和丰富资源的组织对特定重要对象开展的持续的网络攻击活动,相较于传统的网络攻击模式更加难以防范,造成的危害更加严重[1]。
传统的防御方法,如入侵检测、防火墙等,主要适用于应对模式固定的网络攻击。APT 攻击往往具有“多步骤”和“低姿态”的特点,在一个很长的时间段内,运用钓鱼邮件、系统漏洞、社会工程学等各种手段,绕过边界防护潜伏在系统中。如何有效地检测APT 攻击过程中相关的异常事件仍然是比较困难的问题。
为了应对这种复杂的网络攻击手段,本文对APT攻击原理和防护技术进行研究,提出一种基于网络攻击链模型和循环神经网络的检测方法,在时间和空间上对APT 攻击链条中相关的网络行为进行关联,提高对APT 攻击的识别能力。
国内外学者围绕APT 检测已开展了广泛的研究和实践,其成果主要集中于入侵检测技术方面。入侵检测技术可分为特征检测和异常检测,前者使用基于规则库的入侵检测系统等安全设备对计算机网络中的事件进行分析,与规则相匹配的网络行为则被检测为攻击[2-4];后者采用统计机器学习的方法,通过收集正常数据训练行为模型,当网络中出现偏离该模型限值的情况时会被认为是网络攻击行为[5-6]。从实际应用情况来看,上述研究成果对于改善APT 攻击的检测水平起到了重要作用,但是也存在一些问题。一方面,现有的入侵检测系统缺乏对安全威胁特征代码库中尚未签名的未知威胁的实时有效的安全防护能力[7];另一方面,基于常规机器学习模型的检测方法,对于时间跨度大、攻击行为不明显的APT 攻击的效果相对有限[8]。
APT 攻击行为不仅是直接的破坏行为,其攻击的各阶段是混杂交织的,需要引入更细粒度的模型来指导防御[9]。经典网络攻击链(Cyber Attack Chain,CAC)模型是美国洛克希德-马丁公司于2011 年提出的从攻击者角度描述的一种有针对性的分阶段攻击的网络安全模型。该模型协助安全人员识别潜在攻击每个阶段的可疑活动,如未能在某一步中发现攻击迹象,也可以在后续阶段中找到线索,以期尽早发现并阻止攻击行为,使防御效果最大化。通过CAC 模型侧写出恶意攻击的逻辑关系,为网络安全事件追踪溯源、关系抽取和攻击预测提供了先决条件。
如图1 所示,CAC 模型包含7 个攻击阶段:侦查跟踪通常通过充分利用社会工程学了解目标系统和网络信息;武器构建主要是指制作定向攻击工具,例如带有恶意代码的PDF 文件或Office 文件;载荷投递将输送攻击工具到目标系统上,常用的手法包括邮件的附件、网站(挂马)、U 盘等;攻击利用是利用目标系统的应用或操作系统漏洞,在目标系统触发已制作的攻击工具使其运行;安装植入与互联网控制器服务器建立一个命令与控制信道;通信控制是指执行所需要的攻击行为,例如偷取信息、篡改信息等;最后目标行动阶段创建攻击据点,并持续潜伏扩大攻击战果。
图1 经典攻击链模型
与传统神经网络不同,循环神经网络(Recurrent Neural Network,RNN)内置循环的网络,允许信息持续存在,从而能够对输入时间点前后的事件进行关联。
神经单元A 接收输入X 并输出一个值h,循环允许信息从网络的一个步骤传递到下一个步骤。可以将循环神经网络视为同一网络的在不同时刻的复制,每个复制都将消息传递给下一个时刻,因此理论上来看,循环神经网络能够处理“长期依赖性”问题。
前面所述的经典攻击链模型仅适合建模外部攻击,不适用于内部威胁[10]。在APT 攻击中,大量攻击行为都是在获得了内部系统权限后进行的,所以需要对经典攻击链模型进行扩展,扩展后的攻击链模型如图2所示。相对于经典攻击链,扩展CAC 细分了内部行为,在达成目标阶段中增加了内部攻击链。内部攻击链是为了获得对目标系统的访问,包含内部侦察、目标利用、权限提升、横向移动和内部目标操纵。
图2 扩展攻击链模型
在实践中RNN 模型对于学习“长期依赖”的能力仍然存在不足,并且会有梯度消失的问题存在,因此一种特殊结构的RNN,即长短期记忆网络(Long-Short Term Memory,LSTM)被提出[11]。LSTM 对RNN 中的神经单元进行了扩展,引入了三个门,即输入门、遗忘门和输出门,以及记录额外的信息的记忆细胞(见图3)。
图3 长短期记忆网络单元
具体来说,令隐藏单元个数为h,给定时间步为t,输入为Xt,上一时间步隐藏状态Ht−1,时间步t 的输入门It、遗忘门Ft和输出门Ot分别计算如下:
其中的Wxi,Wxf,Wxo和Whi,Whf,Who是对应的权重参数,bi,bf,bo是对应的偏差参数。
结合以上定义,基于扩展攻击链和LSTM 的APT检测方法的总体框架,具体可以分为以下四个步骤:
1.扩展攻击链映射。将宽度为j 的窗口内的网络事件序列ei-j,…ei-1,ei输入至LSTM,与此同时,对事件与扩展攻击链模型进行映射。
2.事件权重更新。根据攻击链映射的结果获得各个事件ei 的权重wi,并将其更新至“1”已输入至LSTM模型的事件序列中。
3.事件序列表示学习。使用LSTM 模型来结合不同时刻事件的信息提取事件的变化特征,并进行表示向量的学习,将该窗口内的整个事件序列表示成一维的向量。
4.流数据的异常检测。使用成熟的数据流上的异常检测算法RRCF[12]给出异常分数。为了确定异常事件序列,可以设定一个阈值并认为该分数超过阈值的序列存在异常。
现有网络攻击防御措施主要侧重于检测固定模式的网络攻击行为,对APT 攻击检测效果不佳。本文在分析APT 攻击原理和攻击特点的基础上,提出了一种新的APT 检测方法。在经典网络攻击链模型基础上,考虑内部威胁部分,提出了扩展攻击链模型,并结合LSTM 神经网络模型对网络行为进行广泛关联,为APT攻击检测的应用实践提供了一种新的思路。