謝辰
國際關(guān)系學(xué)院 北京 100091
隨著互聯(lián)網(wǎng)技術(shù)的日漸普及和高速發(fā)展,全球化通信網(wǎng)絡(luò)已經(jīng)成為大勢所趨。但網(wǎng)絡(luò)在提供巨大便利的同時,也存在種種安全隱患和威脅,其中危害最大影響最廣的莫過于計算機病毒。在網(wǎng)絡(luò)帶寬不斷升級的今天,計算機病毒的傳播速度和變種速度也隨之加快,問題也越來越嚴(yán)重,引起了人們的廣泛關(guān)注,并成為當(dāng)前計算機安全技術(shù)研究的熱點。據(jù)國內(nèi)外各大反病毒公司統(tǒng)計,2008 年截獲的各類新病毒樣本數(shù)已經(jīng)超過1000萬,日均截獲病毒樣本數(shù)萬。對于現(xiàn)如今計算機病毒變種的不斷增加,反計算機病毒的一個研究方向便是怎樣在不對病毒匯編代碼分析的前提下,分析出已知或未知的計算機病毒的全部行為特征。
傳染性是計算機病毒最重要的特征,是判斷一段程序代碼是否為計算機病毒的依據(jù)。計算機病毒是一段人為編制的計算機程序代碼,這段程序代碼一旦進(jìn)入計算機并得以執(zhí)行,它會搜尋其他符合其傳染條件的程序或存儲介質(zhì),確定目標(biāo)后再將自身代碼插入其中,達(dá)到自我繁殖的目的。是否具有傳染性是判別一個程序是否為計算機病毒的重要條件。
病毒隱藏在合法程序中,當(dāng)用戶調(diào)用合法程序時竊取到系統(tǒng)的控制權(quán),先于合法程序執(zhí)行,病毒的動作、目的對用戶是未知的,是未經(jīng)用戶允許的。
病毒一般是具有很高編程技巧、短小精悍的程序,它們一般附著在合法程序之中,也有個別的以隱含文件形式出現(xiàn),目的是不讓用戶發(fā)現(xiàn)它的存在。如果不經(jīng)過代碼分析,病毒程序與合法程序是不容易區(qū)別開來的。
大部分的病毒傳染系統(tǒng)之后一般不會馬上發(fā)作,它可長期隱藏在系統(tǒng)中,只有在滿足其特定條件時才啟動破壞模塊。如著名的在每月26日發(fā)作的CIH病毒。
病毒可分為良性病毒與惡性病毒。良性病毒多數(shù)都是編制者的惡作劇,它對文件、數(shù)據(jù)不具有破壞性,但會浪費系統(tǒng)資源。而惡性病毒則會破壞數(shù)據(jù)、刪除文件或加密磁盤、格式化磁盤等。
從對病毒檢測方面看,病毒還有不可預(yù)見性。不同種類的病毒,它們的代碼千差萬別。雖然反病毒技術(shù)在不斷發(fā)展,但是病毒的制作技術(shù)也在不斷的提高,病毒總是先于相應(yīng)反病毒技術(shù)出現(xiàn)。
計算機病毒一般都有一個或者幾個觸發(fā)條件。如果滿足其觸發(fā)條件,將激活病毒的傳染機制進(jìn)行傳染,或者激活病毒的表現(xiàn)部分或破壞部分。病毒的觸發(fā)條件越多,則傳染性越強。
本文的實驗環(huán)境為一臺PC機,其運行Windows XP SP3系統(tǒng)和裝有Windows XP SP3系統(tǒng)的Vmvare7.0虛擬機,其中還有OllyDBG、Filemon、SReng2、Regshot、SSM在開始實驗之前,我們先要確保虛擬機內(nèi)的系統(tǒng)純凈,然后保存虛擬機的快照。
運行Regshot進(jìn)行注冊表快照比較。
首先,運行Regshot軟件,然后選擇日志輸出路徑后點擊1st shot,即對純凈系統(tǒng)下的注冊表進(jìn)行快照,之后不要退出程序,接下來運行我們要測試的new orz.exe,再點擊2st shot,即對運行病毒后的注冊表進(jìn)行快照。在第二次快照完成之后,點擊compare便會在IE瀏覽器中顯示出注冊表的變化,由于該病毒修改表項過多,此處只展示一部分,如圖1所示。
圖1 病毒修改表
通過報告我們知道new orz共對注冊表造成影響有541項,通過上圖我們能夠發(fā)現(xiàn),此病毒對很多殺毒軟件進(jìn)行了映像劫持操作。
在進(jìn)行完注冊表對比后,我們將虛擬機系統(tǒng)還原至純凈快照,運行CMD,切換到C盤根目錄下,輸入netstat –an >netstat1.txt,這樣做是保存純凈系統(tǒng)下系統(tǒng)所開端口的記錄。之后運行病毒文件,再次輸入netstat –an >netstat2.txt。對比兩個TXT文檔的變化,在這里,用的是UltraEdit進(jìn)行的比較。
通過比較我們發(fā)現(xiàn)在運行new orz.exe之后,虛擬機有了一個端口為1401的TCP鏈接,指向一個特定IP的80端口,打開TCPview軟件,對所有TCP鏈接進(jìn)行監(jiān)控后發(fā)現(xiàn)這個1401端口正是new orz.exe打開用來與遠(yuǎn)程主機通信的。
再次將虛擬機還原到純凈快照處,這次我們要用到SReng2軟件。打開SReng2,點擊左側(cè)的智能掃描,然后開始掃描,保存掃描結(jié)果。在運行病毒后再次運行SReng2,并保存掃描結(jié)果,用UE對比兩次結(jié)果。我們能夠發(fā)現(xiàn)在進(jìn)程中多了new orz.exe進(jìn)程,同時發(fā)現(xiàn)其獲得了SeDebugPrivilege和SeLoadDriverPrivilege權(quán)限,并且在有一個不是在C:WindowsSystem32目錄下的svchost.exe也同樣獲得了這兩個權(quán)限。
在這里需要提前說明一點,根據(jù)前面的分析研究發(fā)現(xiàn)new orz.exe病毒也對Filemon進(jìn)行了映像劫持,所以需要將主程序名更改一下方可正常運行。同樣,還原虛擬機至純凈快照,打開Filemon,將過濾條件設(shè)置成為new orz.exe,然后運行病毒程序。由于信息量很大,只列舉一部分,如圖2所示,我們可以發(fā)現(xiàn)在其在C:Documents and SettingsAdministratorLocal SettingsTemp目錄下創(chuàng)建了綠化.bat,還發(fā)現(xiàn)其在相同的目錄下創(chuàng)建了svchost.exe和urlmOn.dll。
圖2 病毒程序
還原虛擬機系統(tǒng),運行PEID對new orz.exe進(jìn)行查殼,發(fā)現(xiàn)其使用的是WinUpack 0.39 final的殼。對其脫殼,脫殼過程不在這里進(jìn)行說明了。脫殼之后顯示是VC6.0編寫的。將其載入OD,查找字符串,結(jié)合我們剛才對new orz.exe行為的分析,我們發(fā)現(xiàn)了其創(chuàng)建的綠化.bat和修改的權(quán)限,圖3是病毒對注冊表的修改,我們可以發(fā)現(xiàn)其對大部分的殺毒軟件都進(jìn)行了映像劫持,同時還有任務(wù)管理器。
圖3 病毒對注冊表的修改
與Filemon一樣,在用SSM對病毒進(jìn)行動態(tài)監(jiān)控時,也需要將SSM主程序更改名稱。最后一次將系統(tǒng)還原至純凈,安裝SSM,并將系統(tǒng)內(nèi)的安全進(jìn)程設(shè)為信任。再次運行病毒,如圖4,可以發(fā)現(xiàn)new orz.exe運行了winlogon.exe ,之后services.exe運行了Beep.sys等等,在這里就不一一舉例了。
圖4 運行病毒
本文通過對new orz.exe計算機病毒為例,總結(jié)了使用虛擬機和軟件行為分析技術(shù)對檢測病毒行為的各個步驟:注冊表快照對比、端口開放與通信對比、利用SReng2比較分析、通過使用Filemon觀察病毒文件操作、研究分析OD字符串和使用HIPS軟件對病毒進(jìn)行動態(tài)觀察等,使得在接下來的查殺和今后的防御有了極大的幫助。
[1] 彭國軍,傅建明,張煥國.淺析反病毒技術(shù)現(xiàn)狀挑戰(zhàn)及發(fā)展趨勢[J].信息網(wǎng)絡(luò)安全.2009.
[2] 馮天樹.計算機病毒行為特征分析[M].黑客防線2010.
[3] 艾天予.計算機病毒的攻防技術(shù)探析[J].2010.
[4] 高敏芳,王冬.WinPE病毒實驗方案設(shè)計[J].實驗室科學(xué).2009.