亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Rootkit研究綜述

        2015-10-09 11:30:52劉慶中羅自強(qiáng)吳麗華
        關(guān)鍵詞:指令檢測(cè)系統(tǒng)

        張 瑜,劉慶中,李 濤,羅自強(qiáng),吳麗華

        (1. 海南師范大學(xué)計(jì)算機(jī)系 ???571158; 2. 美國(guó)山姆休斯敦州立大學(xué)計(jì)算機(jī)系 德克薩斯州 亨茨維爾 美國(guó) 77341; 3. 四川大學(xué)計(jì)算機(jī)學(xué)院 成都 610065)

        ·計(jì)算機(jī)工程與應(yīng)用·

        Rootkit研究綜述

        張 瑜1,劉慶中2,李 濤3,羅自強(qiáng)1,吳麗華1

        (1. 海南師范大學(xué)計(jì)算機(jī)系 ???571158; 2. 美國(guó)山姆休斯敦州立大學(xué)計(jì)算機(jī)系 德克薩斯州 亨茨維爾 美國(guó) 77341; 3. 四川大學(xué)計(jì)算機(jī)學(xué)院 成都 610065)

        Rootkit是一種持久且難以察覺(jué)地存在于網(wǎng)絡(luò)系統(tǒng)中的惡意代碼,通過(guò)修改操作系統(tǒng)內(nèi)核或更改指令執(zhí)行路徑,為攻擊者提供隱匿自身、維持訪問(wèn)和軟件竊聽(tīng)功能,已造成了嚴(yán)重的網(wǎng)絡(luò)安全威脅。該文首先介紹了Rootkit的基本定義與演化過(guò)程,其次剖析了Windows系統(tǒng)中與Rootkit密切相關(guān)的內(nèi)核組件和Rootkit的工作機(jī)制;然后討論了Rootkit防御機(jī)制與檢測(cè)方法;最后探討了Rootkit的發(fā)展趨勢(shì)和Rootkit防御的進(jìn)一步研究方向。

        隱遁攻擊; 取證分析; 惡意代碼; 網(wǎng)絡(luò)安全; rootkit

        近年來(lái),網(wǎng)絡(luò)攻擊者(黑客)利用日益增強(qiáng)的網(wǎng)絡(luò)依賴性和不斷涌現(xiàn)的軟件漏洞,通過(guò)隱遁技術(shù)遠(yuǎn)程滲透、潛伏并控制目標(biāo)網(wǎng)絡(luò)系統(tǒng),悄無(wú)聲息地竊取敏感信息、實(shí)施網(wǎng)絡(luò)犯罪并伺機(jī)發(fā)起網(wǎng)絡(luò)攻擊,獲取政治、經(jīng)濟(jì)、軍事利益,已造成了嚴(yán)重的網(wǎng)絡(luò)安全威脅[1]。據(jù)《2013 Norton Report》報(bào)道:全球50%的互聯(lián)網(wǎng)用戶遭受過(guò)網(wǎng)絡(luò)攻擊,中國(guó)有77%網(wǎng)民遭受過(guò)網(wǎng)絡(luò)攻擊,為全球第二大網(wǎng)絡(luò)攻擊受害國(guó);全球因網(wǎng)絡(luò)攻擊造成了1 130億美元的經(jīng)濟(jì)損失,中國(guó)因網(wǎng)絡(luò)攻擊造成370億美元的損失[2]。另?yè)?jù)IBM X-Force安全研究小組針對(duì)2013年典型攻擊情況的分析調(diào)查顯示,近70%的網(wǎng)絡(luò)攻擊為未知原因的攻擊[3]。因此,有理由相信,隱遁攻擊技術(shù)已被黑客廣泛采用。

        Rootkit就是在此背景下出現(xiàn)并迅速發(fā)展起來(lái)的一種隱遁網(wǎng)絡(luò)攻擊新技術(shù)[4]。Rootkit是一種通過(guò)修改操作系統(tǒng)內(nèi)核或更改指令執(zhí)行路徑,來(lái)隱藏系統(tǒng)對(duì)象(包括文件、進(jìn)程、驅(qū)動(dòng)、注冊(cè)表項(xiàng)、開(kāi)放端口、網(wǎng)絡(luò)連接等)以逃避或者規(guī)避標(biāo)準(zhǔn)系統(tǒng)機(jī)制的程序[5-6]。攻擊者借助Rootkit隱遁技術(shù)對(duì)已被滲透的目標(biāo)網(wǎng)絡(luò)系統(tǒng)發(fā)動(dòng)網(wǎng)絡(luò)攻擊,安全威脅極大[7]。據(jù)《McAfee Labs 2014 Threats Predictions》報(bào)告預(yù)測(cè):網(wǎng)絡(luò)攻擊者將會(huì)使用更多的Rootkit隱遁攻擊技術(shù),以逃避檢測(cè)與取證,獲取更大利益[8]。

        鑒于Windows系統(tǒng)的普及性,Windows Rootkit已成為網(wǎng)絡(luò)攻防雙方的重點(diǎn)研究對(duì)象,本文將主要討論Windows系統(tǒng)里的Rootkit技術(shù)。

        Windows系統(tǒng)的Rootkit技術(shù)研究始于1999年在著名黑客雜志《Phrack》上發(fā)布的《A Real NT Rootkit》[9]。該文創(chuàng)造性地提出了多項(xiàng)Windows系統(tǒng)內(nèi)核隱遁技術(shù),獲得了信息安全社區(qū)的極大關(guān)注。之后,幾乎每期《Phrack》都有與Rootkit相關(guān)的技術(shù)論文。此外,著名的黑客大會(huì)(Black Hat、Def Con等)從2005年也開(kāi)始了針對(duì)Rootkit技術(shù)的討論議題。

        工業(yè)界和政府部門(mén)同樣關(guān)注Rootkit技術(shù)研究與應(yīng)用。日本索尼公司在2005年使用Rootkit技術(shù)保護(hù)其BMG CD版權(quán),以防止光碟被非法復(fù)制[10]。美國(guó)和以色列聯(lián)合研制的采用了Rootkit隱遁技術(shù)的“震網(wǎng)病毒Stuxnet”[11],于2010年重創(chuàng)伊朗核電設(shè)施,嚴(yán)重滯后其核計(jì)劃。2013年震驚世界的美國(guó)“棱鏡計(jì)劃”[12],隱秘滲透目標(biāo)系統(tǒng)并植入采用Rootkit隱遁技術(shù)的惡意軟件,實(shí)施暗中監(jiān)控、竊取政情軍情,并發(fā)起定向隱遁網(wǎng)絡(luò)攻擊。與此同時(shí),Rootkit檢測(cè)防御工具也相繼出現(xiàn),如Russinovich編寫(xiě)的Rootkit Revealer,EP_X0FF編寫(xiě)的Rootkit Unhooker,Rutkowska編寫(xiě)的System Virginity Verifier,Linxer開(kāi)發(fā)的PCHunter,Dmitry開(kāi)發(fā)的Tuluka Kernel Inspector,GMER團(tuán)隊(duì)開(kāi)發(fā)的GMER,F(xiàn)-Secure公司的Blacklight,McAfee公司的Rootkit Remover,Kaspersky公司的TDSSKiller及Sophos公司的Anti-Rootkit等。

        國(guó)內(nèi)對(duì)Rootkit及其防御技術(shù)的關(guān)注和研究相對(duì)較早。中國(guó)科技大學(xué)、上海交通大學(xué)、電子科技大學(xué)、解放軍信息工程大學(xué)、北京大學(xué)等高校已相繼開(kāi)展Rootkit及其防御技術(shù)分析研究。相關(guān)Rootkit檢測(cè)工具主要有:IceSword、DarkSpy及Linxer開(kāi)發(fā)的PCHunter等[13-20]。

        作為一種隱遁網(wǎng)絡(luò)攻防的有力武器,Rootkit及其防御技術(shù)已成為信息安全領(lǐng)域研究者所共同關(guān)注的熱點(diǎn)。關(guān)于Rootkit研究綜述已取得部分研究成果。如文獻(xiàn)[21]從Rootkit產(chǎn)生機(jī)制的角度綜述了當(dāng)前的Rootkit技術(shù)發(fā)展、分類及防御,主要側(cè)重于Linux系統(tǒng);文獻(xiàn)[22]從Rootkit防御機(jī)制方面綜述了現(xiàn)今Rootkit檢測(cè)技術(shù)的研究進(jìn)展;文獻(xiàn)[23]從取證的視角綜述了目前Rootkit技術(shù)研究進(jìn)展;文獻(xiàn)[24]綜述了Android系統(tǒng)Rootkit的實(shí)現(xiàn)原理及檢測(cè)方法。

        但目前國(guó)內(nèi)尚未有詳細(xì)而全面介紹Windows系統(tǒng)Rootkit機(jī)理與研究成果的綜述論文。為深入理解Windows Rootkit機(jī)理和發(fā)展趨勢(shì),總體把握Windows Rootkit及其防御研究進(jìn)展,并促進(jìn)國(guó)內(nèi)在該方向上的研究,綜述Windows系統(tǒng)Rootkit研究進(jìn)展工作非常必要。

        1 Windows系統(tǒng)Rootkit起源與演化

        1.1 Windows Rootkit定義

        Rootkit一詞源于Unix系統(tǒng)。在Unix系統(tǒng)中,Root是指擁有所有特權(quán)的管理員,而Kit是管理工具,因此,Rootkit是指惡意獲取管理員特權(quán)的工具。利用這些工具,可在管理員毫無(wú)察覺(jué)的情況下獲取Unix系統(tǒng)訪問(wèn)權(quán)限。

        對(duì)于Windows Rootkit,盡管在名稱上沿用了Unix系統(tǒng)的Rootkit,但在技術(shù)上則繼承了DOS系統(tǒng)相關(guān)隱形病毒技術(shù):攔截系統(tǒng)調(diào)用以隱匿惡意代碼。最早出現(xiàn)的Windows Rootkit——NT Rootkit,由文獻(xiàn)[9]提出并編碼實(shí)現(xiàn),且對(duì)后來(lái)的Rookit研究產(chǎn)生了極大的影響。

        文獻(xiàn)[6]給出的定義為,Windows Rootkit是能夠持久或可靠地、無(wú)法檢測(cè)地存在于計(jì)算機(jī)上的一組程序和代碼。俄羅斯著名的Kaspersky實(shí)驗(yàn)室反病毒專家將Windows Rootkit的定義為一種通過(guò)使用隱形技術(shù)來(lái)隱藏系統(tǒng)對(duì)象(包括文件、進(jìn)程、驅(qū)動(dòng)、服務(wù)、注冊(cè)表項(xiàng)、開(kāi)放端口、網(wǎng)絡(luò)連接等)以逃避或者規(guī)避標(biāo)準(zhǔn)系統(tǒng)機(jī)制的程序[25]。盡管上述定義不盡相同,但都刻畫(huà)出了Windows Rootkit的本質(zhì)特征[21-22]:隱匿性、持久性、越權(quán)性。因此,從本質(zhì)上分析,Rootkit是破壞Windows系統(tǒng)內(nèi)核數(shù)據(jù)結(jié)構(gòu)及更改指令執(zhí)行流程[26-27]的代碼。鑒于此,本文給出如下定義:Windows Rootkit是一種越權(quán)執(zhí)行的程序或代碼,常以驅(qū)動(dòng)模塊加載至系統(tǒng)內(nèi)核層或硬件層,擁有與系統(tǒng)內(nèi)核相同或優(yōu)先的權(quán)限,進(jìn)而修改系統(tǒng)內(nèi)核數(shù)據(jù)結(jié)構(gòu)或改變指令執(zhí)行流程,以隱匿相關(guān)對(duì)象、規(guī)避系統(tǒng)檢測(cè)取證,并維持對(duì)被入侵系統(tǒng)的超級(jí)用戶訪問(wèn)權(quán)限。

        1.2 Windows Rootkit演化

        本質(zhì)上,Rootkit通過(guò)修改代碼、數(shù)據(jù)、程序邏輯,破壞Windows系統(tǒng)內(nèi)核數(shù)據(jù)結(jié)構(gòu)及更改指令執(zhí)行流程,從而達(dá)到隱匿自身及相關(guān)行為痕跡的目的。由于IA-32硬件體系結(jié)構(gòu)缺陷(無(wú)法區(qū)分?jǐn)?shù)據(jù)與代碼)和軟件程序邏輯錯(cuò)誤的存在,導(dǎo)致Rootkit將持續(xù)存在并繼續(xù)發(fā)展?;仡橶indows Rootkit技術(shù)演化歷程,其遵循從簡(jiǎn)單到復(fù)雜、由高層向低層的演化趨勢(shì)。從Rootkit技術(shù)復(fù)雜度的視角,可將其大致劃分為5代[23,28-29]:1) 更改指令執(zhí)行流程的Rootkit,2) 直接修改內(nèi)核對(duì)象的Rootkit,3) 內(nèi)存視圖偽裝Rootkit,4) 虛擬Rootkit,5) 硬件Rootkit。Rootkit的演化發(fā)展時(shí)間軸(Rootkit技術(shù)典型實(shí)例)如圖1所示。

        圖1 Windows Rootkit起源與發(fā)展時(shí)間軸

        對(duì)于更改指令執(zhí)行流程Rootkit,主要采用Hooking技術(shù)。Windows系統(tǒng)為正常運(yùn)行,需跟蹤、維護(hù)諸如對(duì)象、指針、句柄等多個(gè)數(shù)據(jù)結(jié)構(gòu)。這些數(shù)據(jù)結(jié)構(gòu)通常類似于具有行和列的表格,是Windows程序運(yùn)行所不可或缺的。通過(guò)鉤掛此類內(nèi)核數(shù)據(jù)表格,能改變程序指令執(zhí)行流程:首先執(zhí)行Rootkit,然后執(zhí)行系統(tǒng)原來(lái)的服務(wù)例程,從而達(dá)到隱遁目的。此類Rootkit鉤掛的內(nèi)核數(shù)據(jù)表格主要有:Windows系統(tǒng)的系統(tǒng)服務(wù)調(diào)度表(system service dispatch table,SSDT)、中斷調(diào)度表(interrupt dispatch table,IDT)、全局描述符表(global descriptor table,GDT)、局部描述符表(local descriptor table,LDT)、特別模塊寄存器(model-specific registers,MSR)、I/O請(qǐng)求包(I/O request packets,IRP)。由于Hooking技術(shù)的普及,使此類Rootkit(如NT Rootkit、He4hook、Hacker Defender等)較易被檢測(cè)與取證分析。攻防博弈的持續(xù),促使Rootkit技術(shù)不斷向前演化,進(jìn)入了直接修改內(nèi)核對(duì)象技術(shù)發(fā)展階段。

        對(duì)于直接修改內(nèi)核對(duì)象的Rootkit,與傳統(tǒng)Hooking技術(shù)更改指令執(zhí)行流程不同,它直接修改內(nèi)存中本次執(zhí)行流內(nèi)核和執(zhí)行體所使用的內(nèi)核對(duì)象,從而達(dá)到進(jìn)程隱藏、驅(qū)動(dòng)程序隱藏及進(jìn)程特權(quán)提升等目的。2004年,文獻(xiàn)[30]首次展示了該項(xiàng)新技術(shù)直接進(jìn)行內(nèi)核對(duì)象操縱(direct kernel object manipulation,DKOM),并編寫(xiě)了FU Rootkit。該Rootkit通過(guò)修改內(nèi)核EPROCESS結(jié)構(gòu)中的ActiveProcessLinks雙鏈表來(lái)隱藏進(jìn)程。之后,在FU Rootki基礎(chǔ)上的FUTo Rootkit[31],不是修改進(jìn)程列表結(jié)構(gòu),而是修改PspCidTable結(jié)構(gòu)來(lái)隱藏進(jìn)程。2011年出現(xiàn)的TDSS Rootkit[32-33]則直接修改驅(qū)動(dòng)程序(包括防御殺毒軟件)來(lái)隱匿自身。然而,自Rutkowska編寫(xiě)的SVV (system virginity verifier)[34-35]檢測(cè)工具后,此類Rootkit也易被檢測(cè)出來(lái)。所以,Rootkit與Rootkit防御技術(shù)的魔道之爭(zhēng)還將持續(xù),從直接修改內(nèi)核對(duì)象進(jìn)入內(nèi)存視圖偽裝技術(shù)階段。

        對(duì)于內(nèi)存視圖偽裝的Rootkit,主要通過(guò)創(chuàng)建系統(tǒng)內(nèi)存的偽造視圖以隱匿自身。此類Rootkit主要利用底層CPU的結(jié)構(gòu)特性,即CPU將最近使用的數(shù)據(jù)和指令分別存儲(chǔ)在兩個(gè)并行的緩沖器:數(shù)據(jù)快速重編址緩沖器(data translation lookaside buffers,DTLB)和指令快速重編址緩沖器(instruction translation lookaside buffers,ITLB)。通過(guò)強(qiáng)制刷新ITLB但不刷新DTLB引發(fā)TLB不同步錯(cuò)誤,使讀寫(xiě)請(qǐng)求和執(zhí)行請(qǐng)求得到不同的數(shù)據(jù),從而達(dá)到隱匿目的[26]。2005年,文獻(xiàn)[36]首次演示了該項(xiàng)隱匿技術(shù),即內(nèi)存?zhèn)窝b技術(shù)(memory cloaking),并編寫(xiě)了ShadowWalker Rootkit。然而,在Microsoft公司為其64位Windows系統(tǒng)引入Patchguard[37]技術(shù)后,基本宣告了內(nèi)核層Rootkit技術(shù)的終結(jié)。從此,Rootkit技術(shù)開(kāi)始進(jìn)入虛擬領(lǐng)域以期占據(jù)攻擊優(yōu)勢(shì)。

        對(duì)于虛擬Rootkit,與直接修改操作系統(tǒng)的Rootkit不同,它專門(mén)為虛擬環(huán)境而設(shè)計(jì),通過(guò)在虛擬環(huán)境之下加載惡意系統(tǒng)管理程序,完全劫持原生操作系統(tǒng),并可有選擇地駐留或離開(kāi)虛擬環(huán)境,從而達(dá)到自如隱匿目的。就其類型而言,可分為3種[26,38]:1) 虛擬感知惡意軟件(virtualization-aware malware,VAM),2) 基于虛擬機(jī)的Rootkit(virtual machine based Rootkit,VMBR),3) 系統(tǒng)管理虛擬Rootkit (hypervisor virtual machine Rootkit,HVMR)。對(duì)于虛擬感知惡意軟件,它只是增加了檢測(cè)虛擬環(huán)境功能。對(duì)于基于虛擬機(jī)的Rootkit,能在虛擬機(jī)內(nèi)部封裝原生操作系統(tǒng),如文獻(xiàn)[39]于2006年發(fā)布了通過(guò)修改啟動(dòng)順序?qū)⒃僮飨到y(tǒng)加載到虛擬環(huán)境中的SubVirt。對(duì)于系統(tǒng)管理虛擬Rootkit,主要利用CPU硬件虛擬技術(shù)支持,通過(guò)定制的系統(tǒng)管理程序替代底層原來(lái)系統(tǒng)管理程序,進(jìn)而在運(yùn)行中封裝當(dāng)前運(yùn)行的操作系統(tǒng)。如文獻(xiàn)[40]利用AMD Pacifica技術(shù)在AMD Athon 64上實(shí)現(xiàn)的Blue Pill;文獻(xiàn)[41]利用Intel VT-X技術(shù)在Intel Core Duo上實(shí)現(xiàn)的Vitriol。然而,在防御者利用邏輯差異、資源差異、時(shí)間差異等方法[42-44]檢測(cè)到虛擬Rootkit后,攻防博弈開(kāi)始向底層硬件方向發(fā)展。

        對(duì)于硬件Rootkit,又稱為Bootkit,源于2005年由文獻(xiàn)[45]提出的eEye BootRootKit。它通過(guò)感染主引導(dǎo)記錄(master boot record,MBR)的方式,實(shí)現(xiàn)繞過(guò)內(nèi)核檢查和啟動(dòng)隱身。從本質(zhì)上分析,只要早于Windows內(nèi)核加載,并實(shí)現(xiàn)內(nèi)核劫持技術(shù)的Rootkit,都屬硬件Rootkit技術(shù)范疇。如文獻(xiàn)[46-48]發(fā)布的SMM Rootkit,它能將自身隱藏在系統(tǒng)管理模式(system management mode,SMM)空間中。由于SMM權(quán)限高于虛擬機(jī)監(jiān)控(virtual machine monitor,VMM),設(shè)計(jì)上不受任何操作系統(tǒng)控制、關(guān)閉或禁用;此外,由于SMM優(yōu)先于任何系統(tǒng)調(diào)用,任何操作系統(tǒng)都無(wú)法控制或讀取SMM,使得SMM Rootkit有超強(qiáng)的隱匿性。之后,陸續(xù)出現(xiàn)的BIOS Rootkit[49-50]、VBootkit[51-53]等都屬于硬件Rootkit范疇。

        從上述發(fā)展軌跡中可以看出,Windows系統(tǒng)Rootkit及其防御技術(shù)在網(wǎng)絡(luò)安全攻防博弈中幾乎同步發(fā)展、相互促進(jìn)。因此,隨著應(yīng)用軟件技術(shù)、操作系統(tǒng)技術(shù)和硬件技術(shù)的發(fā)展,Rootkit技術(shù)的攻防博弈還將持續(xù)下去。

        2 Windows Rootkit工作機(jī)制

        2.1 Windows系統(tǒng)內(nèi)核結(jié)構(gòu)及關(guān)鍵組件

        Rootkit本質(zhì)上是破壞Windows系統(tǒng)內(nèi)核。為理解Rootkit的工作機(jī)制,首先需了解Windows系統(tǒng)內(nèi)核結(jié)構(gòu)和關(guān)鍵組件及其功能。

        Windows系統(tǒng)采用層次化設(shè)計(jì)[54],自底向上可分為3層:1) 硬件抽象層(hardware abstraction layer);2) 內(nèi)核層(OS kernel layer);3) 應(yīng)用層(application layer)。硬件抽象層的設(shè)計(jì)目的是將硬件差異封裝起來(lái),從而為操作系統(tǒng)上層提供一個(gè)抽象一致的硬件資源模型。內(nèi)核層實(shí)現(xiàn)操作系統(tǒng)的基本機(jī)制和核心功能,并向上層提供一組系統(tǒng)服務(wù)調(diào)用API (application programming interface)函數(shù)。應(yīng)用層通過(guò)調(diào)用系統(tǒng)內(nèi)核層提供的API函數(shù)實(shí)現(xiàn)自身功能。Windows系統(tǒng)層次結(jié)構(gòu)如圖2所示。

        Windows系統(tǒng)的層次化設(shè)計(jì),使其容易擴(kuò)展、升級(jí)相關(guān)功能,同時(shí),也給攻擊者以可乘之機(jī)。Rootkit正是利用Windows系統(tǒng)層次模型中的上下層接口設(shè)計(jì),通過(guò)修改下層模塊返回值或修改下層模塊數(shù)據(jù)結(jié)構(gòu)來(lái)欺騙上層模塊,從而達(dá)到隱匿自身及其相關(guān)行為蹤跡目的。在Windows系統(tǒng)中,常被Rootkit利用的內(nèi)核組件主要包括:進(jìn)程(線程)管理器、內(nèi)存管理器、I/O管理器、文件管理器、網(wǎng)絡(luò)管理器、安全監(jiān)視器和配置管理器[55]。

        針對(duì)Windows系統(tǒng)內(nèi)核的不同組件,Rootkit將采取不同技術(shù)加以利用。具體而言,進(jìn)程(線程)管理器負(fù)責(zé)進(jìn)程和線程的創(chuàng)建和終止,并使用相關(guān)數(shù)據(jù)結(jié)構(gòu)EPROCESS和ETHREAD記錄所有運(yùn)行的進(jìn)程與線程。Rootkit通過(guò)修改這些數(shù)據(jù)結(jié)構(gòu)就可隱匿相關(guān)進(jìn)程。

        內(nèi)存管理器實(shí)現(xiàn)虛擬內(nèi)存管理:既負(fù)責(zé)系統(tǒng)地址空間管理,也負(fù)責(zé)每個(gè)進(jìn)程地址空間管理,并支持進(jìn)程間內(nèi)存共享。Rootkit通過(guò)修改全局描述符表(global descriptor table,GDT)和局部描述符表(local descriptor table,LDT)中的相關(guān)值,就能獲取特權(quán)去修改相關(guān)內(nèi)存頁(yè)面的讀寫(xiě)信息。

        I/O及文件系統(tǒng)管理器,負(fù)責(zé)將IRP分發(fā)給底層處理文件系統(tǒng)的設(shè)備驅(qū)動(dòng)程序。Rootkit通過(guò)在高層鉤掛I/O及文件系統(tǒng)管理器所提供的API函數(shù)或在低層攔截IRP請(qǐng)求的方式,實(shí)現(xiàn)文件和目錄隱藏。

        網(wǎng)絡(luò)管理器負(fù)責(zé)系統(tǒng)的網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)、網(wǎng)絡(luò)連接管理功能,自底向上主要包括2個(gè)接口:1) 網(wǎng)絡(luò)驅(qū)動(dòng)程序接口規(guī)范(network drivers interface specification,NDIS);2) 傳輸驅(qū)動(dòng)程序接口(transfer drivers interface,TDI)。NDIS對(duì)低級(jí)協(xié)議進(jìn)行抽象,TDI在NDIS基礎(chǔ)上進(jìn)一步抽象其細(xì)節(jié),并向上提供相關(guān)網(wǎng)絡(luò)API函數(shù)。Rootkit可對(duì)上述任意一個(gè)接口API函數(shù)進(jìn)行代碼修改或鉤掛,以實(shí)現(xiàn)相關(guān)網(wǎng)絡(luò)流量隱藏。

        安全監(jiān)視器負(fù)責(zé)實(shí)施安全策略確保系統(tǒng)安全有序運(yùn)行。Rootkit通過(guò)對(duì)內(nèi)核這部分代碼的修改,就可刪除所有安全機(jī)制,使其暢行無(wú)阻。配置管理器負(fù)責(zé)系統(tǒng)注冊(cè)表的實(shí)現(xiàn)與管理。Rootkit通過(guò)修改或鉤掛相關(guān)API函數(shù)即可隱藏相關(guān)進(jìn)程的注冊(cè)表鍵值。

        2.2 Rootkit技術(shù)分類

        Rootkit設(shè)計(jì)目的是成為無(wú)法檢測(cè)與取證的軟件,而這主要通過(guò)修改Windows系統(tǒng)內(nèi)核數(shù)據(jù)結(jié)構(gòu)或更改指令執(zhí)行流程,從而掩蓋其存在的隱身功能來(lái)實(shí)現(xiàn),因此,Rootkit的工作機(jī)制主要圍繞隱身功能而展開(kāi)。以應(yīng)用程序調(diào)用Windows API函數(shù)FindNextFile為例,其調(diào)用執(zhí)行路徑上可被Rootkit利用之處如圖3所示。

        盡管Rootkit數(shù)量繁多,但從其所采用技術(shù)的視角,可將其劃分為5類[56-58]:1) Hooking技術(shù),2) 過(guò)濾驅(qū)動(dòng)程序(filter drivers)技術(shù),3) 直接內(nèi)核對(duì)象操縱(direct kernel object manipulation,DKOM)技術(shù),4) 虛擬(virtualization)技術(shù),5) 硬件修改(hardware manipulation)技術(shù)。

        2.2.1 Hooking技術(shù)

        Windows系統(tǒng)采用事件驅(qū)動(dòng)機(jī)制,通過(guò)消息傳遞來(lái)實(shí)現(xiàn)其功能。Hooking是Windows系統(tǒng)中非常重要的系統(tǒng)接口,可監(jiān)控系統(tǒng)或進(jìn)程中的各種事件消息,截獲并處理發(fā)送給其他應(yīng)用程序的消息。Rootkit為實(shí)現(xiàn)其隱身功能,需更改指令執(zhí)行路徑,而Windows系統(tǒng)的分層模型和Hooking機(jī)制給Rootkit提供了絕佳機(jī)會(huì)。

        只要Rootkit能訪問(wèn)目標(biāo)進(jìn)程地址空間,它就可鉤掛并修改其中的任何函數(shù),以完成隱藏進(jìn)程、隱藏文件、隱藏網(wǎng)絡(luò)端口、防止其他程序訪問(wèn)特定進(jìn)程句柄等功能。Windows系統(tǒng)中能被鉤掛的地方很多,本文將從用戶模式到內(nèi)核模式的順序介紹Rootkit所使用的Hooking技術(shù)。Hooking技術(shù)主要包括:IAT Hooking、Inline Hooking、IDT Hooking、SSDT Hooking、GDT/LDT Hooking、IRP Hooking等。

        1) IAT Hooking

        在Windows系統(tǒng)中,當(dāng)可執(zhí)行文件運(yùn)行時(shí),會(huì)將該文件的可移植執(zhí)行體(portable executable,PE)結(jié)構(gòu)加載入內(nèi)存;同時(shí),Windows裝入程序會(huì)將該可執(zhí)行文件映像的IMAGE_IMPORT_DESCRIPTOR結(jié)構(gòu)中所包含的來(lái)自DLL的函數(shù),制作成一個(gè)函數(shù)指針的表格,稱為輸入地址表(import address table,IAT)。當(dāng)Rootkit進(jìn)入應(yīng)用程序的地址空間,通過(guò)分析內(nèi)存中目標(biāo)應(yīng)用程序的PE格式,可將IAT表中的目標(biāo)函數(shù)地址替換為Rootkit函數(shù)地址;之后,當(dāng)目標(biāo)函數(shù)被調(diào)用時(shí),就會(huì)執(zhí)行Rootkit函數(shù)而非原始函數(shù)。圖4描述了IAT Hooking執(zhí)行后流程的變化。

        IAT Hooking技術(shù)盡管簡(jiǎn)單而強(qiáng)大,但存在2個(gè)缺點(diǎn):① 此類Hooking技術(shù)易被檢測(cè)發(fā)現(xiàn),② 如應(yīng)用程序通過(guò)LoadLibrary和GetProcAddress尋找函數(shù)地址,則IAT Hooking將失效。

        2) Inline Hooking

        如果說(shuō)IAT Hooking是通過(guò)在IAT表中更改函數(shù)地址實(shí)現(xiàn)的話,那么,Inline Hooking則是通過(guò)硬編碼來(lái)改變目標(biāo)函數(shù)頭部代碼的方式,使其跳轉(zhuǎn)到Rootkit設(shè)定好的函數(shù)執(zhí)行。為使Rootkit順利執(zhí)行,Inline Hooking通常需完成3個(gè)任務(wù):① 重新調(diào)整當(dāng)前堆棧;② 執(zhí)行被覆蓋的指令;③ 過(guò)濾信息實(shí)現(xiàn)隱身。具體而言,Rootkit一般會(huì)向目標(biāo)函數(shù)寫(xiě)入跳轉(zhuǎn)指令JMP,在程序進(jìn)行跳轉(zhuǎn)時(shí),相關(guān)API函數(shù)還沒(méi)執(zhí)行完;為確保相關(guān)API函數(shù)在順利執(zhí)行后返回至Rootkit函數(shù)中,需重新調(diào)整當(dāng)前堆棧;在Rootkit執(zhí)行之后務(wù)必使原來(lái)被覆蓋的指令順利執(zhí)行,并根據(jù)需要進(jìn)行信息過(guò)濾以實(shí)現(xiàn)隱身功能。Inline Hooking工作機(jī)制如圖5所示。

        根據(jù)Inline Hooking所在目標(biāo)函數(shù)位置的不同,可將其分為3類:① 函數(shù)頭部Hooking;② 函數(shù)中間Hooking;③ 函數(shù)尾部Hooking。一般而言,在目標(biāo)函數(shù)中Inline Hooking的位置越深,代碼重返時(shí)所需考慮的問(wèn)題就越多,如稍有不慎,就會(huì)造成藍(lán)屏死機(jī)(blue screen of death,BSoD)。因此,從實(shí)現(xiàn)與檢測(cè)的角度,第1、第3類Inline Hooking較為簡(jiǎn)單,而第2類Inline Hooking技術(shù)則較為復(fù)雜。

        圖3 Rootkit藏身之處

        圖4 IAT Hooking工作機(jī)制

        圖5 Inline Hooking工作機(jī)制

        3) IDT Hooking

        中斷描述符表(interrupt descriptor table,IDT)是一個(gè)有256個(gè)入口地址的線性表,每個(gè)IDT的入口地址為8字節(jié)的描述符,每個(gè)中斷向量關(guān)聯(lián)了一個(gè)中斷處理例程。操作系統(tǒng)使用IDTR寄存器記錄IDT位置和大小,可用SIDT指令讀出IDTR寄存器中的信息,LIDT指令將新信息重寫(xiě)入IDTR寄存器。

        IDT Hooking通常替換IDT表中的0x2E索引項(xiàng),即KiSystemService系統(tǒng)服務(wù)處理函數(shù)。但Windows系統(tǒng)目前多使用快速調(diào)用方法:NTDLL將請(qǐng)求系統(tǒng)服務(wù)調(diào)用號(hào)載入EAX寄存器,將當(dāng)前堆棧指針ESP載入EDX寄存器,再發(fā)出SYSENTER指令。SYSENTER指令將控制權(quán)傳遞給MSR(Model-Specific Register,特別模塊寄存器)中的IA32_SYSENTER_EIP寄存器。Rootkit通過(guò)覆蓋這個(gè)寄存器,就可改變每個(gè)系統(tǒng)服務(wù)調(diào)用的執(zhí)行流程,并根據(jù)需要攔截和修改信息,從而達(dá)到隱身目的。

        4) SSDT Hooking

        系統(tǒng)服務(wù)描述符表(system service descriptor table,SSDT)是Windows系統(tǒng)用于用戶模式請(qǐng)求系統(tǒng)服務(wù)調(diào)用的查找表格。當(dāng)發(fā)出INT 0x2E或SYSENTER指令時(shí),就會(huì)激活系統(tǒng)服務(wù)調(diào)用程序,然后通過(guò)查找SSDT表獲取相關(guān)函數(shù)地址并執(zhí)行。Windows系統(tǒng)內(nèi)核中的系統(tǒng)服務(wù)描述符表有2個(gè):① KeServiceDescriptorTable,由NTOSKRNL.EXE導(dǎo)出;② KeServieDescriptorTableShadow。兩者區(qū)別是:KeServiceDescriptorTable僅有NTOSKRNL一項(xiàng),KeServieDescriptorTableShadow包含了NTOSKRNL和WIN32K。一般的Native API服務(wù)地址由KeServiceDescriptorTable負(fù)責(zé)分派,而GDI.DLL/USER.DLL內(nèi)核API服務(wù)地址則由KeServieDescriptorTableShadow負(fù)責(zé)分派。

        SSDT Hooking通過(guò)修改KeServiceDescriptorTable地址,使控制權(quán)重定向到Rootkit代碼,再將被修改后的假消息傳回至應(yīng)用程序,從而有效隱匿自身及相關(guān)行為痕跡。SSDT Hooking一般通過(guò)2個(gè)步驟完成:①定位KeServiceDescriptorTable;②替換SSDT表中需修改的索引項(xiàng),使其指向Rootkit代碼。然而,防御者會(huì)采用持續(xù)監(jiān)控?cái)?shù)據(jù)結(jié)構(gòu)修改或完全限制訪問(wèn)該結(jié)構(gòu)的方式去對(duì)抗此類Rootkit。如Windows在X64系統(tǒng)上已使用Patchguard技術(shù),在系統(tǒng)啟動(dòng)和運(yùn)行時(shí)都要檢查NTOSKRNL.EXE內(nèi)的系統(tǒng)表格,以避免相關(guān)表格被Rootkit修改。

        5) GDT/LDT Hooking

        全局描述符表(global descriptor table,GDT)用于存放描述內(nèi)存區(qū)域的地址和訪問(wèn)特權(quán)的段描述符,如數(shù)據(jù)和代碼段描述符、任務(wù)狀態(tài)段TSS描述符等。在保護(hù)模式的段式內(nèi)存管理機(jī)制中,段邏輯地址到線性地址的映射是通過(guò)GDT表來(lái)完成。GDT表中存放著大量段描述符表結(jié)構(gòu),其結(jié)構(gòu)體中包含一個(gè)過(guò)程調(diào)用函數(shù)基地址,該地址加上段偏移地址即可得出線性物理地址,如圖6所示。GDT表在每次訪問(wèn)內(nèi)存時(shí)由CPU使用,以確保執(zhí)行代碼有權(quán)訪問(wèn)在段寄存器中指出的內(nèi)存段。寄存器GDTR存放著GDT的入口地址,通過(guò)指令LGDT可將GDT的入口地址裝入此寄存器,通過(guò)指令SGDT可獲取該寄存器內(nèi)容。局部描述符表(local descriptor table,LDT)本質(zhì)上也一樣,只是它是按進(jìn)程而GDT是按處理器來(lái)劃分的。寄存器LDTR保存有LDT的入口地址,通過(guò)指令LLDT可將LDT的入口地址裝入此寄存器,通過(guò)指令SLDT可獲取該寄存器內(nèi)容。

        圖6 GDT/LGT地址轉(zhuǎn)譯

        GDT/LDT Hooking通過(guò)在GDT/LDT表的保留字段中插入一個(gè)調(diào)用門(mén)描述符來(lái)更改內(nèi)存段的執(zhí)行特權(quán),再借助諸如DKOM技術(shù)來(lái)實(shí)施進(jìn)程隱藏。因此,GDT/LDT Hooking的實(shí)現(xiàn)步驟是:① 創(chuàng)建一個(gè)包含Rootkit代碼的調(diào)用門(mén),② 讀取GDTR寄存器以定位GDT基地址,③ 將創(chuàng)建的調(diào)用門(mén)插入GDT中的空描述符子項(xiàng)。

        6) IRP Hooking

        IRP(I/O request packets)是Windows系統(tǒng)內(nèi)核的一個(gè)數(shù)據(jù)結(jié)構(gòu)[55]。上層應(yīng)用程序與底層驅(qū)動(dòng)程序通信時(shí),應(yīng)用程序會(huì)發(fā)出I/O請(qǐng)求;操作系統(tǒng)將I/O請(qǐng)求轉(zhuǎn)換成相應(yīng)的IRP,再根據(jù)IRP數(shù)據(jù)結(jié)構(gòu)中的MajorFunction數(shù)組,通過(guò)IofCallDriver函數(shù)將IRP分派給設(shè)備堆棧中的不同派遣例程進(jìn)行處理。

        IRP Hooking是在IRP傳遞過(guò)程中進(jìn)行攔截并處理有關(guān)IRP以隱藏相關(guān)信息的一種Rootkit技術(shù)。既然IRP在分派過(guò)程中先后經(jīng)過(guò)IofCallDriver和設(shè)備堆棧中的不同派遣例程,因此,可通過(guò)3種方式予以攔截:① 攔截IofCallDriver函數(shù);② 在設(shè)備堆棧中,將一個(gè)過(guò)濾驅(qū)動(dòng)程序放置在處理欲攔截IRP的那個(gè)驅(qū)動(dòng)程序之上;③直接修改處理IRP派遣例程的MajorFunction數(shù)組。當(dāng)IRP被Rootkit函數(shù)攔截并處理后,再將其傳遞給原調(diào)度例程完成相關(guān)操作。IRP傳遞及IRP Hooking處理流程如圖7所示。

        圖7 IRP Hooking工作機(jī)制

        2.2.2 Filter Drivers技術(shù)

        Windows系統(tǒng)的層次模型也體現(xiàn)在驅(qū)動(dòng)程序設(shè)計(jì)中,多數(shù)Windows驅(qū)動(dòng)程序采用層次結(jié)構(gòu)來(lái)傳遞信息。當(dāng)I/O管理器接到一個(gè)IRP時(shí),會(huì)將其傳遞給一個(gè)驅(qū)動(dòng)程序/設(shè)備棧。棧頂?shù)尿?qū)動(dòng)程序首先處理該IRP,然后依次將其向下傳遞,直至該IRP被完成。棧底的驅(qū)動(dòng)程序通常是與硬件關(guān)聯(lián)的,負(fù)責(zé)直接驅(qū)動(dòng)硬件設(shè)備完成IRP任務(wù)。

        Filter Drivers技術(shù)是利用Windows分層驅(qū)動(dòng)程序模型,將Rootkit驅(qū)動(dòng)程序插至驅(qū)動(dòng)程序/設(shè)備棧中,攔截、修改并過(guò)濾掉合法驅(qū)動(dòng)程序需處理的信息,從而達(dá)到隱藏文件、嗅探擊鍵、隱匿網(wǎng)絡(luò)連接等目的。Filter Drivers工作機(jī)制如圖8所示。

        2.2.3 DKOM技術(shù)

        前面討論的Hooking技術(shù)和Filter Drivers技術(shù),都涉及利用相關(guān)機(jī)制去更改或重定向指令執(zhí)行流程。與此不同,DKOM(direct kernel object manipulation)技術(shù)通過(guò)直接修改Windows系統(tǒng)中代表進(jìn)程、驅(qū)動(dòng)程序和特權(quán)的內(nèi)核對(duì)象,以實(shí)現(xiàn)進(jìn)程隱藏、驅(qū)動(dòng)程序隱藏和進(jìn)程特權(quán)提升。譬如,對(duì)于Windows系統(tǒng)中的每個(gè)進(jìn)程,都有一個(gè)對(duì)應(yīng)的內(nèi)核EPROCESS對(duì)象,該對(duì)象中的ActiveProcessLinks為一個(gè)雙鏈表節(jié)點(diǎn),所有活動(dòng)進(jìn)程都連接在一起構(gòu)成一個(gè)雙鏈表,Rootkit只須將需要隱藏的進(jìn)程節(jié)點(diǎn)從該雙鏈表中斷開(kāi),就可達(dá)到隱藏進(jìn)程目的,如圖9所示。代表驅(qū)動(dòng)程序的DRIVER_OBJECT對(duì)象,也有指向其他驅(qū)動(dòng)程序的指針DriverObject,Rootkit只要遍歷該列表,刪除要隱藏的驅(qū)動(dòng)程序項(xiàng)即可將其隱藏。此外,通過(guò)修改進(jìn)程令牌數(shù)據(jù)結(jié)構(gòu),可向進(jìn)程令牌中添加相關(guān)權(quán)限值以提升該進(jìn)程的權(quán)限。2.2.4 Virtualization技術(shù)

        由于傳統(tǒng)的Rootkit與檢測(cè)工具同處操作系統(tǒng)內(nèi)核層,因而容易被檢測(cè)出來(lái)。與此不同,虛擬Rootkit借助于軟件和硬件的虛擬化支持將自身插入至操作系統(tǒng)之下,使傳統(tǒng)的位于操作系統(tǒng)這一級(jí)別的檢測(cè)工具失效,從而達(dá)到隱身目的[59]。從虛擬Rootkit所處計(jì)算機(jī)系統(tǒng)層次,可將其劃分為2種:① VMM Rootkit;② SMM Rootkit。

        1) VMM Rootkit

        虛擬機(jī)管理器(virtual machine manager,VMM),是一種運(yùn)行在物理硬件和操作系統(tǒng)之間的中間軟件層,管理從操作系統(tǒng)到共享資源間的映射,可允許多個(gè)操作系統(tǒng)和應(yīng)用程序共享硬件。VMM Rootkit一般在硬件虛擬化技術(shù)支持下(如AMD-V或Intel VT-x),通過(guò)在客戶操作系統(tǒng)中安裝內(nèi)核驅(qū)動(dòng)程序,創(chuàng)建新的系統(tǒng)管理程序和新的虛擬機(jī)來(lái)放置原生操作系統(tǒng),使Rootkit運(yùn)行于原生操作系統(tǒng)之下并控制整個(gè)系統(tǒng)以進(jìn)行隱身,如圖10所示。一旦VMM Rootkit成功加載,它就能透明地截獲和修改被放置在虛擬機(jī)中的原生操作系統(tǒng)的狀態(tài)和事件,如截獲擊鍵、網(wǎng)絡(luò)數(shù)據(jù)包、內(nèi)存數(shù)據(jù)、磁盤(pán)讀寫(xiě)等。此類虛擬Rootkit可細(xì)分為2類:① 創(chuàng)建新的系統(tǒng)管理程序并將其自身插至原生操作系統(tǒng)之下的虛擬Rootkit,如SubVirt;② 修改系統(tǒng)管理程序并將原生操作系統(tǒng)封裝在虛擬機(jī)中的虛擬Rootkit,如BluePill和Vitriol。

        圖9 DKOM工作機(jī)制

        圖10 VMM Rootkit所處系統(tǒng)層次

        2) SMM Rootkit

        Intel系列CPU支持4種運(yùn)行模式:① 實(shí)模式(real mode);② 保護(hù)模式(protection mode);③ 虛擬8086模式(virtual 8086 mode);④ 系統(tǒng)管理模式(system management mode,SMM)。其中,實(shí)模式是16位地址模式,保持處理器向前兼容,僅在啟動(dòng)時(shí)才會(huì)用到;保護(hù)模式是32位地址,提供了現(xiàn)代操作系統(tǒng)使用的保護(hù)模式;虛擬8086模式用于運(yùn)行為8086等體系結(jié)構(gòu)編寫(xiě)的程序;系統(tǒng)管理模式是專門(mén)用于電源管理和溫度調(diào)節(jié)。Intel構(gòu)架下的系統(tǒng)管理模式和其他運(yùn)行模式的轉(zhuǎn)換規(guī)則為:任何運(yùn)行模式在發(fā)出SMI(system management interrupt)中斷時(shí)都可切換至系統(tǒng)管理模式,系統(tǒng)管理模式可通過(guò)發(fā)出RSM指令返回到前一個(gè)運(yùn)行模式。

        重要的是,SMM是一種隔離的、特權(quán)的運(yùn)行環(huán)境,其最大特點(diǎn)是:有專用的內(nèi)存區(qū)域和執(zhí)行環(huán)境,外部程序不可見(jiàn),且SMM不受優(yōu)先級(jí)和內(nèi)存保護(hù)等限制。因此,由于任何操作系統(tǒng)都無(wú)法控制或讀取SMM,使得SMM RootKit有超強(qiáng)的隱匿性。SMM Rootkit可控制外圍硬件設(shè)備,與諸如網(wǎng)卡、鍵盤(pán)、鼠標(biāo)、硬盤(pán)、顯卡等外圍設(shè)備交互,從而避免被原生操作系統(tǒng)察覺(jué)。文獻(xiàn)[47]首先進(jìn)行了SMM Rootkit研究;文獻(xiàn)[48]實(shí)現(xiàn)了與鍵盤(pán)和網(wǎng)卡透明交互的概念驗(yàn)證型的SMM Rootkit;文獻(xiàn)[46]實(shí)現(xiàn)了一個(gè)通過(guò)劫持SMI的鍵盤(pán)記錄型SMM Rootkit。

        2.2.5 Hardware Manipulation技術(shù)

        由計(jì)算機(jī)系統(tǒng)啟動(dòng)順序可知,加電后最先啟動(dòng)的是BIOS芯片代碼,在其完成對(duì)芯片組、內(nèi)存條及外圍設(shè)備自檢后,才將控制權(quán)交給操作系統(tǒng)以完成后續(xù)系統(tǒng)啟動(dòng)。因此,Rootkit如能寄存于BIOS芯片中,則將先于操作系統(tǒng)控制整個(gè)系統(tǒng),且能在系統(tǒng)重啟、操作系統(tǒng)重裝、磁盤(pán)格式化等情況下繼續(xù)運(yùn)行,更重要的是其他取證和檢測(cè)工具對(duì)其無(wú)能為力。

        其實(shí),遵循此思路的硬件利用技術(shù)由來(lái)已久,早在1998年CIH病毒曾成功感染BIOS芯片,使用垃圾數(shù)據(jù)刷新BIOS,致使機(jī)器無(wú)法啟動(dòng)。真正意義上的硬件Rootkit是NGS Consulting公司所編寫(xiě)[50]:利用ACPI(advanced configuration and power interface,高級(jí)配置和電源接口)功能,禁止傳統(tǒng)操作系統(tǒng)進(jìn)程進(jìn)入該內(nèi)存空間,從而達(dá)到隱身目的。此外,還可使用PCI擴(kuò)展ROM作為裝入機(jī)制來(lái)編寫(xiě)相關(guān)硬件Rootkit,如eEye BootRoot[45]是一種修改系統(tǒng)啟動(dòng)扇區(qū)的Rootkit。

        3 Rootkit檢測(cè)

        從宏觀的方法論角度,可將惡意代碼檢測(cè)方法分為3類[34]:誤用檢測(cè)、異常檢測(cè)和完整性監(jiān)測(cè)。誤用檢測(cè),是按照已分析并提取的代碼模式,在內(nèi)存或文件中去搜尋比對(duì)可疑數(shù)據(jù),以此判定是否為惡意代碼。該檢測(cè)法的優(yōu)點(diǎn)是能高效檢測(cè)已知惡意代碼;其不足是不能識(shí)別未知或變種惡意代碼。異常檢測(cè),是通過(guò)定義一組系統(tǒng)處于正常情況時(shí)的數(shù)據(jù)(如CPU利用率、內(nèi)存利用率、文件校驗(yàn)和等);然后分析是否偏離正常行為以判定是否出現(xiàn)異常。該檢測(cè)法能有效檢測(cè)未知惡意代碼,但其不足在于不能精確定義正常數(shù)據(jù)。完整性監(jiān)測(cè)是通過(guò)監(jiān)測(cè)可信系統(tǒng)中系統(tǒng)文件和內(nèi)核內(nèi)存的變化,來(lái)判定系統(tǒng)是否受到惡意代碼攻擊。該檢測(cè)法能有效識(shí)別未知和變種惡意代碼,但實(shí)現(xiàn)困難。

        對(duì)于Rootkit檢測(cè),可將這些宏觀檢測(cè)理論具體化為軟件檢測(cè)法和硬件檢測(cè)法2大類檢測(cè)方法。

        3.1 軟件檢測(cè)法

        Rootkit的軟件檢測(cè)法較常見(jiàn),主要包括:特征碼檢測(cè)法、完整性校驗(yàn)法、Hooking檢測(cè)法、視圖差異檢測(cè)法等。

        1) 特征碼檢測(cè)法

        特征碼分析與檢測(cè)法通過(guò)查尋文件或內(nèi)存中的Rootkit特征碼來(lái)加以判斷。該方法首先分析已知Rootkit樣本并提取其特征碼以建立特征碼庫(kù);然后掃描文件或內(nèi)存中的二進(jìn)制指令代碼并判斷是否匹配特征碼庫(kù)。該方法盡管能精準(zhǔn)檢測(cè)部分已知Rootkit,但由于Rootkit通常會(huì)采取新的Hook技術(shù)或DKOM技術(shù),在文件系統(tǒng)或內(nèi)存中隱匿其靜態(tài)文件或動(dòng)態(tài)進(jìn)程,導(dǎo)致特征碼檢測(cè)法根本掃描不到該類Rootkit,很容易被繞過(guò)。因此,對(duì)于已知Rootkit變種和未知Rootkit,因尚未理解其運(yùn)行機(jī)制提取不到特征碼而使該方法無(wú)從檢測(cè)。

        特征碼檢測(cè)法是一種通用的檢測(cè)技術(shù),目前的商業(yè)化Rootkit安全產(chǎn)品多采用特征碼方法進(jìn)行檢測(cè)。但隨著變形、加密、加殼等相關(guān)技術(shù)的出現(xiàn),需結(jié)合其他方法,才能有效檢測(cè)。

        2) 完整性檢驗(yàn)法

        完整性分析與檢測(cè)法通過(guò)檢查系統(tǒng)文件或內(nèi)存中的系統(tǒng)內(nèi)核組件的完整性來(lái)加以判斷。該方法首先建立未感染系統(tǒng)的重要系統(tǒng)文件的Hash 值基準(zhǔn)庫(kù);然后通過(guò)計(jì)算運(yùn)行中系統(tǒng)文件或內(nèi)存中系統(tǒng)內(nèi)核組件的Hash值;最后比對(duì)兩者來(lái)判斷系統(tǒng)是否受Rootkit感染。應(yīng)用此方法的檢測(cè)工具有:Windows系統(tǒng)下的文件完整性檢查工具Sentinel,Rutkowska所編寫(xiě)的SVV[33]、PatchFinder[60-61]等。該方法檢測(cè)算法簡(jiǎn)單,能檢測(cè)部分未知Rootkit,但因其Hash 值基準(zhǔn)庫(kù)易被Rootkit偽造或繞過(guò),且必須考慮所有可能被滲透攻擊的代碼區(qū)域,致使該方法執(zhí)行困難。

        3) Hooking檢測(cè)法

        Hooking檢測(cè)法通過(guò)監(jiān)測(cè)系統(tǒng)地址空間中的內(nèi)核表格是否被鉤掛來(lái)加以判斷。該方法監(jiān)測(cè)邏輯如下:首先,遍歷系統(tǒng)中易被鉤掛的重要內(nèi)核表格(諸如SSDT、IAT、IDT、驅(qū)動(dòng)程序IRP表等),確保函數(shù)指針指向可信的系統(tǒng)模塊的地址范圍內(nèi);其次,對(duì)于每個(gè)表格項(xiàng)目,反匯編對(duì)應(yīng)的系統(tǒng)服務(wù)函數(shù)的頭幾條指令,確保執(zhí)行轉(zhuǎn)移落在內(nèi)核模塊范圍內(nèi)。使用此方法的檢測(cè)工具較多,如VICE[62]、RAID[63]、iDefense公司的Hook Explorer、Volatile Systems公司開(kāi)發(fā)的Volatility、Mandiant公司的Intellignet Response及HBGary公司的Responder,均采用此類方法檢測(cè)Rootkit。但該類方法易受深度Hooking技術(shù)和DKOM技術(shù)繞過(guò)和欺騙。

        4) 視圖差異檢測(cè)法

        差異檢測(cè)法又稱為交叉視圖檢測(cè)法,是通過(guò)比較不同途徑(低層視圖與高層視圖)所枚舉到的系統(tǒng)信息,如進(jìn)程列表、文件目錄列表、網(wǎng)絡(luò)連接列表、SSDT、IDT等,根據(jù)所獲結(jié)果的差異來(lái)檢測(cè)Rootkit。文獻(xiàn)[64]首先提出該檢測(cè)方法并開(kāi)發(fā)了相關(guān)工具Patchfinder。之后,利用該檢測(cè)原理,功能更強(qiáng)的工具相繼出現(xiàn),應(yīng)用范圍逐漸擴(kuò)大。如微軟Russinovich編寫(xiě)的Rootkit Revealer、IceSword,Linxer 編寫(xiě)的PCHunter及F-Secure公司研發(fā)的Blacklight等。文獻(xiàn)[65]提出了檢測(cè)虛擬Rootkit的視圖差異法,該方法的前提是假設(shè),系統(tǒng)信息在一個(gè)列表中出現(xiàn),而在另一個(gè)列表中隱藏。因此,在可靠的枚舉系統(tǒng)信息情形下,可檢測(cè)已知或未知的Rootkit。但如果Rootkit修改了第二個(gè)列表,使兩個(gè)列表看起來(lái)完全相同,則這種檢測(cè)假設(shè)就不成立,導(dǎo)致不能成功檢測(cè)。

        3.2 硬件檢測(cè)法

        隨著更低層的虛擬Rootkit和硬件Rootkit出現(xiàn),它們先于Rootkit檢測(cè)軟件甚至操作系統(tǒng)啟動(dòng),導(dǎo)致基于軟件的Rootkit檢測(cè)方法無(wú)能為力。這樣,基于硬件的Rootkit檢測(cè)法或許是一種頗有前景的防御方法。

        目前,基于硬件的Rootkit檢測(cè)工具相對(duì)較少。美國(guó)國(guó)防高級(jí)研究計(jì)劃局和國(guó)家安全部聯(lián)合研制了一個(gè)基于硬件的Rootkit解決方案CoPilot[66],能在硬件級(jí)別上監(jiān)控主機(jī)的內(nèi)存和文件系統(tǒng),通過(guò)實(shí)時(shí)掃描系統(tǒng)尋找異常行為。Tribble[67]及FRED[68]利用直接內(nèi)存訪問(wèn)(direct memory access,DMA)指令去獲取物理內(nèi)存拷貝,并搜尋異常行為。在拷貝物理內(nèi)存時(shí),目標(biāo)系統(tǒng)的CPU將暫停,以避免攻擊者執(zhí)行Rootkit從而非法篡改內(nèi)存數(shù)據(jù)。

        盡管基于硬件的Rootkit檢測(cè)法是目前最好的防御方案,但仍沒(méi)有相關(guān)商業(yè)產(chǎn)品,且特別編制的Rootkit仍可避開(kāi)其檢測(cè)取證。此外,對(duì)于硬件卡的更新升級(jí)也相對(duì)復(fù)雜。從這個(gè)意義上看,Rootkti檢測(cè)防御研究依舊任重道遠(yuǎn)。

        3.3 Rootkit檢測(cè)工具評(píng)估

        自從Rootkit及內(nèi)含Rootkit技術(shù)的惡意軟件不斷涌現(xiàn),研究人員及安全廠商也隨之提出了很多檢測(cè)方法及工具應(yīng)對(duì)。為檢驗(yàn)、評(píng)價(jià)相關(guān)檢測(cè)方法與工具的有效性,開(kāi)展Rootkit檢測(cè)工具的評(píng)估研究具有重要的理論價(jià)值與實(shí)踐意義[69]。目前,對(duì)于Rootkit檢測(cè)工具的評(píng)估研究處于起步階段,研究者開(kāi)始對(duì)此展開(kāi)相關(guān)研究。如文獻(xiàn)[70-71]對(duì)部分免費(fèi)的和商用的Rootkit檢測(cè)工具進(jìn)行了評(píng)估研究;文獻(xiàn)[72]對(duì)部分開(kāi)源Rootkit檢測(cè)工具進(jìn)行了評(píng)估研究。

        根據(jù)Rootkit與操作系統(tǒng)交互所采用的相關(guān)技術(shù),本文選擇了10個(gè)有代表性的Rootkit樣本,即AFX Rootkit2005、Hacker Defender、NTIllusion、Vanquish、Gromozon、FuTo、Ghost、Shadow Walker、Unreal及Phide_ex;選擇了10個(gè)有代表性的Rootkit檢測(cè)工具進(jìn)行相關(guān)檢測(cè)性能評(píng)估。通過(guò)以下14個(gè)參數(shù)[72]評(píng)估Rootkit檢測(cè)工具的性能:進(jìn)程/線程、加載模塊、動(dòng)態(tài)鏈接庫(kù)、服務(wù)、文件、主引導(dǎo)記錄MBR、交換數(shù)據(jù)流、注冊(cè)表、SSDT鉤子、IDT鉤子、IRP鉤子、IAT鉤子、GDT/LDT鉤子及SYSENTER鉤子。測(cè)評(píng)結(jié)果如表1所示。

        表1 Rootkit檢測(cè)工具評(píng)估

        (續(xù)表)

        從測(cè)評(píng)結(jié)果可知,商業(yè)Rootkit檢測(cè)工具(如GMER、McAfee Rootkit Detective、Helios等)表現(xiàn)普遍較好,部分免費(fèi)或共享工具(如IceSword、XueTr等)也非常不錯(cuò),個(gè)別免費(fèi)工具檢測(cè)結(jié)果有待進(jìn)一步提高。

        4 Rootkit發(fā)展趨勢(shì)及防御

        Rootkit技術(shù)自誕生起,一直遵循著與應(yīng)用軟件技術(shù)、操作系統(tǒng)技術(shù)和底層硬件技術(shù)同步發(fā)展的模式。應(yīng)用軟件技術(shù)、操作系統(tǒng)技術(shù)和底層硬件技術(shù)的升級(jí)與更新,都將促使Rootkit技術(shù)的演化與發(fā)展。同樣地,從攻防博弈的角度,隨著Rootkit技術(shù)日趨復(fù)雜和更臻完美,Rootkit防御技術(shù)也呈現(xiàn)“魔高一尺,道高一丈”的發(fā)展態(tài)勢(shì)。依據(jù)上述分析和掌握的最新資料,將展望Rootkit技術(shù)未來(lái)發(fā)展趨勢(shì)、探討Rootkit防御技術(shù)進(jìn)一步研究方向。

        4.1 Rootkit發(fā)展趨勢(shì)

        Rootkit技術(shù)基本遵循與應(yīng)用軟件技術(shù)、操作系統(tǒng)技術(shù)和底層硬件技術(shù)同步發(fā)展與演化模式,已呈現(xiàn)日趨復(fù)雜、相互融合,并積極擴(kuò)展至其他新平臺(tái)、新領(lǐng)域的發(fā)展趨勢(shì)[27]。

        1) 從計(jì)算機(jī)系統(tǒng)縱向?qū)哟蔚慕嵌?,Rootkit技術(shù)正向縱深方向發(fā)展:由高層向低層,由用戶層向內(nèi)核層,由軟件向硬件,由磁盤(pán)空間向內(nèi)存空間。從這個(gè)意義來(lái)說(shuō),Rootkit正在充分利用計(jì)算機(jī)系統(tǒng)的層次模型,竭盡所能地發(fā)展新的隱遁技術(shù)[73]。

        2) 從與其他惡意軟件交互的橫向視角,Rootkit技術(shù)已向相互滲透、相互融合方向發(fā)展,導(dǎo)致其日趨復(fù)雜和更臻完美。如2012年波及全球的Flame攻擊便是一個(gè)典型實(shí)例:既有病毒的自我復(fù)制,又具蠕蟲(chóng)的漏洞利用,還有Rootkit的隱遁潛行功能。此類發(fā)展趨勢(shì),將會(huì)給Rootkit防御帶來(lái)異常嚴(yán)峻的挑戰(zhàn)[27]。

        3) 從系統(tǒng)平臺(tái)的角度,Rootkit已由Windows平臺(tái)向智能終端系統(tǒng)平臺(tái)發(fā)展。隨著Android、iOS等智能終端操作系統(tǒng)的快速發(fā)展與普及,Rootkit正向該領(lǐng)域快速擴(kuò)散與演化發(fā)展,開(kāi)始影響移動(dòng)互聯(lián)網(wǎng)安全[74]。如Android平臺(tái)上的FakeDebuggerd Rootkit,能隱蔽地竊取用戶手機(jī)號(hào)、硬件編號(hào)、地理位置等信息;iOS平臺(tái)上的Carrier IQ Rootkit,能將用戶的一切動(dòng)作(鍵盤(pán)輸入、短信,甚至通話)隱蔽地傳送至Carrier IQ公司。

        4) 從應(yīng)用領(lǐng)域的角度,Rootkit已開(kāi)始由信息系統(tǒng)領(lǐng)域轉(zhuǎn)移至與信息技術(shù)相關(guān)的新領(lǐng)域,且破壞威力驚人。譬如,在工業(yè)領(lǐng)域,伊朗核電站所遭受的Stuxnet攻擊,就是Rootkit技術(shù)的新型應(yīng)用;在金融領(lǐng)域,2010年著名黑客大會(huì)(Black Hat)上,文獻(xiàn)[75]利用Rootkit技術(shù)攻擊ATM機(jī)。近年來(lái)盛行的隱遁定向APT攻擊[76],就是Rootkit隱遁技術(shù)的典型應(yīng)用。

        5) 從反取證的角度,Rootkit已初步具備在諸如數(shù)據(jù)銷毀、數(shù)據(jù)隱藏、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)偽造和數(shù)據(jù)源擦除等[27]方面的反取證能力,這將給實(shí)時(shí)取證帶來(lái)極大挑戰(zhàn)。

        4.2 Rootkit防御方向

        從攻防博弈的視角,Rootkit技術(shù)與Rootkit防御技術(shù)的魔道之爭(zhēng)將會(huì)相互促進(jìn)并一直持續(xù)下去。綜合上述討論與分析,本文認(rèn)為Rootkit防御技術(shù)領(lǐng)域的進(jìn)一步研究方向包括:

        1) 硬件級(jí)防御技術(shù)[65,77]。以系統(tǒng)啟動(dòng)順序和與操作系統(tǒng)交互的視角,Rootkit會(huì)竭盡所能做到最先啟動(dòng)以獲取系統(tǒng)控制權(quán)限。因此,從防御的角度,硬件級(jí)Rootkit檢測(cè)防御方案通過(guò)先于操作系統(tǒng)加載,先期獲取控制權(quán)限,占據(jù)先發(fā)制人的技術(shù)優(yōu)勢(shì),無(wú)疑最具發(fā)展應(yīng)用前景。

        2) 操作系統(tǒng)級(jí)防御技術(shù)[78-79]。從操作系統(tǒng)內(nèi)核的視角,造成目前Rootkit泛濫的主要原因在于,當(dāng)前操作系統(tǒng)缺乏有效區(qū)分與隔離自身模塊和外來(lái)驅(qū)動(dòng)程序的相關(guān)機(jī)制。一旦Rootkit加載入系統(tǒng)內(nèi)核,就擁有與系統(tǒng)內(nèi)核相同的特權(quán),勢(shì)必造成檢測(cè)與清除困境。因此,操作系統(tǒng)如能有效區(qū)分與隔離自身模塊與外來(lái)驅(qū)動(dòng)程序,無(wú)疑能有效攔截Rootkit。如Microsoft公司的64位Windows系統(tǒng)引入的PatchGuard技術(shù)已具備相關(guān)攔截功能。

        3) 內(nèi)存檢測(cè)取證技術(shù)[80]。從Rootkit進(jìn)程運(yùn)行的視角,每個(gè)Rootkit進(jìn)程都需加載至內(nèi)存中運(yùn)行,因此,內(nèi)存無(wú)疑是檢測(cè)防御Rootkit最佳位置。如何有效獲取內(nèi)存數(shù)據(jù)、分析內(nèi)存數(shù)據(jù)、并檢測(cè)內(nèi)存中運(yùn)行的Rootkit,將是未來(lái)Rootkit防御技術(shù)的進(jìn)一步研究方向。

        4) 免疫云智能防御技術(shù)[81-82]。從系統(tǒng)和全局的視角,將計(jì)算機(jī)系統(tǒng)視為人體系統(tǒng),Rootkit防御系統(tǒng)等同于人體免疫系統(tǒng)。借鑒人體免疫系統(tǒng)機(jī)理和利用云計(jì)算的高效性,研究Rootkit免疫云智能防御系統(tǒng)的體系結(jié)構(gòu)及互動(dòng)機(jī)制,能有效防御Rootkit攻擊,將是未來(lái)Rootkit智能防御技術(shù)進(jìn)一步的研究方向。

        5 結(jié) 束 語(yǔ)

        Rootkit技術(shù)的隱遁潛行功能以及與其他惡意軟件相互滲透、相互融合的演化發(fā)展趨勢(shì),已對(duì)網(wǎng)絡(luò)信息系統(tǒng)造成了極大安全威脅。Rootkit技術(shù)及其防御技術(shù),已是信息安全社區(qū)討論與關(guān)注的熱點(diǎn)研究領(lǐng)域。本文從技術(shù)的角度探討了Windows系統(tǒng)的Rootkit技術(shù)原理、技術(shù)演化過(guò)程、Rootkit檢測(cè)防御方法,并在此基礎(chǔ)上展望了Rootkit未來(lái)發(fā)展趨勢(shì)和Rootkit防御技術(shù)進(jìn)一步研究方向。從本質(zhì)上分析,Rootkit技術(shù)沿用的是攻防博弈的對(duì)抗性思維,充分利用Windows系統(tǒng)的層次模型,通過(guò)修改系統(tǒng)內(nèi)核結(jié)構(gòu)或更改指令執(zhí)行流程,從而實(shí)現(xiàn)其隱遁功能。因此,Rootkit及其防御技術(shù)將隨著應(yīng)用軟件技術(shù)、操作系統(tǒng)技術(shù)和底層硬件技術(shù)的演化而不斷發(fā)展與更新。

        [1] STONE R. A call to cyber arms[J]. Science, 2013, 339(6123): 1026-1027.

        [2] Symantec Corporation. 2013 Norton report[EB/OL]. [2014-12-10]. http://www.yle.fi/tvuutiset/uutiset/upics/liitetiedostot/ norton_raportti.pdf.

        [3] IBM Corporation. IBM X-Force 2013 annual trends and risk report[EB/OL]. [2014-12-10]. http://www-03.ibm.com/ security/ xforce/.

        [4] RIES C. Inside Windows Rootkits[EB/OL]. [2014-12-10]. http://read.pudn.com/downloads64/sourcecode/windows/fre edic/226557/Inside%20Windows%20Rootkits.pdf.

        [5] Symantec Corporation. Windows rootkit overview[EB/OL]. [2014-12-10]. http://www.symantec.com/avcenter/reference/ windows.rootkit.overview.pdf.

        [6] HOGLUND G, BUTLER J. Rootkits: Subverting the Windows kernel[M]. USA: Addison-Wesley Professional, 2007.

        [7] Mandiant Corporation. APT1: Exposing one of China’s cyber espionage units[EB/OL]. [2014-12-10]. http:// intelreport. mandiant.com/Mandiant_APT1_Report.pdf.

        [8] McAfee Labs. 2014 threats predictions[EB/OL]. [2014-12-10]. http://www.mcafee.com/uk/resources/reports/rpthreats-predictions-2014.pdf, 2014.

        [9] HOGLUND G. A real NT rootkit. PHRACK[EB/OL]. [2014-12-10]. http://phrack.org/issues.html?issue=55&id= 5#article.

        [10] RUSSINOVICH M. Sony, Rootkits and digital rights management gone too far[EB/OL]. [2014-12-10]. http:// blogs.technet.com/b/markrussinovich/archive/2005/10/31/s ony-rootkits-and-digital-rights-management-gone-too-far. aspx.

        [11] KUSHNER D. The real story of stuxnet[EB/OL]. [2014-12-10]. http://spectrum.ieee.org/telecom/security/ the-real-story-of-stu xnet.

        [12] BRAUN S, FLAHERTY A, GILLUM J, et al. Secret to PRISM program: Even bigger data seizures[EB/OL]. [2013-06-15]. http://bigstory.ap.org/article/secret-prismsuccess-even-bigger-data-seizure.

        [13] 潘劍鋒, 奚宏生, 譚小彬. 一種利用程序行為分析的Rootkit 異常檢測(cè)方法[J].中國(guó)科學(xué)技術(shù)大學(xué)學(xué)報(bào), 2010, 40(8): 863-869. PAN Jian-feng, XI Hong-sheng, TAN Xiao-bin. A method for rootkit anomaly detection using behaviors analysis[J]. Journal of Univeristy of Science and Technology of China, 2010, 40(8): 863-869.

        [14] 薛英飛. 基于Windows(2000/2003)內(nèi)核對(duì)象的Rootkit檢測(cè)[D]. 上海: 上海交通大學(xué), 2008. XUE Ying-fei. Rootkit detection based on Windows(2000/ 2003) kernel object[D]. Shanghai: Shanghai Jiao Tong University, 2008.

        [15] 徐昊. Win32平臺(tái)下內(nèi)核Rootkit技術(shù)的研究與應(yīng)用[D].上海: 上海交通大學(xué), 2007. XU Hao. Research and application of kernel Rootkit technology under Win32 environment[D]. Shanghai: Shanghai Jiao Tong University, 2007.

        [16] 賴云一. Windows Rootkit分析與檢測(cè)[D]. 成都: 電子科技大學(xué), 2009. LAI Yun-yi. Windows rootkit analysis and detection[D]. Chengdu: Univeristy of Electronic Science and Technology of China, 2009.

        [17] 何志. 針對(duì)Windows RootKit的安全監(jiān)測(cè)系統(tǒng)的研究與實(shí)現(xiàn)[D]. 成都: 電子科技大學(xué), 2008. HE Zhi. Research and implementation of Windows Rootkit secure detection system[D]. Chengdu: Univeristy of Electronic Science and Technology of China, 2008.

        [18] 雙世勇. Windows Rootkit檢測(cè)方法研究[D]. 鄭州: 中國(guó)人民解放軍信息工程大學(xué), 2005. SHUANG Shi-yong. Research on Windows Rootkit detection methods[D]. Zhengzhou: The PLA Information Engineering University, 2005.

        [19] 薛寒. 網(wǎng)絡(luò)主動(dòng)防御系統(tǒng)中的rootkit檢測(cè)與個(gè)人防火墻[D]. 鄭州: 中國(guó)人民解放軍信息工程大學(xué), 2007. XUE Han. Rootkit detection and personal firewall in the network active defense system[D]. Zhengzhou: The PLA Information Engineering University, 2007.

        [20] 白光冬, 郭耀, 陳向群. 一種基于交叉視圖的Windows Rootkit檢測(cè)方法[J]. 計(jì)算機(jī)科學(xué), 2009, 36(8): 133-137. BAI Guang-dong, GUO Yao, CHEN Xiang-qun. Windows rootkit detection method based on cross-view[J]. Computer Science, 2009, 36(8): 133-137.

        [21] BRAVO P. GARCIA D F. Rootkits survey: a concealment story[EB/OL]. [2014-12-10]. http://www.pablobravo. com/files/survey.pdf.

        [22] JOY J, JOHN A, JOY J. Rootkit detection mechanism: a survey[J]. Communications in Computer and Information Science, 2011, 203: 366-374.

        [23] SHIELDS T. Survey of Rootkit technologies and their impact on digital forensics[EB/OL]. [2014-12-10]. http://www.donkeyonawaffle.org/misc/txs-rootkits_and_di gital_forensics.pdf.

        [24] 李文新, 王姜博, 慕德俊, 等. Android 系統(tǒng)Rootkit 技術(shù)綜述[J]. 微處理機(jī), 2011, 32( 2): 68-72. LI Wen-xin, WANG Jiang-bo, MU De-jun, et al. Survey on Android Rootkit[J]. Microprocessors, 2011, 32( 2): 68-72. [25] SHEVCHENKO A. Rootkit evolution[EB/OL]. [2014-12-10]. http://www.securelist.com/en/analysis?pubid= 204792016.

        [26] DAVIS M A, BODMER S M, LEMASTER A. Hacking explosed: Malware & Rootkits secrets & solutions[M]. USA: The McGraw-Hill Companies, 2010.

        [27] BLUNDEN B. The Rootkit arsenal: Evasion in the dark corners of the system[M]. Massachusetts: Jones & Bartlett Publishers, 2013.

        [28] BRAVO P, GARCIA D F. Proactive detection of kernelmode Rootkits[C]//2011 Sixth International Conference on Availability, Reliability and Security. Vienna: IEEE Computer Society, 2011: 515-520.

        [29] SPARKS S, EMBLETON S, ZOU C. Windows Rootkits a game of “hide and seek”[EB/OL]. [2014-12-10]. http:// www.cs.ucf.edu/~czou/research/Rootkit-BookChapter.pdf.

        [30] BUTLER J, HOGLUND G. VICE: Catch the hookers[EB/ OL]. [2014-12-10]. http://www.blackhat.com/ presentations/bh-usa-04/bh-us-04-butler/bh-us-04-butler. pdf.

        [31] SILBERMAN P, CHAOS. FUTo Rootkit[EB/OL]. [2014-12-10]. http://uninformed.org/?v=3&a=7&t=sumry.

        [32] KAPOOR A, MATHUR R. Predicting the future of stealth attacks[EB/OL]. [2014-12-10]. http://www.mcafee.com/ us/resources/reports/rp-predicting-stealth-attacks.pdf.

        [33] MATROSOV A, RODIONOV E. TDL3: the Rootkit of all evil?[EB/OL]. [2014-12-10]. http://www.eset.com/us/ resources/ white-papers/TDL3-Analysis.pdf.

        [34] RUTKOWSKA J. System virginity verifier: Defining the roadmap for malware detection on windows systems [EB/OL]. [2014-12-10]. http://www.invisiblethings.org/ papers/ hitb05_virginity_verifier.ppt.

        [35] RUTKOWSKA J. Rootkit hunting vs compromise detection[EB/OL]. [2014-12-10]. http://www. blackhat. com/presentations/bh-federal-06/BH-Fed-06-Rutkowska/B H-Fed-06-Rutkowska-up.pdf.

        [36] SPARKS S, BUTLER J. Shadow walker: Raising the bar for windows rootkit detection [J]. Phrack Magazine, 2005, 11(63): 10-26.

        [37] FIELD S. An introduction to kernel patch protection [EB/OL]. [2014-12-10]. http://blogs.msdn.com/b/ windowsvistasecurity/archive/2006/08/11/695993.aspx.

        [38] RUTKOWSKAJ. Introducing stealth malware taxonomy [EB/OL]. [2014-12-10]. www.net-security.org/dl/articles/ malware-taxonomy.pdf.

        [39] KING S T, CHEN P M, WANG Y M. SubVirt: Implementing malware with virtual machines[C]//2006 IEEE Symposium on Security and Privacy. Berkeley: IEEE Computer Society, 2006: 314-327.

        [40] RUTKOWSKA J. Subverting vista kernel for fun and profit[EB/OL]. [2014-12-10]. http://www.blackhat.com/ presentations/bh-usa-06/BH-US-06-Rutkowska.pdf.

        [41] DAIZOVI D A. Hardware virtualization rootkits[EB/OL]. [2014-12-10]. http://www.blackhat.com/presentations/bhusa-06/BH-US-06-Zovi.pdf.

        [42] PTACEK T, LAWSON N. Don’t tell Joanna, the virtualized rootkit is dead[EB/OL]. [2014-12-10]. http:// matasano. com/research/bh-usa-07-ptacek_goldsmith_and_lawson.pdf.

        [43] BULYGIN Y. Insane detection of insane rootkits: Chipset based approach to detect virtualization malware[EB/OL]. [2014-12-10]. http://me.bios.io/images/2/23/DeepWatch.pdf.

        [44] RUTKOWSKA J, TERESHKIN A. IsGameOver() anyone? [EB/OL]. [2014-12-10]. http://invisiblethingslab.com/ resources/bh07/IsGameOver.pdf.

        [45] SOEDER D, PERMEH R. eEye BootRoot[EB/OL]. [2014-12-10]. http://www.blackhat.com/presentations/bhusa-05/bh-us-05-soeder.pdf.

        [46] COLLAPSE C. A real SMM rootkit[J]. Phrack Magazine, 2009, 13(42): 56-68.

        [47] BSDAEMON, COIDELOKO, DONANDON. System management mode hacks[J]. Phrack Magazine, 2008, 12(41):12-25.

        [48] EMBLETON S, SPARKS S, ZOU C. SMM Rootkits: a new breed of OS independent malware[J]. Security & Communication Networks, 2013, 6(12): 1590-1605.

        [49] ICELORD. BIOS Rootkit: Welcome home, my lord [EB/OL]. [2014-12-10]. http://blog.csdn.net/icelord/article/ details/1604884.

        [50] HEASMAN J. Implementing and detecting an ACPI BIOS rootkit[EB/OL]. [2014-12-10]. http://www.blackhat. com/presentations/bh-europe-06/bh-eu-06-Heasman.pdf.

        [51] KUMAR N, KUMAR V. VbootKit: Compromising Windows vista security[EB/OL]. [2014-12-10]. http://www. blackhat.com/presentations/bh-europe-07/Kumar/Whitepap er/bh-eu-07-Kumar-WP-apr19.pdf.

        [52] KUMAR N, KUMAR V. VBootKit 2.0-attacking Windows 7 via boot sectors[EB/OL]. [2014-12-10]. http://www. securitybyte.org/2009/schedule/Day1_Orchid/Vbootkit2.0a -AttackingWindows7viaBootSectors.pdf.

        [53] METULA E. Managed code Rootkits[M]. Burlington: Syngress press, 2011.

        [54] RUSSINOVICH M, SOLOMON D, IONESCU A. Windows internals[M]. USA: Microsoft Press, 2012.

        [55] 潘愛(ài)民. Windows內(nèi)核原理與實(shí)現(xiàn)[M]. 北京: 電子工業(yè)出版社, 2010. PAN Ai-min. Understanding the Windows kernel[M]. Beijing: Publishing House of Electronics Industry, 2010.

        [56] BILBY D. Low down and dirty: Anti-forensic rootkits[EB/ OL]. [2014-12-10]. http://www.blackhat.com/ presentations/bh-jp-06/BH-JP-06-Bilby-up.pdf.

        [57] BUTLER J, ARBAUGH B, PETRONI N. R^2: the exponential growth of Rootkit techniques[EB/OL]. [2014-12-10]. http://www.blackhat.com/presentations/bh-usa-06/ BH-US-06-Butler.pdf.

        [58] BLUNDEN B. Anti-forensics: the Rootkit connection[EB/ OL]. [2014-12-10]. http://www.blackhat.com/ presentations/bh-usa-09/BLUNDEN/BHUSA09-Blunden-AntiForensics-PAPER.pdf.

        [59] SUN Bing. Software virtualization based Rootkits[EB/OL]. [2014-12-10]. http://www.blackhat.com/presentations/bheurope-07/Bing/Whitepaper/bh-eu-07-bing-WP.pdf.

        [60] RUTKOWSKA J. Detecting Windows server compromises with patchfinder 2[EB/OL]. [2014-12-10]. http:// jaumingtw.sg1005.myweb.hinet.net/av/anti-rootkits/patch_ finder/rootkits_detection_with_patchfinder2.pdf.

        [61] RUTKOWSKA J. Execution path analysis: Finding kernel based Rootkits[J]. Phrack Magazine, 2003, 11(59): 65-79.

        [62] BUTLER J, HOGLUND G. VICE: Catch the hookers: Plus new Rootkit techniques[EB/OL]. [2014-12-10]. http://www. cs.dartmouth.edu/~sergey/cs258/rootkits/bh-us-04-butler.p df.

        [63] BUTLER J, SIBERMAN P. RAIDE: Rootkit analysis identification elimination v1.0[EB/OL]. [2014-12-10]. http://www.blackhat.com/presentations/bh-usa-06/BH-US-06-Silberman.pdf.

        [64] RUTKOWSKA J. Thoughts about crossview based rootkit detection[EB/OL]. [2014-12-10]. http://invisiblethings. org.

        [65] XIE Xiong-wei, WANG Wei-chao. Rootkit detection on virtual machines through deep information extraction at hypervisor-level[C]//IEEE Conference on Communications and Network Security. National Harbor, USA: IEEE, 2013, 498- 503.

        [66] PETRONI N L, FRASER T, MOLINA J, et al. Copilot - a coprocessor-based kernel runtime integrity monitor[EB/ OL]. [2014-12-10]. http://www.umiacs.umd.edu/ partnerships/ltsdocs2004/Active_Systems(Arbaugh).pdf.

        [67] CARRIER B D, GRAND J. A hardware-based memory acquisition procedure for digital investigations[J]. Journal of Digital Investigation, 2004, 1(1):50-60.

        [68] BBN Technologies. Fred: Forensic ram extraction device [EB/OL]. [2012-12-10]. http://www.ir.bbn.com/vkawadia/, 2014.

        [69] RILEY R. A framework for prototyping and testing data-only rootkit attacks[J]. Computers & Security, 2013, 37: 62-71.

        [70] ASHRAF. 13 top best free Rootkit removal(anti-rootkit) programs[EB/OL]. [2014-12-10]. http://dottech.org/129897/ 13-top-best-freerootkit-removal-anti-rootkit-programs-windows-xp-vista-7-8/.

        [71] CARVEY H. Windows forensic analysis[M]. New York : Syngress Publisher, 2009.

        [72] ROMANA S, JHA A K, PAREEK H, ESWARI P R. Evaluation of open source anti-rootkit tools[C]//Workshop on Anti-malware Testing Research. Montreal: IEEE, 2013: 1-6.

        [73] HILI G, MAYES K, MARKANTONAKIS K. The BIOS and Rootkits, secure smart embedded devices[J]. Platforms and Applications, 2014, 369-381.

        [74] PU Shi, CHEN Zhou-guo, HUANG Chen, et al. Threat Analysis of smart mobile device[C]//2014 General Assembly and Scientific Symposium. Beijing: IEEE, 2014: 1-3.

        [75] JACK B. Jackpotting automated teller machines redux [EB/OL]. [2014-12-10]. http://www.blackhat.com/html/bhus-10/bh-us-10-briefings.html.

        [76] McAfee Corporation. Combating advanced persistent threats [EB/OL]. [2014-12-10]. http://www.mcafee.com/us/ resources/white-papers/wp-combat-advanced-persist-threat s.pdf.

        [77] 施江勇, 王會(huì)梅, 鮮明, 等. 硬件虛擬化Rootkit檢測(cè)方法研究綜述[J]. 計(jì)算機(jī)應(yīng)用研究, 2014, 31(1):1-5. SHI Jiang-yong, WANG Hui-mei, XIAN Ming, et al. Summarize of detection methods on hardware-based virtualization machine Rootkit[J]. Application Research of Computers, 2014, 31(1): 1-5.

        [78] 辛知, 陳惠宇, 韓浩, 等. 基于結(jié)構(gòu)體隨機(jī)化的內(nèi)核Rootkit防御技術(shù)[J]. 計(jì)算機(jī)學(xué)報(bào), 2014, 37(5): 1100-1110. XIN Zhi, CHEN Hui-yu, HAN Hao, et al. Kernel Rootkit defense based on automatic data structure randomization [J]. Chinese Journal of Computers, 2014, 37(5): 1100-1110.

        [79] WANG Xue-yang, KARRI R. Detecting kernel control-flow modifying Rootkits[J]. Advances in Information Security, 2014, 55: 177-187.

        [80] KORKIN I, NESTEROV I. Applying memory forensics to rootkit detection[C]//Proceedings of the Conference on Digital Forensics, Security and Law. Virginia, USA: ADFSL, 2014: 115-143.

        [81] LIANG Jun-jie. Key security technologies of cloud computing platforms[J]. Advances in Intelligent Systems and Computing, 2014, 250: 411-417.

        [82] CARRETERO J, BLAS J G. Introduction to cloud computing: Platforms and solutions[J]. Cluster Computing, 2014, 17(4): 1225-1229.

        編輯蔣 曉

        Research and Development of Rootkit

        ZHANG Yu1, LIU Qing-zhong2, LI Tao3, LUO Zi-qiang1, and WU Li-hua1
        (1. Department of Computer Science, Hainan Normal University Haikou 571158; 2. Department of Computer Science, Sam Houston State University Huntsville, Texas USA 77341; 3. College of Computer Science, Sichuan University Chengdu 610065)

        Rootkit is a set of programs that allows a permanent or consistent, undetectable presence on network systems. Rootkit can cause serious network security threat since it provides stealth access and software eavesdropping for attackers by modifying the operating system kernel data or changing instruction execution path. Firstly, the basic definition and evolution of Windows Rootkit are introduced, and the Rootkit mechanism and the Windows system kernel components are then analyzed. Thereafter, we discuss Rootkit defense mechanism and detection methods. We conclude with prediction of the trends and further research directions of Rootkit and its defense.

        evasion attack; forensic analysis; malware; network security; rootkit

        TP309

        A doi:10.3969/j.issn.1001-0548.2015.04.016

        2014 ? 12 ? 12;

        2015 ? 03 ? 26.

        國(guó)家自然科學(xué)基金(61462025, 61262077, 61173159, 61463012);海南省自然科學(xué)基金(613161, 614233);國(guó)家級(jí)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃資助項(xiàng)目(201211658036).

        張瑜(1975 ? ),男,副教授,博士,主要從事網(wǎng)絡(luò)安全、惡意代碼分析與取證及智能計(jì)算等方面的研究.

        猜你喜歡
        指令檢測(cè)系統(tǒng)
        聽(tīng)我指令:大催眠術(shù)
        Smartflower POP 一體式光伏系統(tǒng)
        “不等式”檢測(cè)題
        “一元一次不等式”檢測(cè)題
        “一元一次不等式組”檢測(cè)題
        WJ-700無(wú)人機(jī)系統(tǒng)
        ZC系列無(wú)人機(jī)遙感系統(tǒng)
        ARINC661顯控指令快速驗(yàn)證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        国产久色在线拍揄自揄拍| 亚洲国产美女精品久久| 男人阁久久| 97久久综合精品国产丝袜长腿| 午夜性刺激免费看视频| 久久久久亚洲精品中文字幕| 欧美成人三级一区二区在线观看 | 亚洲AV小说在线观看| 国产二区中文字幕在线观看 | аⅴ天堂中文在线网| 秋霞午夜无码鲁丝片午夜精品| 午夜a福利| 日本免费三片在线视频| 国产高清在线精品一区app| 欧美日韩中文国产一区发布| 蜜桃一区二区三区在线看| 国产精品毛片毛片av一区二区| 欧美丰满老熟妇aaaa片| 亚洲国产成人精品无码区99| 91福利国产在线观看网站| 国产亚洲一本二本三道| 亚洲欧美牲交| 久99久热只有精品国产男同| 亚洲一区二区女优av| 手机在线观看免费av网站| 国产成人精品综合在线观看| 国产成人综合久久久久久| 亚洲中文字幕国产剧情| 色婷婷一区二区三区四区成人网 | 亚洲色中文字幕无码av| 久久成人麻豆午夜电影| 日本av一区二区播放| 国内嫩模自拍诱惑免费视频 | 欧美精品欧美人与动人物牲交| 免费看久久妇女高潮a| 亚洲国产精品久久久久婷婷软件| 日韩有码在线观看视频| 亚洲av午夜福利一区二区国产| 久久久99精品免费视频| 亚洲成av人片在线观看无码 | 无遮挡又黄又刺激又爽的视频|