在探讨APT攻击检测之前,我们先分析下检测的内涵。从本质上讲,检测是将求检对象从其所依附的环境中识别出来的过程。为了识别求检对象,我们需要从检测环境中采样能体现求检对象特征的数据,形成被检测域;需要依赖特定的背景知识,形成判据库;需要采取一定的判定算法,形成判定机制;最终在被检测域、判据、判定机制的共同作用下,做出是否存在求检对象的论断,整个过程如图所示。
检测逻辑模式
以传统的入侵检测系统(IDS)为例,求检对象是网络攻击行为,检测环境就是包含了攻击行为数据的网络流量数据。为了检测攻击,我们需要实时采集网络流量,形成IDS的被检测域;需要提取各类攻击行为的网络特征构造特征库,作为IDS的判据库;需要采用特征匹配算法,作为IDS判定流量中是否包含攻击行为的判断机制。有了流量数据、特征库、特征匹配算法,我们就能检测网络中是否存在已知攻击行为。
传统IDS这种检测模式,在应对常规攻击曾发挥了巨大作用,但对于APT却显得无能为力,主要原因在于:
(1) 传统IDS的被检测域是实时网络流量,只判断实时网络流量中是否包含攻击行为;而APT整个过程的时间跨度很长,从单个时间点的角度看APT无法了解全貌,也无法识别攻击者的真实意图,只有将长时间的可疑行为进行关联分析才能实现APT的有效检测。
(2) 传统IDS的判断机制是特征匹配,只能检测出提取过攻击签名的已知攻击行为;而APT过程中往往采用0day、特种木马、隐蔽通道传输等未知攻击,无法通过误用检测的方式进行准确识别,只有通过异常检测的方式才有可能识别出可疑的攻击行为。
鉴于上述不足,要有效对抗APT,我们一方面要扩大被检测域,将基于单个时间点的实时检测转变为基于历史时间窗的异步检测;另一方面要丰富判定机制,在检测已知攻击的同时能够兼顾对未知攻击的检测。为此我们提出了基于记忆的新检测模式,共分为四个步骤:
(1) 扩大:即拓宽被检测域,对全流量数据进行存储分析。这样在检测到可疑行为时,可回溯与攻击行为相关的历史流量数据进行关联分析,之前已发生过、未能引起分析人员注意的报警,有可能隐藏着蓄意攻击意图,通过这种回溯关联分析就有可能进行有效识别。有了全流量的存储,就有可能回溯到任意历史时刻,采用新的检测特征和检测技术,对已发生的流量进行任意粒度的分析,这是本系统最大的特点。
(2) 浓缩:对存储下来的大数据进行降解操作,删除与攻击无关的数据以节省空间,同时保留与攻击相关的数据以备后续分析。浓缩环节需要借助于攻击检测模块,可通过第三方检测设备如IDS的报警进行降解,也可直接对全流量数据进行异常检测产生可疑报警,基于报警事件进行降解。
(3) 精确:对产生的可疑攻击数据做进一步深入分析,产生对攻击行为的精确报警。可通过多维数据可视化分析,定位可疑会话,再进一步对流量数据进行细粒度协议解析和应用还原,识别异常行为和伪装成正常业务的攻击行为。本环节需要分析人员的参与,通过人机结合的方式提升分析效率和准确度。
(4) 场景:对各类攻击报警进行关联,识别报警之间的攻击层语义关系,根据孤立报警中建立完整攻击场景。通常的做法是以关联规则的方式建立攻击场景知识库,通过对报警进行匹配和关联,完成攻击场景的构建。