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