朱 平, 杜彥輝
(中國人民公安大學(xué), 北京 100038)
隨著計算機(jī)及互聯(lián)網(wǎng)技術(shù)應(yīng)用的廣泛發(fā)展,信息數(shù)據(jù)可直接或間接產(chǎn)生巨大的經(jīng)濟(jì)利益及其他社會利益,不同的利益目標(biāo)促使以竊取特定信息為目的的木馬的“專業(yè)性”更強(qiáng)。具有高深隱藏技術(shù)的計算機(jī)木馬在沒有被捕獲到特征碼以前,基于特征碼的檢測方式?jīng)]有辦法進(jìn)行常規(guī)檢測,在這種情形下,木馬的檢測只能通過基于行為檢測的方式。但是,對于以竊取特定信息為目的的“專業(yè)性”木馬,在特定條件沒有得到滿足前經(jīng)常處于“休眠式”的潛伏狀態(tài),只運(yùn)行基本的環(huán)境信息搜集代碼,執(zhí)行環(huán)境探測等低等級、不易暴露的正常軟件常見行為。這些正常軟件常見的并且活動量極少的行為往往能夠躲過基于行為檢測的木馬檢測。為此,本文將對計算機(jī)木馬檢測中的木馬誘發(fā)條件進(jìn)行全面研究,探討觸發(fā)木馬產(chǎn)生更多“工作行為”,以提升木馬檢測成功率的模擬環(huán)境模型。
目前計算機(jī)木馬檢測方法主要分為兩大類:一是基于特征碼的檢測方式;二是基于行為的檢測方式。
(1)特征碼檢測主要依賴于木馬特征碼的提取與比對。檢測通常包含特征碼設(shè)計,特征碼提取和掃描引擎檢測三大模塊。檢測算法一般采用可變長度的特征碼集合來增加掃描引擎的檢查效率;特征碼提取模塊自動定位病毒代碼的位置,然后提取其中某些字節(jié)作為特征碼;掃描引擎檢測模塊首先針對每個目標(biāo)文件都進(jìn)行一次準(zhǔn)特征碼提取操作,將獲得到準(zhǔn)特征碼放到特征碼庫中去匹配,匹配成功后再進(jìn)行二次準(zhǔn)特征碼提取和二次特征碼匹配,最終確定目標(biāo)文件是否被特征碼庫中的木馬感染過。檢測實現(xiàn)上,可分為單機(jī)殺毒軟件式和網(wǎng)絡(luò)入侵檢測類式。受制于檢測的基本原理,特征碼檢測法只能對已知特征碼的計算機(jī)木馬檢測有效,對未獲取到特征碼的計算機(jī)木馬將完全失效。
(2)行為檢測主要是對可疑程序的行為進(jìn)行監(jiān)控,記錄程序在運(yùn)行時與操作系統(tǒng)交互過程中所調(diào)用的API函數(shù)相關(guān)信息或特定行為組合,從中抽取特征輸入檢測器,檢測器對樣本集進(jìn)行學(xué)習(xí)后即可用于對可疑程序進(jìn)行自動檢測。對于尚未被捕獲到特征碼的木馬檢測,只能依靠于基于木馬行為的檢測。但是,檢測軟件需要捕獲既定的木馬行為,如果出于信息安全保密的考慮,在不能將待檢嫌疑機(jī)連接至真實互聯(lián)網(wǎng)環(huán)境的情況下,如何構(gòu)造有效的模擬環(huán)境,誘發(fā)木馬脫離“潛伏狀態(tài)”產(chǎn)生更多的“工作行為”,將直接影響木馬檢測效果。
據(jù)調(diào)研,高“專業(yè)性”木馬的工作通常可分四個階段:一是植入階段,即通過特定方式將木馬植入特定主機(jī);二是所需信息資源驗證階段,即驗證所侵入主機(jī)是否存儲有特定的、值得工作進(jìn)行竊取的信息;三是信息竊取與通訊安全性驗證階段,即探測是否具有能夠保障竊取信息不被發(fā)現(xiàn)的特殊運(yùn)行時環(huán)境,以及能夠掩護(hù)與控制者通訊行為的安全環(huán)境掩護(hù)保障;四是信息竊取階段,即通過信息資源驗證,信息竊取與通訊環(huán)境安全得到保障后開始竊取信息;或與控制者聯(lián)系,接收控制者指令進(jìn)行信息竊取。
通過研究木馬上述第二、第三階段所需的環(huán)境,提出一種基于主機(jī)行為與環(huán)境及互聯(lián)網(wǎng)環(huán)境模擬的木馬行為誘發(fā)模型。
模型包括主機(jī)行為與環(huán)境模擬端及互聯(lián)網(wǎng)環(huán)境模擬端兩個部分:結(jié)構(gòu)圖如圖1。
圖1 木馬行為誘發(fā)模型結(jié)構(gòu)圖
主機(jī)行為與環(huán)境模擬端負(fù)責(zé)模擬各種條件下的主機(jī)環(huán)境及用戶行為,具體包含操作系統(tǒng)環(huán)境模擬模塊、應(yīng)用程序環(huán)境模擬模塊、用戶行為模擬模塊和模擬環(huán)境綜合指揮模塊,功能模塊圖如圖2。
(1)操作系統(tǒng)環(huán)境模擬模塊主要負(fù)責(zé)通過模擬各種操作系統(tǒng)變量參數(shù)(如操作系統(tǒng)版本、操作系統(tǒng)語言類型、補(bǔ)丁版本)、網(wǎng)絡(luò)類型和網(wǎng)絡(luò)連接狀態(tài)等環(huán)境信息,使木馬認(rèn)為已經(jīng)處于所需的操作系統(tǒng)運(yùn)行時環(huán)境。該模塊包含操作系統(tǒng)環(huán)境庫。
(2)應(yīng)用程序環(huán)境模擬模塊主要通過構(gòu)造操作系統(tǒng)應(yīng)用程序安裝狀態(tài)等信息,模擬木馬所需的應(yīng)用程序環(huán)境,如,部分Windows木馬需要通過注入Firefox瀏覽器進(jìn)程進(jìn)行數(shù)據(jù)傳輸,則可以通過修改注冊表和構(gòu)建需虛擬應(yīng)用程序文件,構(gòu)造Firefox瀏覽器“存在”的假象,使木馬認(rèn)為已經(jīng)具備特定的“輔助工具”。該模塊包含應(yīng)用程序環(huán)境庫。
(3)用戶行為模擬模塊負(fù)責(zé)逐一構(gòu)造各種用戶行為,誘導(dǎo)木馬認(rèn)為已經(jīng)滿足可以“掩護(hù)工作”所需的“安全運(yùn)行”環(huán)境。如,部分木馬只在屏保時(認(rèn)為用戶不在計算機(jī)前)開始高級工作,部分木馬只在用戶大量瀏覽網(wǎng)頁信息時工作(可以掩蓋木馬網(wǎng)絡(luò)通訊)或大量文件讀寫操作時工作(可以掩蓋木馬文件讀寫操作),部分“擺渡類”木馬檢測是否有U盤等移動設(shè)備接入以便通過中間介質(zhì)將局域網(wǎng)計算機(jī)數(shù)據(jù)“擺渡”至互聯(lián)網(wǎng)環(huán)境。該模塊包含用戶行為庫。
(4)綜合指揮模塊將根據(jù)上述三個模擬端數(shù)據(jù)庫中的模擬行為進(jìn)行組合,以制定綜合模擬策略用例。
互聯(lián)網(wǎng)環(huán)境模擬端是指構(gòu)造被檢測主機(jī)連接的互聯(lián)網(wǎng)環(huán)境,使木馬誤認(rèn)為計算機(jī)已經(jīng)連接至互聯(lián)網(wǎng)。主要包括數(shù)據(jù)包接收端模塊、網(wǎng)絡(luò)協(xié)議分析模塊、網(wǎng)絡(luò)協(xié)議響應(yīng)模塊和網(wǎng)絡(luò)探測協(xié)議主動發(fā)起模塊,如圖3。
(1)數(shù)據(jù)包接收模塊能夠全部接收計算機(jī)發(fā)出的數(shù)據(jù)包。
(2)網(wǎng)絡(luò)協(xié)議分析模塊可以對接收到的數(shù)據(jù)包進(jìn)行協(xié)議還原和協(xié)議分析。
(3)網(wǎng)絡(luò)協(xié)議響應(yīng)模塊是指響應(yīng)被檢測計算機(jī)發(fā)出網(wǎng)絡(luò)請求,使木馬認(rèn)為所在的計算機(jī)已經(jīng)連接至互聯(lián)網(wǎng)。如,部分木馬會首先發(fā)出DNS請求以判斷是否連接至真實互聯(lián)網(wǎng),在接收到正確DNS響應(yīng)時才全面激活,進(jìn)行更多行為活動。
(4)網(wǎng)絡(luò)探測協(xié)議主動發(fā)起模塊是指主動發(fā)出局域網(wǎng)及互聯(lián)網(wǎng)常見探測協(xié)議的數(shù)據(jù)包,以構(gòu)造更加真實的網(wǎng)絡(luò)環(huán)境。如部分木馬在判斷所在計算機(jī)是否真正連接至網(wǎng)絡(luò)時,會首先監(jiān)聽是否有ARP請求數(shù)據(jù)包。
圖3 互聯(lián)網(wǎng)環(huán)境模擬端
主機(jī)行為與環(huán)境模擬端的各模塊在模擬環(huán)境綜合指揮模塊的統(tǒng)一指揮下工作于異步模式。模擬環(huán)境綜合指揮模塊可以通過遍歷的方式逐一遍歷組合操作系統(tǒng)環(huán)境模擬模塊、應(yīng)用程序環(huán)境模擬模塊和用戶行為模擬模塊數(shù)據(jù)庫中的行為或環(huán)境變量,也可以根據(jù)檢測者的檢測策略進(jìn)行特定行為組合模擬進(jìn)而為木馬檢測提供所需的特定環(huán)境。
互聯(lián)網(wǎng)環(huán)境模擬端的數(shù)據(jù)包接收模塊和網(wǎng)絡(luò)協(xié)議分析模塊同步實時運(yùn)行,實時地、全面的接收被檢測主機(jī)發(fā)出的數(shù)據(jù)包并進(jìn)行協(xié)議還原與分析。
網(wǎng)絡(luò)協(xié)議響應(yīng)模塊及網(wǎng)絡(luò)探測協(xié)議主動發(fā)起模塊與數(shù)據(jù)包接收模塊工作于異步模式。其中,網(wǎng)絡(luò)探測協(xié)議主動發(fā)起模塊主動并定期發(fā)起探測協(xié)議數(shù)據(jù)包;網(wǎng)絡(luò)協(xié)議響應(yīng)模塊則根據(jù)數(shù)據(jù)包接收模塊的數(shù)據(jù)接收情況進(jìn)行響應(yīng)。
利用本模型編寫并搭建了一套Windows XP環(huán)境下的木馬誘發(fā)環(huán)境。其中,主機(jī)行為與環(huán)境模擬端使用VC++6.0編寫,除基本的用戶操作模擬外,加入了時鐘加速功能,可使Windows系統(tǒng)時鐘最高加速4倍;互聯(lián)網(wǎng)環(huán)境模擬端使用Linux操作系統(tǒng),嵌入工控機(jī)內(nèi),可模擬響應(yīng)ARP、DNS、TCP等網(wǎng)絡(luò)協(xié)議。木馬以“灰鴿子”為基礎(chǔ),通過重新編譯,“變種”為ARP響應(yīng)探測、DNS探測、Windows更新包探測、Firefox訪問“Sohu網(wǎng)”激活等四個版本。木馬檢測軟件使用開源殺毒軟件“ClamAV”。實驗結(jié)果顯示,本模型環(huán)境切實可行,同時,時鐘加速功能可大大提高對木馬檢測的效率,使對“低頻度”活動木馬的檢測效率明顯提升。
本文提出木馬行為誘發(fā)模型誘發(fā)能力取決于主機(jī)行為與環(huán)境模擬端中操作系統(tǒng)環(huán)境模擬模塊、應(yīng)用程序環(huán)境模擬模塊和用戶行為模擬模塊三個模塊數(shù)據(jù)庫中的樣例行為數(shù)量。在樣例充分的情況下,可以極大條件的誘發(fā)計算機(jī)木馬產(chǎn)生更多的活動行為,通過全面激活木馬以提升木馬檢測成功率。全環(huán)境的模擬可以充分保障被檢測計算機(jī)的信息安全,由于檢測環(huán)境沒有真正連接至互聯(lián)網(wǎng),可有效避免被檢測計算機(jī)信息數(shù)據(jù)的泄漏。
[1]任云韜. 基于二進(jìn)制多態(tài)變形的惡意代碼反檢測技術(shù)研究[D]. 西安:電子科技大學(xué), 2007.
[2]金慶,吳國新,李丹. 反病毒引擎及特征碼自動提取算法的研究[J]. 計算機(jī)工程與設(shè)計, 2007(24).
[3]張波云. 計算機(jī)病毒智能檢測技術(shù)研究[D]. 長沙:國防科學(xué)技術(shù)大學(xué), 2007.
[4]張峰. 基于策略樹的網(wǎng)絡(luò)安全主動防御模型研究[D]. 西安:電子科技大學(xué), 2004.
[5]尹清波. 基于機(jī)器學(xué)習(xí)的入侵檢測方法研究[D]. 哈爾濱:哈爾濱工程大學(xué), 2007.
[6]劉國柱,尚衍筠. 基于主動防御模式下蠕蟲病毒特征碼的提取模型及算法設(shè)計[J]. 計算機(jī)應(yīng)用與軟件, 2009(6).
[7]彭國軍,張煥國,王麗娜,等. Windows PE病毒中的關(guān)鍵技術(shù)分析[J]. 計算機(jī)應(yīng)用研究, 2006(5).
[8]陳秀真,鄭慶華,管曉宏,等. 層次化網(wǎng)絡(luò)安全威脅態(tài)勢量化評估方法[J]. 軟件學(xué)報, 2006(4).
[9]金然,魏強(qiáng),王清賢. 基于歸一化的變形惡意代碼檢測[J]. 計算機(jī)工程, 2008(5).
[10]李榮鑫. 基于智能代理的分布式入侵檢測系統(tǒng)模型[J]. 微計算機(jī)信息, 2008(6).
[11]陳立軍. 計算機(jī)病毒免疫技術(shù)的新途徑[J]. 北京大學(xué)學(xué)報:自然科學(xué)版, 1998(5).
[12]PEISERT S, BISHOP M, KARIN S, et al. Analysis of computer intrusions using sequences of function calls[J]. Dependable and Secure Computing, IEEE Transactions on, 2007,4(2):137-150.
[13]ELOVICI Y, SHABTAI A, MOSKOVITCH R, et al. Applying machine learning techniques for detection of malicious code in network traffic[M]∥KI 2007: Advances in Artificial Intelligence. Springer Berlin Hedelberg, 2007:44-50.
[14]JANG M, KIM H, YUN Y. Detection of DLL inserted by windows malicious code[C]∥Convergence Information Technology, 2007. International Conference on. IEEE, 2007: 1059-1064.
[15]LEE M, CHO S, JANG C, et al. A Rule-based Security Auditing Tool for Software Vulnerability Detection[C]∥Hybrid Information Technology, 2006. ICHIT’06. International Conference on. IEEE, 2006,2:505-512.
[16]ECOVICI Y, SHABTAI A, MOSKOVITCH R, et al. Applying machine learning techniques for detection of malicious code in network traffic[M]∥KI 2007: Advances in Artificial Intelligence. Springer Berlin Heidelberg, 2007: 44-50.