震網(wǎng)病毒又名Stuxnet病毒,是一個(gè)席卷全球工業(yè)界的病毒。震網(wǎng)(Stuxnet)病毒于2010年6月首次被檢測(cè)出來,是第一個(gè)專門定向攻擊真實(shí)世界中基礎(chǔ)(能源)設(shè)施的“蠕蟲”病毒,比如核電站,水壩,國家電網(wǎng)?;ヂ?lián)網(wǎng)安全專家對(duì)此表示擔(dān)心。作為世界上首個(gè)網(wǎng)絡(luò)“超級(jí)破壞性武器”,Stuxnet的計(jì)算機(jī)病毒已經(jīng)感染了全球超過 45000個(gè)網(wǎng)絡(luò),伊朗遭到的攻擊最為嚴(yán)重,60%的個(gè)人電腦感染了這種病毒。計(jì)算機(jī)安防專家認(rèn)為,該病毒是有史以來最高端的“蠕蟲”病毒。蠕蟲是一種典型的計(jì)算機(jī)病毒,它能自我復(fù)制,并將副本通過網(wǎng)絡(luò)傳輸,任何一臺(tái)個(gè)人電腦只要和染毒電腦相連,就會(huì)被感染。
文章來源:安天cert
1.小序
2010年7月,“震網(wǎng)”(Stuxnet)蠕蟲攻擊事件浮出水面,引發(fā)了國際主流安全廠商和安全研究者的全面關(guān)注,卡巴斯基、賽門鐵克、安天等安全廠商,Ralph Langne等著名安全研究者,以及多國的應(yīng)急組織和研究機(jī)構(gòu),都投入到了全面的分析接力中。最終使這場(chǎng)攻擊的大量細(xì)節(jié)被呈現(xiàn)出來:這是一起經(jīng)過長期規(guī)劃準(zhǔn)備和入侵潛伏作業(yè);借助高度復(fù)雜的惡意代碼和多個(gè)零日漏洞作為攻擊武器;以鈾離心機(jī)為攻擊目標(biāo);以造成超壓導(dǎo)致離心機(jī)批量損壞和改變離心機(jī)轉(zhuǎn)數(shù)導(dǎo)致鈾無法滿足武器要求為致效機(jī)理,以阻斷伊朗核武器進(jìn)程為目的的攻擊。
9年的時(shí)間過去了,這一安全事件依然在安天的研究視野中。安天從2010年7月15日展開對(duì)震網(wǎng)的分析工作,搭建了模擬環(huán)境,在9月27日發(fā)布了《對(duì)Stuxnet蠕蟲攻擊工業(yè)控制系統(tǒng)事件的綜合分析報(bào)告》[1],在后續(xù)形成了對(duì)其傳播機(jī)理進(jìn)行分析的《對(duì)Stuxnet蠕蟲的后續(xù)分析報(bào)告》[2],以及分析其對(duì)工業(yè)生產(chǎn)過程作用機(jī)理的《WinCC后發(fā)生了什么》[3]系列分析報(bào)告。
安天提出了震網(wǎng)與毒曲(Duqu)同源的猜測(cè),并先后發(fā)表了兩篇驗(yàn)證性報(bào)告,并啟動(dòng)了對(duì)火焰(Flame)惡意代碼的馬拉松式的模塊分析。在工作推進(jìn)中,安天逐步認(rèn)識(shí)到震網(wǎng)、毒曲、高斯(Gauss)、火焰,這些高度復(fù)雜的惡意代碼間存在著同樣的背景聯(lián)系。這些研究工作對(duì)安天后續(xù)展開對(duì)方程式組織(Equation)的深度分析起到了非常重要的作用。
由于歷史原因,其中部分研究文獻(xiàn)并未公開,而一些分析進(jìn)展是碎片化的,雖然在我們的對(duì)外技術(shù)演講中有所提及,但并未作為文獻(xiàn)發(fā)布。這是安天編寫這篇文獻(xiàn)的原因之一。震網(wǎng)的整體運(yùn)行框架、USB擺渡機(jī)理和傳播失控分析,以及圖解Tilded框架與Flamer框架的關(guān)聯(lián),將震網(wǎng)、火焰、毒曲、高斯、Fanny、Flowershop之間的關(guān)系進(jìn)行串接的相關(guān)章節(jié),是對(duì)這些成果的整理。
今天看來,在前期分析震網(wǎng)系列事件的過程中,我們?nèi)鄙僖环N真正意義上的框架化方法。依然更多的是從自身習(xí)慣的反惡意代碼視角來看待整個(gè)攻擊過程。盡管我們給震網(wǎng)這樣的復(fù)雜攻擊提出了一個(gè)A2PT(即高級(jí)的高級(jí)可持續(xù)性威脅)的命名,但分析中始終缺乏作業(yè)到作戰(zhàn)視角的思考。在相關(guān)專家的指導(dǎo)下,我們對(duì)網(wǎng)空博弈、敵情想定有了新的體悟,逐漸從威脅框架視角進(jìn)行方法論切換,實(shí)現(xiàn)自我能力完善。也希望通過威脅框架這一視角來解讀“震網(wǎng)”這場(chǎng)看起來依然高度復(fù)雜的“昨天的戰(zhàn)爭(zhēng)”。
本文也詳細(xì)解讀了一個(gè)值得思考的問題,震網(wǎng)作為一種沒有感染屬性的蠕蟲,為何會(huì)有大量的樣本存在。這個(gè)原理我們?cè)谠缙诘姆治龉ぷ髦幸呀?jīng)發(fā)現(xiàn),即震網(wǎng)的載荷投放程序,在每落地一臺(tái)機(jī)器時(shí),會(huì)有一個(gè)內(nèi)嵌配置數(shù)據(jù)的自我更新,從而導(dǎo)致震網(wǎng)的每次落地形成的主執(zhí)行體的HASH均不同,同時(shí)其實(shí)際攻擊載荷多數(shù)均被包裹在主DLL之中,并不落地。而震網(wǎng)的相關(guān)域名則是在其已經(jīng)達(dá)成其主體作業(yè)效果的情況下才被曝光的。這從某種意義上也昭示了面對(duì)更高級(jí)、隱蔽的攻擊行動(dòng),以HASH、域名等為主體的威脅情報(bào)實(shí)際上早就面對(duì)著無效的危機(jī)。
圖 1-1 震網(wǎng)事件時(shí)間軸
2.為什么是震網(wǎng)
在信息技術(shù)發(fā)展歷史上,出現(xiàn)過大量典型的安全事件,但為什么“震網(wǎng)”被視為具有威脅里程碑意義?震網(wǎng)被認(rèn)為是第一個(gè)以現(xiàn)實(shí)世界中的關(guān)鍵工業(yè)基礎(chǔ)設(shè)施為目標(biāo)的惡意代碼,并達(dá)到了預(yù)設(shè)的攻擊目標(biāo),或者說,這是第一個(gè)“網(wǎng)絡(luò)空間”意義上的重大攻擊事件,而非傳統(tǒng)的網(wǎng)絡(luò)攻擊事件。盡管此前也存在著一些通過信息攻擊手段影響工業(yè)設(shè)施的傳聞,但基本都缺乏技術(shù)層面的實(shí)證支撐。
從安天此前提出的觀點(diǎn)來看,震網(wǎng)的里程碑意義并不是在于其相對(duì)其他簡(jiǎn)單的網(wǎng)絡(luò)攻擊的復(fù)雜性和高級(jí)性,而在于其證實(shí)了通過網(wǎng)絡(luò)空間手段進(jìn)行攻擊,可以達(dá)成與傳統(tǒng)物理空間攻擊(甚至是火力打擊)的等效性。在2016年的報(bào)告中,安天研究人員將上世紀(jì)70、80年代的“凋謝利刃與巴比倫行動(dòng)”(在1977年~1981年間發(fā)生的以、美聯(lián)合,在兩伊戰(zhàn)爭(zhēng)期間針對(duì)伊拉克核反應(yīng)堆進(jìn)行軍事打擊的事件)與震網(wǎng)事件進(jìn)行對(duì)比分析看出,通過大量復(fù)雜的軍事情報(bào)和成本投入才能達(dá)成的物理攻擊效果僅通過網(wǎng)絡(luò)空間作業(yè)就可以達(dá)成,而且成本也大大降低。正如美國陸軍參謀長前高級(jí)顧問Maren Leed所講的——網(wǎng)絡(luò)武器可以有許多適應(yīng)環(huán)境的屬性,從生命周期的成本角度看,它們比其他的武器系統(tǒng)更為優(yōu)越[4]。
震網(wǎng)系列攻擊也全面昭示了工業(yè)基礎(chǔ)設(shè)施可能被全面入侵滲透乃至完成戰(zhàn)場(chǎng)預(yù)制的風(fēng)險(xiǎn),震網(wǎng)的成功是建立在火焰、毒曲惡意代碼的長期運(yùn)行、信息采集的基礎(chǔ)上。在攻擊伊朗鈾離心設(shè)施之前,攻擊方已經(jīng)入侵滲透了伊朗的多家主要國防工業(yè)和基礎(chǔ)工業(yè)廠商,包括設(shè)備生產(chǎn)商、供應(yīng)商、軟件開發(fā)商等,表2-2是多個(gè)企業(yè)遭遇入侵的事件。
表 2-2 伊朗基礎(chǔ)工業(yè)體系遭遇滲透的情況
3.震網(wǎng)整體結(jié)構(gòu)和運(yùn)行邏輯
震網(wǎng)的結(jié)構(gòu)非常復(fù)雜。其中又經(jīng)歷了從0.5到1.x的版本更迭,其破壞機(jī)理從以干擾離心機(jī)閥門、造成超壓導(dǎo)致離心機(jī)批量損壞調(diào)整為修改離心機(jī)轉(zhuǎn)數(shù)。同時(shí)其開發(fā)框架也發(fā)生了變化。我們以流行更為廣泛的1.x版本為對(duì)象,進(jìn)行整體結(jié)構(gòu)和運(yùn)行邏輯梳理。震網(wǎng)的核心是僅在內(nèi)存中解密存在的DLL文件(以下簡(jiǎn)稱主DLL文件)。DLL文件包含32種不同的導(dǎo)出函數(shù)以及15種不同的資源,每一個(gè)導(dǎo)出函數(shù)都有不同的控制功能,其中主要涉及導(dǎo)出函數(shù)15(初始入口點(diǎn))、導(dǎo)出函數(shù)16(安裝)、導(dǎo)出函數(shù)32(感染連接的移動(dòng)設(shè)備,啟動(dòng)RPC服務(wù))、導(dǎo)出函數(shù)2(鉤掛API以感染Step7工程文件)等;每個(gè)資源也分別執(zhí)行不同的功能,主要涉及資源250、資源201、資源242等;導(dǎo)出函數(shù)正是利用這些不同功能的資源來控制震網(wǎng)執(zhí)行不同的分支操作。
Stuxnet Dropper的資源在安裝執(zhí)行過程中會(huì)釋放載荷,震網(wǎng)落地文件如表3-2所示。
按資源類型,對(duì)照其編譯時(shí)間戳,獲得PE類型資源版本迭代,如圖3-1所示,由圖能夠看出資源202、210都存在3個(gè)可能的版本,資源208存在2個(gè)可能的版本,其余各資源都僅有1個(gè)版本。另外資源207、231僅存在少數(shù)樣本,在后續(xù)版本的Stuxnet中已經(jīng)刪除。
圖 3-1 PE類型資源版本迭代
安天CERT基于對(duì)震網(wǎng)樣本集及已有數(shù)據(jù)的分析,繪制了震網(wǎng)整體運(yùn)行框架,它包含傳播和安裝執(zhí)行。
圖 3-2 震網(wǎng)整體運(yùn)行框架圖
震網(wǎng)的傳播主要包括兩種方式,一種是移動(dòng)設(shè)備感染,利用LNK漏洞或者通過autorun.inf文件進(jìn)行傳播;另一種是網(wǎng)絡(luò)傳播,涉及WinCC數(shù)據(jù)庫感染、網(wǎng)絡(luò)共享傳播、打印機(jī)后臺(tái)處理程序漏洞傳播、Windows服務(wù)器漏洞傳播等多種方式。這兩種傳播方式雖然不同,但最終都會(huì)釋放主DLL文件,進(jìn)行后續(xù)的安裝和執(zhí)行操作。震網(wǎng)感染目標(biāo)系統(tǒng)后,會(huì)啟動(dòng)RPC服務(wù)器監(jiān)聽網(wǎng)絡(luò),將網(wǎng)絡(luò)上其他感染計(jì)算機(jī)都連接到RPC服務(wù)器,并查詢遠(yuǎn)程計(jì)算機(jī)安裝的震網(wǎng)版本,以執(zhí)行對(duì)等通信和更新,如果遠(yuǎn)程計(jì)算機(jī)上的震網(wǎng)版本較新,則本地計(jì)算機(jī)就會(huì)請(qǐng)求新版本并自我更新,如果遠(yuǎn)程機(jī)器上的震網(wǎng)版本較舊,則本地計(jì)算機(jī)上的震網(wǎng)就將自身副本發(fā)送給遠(yuǎn)程機(jī)器。這樣,震網(wǎng)可以在任何感染機(jī)器上更新并最終傳播到所有機(jī)器。
在安裝執(zhí)行中,傳播釋放的主DLL文件首次加載時(shí)調(diào)用導(dǎo)出函數(shù)15執(zhí)行一系列檢查工作,包括檢查配置數(shù)據(jù)是否為最新、檢查操作系統(tǒng)是否為64位、檢查操作系統(tǒng)版本是否匹配,如果不符合其安裝執(zhí)行要求,則退出;此外,檢查目標(biāo)系統(tǒng)是否具備管理員權(quán)限,如果不具備,則利用資源250中兩個(gè)當(dāng)時(shí)的零日漏洞進(jìn)行提權(quán)以獲取最高權(quán)限;之后,檢查目標(biāo)系統(tǒng)安裝了哪些反病毒軟件以及哪個(gè)進(jìn)程適合注入;導(dǎo)出函數(shù)15完成上述規(guī)定的檢查后,震網(wǎng)就會(huì)調(diào)用導(dǎo)出函數(shù)16。
導(dǎo)出函數(shù)16是震網(wǎng)的主安裝程序。首先,檢查目標(biāo)系統(tǒng)配置是否匹配、注冊(cè)表鍵值是否為特定值、當(dāng)前時(shí)間是否小于終止時(shí)間,如果不符合這些安裝執(zhí)行要求,則退出;繼續(xù)執(zhí)行,震網(wǎng)通過創(chuàng)建全局互斥量與不同的組件通信,并再次檢查目標(biāo)系統(tǒng)當(dāng)前時(shí)間,確保只在小于終止時(shí)間的目標(biāo)系統(tǒng)上執(zhí)行;從磁盤中讀取其加密版本,解密、加載到內(nèi)存中,從新加載的文件中調(diào)用導(dǎo)出函數(shù)6,獲取自身配置數(shù)據(jù)的版本信息,如果與磁盤文件的版本相同,則繼續(xù)執(zhí)行;震網(wǎng)提取、解密資源201和資源242,并將兩個(gè)驅(qū)動(dòng)文件寫入磁盤,分別用于持久化和隱藏惡意文件,為了規(guī)避檢測(cè),震網(wǎng)會(huì)修改這兩個(gè)文件的時(shí)間以匹配目標(biāo)系統(tǒng)目錄下的其他文件時(shí)間;創(chuàng)建rootkit服務(wù)和注冊(cè)表,以實(shí)現(xiàn)震網(wǎng)的持久化,并再次創(chuàng)建全局互斥量;為了繼續(xù)安裝和傳播,震網(wǎng)將控制權(quán)傳遞給其他導(dǎo)出函數(shù),一種是將主DLL文件注入service.exe進(jìn)程,并調(diào)用導(dǎo)出函數(shù)32,以感染新連接的移動(dòng)設(shè)備,以及啟動(dòng)RPC服務(wù)器,另一種是將主DLL文件注入Step7進(jìn)程,并調(diào)用導(dǎo)出函數(shù)2,以感染所有指定的Step7文件。
4.威脅框架視角下的震網(wǎng)解讀
能夠研發(fā)類似震網(wǎng)的復(fù)雜高級(jí)的惡意代碼,是源自高級(jí)網(wǎng)空威脅行為體具有充足資源和成本支撐能力。其作業(yè)過程具有龐大的工程體系和人員團(tuán)隊(duì)為支撐條件,是一系列復(fù)雜的動(dòng)作組合。與此同時(shí),復(fù)雜的過程并不必然全部由“高級(jí)”攻擊手段和“高級(jí)”裝備支撐。防御方的一些低級(jí)配置錯(cuò)誤和未及時(shí)修補(bǔ)的漏洞會(huì)成為威脅行為體攻擊的入口;高級(jí)網(wǎng)空威脅行為體也會(huì)劫持和利用低級(jí)網(wǎng)空威脅行為體所掌控的僵尸網(wǎng)絡(luò)等資源,這些都使局面更為復(fù)雜。
解讀復(fù)雜的攻擊行動(dòng),并驅(qū)動(dòng)防御的改善,需要有更理想的結(jié)構(gòu)化方法。殺傷鏈等模型用于解構(gòu)震網(wǎng)式的復(fù)雜攻擊,依然顯得不足,需要進(jìn)一步改善。威脅框架作為一種對(duì)攻擊過程更為結(jié)構(gòu)化和數(shù)據(jù)化的描述方法,開始成為改善防御能力的威脅認(rèn)知基礎(chǔ)。當(dāng)前較為流行的威脅框架主要有MITRE提出的ATT&CK,和NSA提出的《NSA/CSS技術(shù)網(wǎng)空威脅框架》(NSA/CSS Technical Cyber Threat Framework)。后者對(duì)前者做了一定的借鑒工作。鑒于NSA/CSS技術(shù)網(wǎng)空威脅框架,更具有情報(bào)機(jī)構(gòu)的背景,因此更適合推演類似震網(wǎng)級(jí)別的A2PT攻擊。
從威脅框架出發(fā),針對(duì)威脅每個(gè)階段、逐個(gè)行為推演,無論對(duì)評(píng)估當(dāng)前防御體系及相關(guān)安全產(chǎn)品能力的有效性和合理性,還是對(duì)形成體系化的防御規(guī)劃與建設(shè)目標(biāo),都是一種有益的工作。2019年6月,安天發(fā)布的“方程式組織”攻擊SWIFT服務(wù)提供商EastNets事件復(fù)盤分析報(bào)告中[5],將事件涉及的威脅行為映射到了“NSA/CSS威脅框架”V2版本中。
將震網(wǎng)事件涉及到的威脅行為映射到威脅框架的類別與動(dòng)作,如圖4-1所示。
圖 4-1 震網(wǎng)事件映射到威脅框架
在震網(wǎng)行動(dòng)中共涉及21個(gè)目標(biāo)中的83種行為,其中包括推測(cè)的和確定執(zhí)行的行為。
表 4-1 震網(wǎng)事件中涉及的類別與動(dòng)作
針對(duì)震網(wǎng)級(jí)別的攻擊,需要重點(diǎn)關(guān)注的是其決策和準(zhǔn)備過程,類似如此復(fù)雜精密的攻擊,如果不搭建一個(gè)完全等效的模擬靶場(chǎng)環(huán)境,是很難達(dá)成效果的。如果僅僅把目光放在惡意代碼和漏洞利用工具本身,而不能就行動(dòng)管理與資源保障、目標(biāo)勘察與環(huán)境整備等前期環(huán)節(jié)進(jìn)行深入的分析,就一定程度上失去了引入威脅框架的意義。但無疑,這一部分的分析更為困難和復(fù)雜。
從威脅框架視角重新梳理震網(wǎng),也讓我們可以解開“Michael之問”。2014年3月,洛克希德·馬丁公司的高級(jí)研究員Michael在博客上對(duì)震網(wǎng)事件的意圖和能力兩個(gè)方面進(jìn)行了分析,提出了“Why Stuxnet Isn't APT?”[6]這一設(shè)問。在這篇文獻(xiàn)中,Michael 以震網(wǎng)的傳播失控和明顯的物理空間后果不符合APT的高度定向性和隱蔽性、震網(wǎng)比常見的APT攻擊更為高級(jí)等方面進(jìn)行了論述,其更傾向于震網(wǎng)是一種作戰(zhàn)行動(dòng),而非APT攻擊。Michael關(guān)于震網(wǎng)是一種比APT更高級(jí)的觀點(diǎn),與安天將震網(wǎng)級(jí)別的攻擊命名為A2PT觀點(diǎn)是相近的。但從Michael的根本觀念是將APT與CNE(網(wǎng)絡(luò)情報(bào)利用)相映射的,因此當(dāng)震網(wǎng)以達(dá)成CNA(網(wǎng)絡(luò)攻擊、作戰(zhàn))為目的的情況下,則提出這種質(zhì)疑是有道理的。但在現(xiàn)實(shí)場(chǎng)景下,很難生硬的把CNE與CNA割裂開,CNE通常是CNA的基礎(chǔ)。CNE轉(zhuǎn)化為CNA可能只是指令與策略的調(diào)整。在威脅框架體系中,CNA的動(dòng)作是致效能力運(yùn)用中的中的若干動(dòng)作環(huán)節(jié),這就將CNE與CNA良好的統(tǒng)合到一個(gè)框架體系中,從而能更好的推動(dòng)分析與防御改善的體系的改善。
5.震網(wǎng)的USB擺渡與傳播“失控”的原因
震網(wǎng)是針對(duì)非常特殊的工業(yè)場(chǎng)景進(jìn)行攻擊的惡意代碼,2019年,有相關(guān)媒體報(bào)道,震網(wǎng)病毒進(jìn)入到伊朗相關(guān)物理隔離的工業(yè)網(wǎng),是依靠荷蘭情報(bào)人員在攻擊方的要求下招募了“內(nèi)鬼”[7]。而在內(nèi)網(wǎng)中,震網(wǎng)主要的傳播方式為借助USB擺渡+基于漏洞的橫向移動(dòng)。其預(yù)設(shè)的攻擊場(chǎng)景是與互聯(lián)網(wǎng)隔離的內(nèi)部網(wǎng)絡(luò)。安天在最早的分析報(bào)告中,對(duì)于其傳播機(jī)理[1],以如圖5-1進(jìn)行了說明:
圖 5-1 樣本的多種傳播方式
整體的傳播思路是:染毒U盤利用快捷方式文件解析漏洞,傳播到內(nèi)部網(wǎng)絡(luò);在內(nèi)網(wǎng)中,通過快捷方式解析漏洞、RPC遠(yuǎn)程執(zhí)行漏洞、打印機(jī)后臺(tái)程序服務(wù)漏洞,實(shí)現(xiàn)聯(lián)網(wǎng)主機(jī)之間的傳播;最后抵達(dá)安裝了WinCC軟件的主機(jī),展開攻擊。在這一過程中,亦存在染毒主機(jī)對(duì)插入的U盤進(jìn)行感染的過程,但經(jīng)過安天分析這一動(dòng)作并非是無條件的。
圖 5-2 U盤感染過程中配置文件解析
感染震網(wǎng)的計(jì)算機(jī)會(huì)監(jiān)控接入的設(shè)備,一旦發(fā)現(xiàn)U盤插入且滿足條件即開始寫入U(xiǎn)盤擺渡文件,具體條件如下:
●當(dāng)前時(shí)間的U盤沒有被感染;
●根據(jù)配置標(biāo)記(不是默認(rèn)設(shè)置)來感染磁盤,如果默認(rèn)配置不感染,那么感染的發(fā)生取決于日期;
●感染當(dāng)前計(jì)算機(jī)少于21天;
●U盤至少有5MB的剩余空間;
●U盤至少有3個(gè)文件。
USB文件和加載攻擊邏輯如圖5-3所示,含4個(gè)適用于不同Windows版本的LNK快捷方式漏洞(CVE-2010-2568)文件和2個(gè)TMP文件(~WTR4141.tmp是USB Loader,~WTR4132.tmp是Dropper,均為DLL格式,文件屬性為隱藏、系統(tǒng)),震網(wǎng)通過rootkit隱藏這6個(gè)文件,因此被震網(wǎng)感染的計(jì)算機(jī)上并不能看到U盤里的這些文件。
U盤擺渡攻擊過程為:被感染的U盤插入新的計(jì)算機(jī),用戶打開此U盤,系統(tǒng)開始遍歷U盤目錄文件,當(dāng)遍歷到LNK文件時(shí)漏洞觸發(fā)加載~WTR4141.tmp執(zhí)行,~WTR4141.tmp首先會(huì)掛鉤文件相關(guān)函數(shù)隱藏這6個(gè)文件(在打開U盤的一瞬間可以看到這4個(gè)LNK文件,如果開啟了顯示隱藏和系統(tǒng)文件選項(xiàng),還可以看到2個(gè)TMP文件,但瞬間漏洞觸發(fā)這6個(gè)文件全部隱藏在文件夾下看不到了),隨后~WTR4141.tmp在內(nèi)存中加載調(diào)用~WTR4132.tmp完成震網(wǎng)的主模塊執(zhí)行。
圖 5-3 USB文件和加載攻擊邏輯示意圖
Stuxnet是否感染到U盤,取決于加密配置文件mdmcpq3.pnf中的多個(gè)值,包括:
●偏移0x6c、0x70、0xc8處的標(biāo)記位;
●偏移0x78、0x7c處的時(shí)間戳;
●偏移0x80、0x84處的數(shù)值。
只有當(dāng)每個(gè)值對(duì)應(yīng)的條件都滿足時(shí),才會(huì)感染U盤。其中,偏移0xc8處的位默認(rèn)設(shè)置為不感染。
Stuxnet不會(huì)主動(dòng)修改配置數(shù)據(jù),配置的更新通過版本更新來完成。因此,我們認(rèn)為它是嘗試連接因特網(wǎng)來判斷自己是否在內(nèi)部網(wǎng)絡(luò)中。如果是,就只通過其他途徑傳播;只有通過連接服務(wù)器或其他被感染主機(jī)更新之后,才感染U盤。
當(dāng)Stuxnet感染U盤時(shí),拷貝多個(gè).lnk快捷方式文件和兩個(gè).tmp文件到根目錄。這兩個(gè).tmp文件,一個(gè)是用于隱藏它們自身的驅(qū)動(dòng)程序,帶有數(shù)字簽名;另一個(gè)是病毒體本身以及一個(gè)投放器,配置信息已經(jīng)存在于病毒體中。
根據(jù)賽門鐵克在2010年7月-10月監(jiān)測(cè)的震網(wǎng)攻擊數(shù)據(jù),全球155個(gè)國家的計(jì)算機(jī)被感染,其中約60%的受害主機(jī)位于伊朗境內(nèi)[8]。對(duì)于一次被認(rèn)為是應(yīng)具有高度定向性質(zhì)的作業(yè)行動(dòng),卻呈現(xiàn)出發(fā)散性傳播效果的原因,目前各分析方給出了多種不同猜測(cè):
⊕第一種猜測(cè)是,各種原因?qū)е铝藗鞑ナЭ亍?/p>
盡管震網(wǎng)本身的USB擺渡+橫向移動(dòng)設(shè)計(jì),使其只能在內(nèi)網(wǎng)傳播。但由于其本身的傳播和攻擊策略是基于隔離網(wǎng)絡(luò)目標(biāo)設(shè)計(jì),要達(dá)成一種無實(shí)時(shí)遠(yuǎn)控作業(yè),因此多數(shù)條件下只能以預(yù)設(shè)停止傳播時(shí)間等因素,而無法像基于互聯(lián)網(wǎng)的攻擊作業(yè)一樣,進(jìn)行遠(yuǎn)程遙控和調(diào)整。由于蠕蟲感染了供應(yīng)商工程師帶入現(xiàn)場(chǎng)的筆記本設(shè)備,之后又被帶入到供應(yīng)商自身的網(wǎng)絡(luò)中和其他客戶的內(nèi)網(wǎng)中。內(nèi)網(wǎng)的VPN互聯(lián)也加劇了這種傳播,最終導(dǎo)致震網(wǎng)的傳播失控。這種觀點(diǎn)與一些實(shí)際情況有一定沖突,比如震網(wǎng)0.5版本,作業(yè)周期較長,達(dá)成了攻擊目的,但并未發(fā)生擴(kuò)散傳播。
⊕第二種猜測(cè)是,這是作業(yè)方為獲取更多信息有意為之。
其目的是根據(jù)感染鏈條,進(jìn)一步了解伊朗核工業(yè)體系供應(yīng)商的情況。德國控制系統(tǒng)安全顧問Ralph Langner在《Stuxnet’s Secret Twin》(震網(wǎng)蠕蟲的秘密變種)[9]中的一個(gè)推測(cè)是這種外部擴(kuò)散,是因?yàn)楣粽呦M铏C(jī)獲取到與伊朗相關(guān)設(shè)施的供應(yīng)商的情報(bào)。他指出“鑒于Stuxnet將受感染系統(tǒng)的IP地址、主機(jī)名以及基本配置信息上報(bào)給其C&C服務(wù)器,看來攻擊者顯然預(yù)期(并接受)傳播到非軍用系統(tǒng),且相當(dāng)渴望密切監(jiān)測(cè)它—攻擊者最終將獲取在納坦茲工作的承包商以及其客戶的信息,甚至伊朗秘密核設(shè)施的信息?!?/p>
⊕第三種猜測(cè)是作業(yè)方為了掩蓋定向攻擊意圖,以感染范圍的擴(kuò)大提升取證溯源的難度。
包括干擾對(duì)真實(shí)攻擊目標(biāo)更準(zhǔn)確的判斷和定位。
⊕第四種猜測(cè)是攻擊方展示能力,達(dá)成對(duì)他國恐嚇甚至訛詐的需要。
如果事件單一的發(fā)生于伊朗,可能導(dǎo)致此事件最終不會(huì)浮出水面。而只有放任其“越獄”傳播,才有可能更快達(dá)成此種效果。在《Stuxnet’s Secret Twin》(震網(wǎng)蠕蟲的秘密變種)一文中,Ralph Langner同樣猜想,“Stuxnet被發(fā)現(xiàn)意味著行動(dòng)的終結(jié),但是它的實(shí)用性并不一定結(jié)束,它將向世界展示網(wǎng)絡(luò)武器在超級(jí)大國手中可以做什么。因?yàn)椴煌趯?shí)體軍事裝備的展示,閱兵時(shí)是無法展示U盤。攻擊者也可能關(guān)注另一個(gè)國家,最壞的情況下是一個(gè)對(duì)手;而且將第一個(gè)證明其在數(shù)字領(lǐng)域的能力--這個(gè)場(chǎng)景簡(jiǎn)直可以說是超級(jí)大國歷史上的另一個(gè)Sputnik(放衛(wèi)星)的時(shí)刻。所有這些理由使得攻擊者不必太過擔(dān)心被檢測(cè)到?!?/p>
震網(wǎng)的發(fā)散性傳播到底是一種“失控”,還是攻擊方有意所為,或者兩者因素都存在。最終的效果可能并非是某個(gè)單一原因,而是多個(gè)因素的組合。
6.震網(wǎng)為何有數(shù)千個(gè)樣本?
作為一種目標(biāo)高度定向的攻擊行動(dòng),一個(gè)曾令人費(fèi)解的事實(shí)是,震網(wǎng)并不具備感染其他宿主文件的屬性,但卻有大量的樣本存在。
在惡意代碼對(duì)抗工作中,樣本被視為一種重要的基礎(chǔ)資源。樣本被視為惡意代碼所對(duì)應(yīng)的一種實(shí)體文件形態(tài),包括帶有感染式病毒的宿主文件、非感染式惡意代碼的文件、以及惡意代碼所存在的扇區(qū)或內(nèi)存的文件鏡像。在威脅對(duì)抗的深度從最初的檢測(cè)、查殺,逐漸擴(kuò)展到響應(yīng),深度機(jī)理分析和溯源中,我們也發(fā)現(xiàn)對(duì)樣本的需求和定義開始發(fā)生一些變化。調(diào)查/獵殺意義上的樣本和傳統(tǒng)檢測(cè)意義上的樣本存在著差異,傳統(tǒng)檢測(cè)意義的樣本既包含在現(xiàn)場(chǎng)場(chǎng)景中所采集的文件,同時(shí)也包含了為了測(cè)試反病毒引擎的能力以及分析中所二次構(gòu)造出的樣本變換結(jié)果。對(duì)于檢測(cè)和清除能力來說,進(jìn)行這種樣本構(gòu)造是必須完成的,例如在樣本規(guī)范中,特別是對(duì)于感染式病毒來說,為保證檢測(cè)和清除效果的檢驗(yàn),相關(guān)業(yè)內(nèi)標(biāo)準(zhǔn)在DOS時(shí)代就提出過根據(jù)DOS_COM、DOS_MZ等文件大小,被感染文件要達(dá)到規(guī)定的數(shù)量,對(duì)于變形病毒的樣本,還有需要構(gòu)造出更多數(shù)量的樣本的要求。而對(duì)調(diào)查/獵殺意義來說,在攻擊場(chǎng)景中客觀存在則成為一種重要的需要被標(biāo)識(shí)出的樣本屬性。
安天捕獲的震網(wǎng)樣本集合是數(shù)以千計(jì)的,但這些樣本可以分成幾個(gè)不同的標(biāo)識(shí)維度,基于U盤擺渡的原始載荷形態(tài)、在主機(jī)上落地的文件、不落地的模塊(需要靜態(tài)拆離或動(dòng)態(tài)Dump)等等。一類是從其中拆解出的最終攻擊載荷(在實(shí)際的攻擊中多數(shù)是不落地的)和一些輔助的驅(qū)動(dòng)等。從磁盤介質(zhì)提取的實(shí)體文件數(shù)量較多的主要分為三種:攻擊載荷釋放器Dropper(原始文件名為~WTR4132.tmp)、移動(dòng)介質(zhì)載荷加載器USB Loader(~WTR4141.tmp)和LNK漏洞利用文件,其中Dropper樣本數(shù)量呈現(xiàn)發(fā)散態(tài),從安天所掌握的數(shù)量來看,在千數(shù)量級(jí)別。而最終的攻擊功能模塊載荷和輔助驅(qū)動(dòng)在百數(shù)量級(jí),總數(shù)呈現(xiàn)收斂態(tài)。
震網(wǎng)樣本集的分類情況如圖6-1所示。
圖 6-1 震網(wǎng)樣本集分類
安天CERT分析發(fā)現(xiàn),造成震網(wǎng)樣本集基數(shù)較大的原因是:
1.Dropper樣本在落地時(shí)寫入目標(biāo)配置導(dǎo)致文件變化
攻擊載荷釋放器Dropper存在一個(gè)名為stub的資源段,攻擊載荷(即主DLL)即存在于這個(gè)字段中。而在病毒落地時(shí),stub段中存儲(chǔ)的配置數(shù)據(jù)會(huì)被當(dāng)前感染節(jié)點(diǎn)的相關(guān)信息數(shù)據(jù)更新,這是導(dǎo)致震網(wǎng)樣本集數(shù)量多的一個(gè)最主要原因。也就是說,每次落地震網(wǎng)都會(huì)再形成一個(gè)HASH不同的Dropper。這就導(dǎo)致了震網(wǎng)的樣本集從HASH數(shù)量上看,呈現(xiàn)發(fā)散狀態(tài)。而樣本集中Dropper功能的真實(shí)“版本”是有限的,Dropper中98.84%的導(dǎo)入表相同,有91%的樣本text段單獨(dú)拆離出的文件是完全一致的,MD5值均為17e2270d82d774b7f06902fa7d630c74,這是一個(gè)發(fā)生規(guī)模感染的Dropper主力版本。
圖 6-2 Dropper導(dǎo)入表統(tǒng)計(jì)
stub段作為主DLL存放的位置,其布局解析如表6-1所示。
解密主DLL的函數(shù)如下:
圖 6-3 主DLL函數(shù)解密
主DLL之后的數(shù)據(jù)中存在加密的配置信息,能夠在感染過程中控制震網(wǎng)的具體行為,使得震網(wǎng)具備在無法遠(yuǎn)程控制的情況下,依然可以按照預(yù)設(shè)策略工作,確保其復(fù)雜的作業(yè)可以成功。其配置文件也記錄了被感染機(jī)器信息和時(shí)間等特征,這樣做的目的可能是攻擊者希望這些信息在感染時(shí)被提取記錄,一旦聯(lián)網(wǎng)時(shí)可以直接將相關(guān)信息提交給C2,而不用做二次提取操作,減少對(duì)主機(jī)環(huán)境操作,以減少暴露的機(jī)會(huì)。
部分解密后的配置信息如下:
圖 6-4 部分解密后的配置信息
表6-2是部分配置內(nèi)容的解析,這些值能夠控制震網(wǎng)在受害主機(jī)上的行為,具體內(nèi)容包括:通過+A4值控制開始感染時(shí)間,如果這個(gè)值不能滿足感染要求,則退出;通過+78值控制控制終止感染USB的時(shí)間,以及涉及控制震網(wǎng)傳播、版本更新等值。在解密后的配置信息中這種控制震網(wǎng)行為的值有近百個(gè),正是這些值來控制震網(wǎng)的復(fù)雜行為。
表 6-2 部分配置內(nèi)容解析
Dropper的配置文件校驗(yàn)函數(shù):
圖 6-5 Dropper的配置文件校驗(yàn)函數(shù)
配置塊的一些關(guān)鍵信息:如感染路徑、感染時(shí)間、配置塊長度,通過提取配置數(shù)據(jù)分析后發(fā)現(xiàn),由于在每次感染新的設(shè)備后,其自身都會(huì)更新數(shù)據(jù)配置塊,致使每感染一臺(tái)設(shè)備,Stuxnet就會(huì)多出一個(gè)含有新配置的Dropper樣本,圖6-6為震網(wǎng)開始感染時(shí)間的數(shù)量分布圖,其中2008年-2010年為可信度較高的感染時(shí)間,而2000年-2007年為可信度較低的感染時(shí)間。
圖 6-6 開始感染時(shí)間數(shù)量分布圖(由于內(nèi)網(wǎng)主機(jī)可能的存在時(shí)鐘不同步問題導(dǎo)致錯(cuò)誤的起始時(shí)間)
在震網(wǎng)的安裝執(zhí)行過程中會(huì)多次檢查目標(biāo)系統(tǒng)當(dāng)前時(shí)間,如果目標(biāo)系統(tǒng)時(shí)間大于終止時(shí)間,震網(wǎng)就會(huì)退出安裝執(zhí)行過程。圖6-7是震網(wǎng)1.x版本終止U盤感染時(shí)間的統(tǒng)計(jì),它有三個(gè)終止U盤感染時(shí)間:2010年7月31日、2010年8月31日、2010年12月31日,其中絕大多數(shù)的終止U盤感染時(shí)間為2010年12月31日。
圖 6-7 終止U盤感染時(shí)間統(tǒng)計(jì)
2.分析提取工作導(dǎo)致的
將震網(wǎng)的各個(gè)功能載荷從主DLL中剝離出來,是震網(wǎng)分析中的重要工作,這帶來了一種新的樣本統(tǒng)計(jì)上需要考慮的因素,即何為原始樣本,何為處理中的過程數(shù)據(jù)。震網(wǎng)主DLL文件在Dropper中采用UPX壓縮的方式進(jìn)行存儲(chǔ),防止樣本大小過大,減少傳播機(jī)會(huì)。在實(shí)際感染過程中主DLL不會(huì)落地,在樣本集中有UPX加殼的主DLL文件,在實(shí)際樣本集中存在,因Dump導(dǎo)致的不同版本,未脫殼版本,不同脫殼方式生成的版本等情況。
在A2PT組織作業(yè)使用落地的樣本中,很少看到使用殼的情況,這可能與一些殺毒軟件會(huì)對(duì)殼報(bào)警、或輸出日志相關(guān)。但震網(wǎng)主DLL文件在Dropper是采用UPX殼壓縮的(毒曲也是如此),究其原因,應(yīng)是出于減小文件體積的考慮。
圖 6-8 未完全脫殼文件
3.干擾數(shù)據(jù)
在震網(wǎng)的USB Loader樣本集中,有數(shù)以百計(jì)的樣本文件簽名損壞,且大量該類文件的尾部還追加了其他的LNK文件和某種反病毒產(chǎn)品的報(bào)警日志,從目前分析來看,這是某款反病毒產(chǎn)品的產(chǎn)品Bug導(dǎo)致的,其某版本在掃描樣本時(shí),會(huì)錯(cuò)誤的樣本后面追加數(shù)據(jù),從而引入數(shù)百被破壞的樣本。
圖 6-9 USB Loader尾部追加LNK文件
7.惡意代碼框架與多起A2PT的事件關(guān)聯(lián)
在震網(wǎng)事件曝光前后,包括毒曲、高斯、火焰等高級(jí)惡意代碼被陸續(xù)曝光,由于這些惡意代碼都空前復(fù)雜,且往往多在中東國家被發(fā)現(xiàn),因此懷疑其相互間存在某種意義的關(guān)聯(lián),也成為了一種比較自然的猜想。
安天CERT在2011初提出了震網(wǎng)和毒曲可能存在某種關(guān)聯(lián)關(guān)系的猜測(cè),但直到次年初,才完成比較系統(tǒng)的驗(yàn)證。發(fā)布了《探索Duqu木馬的身世之謎》[10]、《從Duqu病毒與Stuxnet蠕蟲的同源性看工業(yè)控制系統(tǒng)安全》[11]兩篇文獻(xiàn),分別從模塊結(jié)構(gòu)相似性分析、編譯器架構(gòu)相似性分析、關(guān)鍵功能實(shí)現(xiàn)相似性分析、密鑰與其他關(guān)鍵數(shù)據(jù)相似性分析、編碼心理特點(diǎn)分析、相同的程序Bug分析等角度,證實(shí)了兩者存在同源關(guān)聯(lián)關(guān)系。
圖 7-1 毒曲病毒與震網(wǎng)蠕蟲的代碼片斷比較
圖 7-2 毒曲病毒與震網(wǎng)蠕蟲使用相同密鑰
安天在當(dāng)時(shí)做出的結(jié)論是“通過對(duì)毒曲病毒與震網(wǎng)蠕蟲關(guān)鍵代碼結(jié)構(gòu)、密鑰使用方法和代碼邏輯等的比較,我們發(fā)現(xiàn)了大量相同或相似的代碼片斷,這說明兩者間存在代碼復(fù)用關(guān)系,或者兩者基于相同的代碼框架開發(fā)。”但對(duì)于是復(fù)用關(guān)系,還是同框架開發(fā)這一問題,當(dāng)時(shí)并未給出定論。而融合其他機(jī)構(gòu)的后期分析成果和進(jìn)展,可以形成的結(jié)論是,相關(guān)A2PT攻擊組織至少維護(hù)了Tilded和Flamer兩個(gè)惡意代碼框架。震網(wǎng)、毒曲與火焰、高斯分別是基于Tilded和Flamer框架開發(fā)的。2012年6月11日,卡巴斯基發(fā)布報(bào)告稱2009年早期版本的(即0.5版)Stuxnet模塊(稱為“Resource 207”)實(shí)際上是一個(gè)Flame插件。而這一成果也將Flamer和Tilded這兩個(gè)完全不同的框架串接了起來?;谶@兩個(gè)框架的惡意代碼在感染目標(biāo)系統(tǒng)和執(zhí)行主要任務(wù)方面具有獨(dú)特的技巧,均用來開發(fā)不同的網(wǎng)空攻擊裝備。卡巴斯基提出的結(jié)論是:兩個(gè)框架背后的團(tuán)隊(duì)曾經(jīng)共享過至少一個(gè)模塊的源代碼,表明他們至少有一次團(tuán)隊(duì)合作,是屬于同一機(jī)構(gòu)的兩個(gè)平行項(xiàng)目[12]。基于更多的線索,還可以把Fanny和Flowershop與上述事件串接到一起,它們的關(guān)系如圖7-3所示。
圖 7-3 震網(wǎng)和毒曲、火焰、高斯、Fanny、Flowershop關(guān)系圖
7.1Flamer框架
Flamer框架的開發(fā)時(shí)間可以追溯至2006年12月,火焰和高斯是基于Flamer框架開發(fā)的。安天于2012年5月28日起陸續(xù)捕獲到火焰蠕蟲的樣本[13],并成立了專門的分析小組進(jìn)行持續(xù)分析,發(fā)現(xiàn)火焰是采用多模塊化復(fù)雜結(jié)構(gòu)實(shí)現(xiàn)的信息竊取類型的惡意軟件。其主模塊文件大小超過6MB,包含了大量加密數(shù)據(jù)、內(nèi)嵌腳本(如Lua等)、漏洞攻擊代碼、模塊配置文件、多種加密壓縮算法,信息盜取等多種模塊。
火焰的兩個(gè)主要版本為Flame 1.0和Flame 2.0,兩個(gè)版本均由依賴于嵌入式Lua VM的主協(xié)調(diào)器指示的多個(gè)子模塊組成?;鹧婧透咚怪g包含一些相同代碼,同時(shí)共享MiniFlame惡意軟件插件。
7.2Tilded框架
震網(wǎng)和毒曲是基于Tilded框架開發(fā)的。Tilded框架感染方式一般可以歸納為利用驅(qū)動(dòng)程序文件,加載一個(gè)設(shè)計(jì)為加密庫的主模塊。同時(shí),整個(gè)惡意復(fù)合體有一個(gè)單獨(dú)的配置文件,系統(tǒng)注冊(cè)表中有一個(gè)加密塊,用于定義正在加載的模塊的位置和注入過程的名稱。
震網(wǎng)已知的版本包括Stuxnet0.5、Stuxnet1.001和Stuxnet1.100。Stuxnet0.5是震網(wǎng)的早期版本,但是后被發(fā)現(xiàn)曝光,該變種在2009年7月4日停止了對(duì)計(jì)算機(jī)的攻擊。Stuxnet0.5與Stuxnet1.x版本的主要區(qū)別包括:Stuxnet1.x版本顯著增加了傳播和漏洞利用能力;Stuxnet0.5是部分基于Flamer框架的,而Stuxnet1.x版本主要基于Tilded框架;Stuxnet0.5采用導(dǎo)致超壓的方式,大規(guī)模破壞離心機(jī),而Stuxnet1.x版本采取了新的攻擊策略,從鈾濃縮閥破壞變成對(duì)離心機(jī)速度的修改。
表 7-1 震網(wǎng)0.5與1.x版本技術(shù)細(xì)節(jié)全面對(duì)比
毒曲的主要版本包括Duqu1.0、Duqu1.5和Duqu2.0。Duqu與Duqu2.0之間使用統(tǒng)一算法以及復(fù)用大量相同代碼,Duqu1.0和Duqu2.0之間攻擊目標(biāo)有很多重合,Duqu1.5和Duqu2.0之間均使用了Pipe Backdoor插件。
震網(wǎng)和毒曲之間在模塊結(jié)構(gòu)、編譯器結(jié)構(gòu)、關(guān)鍵功能、數(shù)據(jù)結(jié)構(gòu)、病毒作者心理等方面具有同源性[14],此外,震網(wǎng)和Duqu1.0、Duqu2.0均采用竊取自中國臺(tái)灣IT廠商的數(shù)字證書。
7.3震網(wǎng)與Fanny、Flowershop的關(guān)聯(lián)
從圖7-3中能夠看出,震網(wǎng)除了與毒曲、火焰具有一定關(guān)聯(lián)之外,其與Fanny、Flowershop也具有一定的關(guān)聯(lián)。
Stuxshop是震網(wǎng)的早期組件,用于管理早期C2。Stuxshop與Flowershop(活躍于2002年至2013年的惡意軟件平臺(tái))之間存在代碼重疊或共享。
方程式早期組件Fanny,其使用了兩個(gè)震網(wǎng)的0day漏洞,即LNK漏洞(CVE-2010-2568)以及嵌入在“Resource 207”中的提權(quán)漏洞。此外,震網(wǎng)和方程式開發(fā)者之間共享編碼風(fēng)格,或者使用同樣的開發(fā)規(guī)范手冊(cè)。
8.直面檢測(cè)引擎與威脅情報(bào)面臨的挑戰(zhàn)
在安天此前的分析報(bào)告中,針對(duì)A2PT帶來的防御挑戰(zhàn),進(jìn)行過一些論述和探討,而針對(duì)震網(wǎng)的復(fù)盤,我們希望聚焦一個(gè)具體的問題,高級(jí)惡意代碼對(duì)檢測(cè)引擎和威脅情報(bào)的挑戰(zhàn)。
作為攻擊載荷的惡意代碼是網(wǎng)空攻擊的“戰(zhàn)斗部”,幾乎絕大多數(shù)的網(wǎng)空攻擊事件中都會(huì)出現(xiàn)惡意代碼的身影,在高能力網(wǎng)空威脅行為體的攻擊活動(dòng)中更是如此。從威脅框架的視角來看,高能力網(wǎng)空威脅行為體要針對(duì)目標(biāo)完成接觸目標(biāo)與進(jìn)攻突防、持久化駐留潛伏、全程持續(xù)支撐作業(yè),并進(jìn)一步達(dá)成各種致效能力運(yùn)用,在整個(gè)過程中,既需要針對(duì)業(yè)務(wù)場(chǎng)景達(dá)成作業(yè)意圖,又要繞開體系化的防護(hù),達(dá)成深度持久化和隱蔽通訊等動(dòng)作,其必然要完成高度復(fù)雜的邏輯功能執(zhí)行。這導(dǎo)致了APT攻擊對(duì)惡意代碼的依賴程度在不斷加深,高級(jí)惡意代碼呈現(xiàn)出框架日趨龐大、模塊眾多和指令體系原子化等趨勢(shì)。
在過去對(duì)網(wǎng)空威脅的分析和對(duì)網(wǎng)空威脅行為體的追蹤中,安天對(duì)震網(wǎng)、火焰、毒曲、方程式等擁有完整、嚴(yán)密的作業(yè)框架與方法體系的攻擊活動(dòng),以及其自研使用的的高級(jí)惡意代碼進(jìn)行了持續(xù)關(guān)注分析;同時(shí)也分析了一些組合使用“商業(yè)軍火”、開源免費(fèi)工具即較低水平的自研惡意代碼的定向攻擊活動(dòng)。這些分析工作是長期的、高代價(jià)的,但這些工作是實(shí)現(xiàn)更有效地防御和獵殺的基礎(chǔ)。賦能客戶建設(shè)動(dòng)態(tài)綜合防御體系是我們的目標(biāo);而針對(duì)攻擊裝備(惡意代碼、漏洞利用程序和其他的工具)的斗爭(zhēng)一直是其中的焦點(diǎn)。
在這種對(duì)抗中,傳統(tǒng)的反病毒引擎和威脅情報(bào)成為兩個(gè)具有互補(bǔ)作用的機(jī)制,前者針對(duì)海量的惡意代碼的檢測(cè)、辨識(shí)能力,并且通過深度預(yù)處理、虛擬執(zhí)行等機(jī)制來應(yīng)對(duì)惡意代碼的變種、變換,因此在載荷檢測(cè)方面,有無以倫比的識(shí)別與解析深度,而且對(duì)海量載荷對(duì)象提供了精準(zhǔn)的判定機(jī)制。但傳統(tǒng)病毒引擎在威脅對(duì)抗中的短板也很明顯,其是最容易被攻擊方獲得的安全資源,絕大多數(shù)反病毒軟件都可以公開的下載或低成本的購買、同時(shí)Virustotal等公開的多引擎掃描機(jī)制也會(huì)成為攻擊方的測(cè)試資源。因此反病毒引擎面對(duì)自動(dòng)化構(gòu)造的免殺測(cè)試等方法,有被繞過的必然性。同時(shí)其本地檢測(cè)定期升級(jí)庫的機(jī)制,或者是云引擎對(duì)遠(yuǎn)程的依賴,對(duì)內(nèi)網(wǎng)用戶也都帶來了一定的部署成本。另一個(gè)問題是,傳統(tǒng)反病毒引擎的工作視角是基于樣本檢出率為核心指標(biāo)的,其信息輸出缺少從威脅對(duì)抗方面更明確的指向性。這些短板都需要威脅情報(bào)進(jìn)行彌補(bǔ)。在威脅情報(bào)金字塔中,HASH、IP、域名等“狹義情報(bào)”被列入底層,即獲取難度低、應(yīng)用成本低。較為容易的被分析防御方提取為攻擊指示器(信標(biāo)),同時(shí)可以與多種安全設(shè)備、管理設(shè)備、防護(hù)軟件等現(xiàn)有擴(kuò)展接口實(shí)現(xiàn)對(duì)接。
圖 8-1 威脅情報(bào)金字塔模型
盡管與傳統(tǒng)的反病毒檢測(cè)引擎相比,HASH檢測(cè)機(jī)制毫無魯棒性可言,但由于HASH的唯一性,其在可靠的知識(shí)運(yùn)營支撐的情況下,可以建立起對(duì)攻擊組織的精準(zhǔn)的指向性。例如兩個(gè)不同的攻擊組織,分別定制了同一個(gè)版本的商用木馬,在文件尾部附著了各自的C2配置。對(duì)于反病毒引擎來說,這是同一種樣本,而對(duì)于HASH情報(bào)在分析支撐下輸出,反而能將其區(qū)別出來。但HASH情報(bào)其可用前提也很明顯,那就是存在著二進(jìn)制形態(tài)不變的樣本復(fù)用。對(duì)IP和域名規(guī)則也是如此,當(dāng)情報(bào)供給方能將惡意活動(dòng)指向某個(gè)確定的通訊基礎(chǔ)設(shè)施(C2),來完成心跳、控制、升級(jí)、回傳等操作,并將這個(gè)惡意活動(dòng)指向某個(gè)攻擊組織時(shí),那么相應(yīng)的網(wǎng)絡(luò)IoC就可以命中在其他攻擊活動(dòng)中的行為,從而建立起攻擊行為和組織的關(guān)聯(lián)。這種低層次的攻擊指向器,盡管效用機(jī)理比反病毒引擎和流量檢測(cè)引擎都要簡(jiǎn)單,但基于其可以快速發(fā)布,廣泛擴(kuò)展,精準(zhǔn)定義,一定程度上帶了一種快速的、更為普適的監(jiān)測(cè)和普查能力。因此傳統(tǒng)檢測(cè)引擎+IoC情報(bào)可以形成一定的互補(bǔ)組合的效果。這種組合模式也是過去數(shù)年安天所推動(dòng)的模式。
但通過復(fù)盤9年前的震網(wǎng)事件就可以看到,這個(gè)層面的情報(bào)對(duì)于A2PT攻擊近乎無效。每一臺(tái)主機(jī)上提取到Dropper文件的HASH都不可能命中另一臺(tái)主機(jī)上的等效文件。我們不能認(rèn)為震網(wǎng)Dropper的落地自寫更新機(jī)制,主要目的是為了對(duì)抗HASH檢測(cè)機(jī)制,但其客觀上構(gòu)成了這樣的效果。而更需要看到的是,盡管在分析過程中,可以看到震網(wǎng)攻擊的相關(guān)域名從2005年已經(jīng)被注冊(cè)。但在分析方將相關(guān)通訊特性作為規(guī)則時(shí),震網(wǎng)的攻擊效果已經(jīng)達(dá)成,而在毒曲等的攻擊中,我們亦廣泛看到內(nèi)網(wǎng)C2等機(jī)制的存在。如果反病毒引擎是一種會(huì)被攻擊者重點(diǎn)繞過的重載機(jī)制,而攻擊指示器(信標(biāo))又作為一種穩(wěn)定性極低的情報(bào)機(jī)制的話,這對(duì)雙保險(xiǎn)的效果就會(huì)大打折扣。
安天基于傳統(tǒng)檢測(cè)引擎在威脅對(duì)抗中,是攻擊方重點(diǎn)繞過環(huán)節(jié)的特點(diǎn),自2016年起開始研發(fā)下一代威脅檢測(cè)引擎。安天下一代引擎延續(xù)并深化了安天傳統(tǒng)引擎格式識(shí)別、深度解析等特點(diǎn),繼承對(duì)海量惡意代碼精準(zhǔn)的分類到變種的識(shí)別能力。同時(shí),以沒有可信的格式和對(duì)象為前提,形成對(duì)檢測(cè)對(duì)象全格式識(shí)別,對(duì)更多重點(diǎn)格式形成深度解析能力。不止為調(diào)用環(huán)節(jié)輸出判定結(jié)果,同時(shí)也可以將檢測(cè)對(duì)象的向量拆解結(jié)果結(jié)構(gòu)化輸出,形成支撐產(chǎn)品場(chǎng)景和態(tài)勢(shì)感知場(chǎng)景研判分析、關(guān)聯(lián)與追溯的數(shù)據(jù)資源。
探索檢測(cè)引擎與威脅情報(bào)更好的結(jié)合,建立起更可靠的基礎(chǔ)標(biāo)識(shí)能力與響應(yīng)機(jī)制,更有效的支撐TTP,乃至人員組織相關(guān)的情報(bào),建立起更完善的知識(shí)工程運(yùn)營體系,這對(duì)我們來說,將是一個(gè)需要長期努力的方向。