2007年9月7日星期五

脫殼、虛擬機、啓發式、主動防禦殺毒軟件技術介紹

一、殺毒軟件引擎與病毒庫的關係

其實病毒庫與殺毒引擎沒有直接的關係,殺毒引擎的任務和功能非常簡單,就是對指定的文件或者程序進行判 斷其是否合法。而病毒庫,只不過是對殺毒引擎的一種補充,那個過程,就是殺毒引擎對文件或者程序判斷。明白這一點,就應該知道,好的殺毒軟件,重要在引擎 的優秀,病毒庫越大,殺毒速度肯定會降低。因為病毒庫殺毒的過程,是引擎把判斷能力交給病毒庫,用病毒庫與指定的文件進行對比判斷。

二、加殼、脫殼

1.什麼是加殼

所謂加殼,是一種通過一系列數學運算,將可執行程序文件或動態鏈接庫文件的編碼進行改變(目前還有一些加殼軟件可以壓縮、加密驅動程序),以達到縮小文件體積或加密程序編碼的目的。

當被加殼的程序運行時,外殼程序先被執行,然後由這個外殼程序負責將用戶原有的程序在內存中解壓縮,並把控制權交還給脫殼後的真正程序。一切操作自動完成,用戶不知道也無需知道殼程序是如何運行的。一般情況下,加殼程序和未加殼程序的運行結果是一樣的。

如何判斷一個可執行文件是否被加了殼呢?有一個簡單的方法(對中文軟件效果較明顯)。用記事本打開一個可執行文件,如果能看到軟件的提示信息則一般是未加殼的,如果完全是亂碼,則多半是被加殼的。

為什麼黑客能夠利用加殼技術來對抗反病毒軟件呢?眾所周知,目前殺毒軟件主要依靠特徵碼技術查殺病毒。由於加殼軟件會對源文件進行壓縮、變形,使加密前後的特徵碼完全不同。

脫 殼能力不強的殺毒軟件,對付“加殼”後病毒就需要添加兩條不同的特徵記錄。如果黑客換一種加殼工具加殼,則對於這些殺毒軟件來說又是一種新的病毒,必須添 加新的特徵記錄才能夠查殺。如果殺毒軟件的脫殼能力較強,則可以先將病毒文件脫殼,再進行查殺,這樣只需要一條記錄就可以對這些病毒通殺,不僅減小殺毒軟 件對系統資源的佔用,同時大大提升了其查殺病毒的能力。

2.脫殼

馬甲”能穿也能脫。相應的,有加殼也一定會有解殼(也叫脫殼)。脫殼主要有兩種方法:硬脫殼和動態脫殼。

第一種,是硬脫殼,這是指找出加殼軟件的加殼算法,寫出逆向算法,就像壓縮和解壓縮一樣。由於,目前很多“殼”均帶有加密、變形的特點,每次加殼生成的代碼都不一樣。硬脫殼對此無能為力,但由於其技術門檻較低,仍然被一些殺毒軟件所使用。

第二種,是動態脫殼。由於加殼的程序運行時必須還原成原始形態,即加殼程序會在運行時自行脫掉“馬甲”。目前,有一種脫殼方式是抓取(Dump)內存中的鏡像,再重構成標準的執行文件。相比硬脫殼方法,這種脫殼方法對自行加密、變形的殼處理效果更好。

三、虛擬機脫殼引擎(VUE)技術

對於病毒,如果讓其運行,則用戶計算機就會被病毒感染。因此,一種新的思路被提出,即給病毒構造一個仿真的環境,誘騙病毒自己脫掉“馬甲”。並且“虛擬環境”和用戶的計算機隔離,病毒在虛擬機的操作不會對用戶計算機有任何的影響。

“虛擬機脫殼”技術已經成為近年來全球安全業界公認的、解決這一問題的最有效利器。但由於編寫虛擬機系統需要解決虛擬cpu、虛擬周邊硬件設備、虛擬驅動程序等多個方面的困難。

四、啟發式殺毒

病 毒和正常程序的區別可以體現在許多方面,比較常見的如:通常一個應用程序在最初的指令,是檢查命令行輸入有無參數項、清屏和保存原來屏幕顯示等,而病毒程 序則沒有會這樣做的,通常它最初的指令是直接寫盤操作、解碼指令,或搜索某路徑下的可執行程序等相關操作指令序列。這些顯著的不同之處,一個熟練的程序員 在調試狀態下只需一瞥便可一目了然。啟發式代碼掃描技術實際上就是把這種經驗和知識移植到一個查病毒軟件中的具體程序體現。

啟發式 指的“自我發現的能力”或“運用某種方式或方法去判定事物的知識和技能。”一個運用啟發式掃描技術的病毒檢測軟件,實際上就是以特定方式實現的動態高度器 或反編譯器,通過對有關指令序列的反編譯逐步理解和確定其蘊藏的真正動機。例如,如果一段程序以如下序列開始: MOV AH ,5/INT,13h,即調用格式化盤操作的BIOS指令功能,那麼這段程序就高度可疑值得引起警覺,尤其是假如這段指令之前不存在取得命令行關於執行的 參數選項,又沒有要求用戶交互性輸入繼續進行的操作指令時,就可以有把握地認為這是一個病毒或惡意破壞的程序。

啟發式殺毒代表著未 來反病毒技術發展的必然趨勢,具備某種人工智能特點的反毒技術,向我們展示了一種通用的、不需升級(較省需要升級或不依賴於升級)的病毒檢測技術和產品的 可能性。由於諸多傳統技術無法企及的強大優勢,必將得到普遍的應用和迅速的發展。純粹的啟發式代碼分析技術的應用(不借助任何事先的對於被測目標病毒樣本 的研究和了解),已能達到80%以上的病毒檢出率,而其誤報率極易控制在0.1%之下,這對於僅僅使用傳統的基於對已知病毒的研究而抽取“特徵字串”的特 徵掃描技術的查毒軟件來說,是不可想像的,一次質的飛躍。在新病毒,新變種層出不窮,病毒數量不斷激增的今天,這種新技術的產生和應用更具有特殊的重要意 義。

五、主動防禦技術的概念

主動防禦技術這是目前炒得比較熱的一個概念。從概念上來講,是指對未知病毒的防範, 在沒有獲得病毒樣本之前阻止病毒的運作。目前主動防禦技術主要是針對未知病毒提出來的病毒防殺技術。也就是有些人所說的:通過病毒的行為特徵來判別其是否 為病毒並進行處理。病毒行為阻斷技術通過提取計算機病毒的共性特徵,如修改註冊表、自我複制、不斷連接網絡等,綜合這些病毒行為特徵來判斷其是否為病毒。

江民防病毒專家稱,主動防禦核心技術有“虛擬機技術”“病毒行為阻斷技術”等。虛擬機技術用軟件虛擬CPU環境,激活病毒,判斷其是否是病毒並清除。

瑞星病毒專家稱,“主動防禦”一是在未知病毒和未知程序方面,通過“行為判斷”技術識別大部分未被截獲的未知病毒和變種。另一方面,通過對漏洞攻擊行為進行監測,這樣可防止病毒利用系統漏洞對其它計算機進行攻擊,從而阻止病毒的爆發。

沒有留言: