李 杰,楼 芳,金渝筌,董智馨
(中国工程物理研究院计算机应用研究所,四川 绵阳621900)
高级持续性威胁APT(Advanced Persistent Threat)攻 击 首 先 由USAF(United States Air Forces)在2006年提出,具有计划性、持续性以及高级持续性威胁等特性;更根本的特性在于此类攻击能够真正威胁到国家、公司或者企业的利益[1]。
目前国际上各国政府、商业组织对APT 攻击十分重视:美国军方发布的一项声明中,首次将网络战武器威胁排在恐怖袭击威胁之前;英国政府2013年发布的网络安全策略表明英国政府在2010年已将网络攻击作为英国国家最高的四个威胁之一;ENISA 发布的一项题为“网络攻击-传统攻击的新战场”的报告,呼吁欧洲政府和商业组织重视逐渐出现的攻击趋势(如APT);从已知APT 攻击、威胁及漏洞报告可看出,APT 已在商业领域产生了很大影响[2~5]。
国外研究人员主要通过蜜罐技术等[6~8]捕捉、分析企业遭受的攻击,从而判断是否遭受到APT攻击;或者基于可信计算,保证企业系统环境的安全。
国内对APT 攻击研究主要以网络安全企业宣传、分析资料为主:金山公司介绍了APT 攻击危害及防御策略,以及私有云安全防护产品[9];趋势科技根据APT 攻击的目标和关键特点提出了证券、商业方面长期管理解决方案[10];启明星辰公司提出了结合大数据分析,从全流量审计与日志审计的角度检测APT 攻击[11]。
从国内外的APT 攻击分析、检测以及防护方法或策略可以看出,研究人员对APT 攻击概念的认识逐步深入,但依旧缺乏有效的检测、防护体系。APT 攻击与传统攻击不同之处在于:它的攻击目的非常明确;通过精心策划,针对特定目标完成预定任务;建立长期的攻击点,等待时机完成预定任务;专业人员精心组织、长期监控,攻击过程随着找到的防御弱点进行动态调整,更有效地实现攻击目的;攻击通常是专门设计的,攻击方法复杂,传统攻击检测工具难以检测到[12,13]。
截止2011年,已公布的大型APT 攻击如表1所示。
本文的主要工作及贡献如下:
(1)研究了APT 攻击的主要特征及攻击模式,在此基础上提出了APT 攻击检测模型,通过建立攻击检测有向图,并与关联分析得到的攻击路径进行匹配,进而判断目标系统是否受到APT攻击。
(2)在检测APT 攻击时引入时间窗,提出在可选定时间阈值改变APT 攻击检测的粒度,在实践中通过改变时间窗的大小提高检测效率。
Table 1 Large-scale APT attacks released by the year of 2011表1 截止2011年已公布的大型APT攻击
目前对APT 攻击的定义多种多样,相较而言,美国国家标准协会(NIST)的定义更具普遍性,其定义如下:
APT 即高级持续性威胁攻击,是指竞争对手(包括国家、政府或行业企业等)利用专业知识、关键资源等,通过多维度攻击手段达到特定目的。攻击人员在目标的信息技术基础设施中建立攻击点,完成窃取信息、阻碍任务或计划,也可在以后任何需要的时间实现特定目的。APT 攻击经过长时间潜伏,寻找合适时机实现攻击目的,攻击过程能够随着目标组织防护手段的改变采取相应变化。
APT 攻击是精心策划,具有持续性,拥有大量的人力、物力做后盾。攻击过程可能持续数月、一年,甚至数年;发现后,也会采取其他攻击方式在系统中驻留更久,以发现需要的漏洞。从已知的APT 攻击来看,采用的工具和技术大部分是信息安全业界已知的,因此其真正威胁不在技术层面,而在于攻击目的的确定性与持续性。“高级”是指攻击中采用多维度攻击方法,包括数据挖掘、社会工程、网络扫描、钓鱼邮件等。典型的APT 攻击一般具有如下特性:攻击手段复杂;攻击目标明确;攻击过程随着目标安全措施的改变,能够进行动态调整;攻击未被检测到之前,会在系统中潜伏、驻留较长时间;攻击人员能够耐心等待机会发现系统漏洞;等等。
APT 攻击主要有四个特征,如图1所示。
Figure 1 Main characters of APT attacks图1 APT 攻击的主要特征
(1)目标性。APT 攻击的主要目的之一是窃取目标的特定数据信息,或造成一定的损失。相比而言,传统攻击选择的目标计算机是随机的,而APT 攻击更具有系统性、组织性、目的性。例如,著名的“极光”[14]攻击在Google中攻击目标是源代码,而在索尼中攻击目标则是个人验证信息PII(Personal Identifiable Information)。类似的攻击数不胜数。另一方面,相比一般攻击,APT 攻击会投入大规模经费、大量时间进行尝试。可以看出,APT 攻击主体通常是某个组织而非个人;而随着信息、数据价值的不同,所受到窃取、攻击或破坏的可能性也会不同。
(2)持续性。攻击人员最初或许仅知道要攻击哪些组织、目标,而对其信息安全防护手段、目标数据的位置、系统漏洞等一无所知。因此,为了完成攻击,攻击人员需要寻找一切可能的漏洞,评估信息安全防护的安全性,最终入侵目标网络主机。完整的攻击过程耗时很长,可能需要数月或者数年时间的准备才能发动攻击,所以安全防御必须从持续性、系统性角度关联考虑各个独立的攻击事件,才有可能发现APT 攻击。
(3)隐蔽性。目前通用的数据保护措施曾起到了应有的作用,但从近年来的APT 攻击来看,这些保护手段已难以生效。为了实现攻击目的,攻击人员会进行多种尝试,比如将攻击隐藏在正常数据内容中,通过通用网络协议发送来躲避检测;另一方面,恶意攻击软件仅在特定目标系统中才会发动攻击,因此当攻击人员在一般主机上安装恶意攻击软件时难以检测;攻击也可能利用用户加密的方式绕过防火墙等防护机制。
(4)复杂性。典型的APT 攻击多采用以下方式:
①通过电话等方式确定目标组织中的关键人员;
②发送钓鱼邮件来植入远程控制工具,例如利用JavaScript编制的恶意软件;
③利用C&C控制获取系统权限;
④用户加密技术。
APT 攻击在发现前可能已经潜伏了很长时间,而一旦反病毒软件或其他安全防御措施发现、清除了这些病毒或恶意软件,它们不会再次被使用,所以通过传统的特征匹配方式查找病毒、恶意软件没有意义。从Mandiant's M-Trends报告[15]可以看出,反病毒软件仅查出了24%的APT 恶意软件,而攻击人员成功渗透系统后进一步通过后门程序获取系统管理员权限,进而随意访问系统、窃取数据。
典型的APT 攻击主要由三个阶段组成[16]:
(1)侦查、发起和感染:准备侦查,搜索目标系统漏洞,发起攻击并感染目标主机。
(2)控制和管理、检测、持续:控制受害主机,更新攻击代码,扩散到其他机器,以及寻找并搜集目标数据[17]。
(3)获取信息、采取行动:从目标网络接收必要的数据,采取行动。
近些年来,大部分APT 检测方案都是面向商业的,也比较有效,例如Triumfant、Deep Discovery以及Seculert等。Triumfant采用了变更控制的方法,能更好地检测未知类型攻击;Deep Discovery基于网络流量分析,能够精确检测出已知恶意软件;Seculert对客户端收集的日志进行大数据分析,是一种基于云的解决方案。对已知攻击的检测并不困难,困难的是如何检测零日漏洞攻击,一般的检测方法包括:流量分析、变更控制以及沙箱技术等。
基于对APT 攻击的认识,本文提出了新的APT 攻击检测思路:
(1)通过查询资料、咨询企业或组织负责人及相关人员的方式,确定企业、组织的重要信息资产(包括重要、敏感数据以及重要实体资产等),建立APT 攻击检测目标源。
(2)以目标源为起点,逐层逆推攻击路径,确定攻击源到目标源的完整攻击路径,建立多条目标源可达的攻击路径网络。
(3)对各种检测方法获取的各类攻击事件进行关联分析,判断这些攻击事件能否组成一条指向重要信息资产的攻击路径,从而确定攻击目标是否确定、攻击类型是否属于APT 攻击范畴;由于各检测方法获取的攻击事件一般来讲是不完备的,因此最后的判断是基于不完备的信息。
具体的检测过程如下:
步骤1重要信息资产评估:不同的企业、组织中重要信息资产评估依据企业、组织自身的业务、性质等各有不同,从用户身份信息、个人账户信息,到商业机密、核心资产,甚至于政府、国家秘密等不一而足,而且这些信息可能以纸质文档、电子文档、数据库等形式存在,甚至掌握这些重要信息的人员也应当包含在重要信息资产中。通过咨询企业或组织中的相关人员,根据实际情况梳理真实的重要信息资产种类、分布以及重要程度等信息,从而建立APT 攻击的目标源。
步骤2建立攻击检测有向图:
定义1集合T={t1,t2,t3,…}表示目标源,对应步骤1评估后得到的重要信息资产,可能存储在相关的个人计算机、服务器、移动存储介质等物理设备中,也可能存在于相关人员的意识、思维中,所以目标源是一个广义的概念;集合A{a1{s1,s2,…},…,ai{s1,s2,…,si,…},…}表示系统中存在的所有信息输入输出节点,包括个人计算机、服务器、移动存储介质,以及相关人员等,每个ai唯一,ai{s1,s2,…,si,…}中 的si表 示 可 能 发 生 攻 击 的 类型,包括软件漏洞、操作系统漏洞、管理漏洞、人员泄密窃密等,即节点脆弱点;集合AT{}表示APT攻击可能发生的节点;集合AD{}表示APT 攻击的目标源节点。
定义2集合E{e1,e2,e3,…}表示有向边,当某一节点存在可被攻击的脆弱点时,所有可能利用此脆弱点对被攻击节点进行攻击的攻击节点到被攻击节点存在一条有向边。例如,节点a1={s1,s2,…}可被节点a2利用脆弱点s1攻击,那么存在一条a2到a1的有向边(ai,aj);集合P{p1(ai,an,am,…),…}表示攻击路径,ai、an、am表示攻击节点,有向边由ai指向an,an指向am;Pre(pn,am)表示路径pn中am节点的前驱节点序列,如对于路径pn=(ai,an,am,…),Pre(pn,am)=(ai,an),Pre(pn,ai)=∅;Post(pn,ai)表示路径pn中ai节点的后续节点序列,如对于路径pn=(…,ai,an,am),Post(pn,ai)=(an,am),Post(pn,am)=∅;Btw(pn,an,am)表示路径pn中an与am节点之间的节点,如对于路径pn=(an,ai,am,…),Btw(pn,an,am)=(ai),Btw(pn,an,an)=∅。
定义3图G(T,A,E,P)表示建立的攻击检测有向图。
攻击检测有向图的建立算法如图2所示。
Step 1检测有向图初始化:T={t1,t2,t3,…};E={};P={};A={a1{s1,s2,…},a2{s1,s2,…},…,ai{s1,s2,…,si,…},…}。
Figure 2 Flowchart of creating DAG of APT图2 APT 攻击检测有向图建立流程图
Step 2目标源的节点划分:
对T{t1,t2,t3,…}进行划分,将目标源T中的元素按照位置划分在不同的节点上,记为a1{s1,s2,s3,…},a2{s1,s2,s3,…},…,an{s1,s2,s3,…},即目标源节点。节点上所划分的目标源记为T1,T2,…,Tn,且满足当1≤i≠j≤n时,Ti∩Tj=∅,T1∪T2∪…∪Tn=T{t1,t2,t3,…}。
Step 3建立攻击路径:
AT={a1{s1,s2,…},a2{s1,s2,…},…,an{s1,s2,…}}
AD={a1{s1,s2,…},a2{s1,s2,…},…,an{s1,s2,…}};
(1)若A≠∅,∀ai∈A,Atmp=AT。
(2)如果∃aj∈Atmp且ai可利用aj的脆弱点对aj进行攻击,则ai到aj间存在一条有向边(ai,aj),E=E∪{(ai,aj)}。
①对P所有路径pn,若∃ank属于pn且ank=aj,若Post(pn,aj)≠∅,且(ai,aj,Post(pn,aj))∉P或不存在路径pm满足(ai,aj,Post(pn,aj))是pm的子序列,则P=P∪{(ai,aj,Post(pn,aj))};
②否则P=P∪{(ai,aj)}。
(3)如果∃aj∈Atmp且aj到ai存在一条有向边(aj,ai),E=E∪{(aj,ai)}。
①对P中 所 有 路 径pn,若∃ank属 于pn且ank=ai,若Pre(pn,aj)≠∅,且(Pre(pn,aj),aj,ai)∉P或不存在路径pm满足(Pre(pn,aj),aj,ai)是pm的子序列,则P=P∪{((Pre(pn,aj),aj,ai)};
②否则P=P∪{(aj,ai)}。
(4)Atmp=Atmp-{aj};若Atmp≠∅,返回2继续计算。
(5)AT=AT∪{ai};A=A-{ai};若A≠∅,返回1继续计算。
Step 4对于路径集合P中的某一条路径pn,若不存在节点ai∈AD,则P=P-{pn};若∃an满足Btw(pn,an,an)≠∅,即路径pn中存在圈,则pn=pn-(an,Btw(pn,an,an))。例 如,路 径pn(a1,a2,a3,…,a4,a2,a5)中存在a2节点之间的圈,Btw(pn,a2,a2)=(a3,…,a4),pn=(a1,a2,a5)。对路径集合P中每一条路径进行此操作,当所有路径中都不存在圈时停止。
Step 5建立攻击检测有向图G(T,AT,E,P)。
Step 6攻击事件关联分析与攻击路径检测对企业、组织的安全防护手段所收集的攻击事件进行关联分析。将关联事件分析得到的攻击路径与APT 攻击检测有向图匹配,判断系统是否受到APT 攻击。
防御APT 攻击首先需要改变理念:传统的信息安全防护比较重视网络边界安全防御,利用防火墙、反病毒软件等防止外部的攻击、破坏,而对于内部网络、人员则默认为信任;然而随着内部威胁及APT 攻击趋势的上升,传统的防御策略已经无法满足安全防护需要。在APT 攻击中,所有的网络(包括外部与内部)都是不可信的,安全防御需要从传统的以网络为中心的防护转变为以用户为中心的防护:攻击人员往往通过钓鱼邮件、移动存储设备恶意软件等来感染目标系统中的用户,再以这些用户为跳板完成攻击目的。
因此,APT 攻击防御可以从两方面考虑:技术防护与管理防护。图3显示了APT 防御体系可能的组成部分。
Figure 3 Defence architecture of ATP图3 APT 攻击防御体系
攻击检测有向图G(T,AT,E,P)的建立基于系统中可能发生的攻击节点沿着某一条攻击路径到达目标源,主要影响检测有向图建立所需资源的因素包括目标源、攻击节点以及攻击节点脆弱属性的数量,其中任意一种的数量增长都将导致有向图的复杂度增长;在攻击路径匹配方面,通过调整时间窗的大小,经过关联分析得到的攻击路径越完整、路径长度越长,将与检测有向图的匹配度越高,进而能够更准确地判断APT 攻击是否存在。当目标源、攻击节点及其脆弱属性数量均有很大增长时,检测有向图的建立时间会有指数级的增加;在路径匹配时造成的时间消耗将呈线性增长。
本文选择了目标源、攻击节点数量较少,攻击节点脆弱属性明确的网络环境对检测模型进行原理性验证。在APT攻击检测中加入时间窗,限定攻击过程的时间维度。检测过程体现了APT 攻击的各个主要阶段,较完整地体现出APT攻击流程。
本文通过搭建网络系统环境模拟Stuxnet的攻击流程,对系统各安全防御措施检测到的攻击事件进行关联分析,并与检测模型的有向图进行匹配,从而判断一系列攻击事件是否属于APT 攻击,系统环境组成如表2所示,其中a2、a3、a4以及at处于内网中,at表示目标源所在节点;a1与内网物理隔离。攻击流程如图4所示。
Table 2 Simulation environment表2 系统模拟环境
本文选取Stuxnet蠕虫攻击事件作为典型APT 攻击事件完成检测模型验证。Stuxnet蠕虫于2010年7月开始爆发,利用了微软操作系统中至少四个漏洞,其中有三个全新的零日漏洞;为衍生的驱动程序使用有效的数字签名;通过一套完整的入侵和传播流程,突破工业专用局域网的物理限制;是专门针对西门子公司的数据采集与监控系统,利用wincc系统的两个漏洞,对其展开攻击。
Figure 4 Simulating the Stuxnet attack图4 Stuxnet攻击过程模拟
攻击从14:00持续到18:00,每一小时发动一次不同类型的攻击:首先感染外部主机a1;然后感染U 盘,利用快捷方式文件解析漏洞,传播到内部网络;通过PRC远程执行漏洞、打印机后台程序服务漏洞以及数据库访问控制漏洞,实现联网主机之间的传播,最终到达目标源节点at。
根据APT 攻击检测有向图的建立过程,可知系统中面向目标源节点的最长攻击路径为p0(a1,a2,a3,a4,at)。
当系统防御时间窗设为一小时,即系统仅对一小时内的攻击事件做关联分析以检测APT 攻击时,在14:00 到18:00 检测到四个独立的攻 击事件,其攻击路径分别为p1(a1,a2)、p2(a2,a3)、p3(a3,a4)以及pt(a4,at);四次攻击是无关的,每条攻击路径与p0(a1,a2,a3,a4,at)的匹配程度来讲都较低,无法判断系统是否受到APT 攻击。
当系统防御时间窗设为六小时时,系统将对14:00到18:00的四次攻击事件做关联分析。可以看出,四次攻击事件的下一次攻击的起点是上一次攻击的目标节点,而且是在上次攻击完成之后才开始下一次攻击,所以可以认为四次攻击事件具有持续性、目标性。攻击事件关联分析后可以得到一条完整的攻击路径pm(a1,a2,a3,a4,at),与p0(a1,a2,a3,a4,at)完全匹配,所以可以做出较为确定的判断:系统受到了APT 攻击。
可以看出,APT 攻击检测的一个重要因素是时间窗的设定,它关系到系统对检测到的各种攻击事件进行关联分析的时间跨度:时间窗越大,攻击事件关联分析的准确性越高,攻击路径的匹配度也越高;但同时,攻击事件关联分析的复杂度也越高,分析难度越大,也带来了攻击事件的存储问题(APT 攻击可能以年为单位)。因此,进行检测时需要选择合适的时间窗。另一方面,当攻击利用的零日漏洞越多,即系统防御无法检测到的攻击事件越多,攻击事件的关联分析效果越差,检测到的攻击路径长度减小、匹配度降低。
从以上分析可知,利用APT 攻击检测有向图来分析APT 攻击的有效性,与时间窗存在一定正相关性,与利用的零日漏洞呈负相关性。
APT 攻击的出现对传统信息安全检测、防御行为产生了极大的挑战,西方先进国家已将APT防御议题提升到国家安全层级,而我国从国家层面也越来越重视信息安全面临的问题。从已知的APT 攻击可以看出,首先需要改变的是信息安全防御的思维,从过去独立、非协作的防御手段转变为系统、关联性的整体防御,对组织遭遇的攻击做到深挖细掘;重视员工、内部人员的安全意识,从技术、管理等多维度完成对APT 攻击的防御。本文基于APT 攻击特性提出检测模型,在一定程度上可以判断系统受到的APT 攻击;同时,检测模型也可用来依据检测到的攻击路径判断下一步攻击趋势。
[1] Zuo Y,Panda B.Unifying strategies and tactics:A survivability framework for countering cyber attacks[C]∥Proc of IEEE International Conference on Intelligence and Security Informatics,2009:119-124.
[2] Cole E.Advanced persistent threat:Understanding the danger and how to protect your organization[M].US:Syngress,2012.
[3] Tankard C.Advanced persistent threats and how to monitor and deter them[J].Network Security,2011(8):16-19.
[4] Daly M K.The advanced persistent threat[C]∥Proc of the 23rd Large Installation System Administration Conference(LISA),2009:1.
[5] Bridges L.The changing face of Malware[C]∥Proc of the 3rd International Workshop in Wireless Security Technologies,2005:46-49.
[6] Patel R R,Thaker C S.Zero-day attack signatures detection using Honeypot[C]∥Proc of International Conference on Computer Communication and Networks(CSI-COMNET),2011:1.
[7] Portokalidis G,Bos H.SweetBait:Zero-hour worm detection and containment using low-and high-interaction Honeypots[J].Science Direct,2007,51(5):1256-1274.
[8] Smith A,Toppel N.Case study:Using security awareness to combat the advanced persistent threat[C]∥Proc of the 13th Colloquium for Information Systems Security Education,2009:1.
[9] Zhang Shuai.The detection and defence about APT attack[J].Information Security and Technology,2011(9):125-127.(in Chinese)
[10] Liu Ting-ting.APT attacks hit,enterprise information face“precision strike”[J].China Information Security,2012(3):39-40.(in Chinese)
[11] Zhou Tao.Big data and APT detection[J].China Information Security,2012(7):23.(in Chinese)
[12] Goyal R,Sharma S,Bevinakoppa S,et al.Obfuscation of stuxnet and flame malware[C]∥Latest Trends in Applied Informatics and Computing,2012:150-154.
[13] Munro K.Deconstructing flame:The limitations of traditional defences[J].Computer Fraud and Security,2012(10):8-11.
[14] McAfee Labs.Protecting your critical assets,lessons learned from“Operation Aurora”[R].White Paper,2010.
[15] Mandiant.M-treands:An evolving threat[EB/OL].[2011-05-16].http:∥www.utdallas.edu/2011.
[16] Ramilli M,Bishop M.Multi-stage delivery of malware[C]∥Proc of the 5th International Conference on Malicious and Unwanted Software(MALWARE),2010:91-97.
[17] Kartaltepe E J,Morales J A,Xu S,et al.Social networkbased Botnet command-and-control:Emerging threats and countermeasures[C]∥Proc of the 8th International Conference on Applied Cryptography and Network Security(ACNS),2010:511-528.
附中文参考文献:
[9] 张帅.对APT 攻击的检测与预防[J].信息安全与技术,2011(9):125-127.
[10] 刘婷婷.APT 攻击悄然来袭,企业信息面临“精准打击”[J].信息安全与通信保密,2012(3):39-40.
[11] 周涛.大数据与APT 攻击检测[J].信息安全与通信保密,2012(7):23.