刘科科,王丹辉,郑学欣,郭 静
(中国电子科学研究院,北京 100041)
APT(Advanced Persistent Threat,高级持续性威胁),是指专门针对特定组织所作的复杂且多方位的高级渗透攻击。它针对特定目标及其关联组织,通过从不同途径进行信息、资讯、消息的长期搜集和监控,并根据目标的综合防护能力进行有针对性的对抗和穿透研究,持续不断的从不同层次实施立体式攻击渗透,最终达成对特定目标的长期性秘密控制、情报窃取、目标摧毁等目的。高级持续性威胁潜伏期长、隐蔽性强,且涉及层面众多、关联关系错综复杂,针对传统安全防御体系的新技术、新武器、新技战法层出不穷,使得高级持续性威胁被感知和发现的难度极大[1]。因此,未来五到十年,开展APT攻击行为的监测预警将是我国网络空间安全监测预警的重点。
本文研究基于活动行为特征关联分析的APT攻击行为检测方法,提出了一种APT攻击行为检测模型,将其应用于APT攻击检测系统设计并进行了有效性测试。
本文结构如下,第一章对现有APT攻击防御思路进行分析,第二章提出了一种基于活动行为特征关联分析的APT攻击行为检测方法,第三章进行实验设计与分析,第四章全文总结。
从2009年的极光行动起,到近年来较为著名的超级工厂病毒攻击(2010年)、夜龙攻击(2011年)、蔓灵花行动(2016年)、MONSOON事件(2016年)等,APT攻击事件不断涌现。通过对各类APT攻击案例的过程回放和分析,可以看到APT攻击的主要特性是通过特种木马长期潜伏在系统内部,盗取系统核心数据,并在特定时刻对系统内信息系统造成巨大破坏。概括来说,APT攻击主要具备极强的隐蔽性和针对性、攻击手段丰富、潜伏时间长、攻击行为特征难以提取等特征[2-3]。
关于APT攻击的检测方法是目前网络安全界的技术研究热点之一。针对APT攻击的特点,不同安全厂商、研究机构提出了几种防御思路[4],其优缺点具体如下:
(1)恶意代码检测类方案:该类方案主要覆盖APT攻击过程中的单点攻击突破阶段,用于检测APT攻击过程中的恶意代码传播过程。大多数APT攻击都是通过恶意代码来攻击目标用户的个人电脑,从而突破目标网络和系统防御措施的,因此,恶意代码检测对于检测和防御APT攻击至关重要。该方案的最大不足之处在于经过网络的恶意代码数量众多,系统需要耗费大量的资源进行传统病毒查杀分析,同时触发的告警信息需要消耗过多运维人力来进行威胁分析。
(2)主机应用保护类方案:该类方案主要覆盖APT攻击过程中的单点攻击突破和数据收集上传阶段。不管何种恶意代码必须在用户主机终端上执行才能控制主机终端乃至整个网络,因此,如果能够加强系统内各主机节点的安全措施,则可以有效防御APT攻击。该方案需要针对不同主机进行安装部署,由于防护产品还可能导致主机系统的一些应用异常,所以该方案的实用性还需要进一步探讨。
(3)网络入侵检测类方案:该类方案主要覆盖APT攻击过程中的控制通道构建阶段,通过在网络边界处部署入侵检测系统来检测APT攻击的命令和控制通道。虽然APT攻击所使用的恶意代码变种多且升级频繁,但恶意代码所构建的命令控制通道通信模式并不经常变化,因此可以采用传统入侵检测方法来检测APT的命令控制通道。该方案的难点是如何及时获取到各APT攻击手法的命令控制通道的检测特征。
(4)基于蜜罐的APT检测方案:蜜罐监测技术是一种古老同时又新颖的安全防御技术,随着网络虚拟化和服务器虚拟化技术的发展,利用虚拟化技术构建高交互式蜜罐与低交互式相结合的蜜罐成为有效防御APT攻击的一种方式。这种方案的优势在于能有效捕获APT攻击行为,但缺陷在于其对APT攻击行为的分析和溯源定位还得依靠传统的安全防御措施。
(5)大数据分析检测类方案:该类方案并不重点检测APT攻击中的某个步骤,它覆盖了整个APT攻击过程。该类方案是一种网络取证思路,通过全面采集和分析各网络设备的原始流量以及各终端和服务器上的数据,来还原整个APT攻击场景。利用大数据来防御APT攻击被行业内认为是一种创新的技术思路,但是如何具体利用大数据技术来进行安全分析目前还有待进一步探索研究。
基于几种识别和防御APT攻击方法的优缺点,本文提出了一种基于活动行为特征关联分析的APT攻击行为检测模型。该模型将流量还原技术、虚拟化技术、智能沙箱技术、恶意代码检测技术和关联分析技术相结合,实现对APT攻击行为的多层次监测。该模型的技术实现流程如图1所示。
图1 技术实现流程图
在APT攻击的整个生命周期中,恶意攻击程序控制通信交互和入侵的网络访问行为必然会在网络中传递数据包,留下数据痕迹。因此,对APT攻击行为的检测可以从网络流量入口分析入手,通过从网络硬件接口缓存到应用层的直接零拷贝,实现对网络流量信息的高速采集和还原;将还原后的流量数据进行活动行为特征的实时提取入库,与此同时,从恶意行为代码感知、软件安全漏洞感知、典型攻击行为感知、综合关联分析四个方面进行实时监测,最终实现对APT攻击行为的监测预警。其中,对恶意代码和软件漏洞的深度检测,主要实现对APT攻击恶意代码植入阶段的分析预警;对典型渗透攻击行为的感知,主要实现对APT攻击恶意代码潜伏和活跃阶段的分析预警;基于规则库和知识库的综合关联分析,将通过对攻击行为的规则关联、模式匹配、统计分析,实现对APT攻击行为的综合分析研判。
在基于活动行为特征关联分析的APT攻击行为检测模型中,最为核心的也是难度最大的就是基于活动行为特征的未知木马检测方法研究。由于每一种木马除去固有的特征字或关键字外,都会有修改系统注册表、终止进程、修改图标等一系列行为动作,通过对这些行为特征跟踪、分析、提炼,能够寻找出一定的规律用于对未知木马的检测。木马检测的实质是对被监测的数据进行分类判断分析,看其是合法程序或是木马。在整个基于活动行为特征的木马检测过程中,最关键的是如何正确地划分异常行为与正常行为。
基于活动行为特征的未知木马检测方法主要包括两大组件,一是木马活动行为特征库及相对应的合法行为特征库,二是木马与合法程序区分器。通过对木马活动行为的观察、研究和总结,提取出木马的共有行为形成木马活动行为特征,对比合法程序的正常行为特征,即可定义木马活动行为规则以及合法行为规则,构建木马活动行为特征库和合法行为特征库。
由于木马活动行为特征库中的这些行为在合法程序中比较罕见,通过设计合理的分类算法即可将木马行为与合法程序进行分类,我们利用模式识别领域中的支持向量机分类算法来进行木马与合法程序的区分。
2.2.1 相关理论
(1)互信息理论
互信息反映某一随机变量所带另一随机变量的信息,通过特征及其所属类别共同出现的频率,度量特征和类别的相关性[5]。设两个随机变量x和y的概率密度分别为p(x)和p(y),则y对x的互信息为:MI(x;y)=log(p(x|y)/p(x))。其中,p(x)为先验概率,p(x|y)为在事件y发生的情况下,事件x发生的概率。
(2)核函数
核函数[6]是构造木马与合法程序区分器的重要基础,它的作用是将线性不可分的输入向量从低维输入空间映射到一个高维特征空间,使得线性不可分的输入向量在高维空间中实现线性可分。常用的核函数包括:
a)线性核函数:H(x,y)=
b)多项式核函数:H(x,y)=(
c)高斯核函数:H(x,y)=e-|x-y|2/2δ2;
d)signoid核函数:H(x,y)=tanh(ρ
2.2.2 优化木马活动行为特征库及相对应的合法行为特征库
根据木马的生存特点,其生命周期可分为木马植入、潜伏、活跃三个阶段,不同的阶段具有不同的行为特征。依据异常行为检测项得到木马活动行为特征向量,以作为木马活动行为特征库的素材[7]。相对应地,统计合法程序在网络通信、文件操作、注册表操作等方面的活动行为特征,以作为与木马活动行为对应的合法行为特征库的素材。
为了提高木马与合法程序区分器的区分效率,本文使用基于互信息的特征选择算法筛选出对分类结果有效的特征,减少特征库中特征向量的维数。互信息特征选择法[8]使用互信息来衡量某个特征和特定类别的相关性,如果信息量越大,那么特征和这个类别的相关性越大,因此可以将每一个特征的互信息值从高到低排列,优先选择相关性较大的特征项[9,10]。
设t表示木马或合法程序提取出来的特征,c1表示木马程序类,c2表示合法程序类,则类别ci(i=1,2)对于特征t的互信息值为:
MI(t;ci)=log(p(t|ci)/p(t))=
log(p(t,ci)/(p(t)×p(ci))。
其中,p(t,ci)表示包含特征t且属于类别ci的向量在特征库中出现概率;p(t)表示包含特征t的向量在木马特征库和合法程序特征库中出现的概率;p(c1)表示木马特征库和合法程序特征库中的木马特征向量出现的概率;p(c2)表示木马特征库和合法程序特征库中的合法程序特征向量出现的概率。根据MI(t;ci)的公式可知,当特征t在类别c1中出现的概率高,而在类别c2中出现概率低时,MI(t;c1)的值高,即特征t和类别c1相关性大,MI(t;c2)的值低,即特征t和类别c2相关性小。当p(t|ci)>p(t)时,MI(t;ci)>0,特征t和类别ci成正相关,即当一个特征向量中出现特征t时,该向量有可能属于类别ci。当p(t|ci)
定义特征项t在木马特征库和合法程序特征库中的互信息值为MI(t)=MI+(t)-MI-(t),其中
p(t|ci)>p(t);
p(t|ci)
设木马或合法程序Ai的行为特征向量为A1(t1,…,tn,cj),…,Am(t1,…,tn,cj),其中j∈{1,2}。阈值为K。基于互信息的特征选择算法步骤如下。对i∈{1,2,…,n}的每一个i的取值,依次如下计算:
第一步,计算包含特征ti且属于类别c1和(或)c2的特征向量在特征库中出现的概率p(ti,c1)和(或)p(ti,c2)。计算包含特征ti的向量在木马特征库和合法程序特征库中出现的概率p(ti)。计算木马特征库和合法程序特征库中的木马特征向量出现的概率p(c1)。计算木马特征库和合法程序特征库中的合法程序特征向量出现的概率p(c2)。
第二步,计算特征ti在木马特征库和合法程序特征库中的互信息值MI(ti)。
第三步,判断MI(ti)的值是否超过设定的阈值K。如果MI(ti)≥,则特征向量保留特征项ti;否则如果MI(ti) 经过基于互信息的特征选择算法的处理,本方案获得了更优的木马与合法程序活动行为特征库,并作为木马与合法程序区分器的输入。 2.2.3 构造木马与合法程序区分器 对于可疑程序,由于其对计算机具有潜在的威胁,因此在提取其活动行为特征时要在虚拟环境中虚拟执行,得出其活动行为特征向量作为木马与合法程序区分器的输入。木马与合法程序区分器的构造是通过模式识别领域中较为成熟的理论来解决,本研究通过构建非线性支持向量机分类器来区分木马与合法程序。 支持向量机分类算法[11]是一种基于统计学习理论的模式识别方法,能很好的解决小样本、高维数、非线性和局部最小点等问题。支持向量机分类算法的核心思想是通过事先选择的非线性映射算法(核函数)把线性不可分的输入向量从低维输入空间映射到一个高维特征空间,使得线性不可分的输入向量在高维空间中实现线性可分,并依据结构风险最小化理论在这个高维特征空间中构造最优分类超平面。 利用支持向量机分类算法的基于活动行为特征的木马检测算法步骤如图2所示。 图2 基于活动行为特征的木马 检测算法步骤图 第一步,在已建立的木马活动行为特征库和合法程序行为特征库的基础上,定义算法的输入向量{(x1,y1),…,(xn,yn)},其中xi(i=1,…,n)是特征项,表示木马活动行为特征或者合法程序行为,yi∈{1,-1},(i=1,…,n)。如果xi是木马活动行为特征库中的特征项,则对应的yi取值为1,否则如果xi是合法行为特征库中的特征项,则对应的yi取值为-1。 第二步,选取合适的核函数H(x,y),构造最优分类超平面,得出最优分类超平面参数α=(α1,…,αn)T和β。 APT攻击检测系统包含CPU、内存、硬盘、GE口等物理组件。其中包含8个GE口4个用于管理配置,4个用于接收镜像的流量。APT攻击检测系统利用自己的镜像口连接至交换机的镜像端口,所处理的网络高速流量来源于网络中通过高性能路由器分流镜像出的网络流量。 APT攻击检测系统的从逻辑上分为采集子系统和分析子系统,其中采集子系统主要负责流量采集、协议过滤、会话还原、特征匹配等功能;分析子系统主要负责原始事件写入数据库、安全事件判定、生成告警事件、告警事件写入数据库等功能。 采集子系统收到镜像流量后,先进行二层过滤、三层过滤、分片重组,然后进行协议识别、会话还原,接着进行特征匹配、虚拟执行等功能,生成原始文件,具体流程如图3所示。 图3 采集子系统处理流程图 分析子系统收到TCP连接请求后,接收原始文件、解析消息内容、判定消息是否合法,之后执行事件标准化,包括将合法消息入库,进行事件判定、归并、分类,最后关联分析。 图4 分析子系统处理流程图 本研究以Clean MX 数据库和国内安全厂商提供的病毒库为基础,并根据长期研究经验抽取测试木马样本集,结合正常程序构建特征库,进行漏报率及误报率检测实验。 通常要求APT攻击检测设备漏报率检测不高于5%,具体实验步骤如下: (1)在某台终端上安装发送PCAP格式包的软件(例如Tcpreplay),作为发包机; (2)利用Tcprelay分别构造含有100个、200个、300个、400个、500个、600个、700个、800个、900个、1000个真实木马样本的异常流量; (3)使用发包机将第2步构造的10个网络流量包,分10次向APT攻击检测设备进行持续发送; (4)每一次发送流量完毕后,在设备管理端登录APT攻击检测设备管理界面,查看告警事件个数; (5)将发送10次的告警事件个数之和与木马数量之和对比,计算漏报告警事件的个数; (6)计算漏报率,漏报率=漏报的告警事件数之和/木马程序数量之和。 图5 平均漏报数量实验曲线图 多次进行实验以保证数据有效性,同一木马样本数量下的平均漏报数量实验曲线如图5所示,多次实验后计算出的平均漏报率为1.3%,因此,基于特征库检测的漏报率低于5%性能测试合格。 通常要求APT攻击检测设备误报率检测不高于10%,实验过程与第3.1节类似,在某台终端上安装发送PCAP格式包的软件作为发报机,通过向APT攻击检测设备发送含有100个、200个、300个、400个、500个、600个、700个、800个、900个、1 000个的木马样本的网络流量,设定流量程序总数为10 000个。检测合法程序被误报为木马程序的数量即为误报事件,误报率=误报的事件数量之和/合法程序数量之和,验证APT攻击检测设备的误报率是否低于10%。 图6 平均误报数量实验曲线图 多次进行实验以保证数据有效性,同一合法程序数量下的平均误报数量实验曲线如图6所示,多次实验后计算出的平均误报率为0.54%,因此,基于特征库检测的误报率低于10%性能测试合格。 世界上没有绝对的安全,也没有攻不破的堡垒。正所谓道高一尺,魔高一丈。APT攻击行为的特点决定了对APT攻击行为的防御也是不断变化长期持续发展的。本文从APT攻击行为的特点和防御技术的发展现状出发,提出了一种基于活动行为特征关联分析的APT攻击行为检测方法,通过优化行为特征库并构造木马与合法程序的区分器来实现对APT攻击行为的检测和预警,将其应用于检测系统并进行了有效性试验,其研究成果可有力促进APT攻击行为检测与预警产品的研发。2.3 基于活动行为特征的APT攻击检测系统设计
3 试验验证与分析
3.1 基于特征库检测的漏报率测试
3.2 基于特征库检测的误报率测试
4 结 语