夏飛 夏元軼
摘要:國(guó)網(wǎng)江蘇省電力公司信通分公司基于虛擬執(zhí)行技術(shù)的APT檢測(cè)模型,采用了最新的虛擬執(zhí)行技術(shù),對(duì)網(wǎng)絡(luò)內(nèi)的APT攻擊進(jìn)行監(jiān)測(cè)和分析,幫助公司了解自身網(wǎng)絡(luò)的脆弱性,并采取有效措施。
一. 背景
如今,企業(yè)面臨著一個(gè)不斷演變的網(wǎng)絡(luò)威脅環(huán)境。最初的黑客攻擊是為了獲得影響力及自我滿(mǎn)足去攻擊媒體網(wǎng)站,或者使用DoS方式來(lái)中斷網(wǎng)站的服務(wù);而現(xiàn)在已演變成為了經(jīng)濟(jì)、政治等目的的攻擊。攻擊者能夠通過(guò)竊取知識(shí)產(chǎn)權(quán)來(lái)直接獲取利益,也可以入侵、竊取客戶(hù)的個(gè)人金融信息,更有甚者破壞對(duì)方的服務(wù)以至國(guó)家的基礎(chǔ)設(shè)施。動(dòng)機(jī)的變化,同時(shí)也帶來(lái)了攻擊方式的變化。
從過(guò)去廣泛、漫無(wú)目的的攻擊威脅,在數(shù)年內(nèi)迅速的轉(zhuǎn)化為針對(duì)受害者組織將造成嚴(yán)重后果的高級(jí)可持續(xù)威脅(Advanced Persistent Threat)。高級(jí)可持續(xù)威脅(APT)是由美國(guó)空軍的信息安全分析師與2006年創(chuàng)造的術(shù)語(yǔ),一般來(lái)說(shuō),高級(jí)可持續(xù)威脅具備以下三個(gè)特點(diǎn):
高級(jí):攻擊者為黑客入侵技術(shù)方面的專(zhuān)家,能夠自主的開(kāi)發(fā)攻擊工具,或者挖掘漏洞,并通過(guò)結(jié)合多種攻擊方法和工具,以達(dá)到預(yù)定攻擊目標(biāo)。
持續(xù)性滲透:攻擊者會(huì)針對(duì)確定的攻擊目標(biāo),進(jìn)行長(zhǎng)期的滲透。在不被發(fā)現(xiàn)的情況下,持續(xù)攻擊以獲得最大的效果。
威脅:這是一個(gè)由組織者進(jìn)行協(xié)調(diào)和指揮的人為攻擊。入侵團(tuán)隊(duì)會(huì)有一個(gè)具體的目標(biāo),這個(gè)團(tuán)隊(duì)訓(xùn)練有素、有組織性、有充足的資金,同時(shí)有充分的政治或經(jīng)濟(jì)動(dòng)機(jī)。
此類(lèi)APT威脅往往可以繞過(guò)防火墻、IPS、AV以及網(wǎng)閘等傳統(tǒng)的安全機(jī)制,悄無(wú)聲息的從企業(yè)或政府機(jī)構(gòu)獲取高級(jí)機(jī)密資料。在2012年Verizon信息外泄調(diào)查報(bào)告中可以看到,2011年發(fā)生的重大信息數(shù)據(jù)外泄的受訪組織中,有59%是在相關(guān)執(zhí)法機(jī)構(gòu)告知后才知道信息外泄的情況。
Gartner在2012年的報(bào)告中說(shuō)道:"越來(lái)越多的人同意APT攻擊是可以避開(kāi)我們傳統(tǒng)的基于特征的安全檢測(cè)機(jī)制,并且存在與系統(tǒng)內(nèi)的時(shí)間越來(lái)越長(zhǎng),無(wú)法被偵測(cè)出來(lái)。威脅真的發(fā)生了,你已經(jīng)被入侵,只是你不知道而已"。高級(jí)可持續(xù)威脅(APT)已經(jīng)成為當(dāng)今公認(rèn)最具威脅的網(wǎng)絡(luò)攻擊類(lèi)型。
為了對(duì)APT有一個(gè)更好的認(rèn)知,以更好的防護(hù),我們對(duì)基于虛擬執(zhí)行技術(shù)的APT檢測(cè)模型進(jìn)行了研究。
二. 模型原理
2.1 模型技術(shù)原理
基于虛擬執(zhí)行技術(shù)的APT檢測(cè)模型(簡(jiǎn)稱(chēng)AAS)通過(guò)新型的動(dòng)態(tài)檢測(cè)和靜態(tài)檢測(cè)技術(shù)可以精確檢測(cè)通過(guò)網(wǎng)頁(yè)、電子郵件或文件共享方式試圖進(jìn)入內(nèi)部網(wǎng)絡(luò)的惡意軟件,包括零日攻擊及具有抗檢測(cè)能力的高級(jí)惡意軟件。當(dāng)前的惡意軟件大多具備強(qiáng)大的抗逃避能力,而APT攻擊還可能使用零日攻擊的方式,傳統(tǒng)的防病毒引擎很難發(fā)現(xiàn)它們。AAS可以有效發(fā)現(xiàn)這些攻擊行為,幫助客戶(hù)有效的遏制由此帶來(lái)的風(fēng)險(xiǎn),如敏感信息泄露、業(yè)務(wù)中斷等。
2.2 檢測(cè)原理
基于虛擬執(zhí)行技術(shù)的APT檢測(cè)模型(AAS)除了集成傳統(tǒng)的反病毒引擎,還有集成了虛擬執(zhí)行引擎。從不同的檢測(cè)深度來(lái)看,AAS的虛擬執(zhí)行引擎分為輕量級(jí)虛擬執(zhí)行引擎和系統(tǒng)級(jí)虛擬執(zhí)行引擎。輕量級(jí)虛擬執(zhí)行引擎實(shí)現(xiàn)快速檢測(cè),系統(tǒng)級(jí)虛擬執(zhí)行引擎實(shí)現(xiàn)深度檢測(cè)。這種互補(bǔ)性提升了AAS引擎的檢測(cè)效果。
2.3 基于文件格式的深入檢測(cè)技術(shù)
基于文件格式的深入檢測(cè)技術(shù),是通過(guò)對(duì)文件進(jìn)行解析,提取其中的關(guān)鍵部分進(jìn)行惡意特征和惡意行為檢測(cè)。相對(duì)于直接將原始文件丟入引擎的做法,基于文件格式的深入檢測(cè)技術(shù)可以大大提高檢測(cè)效果。如從PDF中提取JS腳本、從SWF里面提取AS腳本,然后針對(duì)腳本進(jìn)行惡意檢測(cè),這使得檢測(cè)引擎的檢測(cè)效果大大提升。
2.4 輕量級(jí)虛擬執(zhí)行技術(shù)
輕量級(jí)虛擬執(zhí)行技術(shù)基于一個(gè)指令模擬器,可以將一段數(shù)據(jù)作為二進(jìn)制指令流進(jìn)行模擬執(zhí)行,同時(shí)也支持對(duì)JS腳本進(jìn)行模擬執(zhí)行。通過(guò)觀察執(zhí)行過(guò)程中的指令行為,實(shí)現(xiàn)對(duì)惡意軟件的檢測(cè)。這種技術(shù)的優(yōu)點(diǎn)是執(zhí)行速度較快,部分情況下可以應(yīng)用到流式引擎中。但缺點(diǎn)在只能再指令、寄存器和內(nèi)存級(jí)別進(jìn)行模擬執(zhí)行,是無(wú)法模擬完整操作系統(tǒng)的。因此在模擬過(guò)程中只能執(zhí)行部分指令片段,對(duì)于大量依賴(lài)于第三方庫(kù)調(diào)用的指令序列則無(wú)法模擬。當(dāng)然,輕量級(jí)虛擬執(zhí)行本身就不是追求完整模擬整個(gè)軟件行為,而是從指令層面對(duì)惡意行為進(jìn)行捕獲。
輕量級(jí)虛擬執(zhí)行引擎可以作為一個(gè)普通的用戶(hù)態(tài)進(jìn)程,跑在操作系統(tǒng)上。為了提高檢測(cè)性能,可以在用戶(hù)態(tài)跑多個(gè)輕量級(jí)虛擬執(zhí)行引擎。每個(gè)引擎內(nèi)部集成了一個(gè)指令模擬器,將引擎接收的數(shù)據(jù)放在模擬器里面進(jìn)行模擬執(zhí)行。通過(guò)模擬器對(duì)外的API接口,可以獲取或控制模擬器執(zhí)行狀態(tài)和執(zhí)行過(guò)程。比如讓模擬器單步執(zhí)行、獲取當(dāng)前模擬器執(zhí)行指令EIP、獲取當(dāng)前寄存器狀態(tài)等等。
在實(shí)際應(yīng)用過(guò)程中,模擬執(zhí)行的效率仍然遠(yuǎn)低于簽名引擎,因此我們需要更多的技術(shù)來(lái)干預(yù)執(zhí)行過(guò)程。而不能將所有的網(wǎng)絡(luò)數(shù)據(jù)統(tǒng)統(tǒng)放到模擬器中進(jìn)行執(zhí)行。一般做法是輕量級(jí)虛擬執(zhí)行引擎真正開(kāi)始模擬運(yùn)行之前,還是要通過(guò)一些反編譯技術(shù)來(lái)做前置過(guò)濾。
2.5 基于二進(jìn)制動(dòng)態(tài)翻譯的系統(tǒng)級(jí)虛擬執(zhí)行技術(shù)
相較于傳統(tǒng)沙箱,基于動(dòng)態(tài)二進(jìn)制翻譯的系統(tǒng)級(jí)虛擬執(zhí)行技術(shù)則具有更多優(yōu)勢(shì)。傳統(tǒng)沙箱一般是通過(guò)HOOK系統(tǒng)API的形式對(duì)惡意樣本的執(zhí)行行為進(jìn)行監(jiān)控和惡意判斷。因?yàn)檫@種監(jiān)控是API級(jí)別的,所以他只能監(jiān)控到惡意樣本調(diào)用了哪些系統(tǒng)API,而這些API調(diào)用中間的山下文指令則不能進(jìn)行檢測(cè)。而基于二進(jìn)制動(dòng)態(tài)翻譯的系統(tǒng)級(jí)虛擬執(zhí)行技術(shù),則是在指令層面對(duì)整個(gè)系統(tǒng)進(jìn)行完整檢測(cè)。因此不但能夠檢測(cè)惡意樣本的關(guān)鍵API調(diào)用行為,還能夠檢測(cè)更多的惡意指令序列。比如一般虛擬機(jī)逃逸技術(shù)里面用到的特殊指令,則傳統(tǒng)沙箱是無(wú)法進(jìn)行檢測(cè)的。
一個(gè)通常的系統(tǒng)級(jí)虛擬執(zhí)行引擎的架構(gòu),我們可以看到虛擬機(jī)進(jìn)程跑在主操作系統(tǒng)之上,這是一種完全的軟件模擬技術(shù)。這種架構(gòu)的缺點(diǎn)就是執(zhí)行速度慢,模擬出來(lái)的硬件性能和物理硬件的性能相比會(huì)低很多。最新的虛擬執(zhí)行技術(shù)則更多的使用硬件加速技術(shù),讓指令直接映射到物理硬件上。
新增的內(nèi)核模塊在主操作系統(tǒng)中打開(kāi)了一個(gè)通道,用來(lái)連接虛擬機(jī)和物理硬件,將虛擬機(jī)運(yùn)行的指令映射到物理硬件上,以達(dá)到給虛擬機(jī)進(jìn)程提速的目的。雖然這種架構(gòu)提升了虛擬機(jī)的性能,但主操作系統(tǒng)仍然處于核心地位,虛擬機(jī)中的客戶(hù)操作系統(tǒng)對(duì)硬件資源的占用仍然受限很大。
為了讓客戶(hù)操作系統(tǒng)擁有更大的權(quán)限,出現(xiàn)了一種新的架構(gòu)。新的架構(gòu)在硬件和操作系統(tǒng)直接,新增一個(gè)薄薄的管理層,然后所有操作系統(tǒng)均跑在管理層上面。
因此不再存在主操作系統(tǒng)的概念,所以操作系統(tǒng)均跑在虛擬機(jī)管理層(Hypervisor)上面。其中有一個(gè)特權(quán)虛擬機(jī)系統(tǒng),可以整個(gè)系統(tǒng)進(jìn)行管理。因?yàn)樘貦?quán)虛擬機(jī)系統(tǒng)僅僅是做管理,因此可以分配很少的資源。然后將其余資源分配給其他虛擬機(jī)進(jìn)程。
對(duì)于AAS來(lái)說(shuō),選擇合適的虛擬執(zhí)行技術(shù)比較重要,目前綜合考慮性能和業(yè)務(wù)要求,采用了帶硬件加速的虛擬執(zhí)行技術(shù)。第一種速度太慢,第三種虛擬執(zhí)行技術(shù),適用于完全虛擬化的產(chǎn)品,也就是把整個(gè)系統(tǒng)的所有東西全部放入虛擬機(jī)里面。
作者簡(jiǎn)介:
夏飛(1981-),江蘇南京人,江蘇省電力公司信息通信分公司,工程師,研究方向:信息安全。