郭 璇 龔曉銳 汪秋云 凌 辰
1(湘潭大學(xué)信息工程學(xué)院 湖南 湘潭 411105)2(中國科學(xué)院信息工程研究所 北京 100089)
隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,網(wǎng)絡(luò)已悄無聲息地融入了人們的日常生活[1]。但人們不能僅僅沉浸于網(wǎng)絡(luò)所帶來的便利,也要重視它所帶來的安全問題,例如:網(wǎng)絡(luò)攻擊、木馬入侵、惡意代碼等[2]。如何有效地防范木馬,保護(hù)信息安全,逐漸成為了國內(nèi)外研究者關(guān)注的焦點(diǎn)之一[3]。木馬的制作技術(shù)發(fā)展迅速,每年竊密型木馬造成的泄密都會給人們帶來極大的損失[4]。尤其在軍事方面,由于竊取秘密資料和作戰(zhàn)計劃可以贏得戰(zhàn)爭的主動性,各個國家越來越重視和依賴網(wǎng)絡(luò)技術(shù)[5]。
目前已經(jīng)有許多針對性較強(qiáng)的木馬專殺工具了,同時很多殺毒軟件也都新增了木馬查殺功能。但這些工具、軟件主要以行為監(jiān)控和分析作為木馬檢測的手段,對潛伏的木馬卻無法檢測[6]。而竊取重要信息的竊密型木馬長期處于潛伏狀態(tài),只在關(guān)鍵時刻進(jìn)行通信,僅寄希望于動態(tài)行為分析監(jiān)控來檢測木馬的風(fēng)險較大。本文研究的木馬檢測系統(tǒng),基于攻擊指示器,從文件、進(jìn)程、注冊表、網(wǎng)絡(luò)和服務(wù)信息這五個方面對單個終端設(shè)備進(jìn)行掃描檢測,并與攻擊指示器中的屬性進(jìn)行對比,能夠檢測到運(yùn)行狀態(tài)和潛伏狀態(tài)的木馬。
木馬是一種特殊惡意程序,與病毒不同,被攻擊者植入到受害者電腦后,不再是單純地為了破壞目標(biāo)電腦,而是更注重收集和竊取重要信息,甚至遠(yuǎn)程控制受害者的電腦,為攻擊者謀利。雖然木馬層出不窮,種類千變?nèi)f化,難以檢測,但都具有一些共同特性,即有效性、隱蔽性、頑固性和易植入性[7]。而其功能大致有遠(yuǎn)程命令執(zhí)行、屏幕和鍵盤監(jiān)控及遠(yuǎn)程文件、注冊表、進(jìn)程操作。依據(jù)木馬功能的不同,可將其分為遠(yuǎn)程控制型、信息收集型、系統(tǒng)信息修改型、后門服務(wù)型等[8]。
木馬植入是指通過種種手段,使木馬傳播到目標(biāo)主機(jī)。根據(jù)木馬入侵形式,可將木馬植入方式分為:欺騙下載、利用電子郵件或聊天軟件進(jìn)行傳播、網(wǎng)站掛馬、木馬和病毒結(jié)合及社會工程學(xué)等[8]。木馬成功植入受害者電腦后,需要以某種方式自動運(yùn)行。依據(jù)木馬加載方式的不同,目前主流的木馬加載技術(shù)可分為:系統(tǒng)啟動自動加載、注冊表關(guān)聯(lián)、文件關(guān)聯(lián)等[8]。
目前常用的木馬檢測技術(shù)有:通信檢測、實時監(jiān)測、行為分析、虛擬機(jī)技術(shù)和特征碼檢測[8]。通信檢測技術(shù)依賴監(jiān)控系統(tǒng)中的網(wǎng)絡(luò)連接和流量來發(fā)現(xiàn)和阻斷具有木馬特性的網(wǎng)絡(luò)通信,或者制定規(guī)則直接禁止可疑程序和未知程序的運(yùn)行;實時監(jiān)控技術(shù)通過監(jiān)控系統(tǒng)中的網(wǎng)頁、注冊表、郵件、文件等,檢測、處理其中所包含的有害代碼來對傳輸?shù)臄?shù)據(jù)進(jìn)行過濾;行為分析技術(shù)判別木馬的依據(jù)是程序在啟動、運(yùn)行時所表現(xiàn)出的行為特征;虛擬機(jī)技術(shù)將木馬運(yùn)行在仿真環(huán)境中,根據(jù)以往經(jīng)驗和已有知識,結(jié)合其調(diào)用系統(tǒng)函數(shù)的順序和不同于正常程序的特征,進(jìn)行啟發(fā)式判斷;特征碼檢測技術(shù)是通過提取并歸納木馬的特征碼,建立木馬特征庫,然后將待檢測文件的信息與木馬特征庫中相應(yīng)的信息進(jìn)行對比來實現(xiàn)檢測,具有低誤報率、高檢測率的特點(diǎn)[9]。但其僅能根據(jù)靜態(tài)文件進(jìn)行判別,在木馬程序運(yùn)行起來刪除自身后,便無法檢測。
本文基于攻擊指示器檢測技術(shù)實現(xiàn)了一款木馬檢測系統(tǒng),該系統(tǒng)擁有特征碼檢測的優(yōu)點(diǎn),并加入了對非文件類別的檢測。在保證檢測速度的同時,系統(tǒng)的消耗少、檢測效率高、可靠性高,在攻擊指示器設(shè)計合理的情況下,能保證極高的檢出率,并且誤報率和漏報率也較低。
IOC是一種反映主機(jī)或網(wǎng)絡(luò)行為的攻擊指示器,由一個至多個簡單表達(dá)式或復(fù)雜表達(dá)式連接而成,一個表達(dá)式為真即表明一個可疑的入侵行為,當(dāng)整體表達(dá)式為真時即表示檢測到一個木馬[10],其邏輯結(jié)構(gòu)如圖1所示。
圖1 IOC邏輯結(jié)構(gòu)
由于XML語言靈活、豐富,可直接解析讀取,所以IOC使用XML語言來進(jìn)行描述。同時由于XML語言模塊化的結(jié)構(gòu),可以根據(jù)新獲得的信息或威脅情報對IOC進(jìn)行調(diào)整和進(jìn)一步優(yōu)化。
攻擊指示器屬性由OpenIOC標(biāo)準(zhǔn)提供,共包含了27大類,而每一類又包含了很多具體的屬性。每個IOC都是一個由多個指示器組合到一起形成的復(fù)合指示器[10]。
本木馬檢測系統(tǒng)主要從文件、進(jìn)程、注冊表、網(wǎng)絡(luò)及服務(wù)這五個功能模塊進(jìn)行檢測。每個功能模塊根據(jù)需求又細(xì)分了若干有代表性的待檢測屬性,來更精確地檢測木馬和提高檢測效果,如表1所示。
表1 各功能模塊
本檢測系統(tǒng)有四大模塊組成,分別為程序入口APP模塊、文件檢測模塊、非文件檢測模塊和報告生成模塊。其中各個模塊的詳細(xì)信息如圖2所示。
圖2 檢測系統(tǒng)整體設(shè)計
1) App模塊為主程序入口,負(fù)責(zé)解析命令行參數(shù)、處理配置文件、解析攻擊指示器、加載動態(tài)庫等。
2) 文件檢測模塊。負(fù)責(zé)對文件系統(tǒng)中文件的檢測。遍歷文件系統(tǒng)中的文件,將各個文件與攻擊指示器中定義的文件相關(guān)的屬性進(jìn)行匹配,并輸出檢測結(jié)果。
3) 非文件檢測模塊。根據(jù)攻擊指示器中定義的屬性,對系統(tǒng)中各個進(jìn)程、服務(wù)、網(wǎng)絡(luò)、注冊表項進(jìn)行檢測。內(nèi)部又細(xì)分為多個IOC模塊,例如:進(jìn)程模塊、服務(wù)模塊、網(wǎng)絡(luò)模塊及注冊表模塊。IOC模塊中又包含多個屬性(item)的模塊,它會將所要處理的各個item映射到相應(yīng)的item的程序處理代碼。最后非文件檢測模塊會輸出檢測結(jié)果。
4) 報告生成模塊。負(fù)責(zé)最終報告的打印生成。報告生成模塊包含消息隊列及報告格式處理兩個部分,消息隊列負(fù)責(zé)收集程序中其他所有模塊的處理結(jié)果,報告格式處理則會把各個消息處理成統(tǒng)一的格式。
本檢測系統(tǒng)詳細(xì)運(yùn)行過程如下:
1) 程序運(yùn)行后,首先讀取配置文件中的參數(shù),如攻擊指示器所在文件夾、存放輸出報告的目錄等。
2) 程序解析攻擊指示器文件,并提取出各屬性中的特定信息。
3) 程序啟動多個處理線程,包括文件檢測的處理線程、非文件檢測的處理線程,報告信息收集線程等。
4) 程序獲取主機(jī)的文件、進(jìn)程、服務(wù)、注冊表等信息,根據(jù)所提取的攻擊指示器中的屬性和邏輯關(guān)系,判斷主機(jī)中是否包含攻擊指示器所描述的木馬。
5) 最終所有模塊的處理結(jié)果都會傳遞到消息隊列中,報告收集線程動態(tài)地從消息隊列中取消息,并生成木馬檢測結(jié)果的程序處理報告。
在測試實驗中,本木馬檢測系統(tǒng)主要與目前常見的幾款木馬清除軟件進(jìn)行對比,包括金山毒霸、360安全衛(wèi)士、騰訊電腦管家,以及木馬清除大師,所有測試均在同一Windows XP系統(tǒng)的虛擬機(jī)中進(jìn)行。
首先從系統(tǒng)資源消耗方面進(jìn)行對比,本檢測系統(tǒng)無論在內(nèi)存占用還是CPU占用方面都有很大的優(yōu)勢,遠(yuǎn)遠(yuǎn)小于其他幾款軟件占用的系統(tǒng)資源,結(jié)果如圖3所示。
圖3 木馬檢測時內(nèi)存/CPU平均占用情況
其次,在掃描速度方面,本木馬檢測系統(tǒng)也毫不遜色于其他幾款軟件。在對10 GB大小的測試環(huán)境進(jìn)行掃描時,本系統(tǒng)消耗的時間與最快的騰訊電腦管家相差不多,主要原因是本木馬檢測系統(tǒng)與騰訊電腦管家對非文件部分木馬的檢測,都用到了多線程并發(fā)檢測,而其他幾款軟件都是單線程檢測,結(jié)果如圖4所示。
圖4 木馬檢測10 GB分區(qū)耗時
同時,本木馬檢測系統(tǒng)對目標(biāo)終端中的木馬樣本(包括ByShell、DarkstRat2、PcShare、飛狐、木頭人、灰鴿子、蔓靈花、海蓮花等44款木馬)能達(dá)到97.7%的檢出率,且漏報率小于3%,檢測效果遠(yuǎn)遠(yuǎn)超出其他幾款木馬查殺軟件,結(jié)果如圖5所示。
圖5 對已知木馬的檢測結(jié)果
該木馬檢測系統(tǒng)所依賴的攻擊指示器不僅包含了文件信息,也包含了進(jìn)程、注冊表、服務(wù)、網(wǎng)絡(luò)等信息,設(shè)計更加全面。同時,基于攻擊指示器的木馬檢測系統(tǒng)采用多線程并發(fā)檢測,主要對已知木馬進(jìn)行檢測。能夠檢測到運(yùn)行狀態(tài)和潛伏狀態(tài)的木馬,檢出率高,漏報率低,在測試和實際使用中均取得了較好的結(jié)果。