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