李 杰,樓 芳,金渝筌,董智馨
(中國工程物理研究院計算機應用研究所,四川 綿陽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.