高级持续性威胁(Advanced Persistent Threat)是当前信息安全产业界的热点。作为一种有目标、有组织的攻击方式,APT在流程上同普通攻击行为并无明显区别,但在具体攻击步骤上,APT体现出以下特点,使其具备更强的破坏性:
攻击行为特征难以提取:APT普遍采用0day漏洞获取权限,通过未知木马进行远程控制,而传统基于特征匹配的检测设备总是要先捕获恶意代码样本,才能提取特征并基于特征进行攻击识别,这就存在先天的滞后性。
单点隐蔽能力强:为了躲避传统检测设备,APT更加注重动态行为和静态文件的隐蔽性。例如通过隐蔽通道、加密通道避免网络行为被检测,或者通过伪造合法签名的方式避免恶意代码文件本身被识别,这就给传统基于签名的检测带来很大困难。
攻击渠道多样化:目前被曝光的知名APT事件中,社交攻击、0day漏洞利用、物理摆渡等方式层出不穷,而传统的检测往往只注重边界防御,系统边界一旦被绕过,后续的攻击步骤实施的难度将大大降低。
攻击持续时间长:APT攻击分为多个步骤,从最初的信息搜集,到信息窃取并外传往往要经历几个月甚至更长的时间。而传统的检测方式是基于单个时间点的实时检测,难以对跨度如此长的攻击进行有效跟踪。
正是APT攻击所体现出的上述特点,使得传统以实时检测、实时阻断为主体的防御方式难以有效发挥作用。在同APT的对抗中,我们也必须转换思路,采取新的检测方式,以应对新挑战。
基于记忆的APT检测原理
在探讨APT攻击检测之前,我们先分析下检测的内涵。从本质上讲,检测是将求检对象从其所依附的环境中识别出来的过程。为了识别求检对象,我们需要从检测环境中采样能体现求检对象特征的数据,形成被检测域;需要依赖特定的背景知识,形成判据库;需要采取一定的判定算法,形成判定机制;最终在被检测域、判据、判定机制的共同作用下,做出是否存在求检对象的论断,整个过程如图1所示。
图1.检测逻辑模式
以传统的入侵检测系统(IDS)为例,求检对象是网络攻击行为,检测环境就是包含了攻击行为数据的网络流量数据。为了检测攻击,我们需要实时采集网络流量,形成IDS的被检测域;需要提取各类攻击行为的网络特征构造特征库,作为IDS的判据库;需要采用特征匹配算法,作为IDS判定流量中是否包含攻击行为的判断机制。有了流量数据、特征库、特征匹配算法,我们就能检测网络中是否存在已知攻击行为。
传统IDS这种检测模式,在应对常规攻击曾发挥了巨大作用,但对于APT却显得无能为力,主要原因在于:
传统IDS的被检测域是实时网络流量,只判断实时网络流量中是否包含攻击行为;而APT整个过程的时间跨度很长,从单个时间点的角度看APT无法了解全貌,也无法识别攻击者的真实意图,只有将长时间的可疑行为进行关联分析才能实现APT的有效检测。
传统IDS的判断机制是特征匹配,只能检测出提取过攻击签名的已知攻击行为;而APT过程中往往采用0day、特种木马、隐蔽通道传输等未知攻击,无法通过误用检测的方式进行准确识别,只有通过异常检测的方式才有可能识别出可疑的攻击行为。
鉴于上述不足,要有效对抗APT,我们一方面要扩大被检测域,将基于单个时间点的实时检测转变为基于历史时间窗的异步检测;另一方面要丰富判定机制,在检测已知攻击的同时能够兼顾对未知攻击的检测。为此我们提出了基于记忆的新检测模式,共分为四个步骤:
扩大:即拓宽被检测域,对全流量数据进行存储分析。这样在检测到可疑行为时,可回溯与攻击行为相关的历史流量数据进行关联分析,之前已发生过、未能引起分析人员注意的报警,有可能隐藏着蓄意攻击意图,通过这种回溯关联分析就有可能进行有效识别。有了全流量的存储,就有可能回溯到任意历史时刻,采用新的检测特征和检测技术,对已发生的流量进行任意粒度的分析,这是本系统最大的特点。
浓缩:对存储下来的大数据进行降解操作,删除与攻击无关的数据以节省空间,同时保留与攻击相关的数据以备后续分析。浓缩环节需要借助于攻击检测模块,可通过第三方检测设备如IDS的报警进行降解,也可直接对全流量数据进行异常检测产生可疑报警,基于报警事件进行降解。
精确:对产生的可疑攻击数据做进一步深入分析,产生对攻击行为的精确报警。可通过多维数据可视化分析,定位可疑会话,再进一步对流量数据进行细粒度协议解析和应用还原,识别异常行为和伪装成正常业务的攻击行为。本环节需要分析人员的参与,通过人机结合的方式提升分析效率和准确度。
场景:对各类攻击报警进行关联,识别报警之间的攻击层语义关系,根据孤立报警建立完整攻击场景。通常的做法是以关联规则的方式建立攻击场景知识库,通过对报警进行匹配和关联,完成攻击场景的构建。#p#
系统框架
按照数据—信息—知识逐层提炼的模式,基于记忆的APT攻击检测系统结构分为三级,系统整体架构图如下:
图2.基于记忆的检测系统架构图
1、存储层
存储层完成对从互联网直接获取的实时数据流的预处理和存储管理工作。对实时数据流首先进行传输层的会话还原,消除因网络条件造成的乱序、重传、延迟等对后续分析的干扰;然后进行应用协议识别,判断数据流上所承载的具体应用;最终从非结构化的数据流中抽取结构化的元数据信息,以便后续的各类统计和关联分析。
预处理后的原始数据流,既包括完整的全流量数据,又包括提取后的元数据。考虑到海量数据的存储压力,可对不同类型的数据采取灵活的管理策略:
对于全流量数据,进行窗口长度为星期级的存储。由于全流量数据会占用海量存储空间,不宜进行长期存储,但全流量数据对于后续的回溯分析又是必须的。为此采用折中的存储策略:只存储最近几周(例如1-2周)的全流量信息,对于超期的数据进行降解处理。
对于元数据,进行年度级的存储。提取后的元数据只包含应用层会话的关键信息,其数据量大约相当于全流量信息的5%,这类信息对后续的统计、关联和数据挖掘具有重要的作用,且占用的空间在可接受范围内,因此在平台中进行长期存储。
2、分析层
分析层完成从原始流量数据中产生独立报警信息的工作,主要方法包括:
对于能引起网络流量显著异常的攻击,如DDoS、扫描、蠕虫传播等,可通过异常流量检测和统计分析的方式进行识别。通过建立全面、完整的安全基准指标体系,可以快速识别网络流量异常;通过统计分析,可准确定位异常的位置和原因。
对于不引起流量异常的未知攻击,可通过可疑行为建模的方式进行识别。例如对于尚未提取特征的木马,其连接控制端的时候可能会存在未知的加密传输、疑似心跳信号的间歇性连接、恶意域名访问、异常的上下行流量比等行为,通过对这些可疑行为进行关联,就有可能检测到木马连接行为。
对于通过异常检测模块产生的各类报警,由于缺乏攻击签名信息进行验证,其准确度往往低于基于特征匹配的误用检测。为此还需要结合原始报文,对报警的有效性进一步确认。通过报文所承载的应用层对象做细粒度的协议解析和还原,可辅助分析人员判定会话内容是否包含攻击数据,从而进一步产生精确报警。
3、展示层
展示层完成从孤立的攻击报警信息生成完整的攻击场景的关联工作,并提供可视化分析前端工具,帮助分析人员从存储的海量历史数据中获取知识。对于攻击场景关联,常见的方法是基于关联规则匹配攻击场景。由于APT攻击手段的复杂性,在实际环境中往往会因为报警事件的缺失导致无法进行完整攻击路径图的匹配,进而导致建立APT场景失败,为此要解决基于不完整攻击路径的攻击场景匹配问题。对于多维数据可视化分析,要提供给分析人员一套能从地址、端口、协议类型等维度对数据进行统计展示的工具,并支持按照不同的粒度对数据进行钻取,方便分析人员在大数据中定位可疑行为。#p#
典型应用场景
一次典型的APT攻击过程,通常包括信息搜集、获取入口点、实施远程控制、攻击目标横向转移、重要资产数据发现、数据泄露等环节。对于攻击防御方而言,由于特征的时效性和检测手段的局限性,未必能够在攻击的起始阶段实现有效检测。但对于APT这样的时间跨度长、攻击目标明确的攻击行为,在整个攻击过程中总会存在若干个攻击暴露点,以此为基础对相关的流量进行回溯关联,就有可能获取攻击者完整的攻击意图。
以某个攻击过程为例,攻击者试图获取某信息系统中的重要数据。为此,攻击者先搜集到了该信息系统部分用户的邮箱地址,然后给这些用户发送了邮件,其附件中包含了某个利用了0day漏洞的文件,导致用户打开附件时执行了恶意命令并被植入了未知木马。攻击者通过加密的命令控制通道,对用户主机实施远程控制,获取了信息系统中的重要数据。在这个攻击过程中,由于攻击者所利用的漏洞、植入的木马都缺乏特征,采用的远程控制通道又是进行了加密,现有基于攻击签名的检测方式很难进行有效检测。
有了本文所述的基于记忆的APT攻击检测系统,对整个攻击过程的数据进行存储,辅以异常检测方法,就有可能实现检测。例如,通过可疑行为识别,系统能检测到用户主机上的可疑加密传输行为;基于可疑报警,对相关主机的数据进行回溯分析,对相关的历史流量进行协议解析、应用识别和还原,能够得到邮件附件、被植入的木马文件;分析人员再对还原后的内容做进一步的确认,就能够识别攻击者的真实意图和已经发生的攻击行为,并评估自身的信息资产损失状况。
总结
APT的出现,既给传统检测技术带来了挑战,也为新兴技术的应用带来了机遇。硬件技术的发展,使得处理器运算能力不断增强、单位容量存储成本不断降低,这为我们基于大数据进行APT检测提供了必要条件。
对于APT攻击,我们的对抗策略是以时间对抗时间,改变传统基于单时间点进行特征匹配的局面,对长时间窗的数据进行关联分析,并辅以异常检测算法,以解决现有检测手段的不足。通过扩大检测域、丰富检测机制,形成了新一代基于记忆的智能检测系统。随着大数据技术的发展、各类检测算法的丰富,基于记忆的智能检测系统将在应对APT攻击中发挥更大作用。