针对数据泄漏行为的恶意软件检测

王丽娜 谈 诚 余荣威 尹正光

(软件工程国家重点实验室(武汉大学) 武汉 430072) (空天信息安全与可信计算教育部重点实验室(武汉大学) 武汉 430072) (武汉大学计算机学院 武汉 430072)

(lnwang.whu@gmail.com)

摘 要:高级可持续威胁(advanced persistent threat, APT)级网络攻击对企业和政府的数据保护带来了极大的挑战.用0day漏洞制作恶意软件来进行攻击是APT级网络攻击的常用途径,传统基于特征的安全系统很难检测这类攻击.为了检测泄漏敏感信息的恶意软件,首先分析已出现的APT恶意软件,描绘出窃取信息的攻击步骤,以此为基础提出1个针对数据泄漏行为的恶意软件检测方案用于检测同种攻击类型的恶意软件.该方案结合异常检测和误用检测,对被保护的主机和网络进行低开销的持续监控,同时提出一系列推断规则来描述攻击步骤中可以观察到的高级恶意事件.一旦监控到可疑事件,进一步收集主机和网络的低级行为,根据推断规则关联低级行为和高级恶意事件,据此重构窃取信息的攻击步骤,从而检测出攻击的存在.通过仿真实验验证了该方案的有效性.

关键词:信息泄漏;恶意软件;攻击步骤;低级行为;高级恶意事件;推断规则

信息网络面临着无处不在、无时不在的安全威胁[1].黑客们通常使用0day漏洞制作恶意软件,并不断更新自己的漏洞库来保证威胁性,部分精心设计的攻击被称为高级可持续威胁(advanced persistent threat, APT).海莲花组织[2]通过鱼叉攻击和水坑攻击等方法,配合多种社会工程学手段进行渗透,向境内特定目标人群传播特种木马程序,秘密控制部分政府人员、外包商和行业专家的电脑系统,窃取系统中相关领域的机密资料;Duqu[3]和Duqu 2.0[4]木马用于收集与其攻击目标有关的各种情报如收集密码、抓取桌面截图(暗中监视用户的操作)、盗取各类文件等,并采取隐蔽通信方式传输数据;sKyWIper[5]又称为Flame病毒,是全新的网络间谍武器,可以通过USB存储器以及网络复制和传播,并能接受来自世界各地多个服务器的指令,感染病毒的电脑将自动截屏、自动录音、记录用户密码和键盘敲击规律,并将结果和其他重要文件发送给远程操控病毒的服务器.

近年来,研究者针对APT攻击的检测和防御做了大量的工作.从检测的方法来看主要分为2类:1)检测0day漏洞利用的异常检测,包括网络流量异常检测[6-9]和恶意代码异常检测[10-12];2)基于现有安全分析结果的误用检测,包括针对攻击底层特征的特征检测[3]和关联底层安全检测结果的安全事件关联分析.前者检测范围过于单一,应对结合多种攻击手段的APT攻击时存在局限性;后者关联对象较为单一,难以发现不同位置不同时间段内安全事件潜在的隐藏关系.同时,APT攻击种类繁多,攻击手段复杂,很难设计统一的检测方案.因此,利用各类安全事件的内在联系,以具体攻击的过程和特点为指导,对信息系统中的所有安全事件进行综合关联分析是个很大的挑战.

针对以上问题,本文计划针对信息窃取类型的恶意软件进行分析并提出新的检测方案,设计扩展攻击树模型,结合异常检测和误用检测,通过多时间窗口关联分析和主机网络事件关联分析来检测恶意软件的信息窃取行为.为了构建检测方案,本文深度分析了著名的窃取信息的恶意软件,找到这些恶意软件的3个特点:

1) 窃取信息的恶意软件采用高级定制化工具和入侵技术,使用0day或1day的漏洞利用,渗透能力极强,依靠安全边界阻止攻击几乎不可能;

2) 这类恶意软件操作隐秘,持续渗透,还采取各种伪装技术例如使用Hash碰撞伪造证书来绕过主流的安全产品,因此采取传统安全产品的报警作为输入的检测方法很难起到效果,因为攻击方的隐秘技术很可能绕过了这些安全产品;

3) 攻击步骤中恶意软件的运行存在可观测的主机行为和网络行为,这些恶意程序通常是自动程序,不需要人的行为驱动,存在异常的访问系统资源(注册表修改和文件读写)来开机自启动和偷取信息,恶意程序和命令与控制系统(command & control, C&C)的通信会尽可能的小并采取伪装技术来减小暴露的可能性.

本文计划根据这些可观测的行为来建模检测,将这些行为投射到窃取信息的攻击步骤[13]上:信息收集、切入、命令与控制通信、横向移动、资产数据发现、数据提取.这些行为分布于各个阶段.本文设计针对性的方案直接对这些行为进行监控和检测,避免了伪装技术的干扰,并通过对结果的关联分析来判断是否存在窃取信息的恶意软件.

本文的主要贡献有2点:

1) 分析已出现的窃取信息的恶意软件,描绘它们的攻击步骤,从中提取可观测的高级恶意事件,再分解为低级行为,最后完成推断规则.

2) 提出一系列推断规则来描述攻击步骤中的高级恶意事件,提出新颖的方案检测窃取信息的恶意软件.该方案对被保护的主机和网络进行持续监控,结合基于主机的入侵检测系统(host-based intrusion detection system, HIDS)和网络入侵检测系统(network intrusion detection system, NIDS)获得的低级行为如文件访问或通信创建等,通过多时间窗口关联分析和主机网络事件关联分析,关联低级行为和高级恶意事件,重构窃取信息的攻击步骤,从而检测恶意软件.该方案是异常检测和误用检测的结合,对攻击步骤过程的分析和检测规则的生成属于误用检测,监控和检测的实现属于异常检测,根据推断规则从收集到的看似正常的数据中推断恶意软件进行操作的高级恶意事件.

1 相关工作

本文研究窃取信息的恶意软件是基于高级可持续威胁的应用,针对高级可持续威胁的研究非常热门,这里介绍一些与本文相关的检测技术.

一些学者通过对现有APT攻击的分析开发对应的检测工具.文献[3]首先具体分析了Duqu病毒,然后开发了1套检测工具,包括简单的启发工具,在系统中寻找确定类型的异常.

一些学者提出抗APT攻击安全框架,为各项APT防御和检测技术提供运行环境.文献[14]对威胁进行建模,提出基于异常发现的“慧眼”架构,将网络安全监测过程分为低位监测和高位监测,低位监测机制监控主机的应用环境、系统环境、通信环境、传输环境和数据环境,高位监测机制对网络协议特征和流量统计特征进行分析;文献[15]提出基于入侵检测事件的检测和预测APT恶意软件来阻止安全事件,使用基于入侵检测事件的预测模型,预测详细事件发生和入侵的详细信息.这2篇论文的数据收集方法极具创新性,但是检测方法太过宽泛难以实用.

许多学者研究基于网络大数据分析的攻击检测技术来检测APT攻击[16],基于高层事件融合的检测技术是研究的热点,尤其是安全事件关联分析.文献[17]介绍安全设备报警关联分析方法,以Snort等安全设备的海量报警作为输入,通过报警融合得到更有概括性且更准确的安全报警.该文献提出基于上下文验证的网络入侵检测模型,结合环境上下文、弱点上下文、反馈上下文和异常上下文等多种上下文信息,构建虚警处理平台,实现告警的自动验证以及攻击行为能否成功的自动判定.这篇文章存在的问题是安全事件关联分析的关联对象类型不够全面.

文献[18-21]介绍网络和主机安全关联分析方法,首先给出网络流量和主机特征异常程度的度量指标,然后利用科学的模型对以上2类指标进行综合来有效提高安全检测的准确率.文献[18]首次提出结合主机行为和网络活动的僵尸网络检测方法,对注册表、文件系统、网络堆栈行为进行监视获取1个特征向量,在网络边缘抓取网络通信的Netflow流量数据进行过滤和聚类分析,最后通过关联算法将主机行为与网络活动结合,判断主机是否感染僵尸;文献[19]提出主机网络协作检测框架,使用关联方法对主机进程和网络通信的多个模块检测结果进行关联,最终判断主机是否感染僵尸程序;文献[20]提出基于信任的网络群体异常行为发现模型,使用网络交互拓扑信息建立网络节点间的信任矩阵,结合直接信任度和相关信任度计算网络节点间的相似度,通过松弛谱聚类算法中的约束条件,增强类数目的自动识别能力,提高节点聚类准确性;文献[21]借鉴推荐算法的思想,利用聚类方法得到网络节点间的流量相似度,利用反病毒工具得到主机的可疑度,将主机可疑度作为推荐模型的节点、流量相似度作为连边,通过关联得到网络中所有主机的综合可疑度,准确检测恶意程序和入侵.这些论文关联分析中攻击模型建立过程的主观性过强.

文献[22-24]介绍攻击步骤关联分析,利用专家经验建立攻击模型,通过将已检测到的攻击与攻击模型进行匹配来识别攻击意图,为下一阶段的攻击检测提供依据.文献[22]基于威胁状态转移图挖掘威胁事件的时空关联关系,获得当前有效威胁及实时状态;基于网络实体价值、威胁严重度、威胁成功3个要素,提出多粒度的层次化递推算法,从威胁状态、威胁路径、网络全局3个层面上量化评估安全威胁,以反映不同粒度的威胁态势;文献[23]提出面向内部威胁的安全防护策略概率攻击图模型,在该模型中讨论内部攻击的3类不确定性,并引入安全防护措施节点及其对攻击成功的概率影响;文献[24]在攻击图模型中引入转移概率表,刻画单步攻击检测结果的不确定性,从观测事件推导出某步攻击发生的概率,提出面向内部攻击意图推断的概率攻击图模型,基于该模型提出1种推断内部攻击意图的算法以及针对攻击目标的最大概率攻击路径的计算方法.这些方法重在理论研究,实际应用讨论不够.

文献[25-26]介绍了动态恶意分析技术,一些研究者使用该技术来还原恶意程序的生命周期,以更好地分析和检测恶意程序,本文也从中借鉴了一些经验.文献[25]实现基于裸机的动态恶意分析系统BareCloud来检测躲避型恶意软件,并与其他基于仿真和虚拟化的分析系统作比较;文献[26]提出透明通用的僵尸网络追踪系统BotWatcher,利用动态分析和内存取证技术周期性的记录系统状态,基于系统状态的不同使用推理规则重构高级恶意事件,最终推断出僵尸网络的生命周期.

2 攻击步骤与检测建模

本文深度分析了著名的APT恶意软件Duqu,Flame,Duqu2,总结这些恶意软件的攻击步骤,描绘窃取信息的攻击步骤,根据这个步骤设计对应的检测模型和检测方案.

2.1 攻击步骤

这类窃取信息的攻击步骤如图1所示.

攻击者尝试从1个组织中窃取机密信息,已经完成侦查和武器化步骤,部署了C&C服务器来隐蔽自身.而目标组织的机器处在1个局域网内,通过网关与外网连接,安全设备齐全.

攻击步骤分为渗透过程和泄漏过程2个部分.渗透过程如图1(a)所示,攻击者通过钓鱼、鱼叉攻击、社会工程学、中间人攻击等方式诱使组织内某一成员下载恶意软件,利用该成员主机上的漏洞隐蔽执行恶意软件,在受害者一无所知的情况下控制他的主机并连接到外网的C&C服务器,与攻击者建立远程连接,等待进一步指令;C&C服务器会下达的命令包括控制恶意软件获取当前网络拓扑、扫描其他主机漏洞、攻击并控制其他主机等.

Fig. 1 Attack steps
图1 攻击步骤

这类攻击的目标是窃取机密信息,必然存在着信息泄漏的过程.泄漏过程如图1(b)所示,攻击者以局域网内1台被控制主机为本地C&C服务器(服务器1),与外网C&C服务器(服务器2)建立远程连接等待进一步命令;攻击步骤中服务器2给服务器1发送信息收集命令,服务器1执行该命令并将该命令转发到局域网内其他被控主机,其他主机将收集到的信息汇总到服务器1,由服务器1统一发送给服务器2.

2.2 扩展攻击树模型

分析2.1节所述的攻击步骤,本文提出1个对应的扩展攻击树模型来检测入侵.在该扩展攻击树中,父节点是子节点的目标,根节点为最终攻击结果,它的子节点为各个攻击步骤,攻击步骤的子节点是每个阶段的典型高级恶意事件,叶子节点则是组成高级恶意事件的低级行为.为了适应本文的应用,本文重新对扩展攻击树做定义.

定义1. 扩展攻击树T{Mark|V,E,S}.扩展攻击树可以定义为T{Mark|V,E,S}的1个树形结构,其中Mark是该攻击树的目标信息,V是节点集合,E为边的集合,S表示达到节点攻击状态的可疑性,True表示可疑,False表示正常.如果存在边e(vivj),则节点i是节点j的父节点,并且表示节点j要达到节点i状态,父节点包括若干个AND节点或者OR节点.

定义2. AND关系.AND关系表示同一AND关系下所有子节点全部完成后才会实现父节点,这样的节点关系构成AND关系树.

定义3. OR关系.R节点表示同一OR关系下只要任一子节点实现后父节点就能实现,这样的节点关系构成OR关系树.

分析已有攻击样本获得信息泄漏的高级恶意事件集合,本文计划通过AND与OR关系将检测到的行为投影到窃取信息的攻击步骤上,自上而下构建扩展攻击树.其攻击树的构建过程如算法1.

算法1. 扩展攻击树模型构建算法.

输入:高级恶意事件集合A={A1,A2,…,An};

输出:扩展攻击树T{Mark|V,E,S}.

① 标记根节点的S值为False;

② 标记攻击阶段为根节点的子节点,它们的S值为False;

③ 分别判断A中每个事件与攻击阶段的关系;

④ While A中还存在未遍历的事件Am

⑤ If存在恶意事件属于同一攻击阶段而且它们之间属于OR关系

⑥ 根据定义3标记这些事件为对应攻击阶段的子节点,它们的S值为False;

⑦ Else If存在恶意事件属于同一攻击阶段而且它们之间属于AND关系

⑧ 根据定义2标记这些事件为对应攻击阶段的子节点,它们的S值为False;

End If

End While

算法1按照定义2和定义3的“AND”和“OR”关系构建扩展攻击树,攻击树实例如图2所示:

Fig. 2 Instance of extended attack tree model
图2 扩展攻击树模型实例

根节点为最终攻击结果,子节点为6个攻击步骤,“AND”关系.攻击步骤的子节点是高级恶意事件,如鱼叉攻击、网络扫描等.高级恶意事件由多个低级行为组成,如端口访问、文件访问等.高级事件与攻击步骤之间的关系由专家经验确定,低级行为与高级事件之间的关系通过推断规则表现.

本文对注册表修改行为、可疑的自动网络通信行为进行持续监控,如果发现可疑则进入检测阶段,检测对象包括可疑的网络传输、可疑的通信对象、可疑的文件访问等低级行为.然后将检测到的低级行为记作序列SA={SA1,SA2,…,SAi},此序列用于跟扩展攻击树匹配.

我们设计了1个针对扩展攻击树的匹配算法,其思想是:将SA序列在扩展攻击树中做递归查询,若查询到,则将对应的攻击树中的节点的S值为True,算法2给出匹配过程.

算法2. 扩展攻击树匹配.

输入:扩展攻击树T{Mark|V,E,S}、行为序列SA={SA1,SA2,…,SAi};

输出:匹配结果result.

① For SA中的元素SAi

② If存在可疑行为与扩展攻击树的叶子节点匹配

③ 设该节点的S值为True;

④ End If

⑤ End For

⑥ While攻击树T中存在S值设为True的节点

⑦ If存在AND关系的所有子节点的S值均为True

⑧ 设父节点S值为True,将它们自己的S值置为False;

Else If存在OR关系的子节点中有节点的S值为True

⑩ 设父节点S值为True,将它们自己的S值置为False;

将所有节点的S值置为False;

End While

根节点的S值为True

存在攻击,报警;

Else认为不存在攻击;

算法2遍历可疑行为序列SA,将每个行为与扩展攻击树的叶子节点匹配,如果比配成功,则给该节点S值设为True.接下来对S值设为True的节点进行分析,如果AND关系的所有子节点的S值均为True,或者OR关系的子节点中有节点的S值为True,则设父节点S值为True.如果能得到根节点的S值为True,则认为存在攻击,报警.

3 检测方案与推断规则

3.1 检测方案的有限状态机模型

作为理论基础,给出本文检测方案的形式化描述,该方案可以抽象为确定的有限状态自动机模型,用自动机M=(S,Σ,F,S0,Z)来表示.

状态转换如图3所示.其中S是1个有限状态集合,S={S0,S1,S2,S3,Z},S0={主机监控},S1={主机检测},S2={网络检测},S3={综合判断},Z={攻击报警};Σ表示在主机和网络中检测到的低级事件集合;F表示状态迁移函数.F={F0,F1,F2,F3,F4},F0={安置后门行为},F1={自动通信行为},F2={主机行为异常},F3={网络行为异常},F4={存在攻击事件}.本文在实际应用中以推断规则的形式来表述迁移函数,推断规则在3.4节中具体介绍.S0={主机监控}是唯一的初态,Z={攻击报警}是最终状态.

Fig. 3 State machine model
图3 有限状态机模型

3.2 部署方案

根据2.2节所述的攻击树模型和3.1节所述的状态机模型,本文计划部署3个模块来检测攻击:触发模块、检测模块、判断模块.

1) 触发模块A部署于被监控的主机上,负责持续监控注册表更新和网络交互情况.触发模块包括注册表监控子模块和网络监控子模块.注册表监控子模块在每次开机后自动检测注册表修改,发现新增加的开机自启动项,则记录进程号pid传给检测模块并触发检测过程.网络监控子模块监控人与进程的交互和进程与网络的交互,判断通信是否由人手动产生.如果不是,记录通信地址、进程号并传给检测模块并触发检测过程.

2) 检测模块分为主机检测子模块B和网络检测子模块C.主机检测子模块部署于被监控的主机上,根据进程号pid检测主机上的低级行为;网络检测子模块部署于网络监控主机上,根据通信地址检测网络中的低级行为.2个模块将检测到的低级行为组合为高级事件,并发给判断模块.

3) 判断模块D部署于网络监控主机上,根据收集到的高级事件使用推断规则和扩展攻击树重构窃取信息的攻击步骤,判断是否存在攻击.

本文借鉴文献[26]的方法使用推理规则重构高级恶意事件,最终推断出窃取信息的攻击步骤.主机检测子模块和网络检测子模块从执行特征中提取低级行为,根据推断规则将低级行为组合为高级事件,将结果汇总到判断模块,判断模块重构窃取信息的攻击步骤判断是否存在攻击.

3.3 低级行为收集

主机端可获取的低级行为有4种:

1) R[time,entry,pid]:进程pid在时间time修改注册表、入口entry.

注册表.恶意软件修改注册表来获得开机自启动的能力,并且关闭防火墙和其他工具.为了识别修改注册表开机自启动的可疑程序,触发模块监控注册表的修改,每次注册表修改为1次低级行为.

2) F[time,pid,file]:进程pid在时间time访问文件file.

文件.恶意软件访问主机中的文件、窃取信息,安装新模块,进一步传播等.为了识别窃取信息的可疑程序,主机检测子模块检测进程对文件的操作,记录1次文件访问为1次低级行为.

3) I[time,pid]:进程pid在时间time存在外设输入.

外设输入.恶意软件通过后台程序利用网络与C&C服务器通信,这类通信通常是自动产生的,不是由外设输入产生的.为了识别自动发包的可疑程序,触发模块监控外设输入,记录对1个进程的外设输入为1次低级行为.

4) N[time,pid,srcadd,destadd]:进程pid在时间time创建本地端口port的网络通信.源地址srcaddsrcipsrcport组成,目的地址destadddestipdestport组成.

网络通信.恶意软件通过后台程序利用网络与C&C服务器通信,这类通信通常是自动产生的,不是由外设输入产生的.为了识别自动发包的可疑程序,触发模块监控本机的自动网络通信,记录1个进程的1次通信过程为1次低级行为.

网络端在网络检测子模块启动后截取流量获取低级行为,具体情况如下:

数据包检测获得的低级行为output——网络通信输出数据大小,input——网络通信输入数据大小,encryption——通过熵值计算判断数据包是否加密或压缩.

通信对象检测获得的低级行为DNSsus——特征查询检测DNS是否可疑,whitelist——通信白名单(本文以常见的域名和IP建立白名单).

3.4 推断规则

高级恶意事件表示窃取信息的攻击步骤中的典型攻击事件.推断规则如表1所示,分子是前提,分母为满足前提做出的声明.有限状态机的迁移函数中,F0={安置后门行为}对应推断规则1——注册表修改添加开机自启动,F1={自动通信行为}对应推断规则3——自动网络连接,F2={主机行为异常}对应推断规则9——可疑文件访问,F3={网络行为异常}对应推断规则7——可疑上传和推断规则8——可疑下载,F4={存在攻击事件}对应推断规则10——数据泄漏.本文根据这些规则构建出窃取信息的攻击步骤并检测攻击.

Table 1 Inference Rules
表1 推断规则表

RuleNumberRuleFormula1R[time,entry,pid]AUTORUN[pid,time]2N[time1,pid,srcadd,destadd],N[time2,pid,srcadd,destadd],time1<time2CONNECTION[pid,srcadd,destadd,time1]3CONNECTION[pid,srcadd,destadd,time1],pid∉I[time2,pid],time2<time1AUTONETWORK[pid,srcadd,destadd,time1]4CONNECTION[pid,srcadd,destadd,time],input<outputUPLOAD[pid,srcadd,destadd,time]5CONNECTION[pid,srcadd,destadd,time],input>outputDOWNLOAD[pid,srcadd,destadd,time]6DNSsus,ip∉whitelistSUSDEST[ip]7UPLOAD[pid,srcadd,destadd,time],encryption=True,SUSDEST[destip]SUSUPLOAD[pid,destadd,time]8DOWNLOAD[pid,srcadd,destadd,time],encryption=True,SUSDEST[srcip]SUSDOWNLOAD[pid,srcadd,time]9F[time1,pid,file1],…,F[timem,pid,filem],m>threshold|filen∈senslistSUSFA[pid,time]10SUSFA[pid,time1],SUSUPLOAD[pid,destadd,time2],time1<time2BREACH[pid,destadd]

推断规则1. 注册表修改添加开机自启动:恶意程序运行后会修改注册表获得开机自启动权限.进程pid在时间time对注册表entry进行了操作,则声明该进程获得了持续运行于主机的权限.

推断规则2. 网络通信:进程pid在时间time1建立网络连接,在时间time2结束网络连接,则声明该进程进行了1次网络通信.

推断规则3. 自动网络连接:恶意程序通过后台进程与C&C服务器建立远程连接,这类进程不存在外设输入.进程pid在时间time1建立了网络连接,而且该进程在外设输入记录中查询不到,认为不存在外设输入,则声明该进程进行了自动网络连接.

推断规则4. 上传:进程pid进行了1次网络通信,其下载流量小于上传流量,则声明该进程进行了1次数据上传行为.

推断规则5. 下载:进程pid进行了1次网络通信,其下载流量大于上传流量,则声明该进程进行了1次数据下载行为.

推断规则6. 可疑地址:窃取信息攻击中,可能需要通过DNS查询来与外网的C&C服务器通信.在存在可疑行为的前提下对通信地址做判断,如果该域名可疑且通信地址不在IP白名单中,则声明该通信地址可疑.

推断规则7. 可疑上传:为了减小被传统安全产品检测到的几率,恶意通信一般使用隧道通信或加密通信,或者将敏感数据存于图片中以为伪装.进程pid进行了1次数据上传行为,如果判断这次通信为加密通信且IP地址可疑,则声明该进程进行了可疑的数据上传行为.

推断规则8. 可疑下载:为了减小被传统安全产品检测到的几率,恶意通信一般使用隧道通信或加密通信,或者将敏感数据存于图片中以为伪装.进程pid进行了1次数据下载行为,如果判断这次通信为加密通信且IP地址可疑,则声明该进程进行了可疑的数据下载行为.

推断规则9. 可疑文件访问:进程pid在1个时间段内访问了数量超过阈值的文件,或访问了属于敏感文件列表的文件,则声明该进程进行了可疑的文件访问.

推断规则10. 数据泄漏:进程pid首先进行了可疑的文件访问,然后进行了可疑的数据上传行为,则声明该进程泄漏了数据到可疑的目的地址.

4 实 验

4.1 实验环境的搭建

Fig. 4 Network configuration
图4 实验网络拓扑结构

网络配置如图4所示,网络分为外网区域和内网区域,外网与内网通过防火墙系统逻辑隔离.外网部署1台Kali Linux攻击机;内网由1台Ubuntu 14.04网关、1台Windows XP工作机和1台Windows Server服务器组成,以下简称为Kali,Ubuntu,XP,Server.XP通过网关访问外网,也可以访问Server,Server设置为禁止与外网交互通信.Ubuntu检测内外网络之间的通信,本文使用Bro[27]来检测网络通信.在Server上建立4个文件夹放置不同格式的文件作为攻击目标,包括TXT,PDF,JPG,ZIP文件.XP和Server上均存在漏洞MS08-067和MS10-046.部署于XP上和Server上的触发模块A1,A2根据推断规则1和3监控本机内的注册表修改和自动网络连接,部署于XP上和Server上的主机检测子模块B1和B2根据推断规则9检测可疑主机事件,部署于Ubuntu上的网络检测子模块C根据推断规则4~8检测可疑网络事件,部署于Ubuntu上的判断模块D根据推断规则10和扩展攻击树模型判断是否存在攻击.

4.2 模拟攻击检测

模拟攻击检测的目标是,在发动1次完整的攻击的同时,本文的检测方案可以检测到攻击的存在并发出带有详细信息的警报.整个攻击步骤中,触发模块持续运行监控系统,检测模块和判断模块在触发模块发送触发信息后才运行.考虑到信息收集阶段与其他阶段关联性不强且多误报,检测方案不考虑对信息收集阶段可疑事件的检测,而是以攻击切入阶段的权限获取和C&C通信阶段的自动连接为触发检测的监控对象,网络监控主要监控自动连接的TCP包.

我们根据算法1构建完整的扩展攻击树模型,如图5所示.对著名的APT恶意软件Duqu,Flame,Duqu2进行分析,从它们的攻击步骤中提取高级事件作为攻击步骤的子节点,根据推断规则关联低级行为与高级事件的关系,将低级行为作为高级事件的子节点.鱼叉攻击中必然存在对附件的可疑下载,对应推断规则8;获取权限的1种方式是修改注册表,对应推断推断规则1;可疑的通信必然是自动的网络连接,可能有自动的DNS查询,对应推断规则3和推断规则6;自动更新必然存在可疑下载,可能有自动的DNS查询,对应推断规则8和推断规则6;可疑的文件扫描可能是过量的文件访问,也可能是对敏感数据的非法访问,对应推断规则9;加密传输事件是对可疑地址的可疑上传,对应推断规则6和推断规则7.

Fig. 5 Complete extended attack tree model
图5 完整扩展攻击树模型

在该实验中,Kali首先攻击XP,再以XP为跳板攻击并远程访问Server,最终从Server窃取信息并传回Kali.我们进行了5次实验,每次攻击窃取不同类型的信息,持续不等的时间,来验证检测方案的可靠性,实验结果如表2所示.分析实验结果可知,攻击时间的长短并不会对检测造成影响,说明我们的方案可以有效检测基于时间的规避攻击.漏报的1次是获取txt格式的目标,经过分析是因为被窃取目标小于攻击流量且无加密压缩,所以网络检测子模块未报告可疑上传异常导致漏报.在实际攻击中,攻击者会尝试最小化攻击流量以减少被常规特征检测安全设备检测到的概率.在复杂的攻击后,为规避本方案的检测而将窃取的信息压缩到比攻击流量更少,可以规避本方案,但这样会明显降低攻击的效果,提高攻击的代价.

Table 2 Experimental Result
表2 实验结果

ExperimentNo.ExploitDurationTargetResult1MS10-046,MS08-06710minJPGFilesAlert2MS10-046,MS08-06730minPDFFilesAlert3MS10-046,MS08-0671hTXTFilesNoAlert4MS10-046,MS08-0673hZIPFilesAlert5MS10-046,MS08-0673hAllFilesAlert

Fig. 6 Vulnerability exploitation process
图6 漏洞利用过程

以第1次实验窃取JPG文件为例介绍实验过程.

1) Kali利用MS10-046漏洞制作1个恶意软件作为鱼叉攻击的附件发送到XP,在工作机下载恶意软件自动触发漏洞,构建后门修改注册表开机自启动,通过反向TCP建立与Kali的远程连接,如图6所示.

2) 以XP为跳板利用MS08-067漏洞攻击Server,在溢出成功后可以远程连接到服务器,构建后门修改注册表开机自启动,遍历机密信息并传回Kali,如图7所示.

Fig. 7 Data breach process
图7 窃取信息过程

3) 在攻击机的指定目录下,看到窃取的文件,证明攻击已成功,如图8所示,攻击完成.

Fig. 8 Data breach result
图8 窃取信息结果

Fig. 9 Integrated information output
图9 综合信息输出

报警情况下判断模块D的输出如图9所示.根据图9中“1.AUTORUN”和“2.AUTONETWORK”中有关XP的记录,A1根据推断规则1监控到留后门修改注册表的行为并获取进程pid:4148,基于该pidA1根据推断规则3监控到XP与Kali和XP与Server之间的自动发包行为,随后触发B1和C.根据图9中“1.AUTORUN”和“2.AUTONETWORK”中有关Server的记录,A2根据推断规则1监控到攻击者横向移动后为留后门在Server中进行注册表修改的行为并获取进程pid:2580,基于该pidA2根据推断规则3监控到Server与XP之间的自动发包行为,随后触发B2.图9中“3.SUSFA”记录在Server主机上B2根据推断规则9和可疑pid:2580检测到对敏感文件的访问行为.图9中“4.CONNECTION”,“5.SUSDEST”,“6.ENCRYPTION”记录显示,根据A1获取的信息如通信IP和端口号,C检测到XP将自Server获取的敏感文件转发到Kali的可疑上传通信,判断依据是:根据推断规则4判断上传流量大于下载流量;根据推断规则6判断通信地址192.168.21.41不属于白名单因此可疑;对通信流量进行熵值计算,结果大于阈值,认为通信数据进行了加密或压缩.图9中“7.BREACH”是D总结以上信息根据推断规则10得出的结论,报警认为存在数据泄漏行为,并标明可疑的pid和可疑的目的地址.

4.3 效率和开销

我们进行了5次实验,通过不同的端口(443,4444)获取不同格式(txt,jpg,pdf,zip)的目标,在攻击的同时靶机一直处于正常使用中,有正常的外设输入和网络通信.5次检测4次成功,漏报的1次是因为目标大小小于攻击机发往靶机的流量大小,而且无加密压缩,所以网络检测子模块未报告异常.对正常运行的主机进行多次长时间的误报测试,均无误报.

我们在第4次实验时测量了每个模块的开销来验证系统可靠性,即测量时间在3 h.检测系统分为触发、检测、判断3个模块.触发模块和主机检测子模块部署于被监控的主机上,网络监控子模块和判断模块部署于网关上,网关属于专用安全主机,不会影响别的主机的性能,所以主要测量触发模块和主机检测子模块对被监控主机的影响.

被监控主机一直处于正常运行状态,有正常的上网操作和浏览器使用,我们在关闭和开启模块的2种情况下测量了被监控主机CPU和内存的开销,结果如表3所示,在关闭模块的情况下,主机CPU开销平均30%左右;内存开销平均57%左右.开启模块后运行3 h并进行记录,主机CPU开销平均仍是30%左右;内存开销有所增长,平均在62.5%左右.由分析可知,检测系统对CPU的影响可忽略不计,占用了5.5%左右的内存开销.

Table 3 Overhead of the Modules in the Host
表3 主机上模块的开销 %

SystemOverheadModuleClosedModuleOpenedAverageOverheadCPU17.5-42.517.5-42.50Memory33-8135-905.5

5 结 论

攻击者不断挖掘和使用0day漏洞来制作恶意软件,配备完整安全防护系统的组织仍有可能遭到APT级恶意软件的攻击.减小这类攻击带来的损失非常重要.本文深度分析了3个著名的APT级恶意软件并提出1种新颖的方案来检测窃取信息的恶意软件.该方案结合异常检测与误用检测,使用HIDS和NIDS收集主机和网络的低级行为,根据推断规则关联低级行为和高级恶意事件,由检测到的高级恶意事件构建出窃取信息的攻击步骤,最终检测攻击.同时,本文提出了一系列推断规则来描述攻击步骤中可以观察到的高级恶意事件.我们实现了原型系统并评估,认为本文的方案可以有效检测到恶意软件窃取信息的痕迹.

当然,本文中提到的方案也存在一些问题.持续监控鼠标键盘的输入来查找自动发包的可疑进程,开销略大,同时效果较低,未来需进一步缩小监控范围.由于实验环境的限制,本文中的方案只通过实验室小规模模拟实验验证,对于真实复杂环境的适用情况还有待验证.关联低级行为与高级事件之间关系的推断规则和构建高级事件与攻击步骤之间关系的检测算法1来自于对过去恶意软件学习的专家经验,十分有限.未来计划尝试使用机器学习算法来自动的生成推断规则和检测算法,提高可用性.

参考文献:

[1]Chen P, Desmet L, Huygens C. A study on advanced persistent threats[C] Proc of IFIP CMS’14. Berlin: Springer, 2014: 63-72

[2]SkyEye. APT OceanLotus (APT-C-00)[EBOL]. (2015-05-29) [2016-06-16]. http:bobao.360.cnnewsdetail1601.html (in Chinese)(天眼实验室. OceanLotus(海莲花)APT报告[EBOL]. (2015-05-29) [2016-06-16]. http:bobao.360.cnnewsdetail1601.html)

[3]Bencsáth B, Pék G, Buttyán L, et al. Duqu: Analysis, detection, and lessons learned[C] Proc of ACM EuroSec’12. New York: ACM, 2012: 15-26

[4]CrySyS Lab. Duqu 2.0: A comparison to Duqu v1.0[R]. Budapest: Department of Telecommunications, Budapest University of Technology and Economics, 2015

[5]CrySyS Lab. sKyWIper: A complex malware for targeted attacks v1.05[R]. Budapest: Department of Telecommunications, Budapest University of Technology and Economics, 2012

[6]Mu Xiangkun, Wang Jingsong, Xue Yufeng, et al. Abnormal network traffic detection approach based on alive entropy[J]. Journal on Communications, 2013, 34(Z2): 51-57 (in Chinese)(穆祥昆, 王劲松, 薛羽丰, 等. 基于活跃熵的网络异常流量检测方法[J]. 通信学报, 2013, 34(Z2): 51-57)

[7]Tang Chenghua, Liu Pengcheng, Tang Shensheng, et al. Anomaly intrusion behavior detection based on fuzzy clustering and features selection[J]. Journal of Computer Research and Development, 2015, 52(3): 718-728 (in Chinese)(唐成华, 刘鹏程, 汤申生, 等. 基于特征选择的模糊聚类异常入侵行为检测[J]. 计算机研究与发展, 2015, 52(3): 718-728)

[8]Zheng Liming, Zou Peng, Jia Yan, et al. How to extract and train the classifier in traffic anomaly detection system[J]. Chinese Journal of Computers, 2012, 35(4): 719-729 (in Chinese)(郑黎明, 邹鹏, 贾焰, 等. 网络流量异常检测中分类器的提取与训练方法研究[J]. 计算机学报, 2012, 35(4): 719-729)

[9]Yang Yahui, Huang Haizhen, Shen Qingni, et al. Research on intrusion detection based on incremental GHSOM[J]. Chinese Journal of Computers, 2014, 37(5): 1216-1224 (in Chinese)(杨雅辉, 黄海珍, 沈晴霓, 等. 基于增量式GHSOM 神经网络模型的入侵检测研究[J]. 计算机学报, 2014, 37(5): 1216-1224)

[10]Han Xiaoguang, Qu Wu, Yao Xuanxia, et al. Research on malicious code variants detection based on texture fingerprint[J]. Journal on Communications, 2014, 35(8): 125-136 (in Chinese)(韩晓光, 曲武, 姚宣霞, 等. 基于纹理指纹的恶意代码变种检测方法研究[J]. 通信学报, 2014, 35(8): 125-136)

[11]Zhu Kenan, Yin Baolin, Mao Yaming, et al. Malware classification approach based on valid window and naive Bayes[J]. Journal on Computer Research and Development, 2014, 51(2): 373-381 (in Chinese)(朱克楠, 尹宝林, 冒亚明, 等. 基于有效窗口和朴素贝叶斯的恶意代码分类[J]. 计算机研究与发展, 2014, 51(2): 373-381)

[12]Xu Xiaolin, Yun Xiaochun, Zhou Yonglin, et al. Online analytical model of massive malware based on feature clustering[J]. Journal on Communications, 2013, 34(8): 146-153 (in Chinese)(徐小琳, 云晓春, 周勇林, 等. 基于特征聚类的海量恶意代码自动分析模型[J]. 通信学报, 2013, 34(8): 146-153)

[13]Hutchins E M, Cloppert M J, Amin R M. Intelligence-driven computer network defense informed by analysis of adversary campaigns and intrusion kill chains[J]. Leading Issues in Information Warfare & Security Research, 2011, 1: 80-106

[14]Du Yuejin, Zhai Lidong, Li Yue, et al. Security architecture to deal with APT attacks: Abnormal discovering[J]. Journal of Computer Research and Development, 2014, 51(7): 1633-1645 (in Chinese)(杜跃进, 翟立东, 李跃, 等. 一种应对 APT 攻击的安全架构: 异常发现[J]. 计算机研究与发展, 2014, 51(7): 1633-1645)

[15]Kim Y H, Park W H. A study on cyber threat prediction based on intrusion detection event for APT attack detection[J]. Multimedia Tools and Applications, 2014, 71(2): 685-698

[16]Fu Yu, Li Hongcheng, Wu Xiaoping, et al. Detecting APT attacks: A survey from the perspective of big data analysis[J]. Journal on Communications, 2015, 36(11): 1-14 (in Chinese)(付钰, 李洪成, 吴晓平, 等. 基于大数据分析的 APT 攻击检测研究综述[J]. 通信学报, 2015, 36(11): 1-14)

[17]Tian Zhihong, Wang Bailing, Zhang Weizhe, et al. Network intrusion detection model based on context verification[J]. Journal of Computer Research and Development, 2013, 50(3): 498-508 (in Chinese)(田志宏, 王佰玲, 张伟哲, 等. 基于上下文验证的网络入侵检测模型[J]. 计算机研究与发展, 2013, 50(3): 498-508)

[18]Zeng Yuanyuan, Hu Xin, Shin K G. Detection of botnets using combined host-and network-level information[C] Proc of 2010 IEEEIFIP Int Conf on Dependable Systems & Networks (DSN). Piscataway, NJ: IEEE, 2010: 291-300

[19]Shin S, Xu Zhaoyan, Gu Guofei. EFFORT: A new host-network cooperated framework for efficient and effective bot malware detection[J]. Computer Networks, 2013, 57(13): 2628-2642

[20]Li Qiao, He Hui, Fang Binxing, et al. Awareness of the network group anomalous behaviors based on network trust[J]. Chinese Journal of Computers, 2014, 37(1): 1-14 (in Chinese)(李乔, 何慧, 方滨兴, 等. 基于信任的网络群体异常行为发现[J]. 计算机学报, 2014, 37(1): 1-14)

[21]He Yukun, Li Qiang, Ji Yuede, et al. Detecting response-delayed bot by correlating host behavior and network activity[J]. Chinese Journal of Computers, 2014, 37(1): 50-61 (in Chinese)(何毓锟, 李强, 嵇跃德, 等. 一种关联网络和主机行为的延迟僵尸检测方法[J]. 计算机学报, 2014. 37(1): 50-61)

[22]Lu Huiying, Peng Wu, Wang Ruimei, et al. A real-time network threat recognition and assessment method based on association analysis of time and space[J]. Journal of Computer Research and Development, 2014, 51(5): 1039-1049 (in Chinese)(吕慧颖, 彭武, 王瑞梅, 等. 基于时空关联分析的网络实时威胁识别与评估[J]. 计算机研究与发展, 2014, 51(5): 1039-1049)

[23]Chen Xiaojun, Shi Jinqiao, Xu Fei, et al. Algorithm of optimal security hardening measures against insider threat[J]. Journal of Computer Research and Development, 2014, 51(7): 1565-1577 (in Chinese)

(陈小军, 时金桥, 徐菲, 等. 面向内部威胁的最优安全策略算法研究[J]. 计算机研究与发展, 2014, 51(7): 1565-1577)

[24]Chen Xiaojun, Fang Binxing, Tan Qingfeng, et al. Inferring attack intent of malicious insider based on probabilistic attack graph model[J]. Chinese Journal of Computers, 2014, 37(1): 62-72 (in Chinese)(陈小军, 方滨兴, 谭庆丰, 等. 基于概率攻击图的内部攻击意图推断算法研究[J]. 计算机学报, 2014, 37(1): 62-72)

[25]Kirat D, Vigna G, Kruegel C. Barecloud: Bare-metal analysis-based evasive malware detection[C] Proc of the 23rd USENIX Security Symp. Berkeley, CA: USENIX Association, 2014: 287-301

[26]Barabosch T, Dombeck A, Yakdan K, et al. BotWatcher-transparent and generic botnet tracking[C] Proc of RAID 2015. Berlin: Springer, 2015: 565-587

[27]Paxson V. Bro: A system for detecting network intruders in real-time[J]. Computer Networks, 1999, 31(23): 2435-2463

Wang Lina, born in 1964. Professor and PhD supervisor in Wuhan University. Senior member of CCF. Her main research interests include network security, multimedia security and cloud computing security.

Tan Cheng, born in 1989. PhD candidate of Wuhan University. Student member of CCF. His main research interests include network security and cloud security (cheng_tan@whu.edu.cn).

Yu Rongwei, born in 1981. Lecturer in Wuhan University. Member of CCF. His main research interests include cloud security and content security (rongwei_yu@163.com)

Yin Zhengguang, born in 1989. Master of Wuhan University. His main research interests include network security and cloud security (547316291@qq.com).

The Malware Detection Based on Data Breach Actions

Wang Lina, Tan Cheng, Yu Rongwei, and Yin Zhengguang

(State Key Laboratory of Software Engineering (Wuhan University), Wuhan 430072) (Key Laboratory of Aerospace Information Security and Trusted Computing (Wuhan University), Ministry of Education, Wuhan 430072) (School of Computer Science, Wuhan University, Wuhan 430072)

Abstract:The advanced persistent threat (APT) attack is a big challenge towards enterprise and governmental data protection. The use of 0-day exploits is prevalent with malwares capable of APT attacks, and traditional security systems relying on known features can hardly detect them. In order to detect malwares which steal sensitive information, first of all we analyze existing APT malwares and describe the steps of their attacks. Based on the analysis, we propose a malware detection method focusing on data breach actions to the same kind of malwares. Combining anomaly detection with misuse detection, this method enables persistent monitoring, protecting hosts and network with low cost. Also proposed are inference rulesets which describe high-level malicious events observed in attack steps. Once suspicious events are detected, low-level actions from the hosts and the network will be further collected and correlated to high-level malicious events by the inference rules. Eventually we reconstruct the data breach attack procedure to judge the existence of the attacks. Simulation experiment verify the effectiveness of the method.

Key words:data breach; malware; attack steps; low-level actions; high-level malicious events; inference rules

收稿日期:2016-06-14;

修回日期:2016-10-10

基金项目:国家自然科学基金项目(61373169);国家“八六三”高技术研究发展计划基金项目(2015AA016004);国家科技支撑计划基金项目(2014BAH41B00);NSFC-通用技术基础研究联合基金项目(U1536204) This work was supported by the National Natural Science Foundation of China (61373169), the National High Technology Research and Development Program of China (863 Program) (2015AA016004), the National Key Technology Research and Development Program of China (2014BAH41B00), and the NSFC-General Technology Basic Research Joint Funds (U1536204).

中图法分类号:TP393