張夢(mèng)佳 鄭安然 陶瑜
摘 要:互聯(lián)網(wǎng)信息技術(shù)為現(xiàn)代人的工作和生活帶來(lái)了巨大的便利,與此同時(shí),層出不窮的木馬、病毒和各種惡意軟件使計(jì)算機(jī)的安全受到了巨大的挑戰(zhàn),也嚴(yán)重影響了人們的生活。為了進(jìn)一步遏制木馬、蠕蟲、病毒等惡意軟件,國(guó)內(nèi)外很多專家都設(shè)計(jì)了諸如病毒程序機(jī)器碼和虛擬機(jī)技術(shù)、靜態(tài)掃描等方式去進(jìn)行病毒的檢測(cè),但是實(shí)際上計(jì)算機(jī)病毒的更新?lián)Q代比人們想象的更加快速,尤其是對(duì)于當(dāng)前新興的、技術(shù)含量最高的WIN32 PE病毒,檢測(cè)技術(shù)仍然比較落后。本文對(duì)于WIN32 PE病毒進(jìn)行了詳細(xì)分析,并提出了基于病毒行為的檢測(cè)方法,構(gòu)建了一個(gè)病毒檢測(cè)的模型,能夠適應(yīng)當(dāng)今病毒種類多、產(chǎn)生快的特點(diǎn),實(shí)現(xiàn)對(duì)新型病毒的檢測(cè)。
關(guān)鍵詞:WIN32 PE病毒;病毒檢測(cè);系統(tǒng)設(shè)計(jì)
隨著科學(xué)技術(shù)的發(fā)展,人類進(jìn)入了以互聯(lián)網(wǎng)為基礎(chǔ)的信息時(shí)代,與此同時(shí)黑客技術(shù)也得到了迅猛發(fā)展,計(jì)算機(jī)病毒也逐漸出現(xiàn)了產(chǎn)業(yè)化的發(fā)展趨勢(shì),病毒的數(shù)量和種類急劇上升。
傳統(tǒng)的殺毒軟件,只能使用虛擬機(jī)技術(shù)和掃描病毒特征的方法,以及檢測(cè)病毒行為的方法來(lái)清理病毒。其中掃描病毒特征的方法是最有效率,同時(shí)也是結(jié)果最準(zhǔn)確的檢測(cè)方法,但是這種傳統(tǒng)的檢測(cè)方法已經(jīng)無(wú)法適應(yīng)目前空前高漲的病毒數(shù)量和各種新型病毒了。這是因?yàn)?,使用掃描病毒特征的方法檢測(cè)病毒,需要人為提供病毒的特征代碼,由于目前病毒種類和數(shù)量的極速增多,人為提取病毒的特征代碼難度很大,不能及時(shí)更新病毒庫(kù),導(dǎo)致病毒被發(fā)現(xiàn)的周期延長(zhǎng),給計(jì)算機(jī)使用者帶來(lái)重大的經(jīng)濟(jì)損失。
另外,虛擬機(jī)技術(shù)要調(diào)用API系統(tǒng)并需要占用很大的運(yùn)轉(zhuǎn)空間,而且沒(méi)有強(qiáng)大的兼容性,導(dǎo)致用戶使用該技術(shù)查殺病毒時(shí),計(jì)算機(jī)的運(yùn)行速度非常緩慢[ 1 ]。
最后檢測(cè)病毒行為,也就是行為分析技術(shù)雖然可以有效的檢測(cè)出新型病毒,但是必須要用戶允許檢測(cè)程序運(yùn)行才可以,實(shí)現(xiàn)不了程序的自行檢測(cè)和直接清除病毒[ 2 ]。而且很多新型病毒都是以靜態(tài)的形式在計(jì)算機(jī)中潛伏,需要采用專門的靜態(tài)行為分析技術(shù)將這些病毒在被激活之前檢測(cè)出來(lái)并清除。
樊昌信、張甫翊和徐炳祥[ 3 ]提出要通過(guò)靜態(tài)行為分析技術(shù)分析有PE開頭的文件特征,可以采取三種不同的方法來(lái)提取文件的特征屬性,即:提取文件的DLL名稱和其中的API函數(shù)名稱及數(shù)量的方法,然后區(qū)分出正常文件和計(jì)算機(jī)病毒,將他們分類記錄,這三種方法的檢測(cè)效果都比較好。但是這種檢測(cè)病毒的形式也存在一定缺陷,在檢測(cè)過(guò)程中沒(méi)有精簡(jiǎn)API函數(shù),因?yàn)榇蠖鄶?shù)API函數(shù)都體現(xiàn)不出來(lái)計(jì)算機(jī)病毒的特征,這點(diǎn)對(duì)于區(qū)分正常文件和計(jì)算機(jī)病毒文件的作用很小。
胡敏[ 4 ]認(rèn)為通過(guò)掃描代碼節(jié)的靜態(tài)方式提取CALL指令和它所對(duì)應(yīng)的目的地址,最終得到API的調(diào)用序列,并將這些序列存入數(shù)據(jù)庫(kù)加以分析,可以得到很好的檢測(cè)效果。但是實(shí)際上,通過(guò)掃描代碼節(jié)的靜態(tài)方式是不可能有效獲得API函數(shù)在執(zhí)行時(shí)候的調(diào)用序列的,這是因?yàn)殪o態(tài)分析的方法判斷不了運(yùn)行中的寄存器的狀態(tài)和堆棧的狀態(tài),所以使用這種方法得到的API效用序列無(wú)法體現(xiàn)出實(shí)效性,得不到準(zhǔn)確的API調(diào)用序列。
本文根據(jù)病毒的動(dòng)態(tài)行為設(shè)計(jì)了病毒檢測(cè)系統(tǒng),能夠適應(yīng)當(dāng)今病毒種類多、產(chǎn)生快的特點(diǎn),實(shí)現(xiàn)對(duì)新型病毒的檢測(cè)。
一、WIN32 PE病毒概述
WIN32 PE病毒的感染流程是:首先查找計(jì)算機(jī)內(nèi)是否有“ME”標(biāo)志的文件,如果計(jì)算機(jī)內(nèi)的文件沒(méi)有這個(gè)標(biāo)志,那么WIN32 PE病毒就感染不了用戶的計(jì)算機(jī)了;如果有“ME”標(biāo)志的話,病毒就會(huì)繼續(xù)查找有“PE”標(biāo)志的文件,如果沒(méi)發(fā)現(xiàn)“PE”文件就繼續(xù)查找;將查找到的所有PE文件列出目錄,并計(jì)算文件個(gè)數(shù)和偏移量;然后計(jì)算節(jié)表的開始和結(jié)束位置;計(jì)算節(jié)表的末尾處的偏移量;在節(jié)表中加入一個(gè)新節(jié),并添加相應(yīng)內(nèi)容和信息,并添加病毒的感染標(biāo)記;然后把WIN32 PE病毒的代碼添加到新加入的節(jié)里面;修改節(jié)表的末尾值和該文件的入口地址,使程序一旦開始運(yùn)行,就先執(zhí)行病毒指令,在執(zhí)行成功后結(jié)束。
目前監(jiān)測(cè)WIN32 PE病毒的措施主要包括掃描病毒特征的方法、病毒行為阻斷方法、啟發(fā)式的檢測(cè)方法、沙箱隔離運(yùn)行方法,這些方法都是主要根據(jù)病毒的靜態(tài)特征來(lái)檢測(cè)的,很大程度上局限了對(duì)病毒的檢測(cè)能力,效果不是很好[ 5 ]。隨著黑客技術(shù)的發(fā)展和病毒技術(shù)的進(jìn)步,演化出了更多更豐富的病毒變形和代碼的整合技術(shù),以及利用互聯(lián)網(wǎng)特性逐步增強(qiáng)傳播效果的病毒技術(shù),越發(fā)顯得目前的病毒檢測(cè)技術(shù)具有很大的局限性,而本文提出的基于病毒行為的檢測(cè)病毒的方法,能夠很好的解決新型病毒的檢測(cè)問(wèn)題。
二、病毒檢測(cè)系統(tǒng)的設(shè)計(jì)
經(jīng)過(guò)研究發(fā)現(xiàn)WIN32 PE病毒主要是通過(guò)WINDOWS API函數(shù)來(lái)非法獲取計(jì)算機(jī)用戶的操作系統(tǒng)資源,或者惡意訪問(wèn)用戶的電腦,本文針對(duì)WIN32 PE病毒的感染文件的方式和行為,設(shè)計(jì)了一個(gè)檢測(cè)系統(tǒng),包括預(yù)處理、虛擬機(jī)的控制、行為追蹤、特征向量生成、支持向量學(xué)習(xí)的五個(gè)模塊,通過(guò)該系統(tǒng)檢測(cè)未知的新型病毒[ 6 ]。
(一)預(yù)處理
該模塊包括了三個(gè)項(xiàng)目,分別是樣本的程序、入庫(kù)和數(shù)據(jù)庫(kù),功能就是要把樣本的程序?qū)霐?shù)據(jù)庫(kù)里面。具體流程是:用戶打開該程序,然后自動(dòng)初始化,加載驅(qū)動(dòng),成功之后和接口信息實(shí)現(xiàn)共享,如果驅(qū)動(dòng)加載不成功的話,就一直循環(huán)往復(fù)直到驅(qū)動(dòng)加載成功。
(二)虛擬機(jī)的控制
設(shè)計(jì)該模塊的目的就是要根據(jù)驅(qū)動(dòng)傳遞出來(lái)的信息,做出選擇和判斷,并執(zhí)行操作,然后及時(shí)把操作結(jié)果反饋回驅(qū)動(dòng)。具體流程是:
第一,連接樣本的數(shù)據(jù)庫(kù);
第二,開啟虛擬機(jī)程序,用戶憑賬號(hào)和密碼登錄到系統(tǒng)中;
第三,從數(shù)據(jù)庫(kù)中取出PE樣本文件,把該文件輸入到虛擬機(jī)的目錄中;
第四,啟動(dòng)動(dòng)態(tài)分析和追蹤模塊,在虛擬機(jī)的XML文件里面記錄樣本文件的惡意行為特征;
第五,把XML文件傳送到物理機(jī)里面,并在數(shù)據(jù)庫(kù)中保存記錄結(jié)果。
(三)病毒行為追蹤
該模塊是本檢測(cè)系統(tǒng)的核心,包括斷點(diǎn)設(shè)置和行為捕捉兩個(gè)部分,功能是要追蹤和記錄虛擬機(jī)中樣本程序在運(yùn)行過(guò)程中做出的惡意行為,并保存所有惡意行為的數(shù)據(jù),通過(guò)虛擬機(jī)的控制模塊把數(shù)據(jù)傳送到數(shù)據(jù)庫(kù)里面[ 7 ]。
斷點(diǎn)設(shè)置就是要先通過(guò)行為捕捉的方法將需要捕獲的系統(tǒng)調(diào)用函數(shù)集中在固定文件中,比如User32.d11, Advapi32.d11, Kerne132.d11, Wininet.dll等文件,然后要把需要監(jiān)控的文件加載到系統(tǒng)內(nèi)存里面的模塊句柄,重新獲得需要監(jiān)控的API函數(shù)入口地址,在得到所有需要的地址后,在這些地址里面設(shè)置斷點(diǎn)INT3,使調(diào)試器獲得CPU主機(jī)的控制權(quán),然后進(jìn)入該模塊的第二個(gè)部分——行為捕捉部分。
在啟動(dòng)病毒行為追蹤模塊之后,虛擬機(jī)會(huì)開始運(yùn)行PE樣本程序,這時(shí)候會(huì)占用一定的內(nèi)存空間,在設(shè)置斷點(diǎn)之后,只要程序運(yùn)行到斷點(diǎn),那么就會(huì)進(jìn)入行為捕捉部分,使系統(tǒng)捕獲到文件調(diào)用系統(tǒng)函數(shù)的具體行為。具體來(lái)說(shuō)就是調(diào)試器會(huì)在待測(cè)文件樣本運(yùn)行到程序斷點(diǎn)的時(shí)候,獲取該中斷信息,在處理中斷的時(shí)候記錄該文件使用進(jìn)程中的上下文情況和環(huán)境,并把這些記錄傳入到自定義的相應(yīng)函數(shù)中進(jìn)行處理。
(四)特征向量生成
該模塊包括了病毒行為特征數(shù)據(jù)庫(kù)和生產(chǎn)特征向量?jī)蓚€(gè)部分。前者的功能是根據(jù)傳遞回來(lái)的信息,判定是否是病毒行為。如果是的話,就發(fā)出結(jié)束進(jìn)程的命令,并將處理結(jié)果反饋回驅(qū)動(dòng),具體過(guò)程就是通過(guò)調(diào)用Open Process 函數(shù),并以更高的權(quán)限打開進(jìn)程,然后通過(guò)Virtual AllocEx函數(shù)在該進(jìn)程中重新分配內(nèi)存,保存好需要加載的惡意文件路徑之后,調(diào)用Write Process Memory函數(shù)把惡意文件的路徑寫入分配得到的內(nèi)存中,調(diào)用函數(shù)地址,將惡意文件傳送到目標(biāo)的遠(yuǎn)程線程之中,確定是否為病毒行為特征后,根據(jù)監(jiān)控得知的PE文件行為,確定樣本的初始特征向量,最后篩選得出最終的病毒特征向量[ 8 ]。
(五)支持向量機(jī)學(xué)習(xí)
該模塊的設(shè)計(jì)是利用支持向量機(jī)所具有的“一對(duì)多”分類算法來(lái)對(duì)樣本進(jìn)行分類的[ 9 ]。在系統(tǒng)測(cè)試實(shí)驗(yàn)中,選取的樣本文件包括木馬、狹義病毒、后門、蠕蟲和正常的程序文件五種,一共需要五個(gè)SVM二類分類器,也就是說(shuō)這個(gè)模塊進(jìn)行的是文件的二類分類。在實(shí)驗(yàn)時(shí),輸入到這5個(gè)二類分類器中的樣本應(yīng)該有已知的和未知的,已知樣本可以是木馬,未知樣本可以使病毒、后門、蠕蟲等,通過(guò)比較分類結(jié)果,判斷出樣本所屬類型。而且這個(gè)模塊還能根據(jù)文件所傳遞出來(lái)的信息,判斷操作是否是對(duì)系統(tǒng)自身文件實(shí)施的,如果是就會(huì)開展自我保護(hù)功能,如果不是就會(huì)自動(dòng)跳過(guò)自我保護(hù)功能,去執(zhí)行其他的指令。
三、Win32 PE 病毒檢測(cè)系統(tǒng)評(píng)測(cè)
為了測(cè)試該系統(tǒng)對(duì)病毒的檢測(cè)效果,搜集了一千個(gè)病毒樣本進(jìn)行了檢測(cè),把所有樣本分為五組,每組二百個(gè),進(jìn)行了五次實(shí)驗(yàn)。測(cè)試結(jié)果表明,該系統(tǒng)對(duì)于正常樣本文件有很高的檢測(cè)準(zhǔn)確率,利用樣本的行為特征,生成特征向量,并通過(guò)支持向量學(xué)習(xí)模塊進(jìn)行分類在鑒定樣本是否是病毒方面也取得了很好的效果,而利用二類分類器也能夠很好的檢測(cè)病毒程序。
總的來(lái)說(shuō),該系統(tǒng)化被動(dòng)為主動(dòng),不再等病毒感染了用戶文件之后再去檢查和清除,而是在病毒的感染過(guò)程中采取措施進(jìn)行阻斷,所以這個(gè)病毒檢測(cè)系統(tǒng)是有效的[ 10 ]。
四、結(jié)論
隨著社會(huì)的發(fā)展,技術(shù)的提高,人們進(jìn)入了以互聯(lián)網(wǎng)為基礎(chǔ)的信息時(shí)代,惡意軟件不斷的進(jìn)化、升級(jí),尤其是近年來(lái),不法分子利用惡意軟件獲取計(jì)算機(jī)用戶的數(shù)據(jù)和文件的現(xiàn)象,成倍增長(zhǎng),很多不法分子從過(guò)去傳統(tǒng)式的假冒網(wǎng)址進(jìn)行釣魚詐騙,轉(zhuǎn)變成了和手機(jī)短信、電話、木馬等手段結(jié)合在一起的復(fù)雜型詐騙,對(duì)于計(jì)算機(jī)病毒的防范仍需加強(qiáng),還需要進(jìn)一步改進(jìn)防范病毒的科學(xué)技術(shù)。
本文針對(duì)目前計(jì)算機(jī)病毒的檢測(cè)技術(shù)方面的不足,根據(jù)WIN32 PE病毒的行為特征,設(shè)計(jì)了病毒檢測(cè)系統(tǒng),希望能夠加強(qiáng)用戶對(duì)于計(jì)算機(jī)病毒的防御能力。
參考文獻(xiàn):
[1] Binh L N,Huynh T L,Pang K K.Direct detection frequency discrimination optical receiver for minimum-shift keying format transmission[J].Journal of Lightwave Technology,2008,26(18):3234-3247.
[2] 張幼明,賈建祥.MSK信號(hào)的差分?jǐn)?shù)字解調(diào)方法[J].艦船電子工程,2008(1):77-79.
[3] 樊昌信,張甫翊,徐炳祥.通信原理[M].北京:國(guó)防工業(yè)出版社,2002.
[4] 胡敏.MSK數(shù)字化調(diào)制解調(diào)技術(shù)研究[D].長(zhǎng)沙:中南大學(xué),2007.
[5] 顧永仁.計(jì)算機(jī)病毒的防范及安全策略研究[J].電子技術(shù)與軟件工程,2015(1):232.
[6] 張蓉.計(jì)算機(jī)網(wǎng)絡(luò)安全和計(jì)算機(jī)病毒的防范措施[J].信息化建設(shè),2015(11):96.
[7] 張騫,康緋,舒輝,肖亞南.一種面向環(huán)境識(shí)別的惡意代碼完整性分析方法[J].計(jì)算機(jī)應(yīng)用研究,2016(2):513-517.
[8] 張俊.惡意軟件的取證分析方法研究[J].湖北警官學(xué)院學(xué)報(bào),2014(11):162-166.
[9] 肖體偉.計(jì)算機(jī)病毒及防范對(duì)策探索[J].產(chǎn)業(yè)與科技論壇,2014(18):85-86.
[10] 魏巍,紀(jì)威.32位PE文件分析器的設(shè)計(jì)與實(shí)現(xiàn)[J].山東科學(xué),2014(60:67-72.
作者簡(jiǎn)介:
張夢(mèng)佳(1994-),女,漢族,河南駐馬店人,南華大學(xué)經(jīng)濟(jì)管理學(xué)院碩士研究生(通訊作者);
鄭安然,湖南大學(xué)經(jīng)濟(jì)與貿(mào)易學(xué)院本科生;
陶瑜(1991-),男,土家族,四川成都人,南華大學(xué)經(jīng)濟(jì)管理學(xué)院碩士研究生。