摘要:本文通過介紹部分常見的病毒引出主動防御概念,簡單解析主動防御的產生原因、基本原理、目前現狀以及今后的發展趨勢。
關鍵詞:病毒;主動防御
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)24-1176-02
1 引言
2007年惡意病毒的破壞性時史無前例的,從“熊貓燒香”、“AV終結者”到年末的“酷獅子”、“機器狗”等,國內外眾多知名殺毒軟件瞬間被它解除武裝。為了解決日益嚴重的安全威脅問題,從去年末到今年初,各安全廠商均打出“主動防御”的旗號強勢推出了各自的新產品。
那么,各個安全廠商所推崇的“主動防御”到底是一種什么樣的技術呢,它又是如何實現的呢?
2 淺析“主動防御”
眾所周知,以往主流的殺毒軟件,均采用“被動防御”式殺毒思路,即在新型病毒出現或大規模爆發以后,安全廠商才采取對策,把提取的病毒特征碼加入到病毒庫中,由此殺毒軟件才具備查殺病毒的能力。因此,一些新病毒泛濫初期,殺毒軟件并不具備查殺能力的,這個殺毒過程無疑是被動的。
主動防御則需要解決這個問題,為了改變被動挨打的局面,主動防御拋棄了殺毒軟件陳舊的查殺病毒模式,轉變成為以下方式:通過對系統行為的監控,分析并掃描目標程序或線程的行為,并根據預先設定的規則,判斷是否有病毒入侵并決定是否應該進行清除操作。任何一款病毒,只要進入用戶的操作系統,都會向注冊表和硬盤寫入文件,而這些寫入與非病毒的寫入是不同的,通過對比,主動防御可以判斷出哪些是病毒入侵,哪些是正常文件的寫入。通俗地說,使用了主動防御技術的殺毒軟件,無需更新病毒庫也可以查殺新的病毒,這是殺毒軟件的一個歷史性革新。
3 “主動防御”工作原理
主動防御技術首先會構造一個框架,并在其內填入一組預先定義好的規則,這些規則是根據反病毒工程師在分析了超過幾十萬的大量病毒(或者說惡意程序)的代碼特征和行為特征后提煉總結出來的,因此具有很大的代表性和前瞻性。主動防御會使用這組規則對被掃描對象內的代碼和運行的行為進行分析,以確定其是否含有惡意代碼和具有惡意行為。
當今的反病毒軟件,主要使用兩種方法來檢測惡意代碼(安全威脅):基于特征碼的精確檢測和主動防御。
要判斷一個主動防御技術的有效性以及它能否脫離基于特征碼的掃描技術而獨立承擔反病毒任務,就需要理解主動防御技術所基于的理論。
目前來看,各反病毒廠商采用的主動防御技術主要有:啟發式分析技術、入侵防御系統技術、緩沖區溢出檢測技術、基于策略的檢測技術、警告系統和行為阻止技術。而總的來說,反病毒廠商使用最多的是啟發式分析和行為阻止這兩項技術。
3.1 啟發式分析技術
啟發式分析技術又分為靜態分析和動態分析兩種。
“靜態分析”就是指使用啟發式分析器分析被掃描對象中的代碼(指令),判斷其中是否包含某些惡意的指令(反病毒程序中會定義一組預先收集到的惡意指令特征)。比如說,很多病毒會搜索可執行文件,創建注冊表鍵值等行為?!办o態”啟發式分析器就會對被掃描對象中的代碼進行解釋,檢查是否包含執行這些行為的指令,一旦找到這樣的指令,就調高“可疑分數”。當可疑分數高達一定值,就會將被掃描對象判斷為可疑的惡意程序。這種分析技術的優點在于,對系統資源使用較少,但是壞處就在于誤報率太高。
而“動態分析”是指由反病毒程序在計算機內存中專門開辟一個受嚴格保護的空間(由“虛擬機”技術來實現),并將被檢測對象的部分代碼拷貝進這個空間,使用一定的技術手段來誘使這段代碼執行,同時判斷其是否執行了某些惡意行為(反病毒程序中會定義一組預先收集的惡意行為特征)。一旦發現有匹配的惡意行為,就會報告其為對應的惡意程序。這種技術的優點在于準確度很高。
3.2 行為阻止技術
行為阻止技術是對程序的運行行為進行監控,并對任何的危險行為進行阻止的技術。它會檢查包括修改(添加/刪除/編輯)系統注冊表、注入系統進程、記錄鍵盤輸入、試圖隱藏程序等在內的大量潛在惡意行為。新一代的行為阻止技術在第一代技術的基礎上,做了很大的改進。它不會僅僅根據某個獨立的潛在惡意行為就提示風險,而是對程序行為執行的先后順序進行分析,從而以更加智能和成熟的方式來判斷程序的行為是否有惡意。該技術大大提高了對惡意行為判斷的準確率。
從以上介紹的主動防御技術來看,主動防御技術也需要基于一個“知識庫”進行工作。這個“知識庫”中包含了大量惡意程序的潛在惡意行為/指令特征。主動防御技術分析、監控系統內進程或程序的行為和指令,并將它們與“知識庫”中的特征進行比對,判斷是否符合。而這個“知識庫”需要反病毒專家對大量已知病毒進行分析,并且對它們的常見行為和指令進行歸納總結,并將提煉出來的特征值添加入“知識庫”。由此,我們可以得出結論,主動防御技術雖然能夠防御大量使用已有惡意行為的新惡意程序,但是,如果某些新的惡意程序采用了全新的方法(不在“知識庫”中的方法)來入侵、感染計算機,并盜取私密數據的話,主動防御技術仍然是無法對其進行有效防御的。因此,主動防御技術也需要不斷地更新其“知識庫”和其采用的判斷邏輯,否則可能還是會被新的威脅鉆了空子。
4 “主動防御現狀”
近兩年來,針對殺毒軟件的病毒庫更新永遠滯后于病毒出現的缺陷,國內幾大知名計算機反病毒軟件公司相繼推出“病毒主動防御”系統:
瑞星2008版宣稱其“智能主動防御”技術能阻止惡意程序執行,可以在病毒發作時進行主動而有效的全面防范,從技術層面上有效應對未知病毒的肆虐。
江民殺毒軟件KV2008是全新研發推出的計算機反病毒與網絡安全防護軟件,號稱是全球首家具有災難恢復功能的智能主動防御殺毒軟件。
賽門鐵克于其安全軟件中加入其首個主動式防御技術,強調其新的主動式防御技術將減少使用者判斷機會,并可更精細、僅局部封鎖威脅等功能。
此外,啟明星辰、綠萌、金山毒霸等國內知名軟件公司也紛紛使出看家本領,不斷推出帶有“主動防御”功能的系統及升級庫,而國外的諾頓、Kaspersky、macafee、Websense等殺毒巨頭亦已經開始向“主動防御”+“特征碼技術”過渡了。
目前涉足主動防御領域的各家廠商對“主動防御”產品都有自己不同的見解,表1為部分安全廠商對于“主動防御”的解釋。

綜合分析,雖然各大安全廠商對于“主動防御”的解釋各有差異,但大都基本能實現大致三方面的功能:
1) 應用程序層的防護,根據一定的規則,執行相應的應用程序。比如,某個應用程序執行時,可能會啟動其它程序,或插入其它程序中運行,就會觸發應用程序保護的規則。
2) 注冊表的防護,根據規則,響應對注冊表的讀寫操作。
3) 文件防護,對應用程序創建或訪問磁盤文件的防護,就是某程序運行后,會創建新的磁盤文件,或者需要訪問硬盤上某程序文件,從而觸發軟件的監視或保護功能
從某種程度上說,以上的各安全廠商所宣傳的功能基本符合主動防御的部分特征。
5 主動防御的未來發展
早在2006年3月,《PC World》雜志的測試就表明了主動防御技術的有效性不超過60%,必須通過結合傳統特征碼技術來最大限度保障計算機的安全。而隨著主動防御技術的發展,現在的成功率大概在60%~80%之間。很顯然主動防御還遠沒有達到可以完全信任的程度。
到目前為止,反病毒界仍然沒有更好的方法來替代傳統的殺毒方法,所以衡量安全解決方案有效性還要看主動防御的品質,以及面對新病毒威脅的反應時間,也就是說需要更智能的防御體系和更快速的升級速度。
主動防御是一個很廣泛的概念,盡管現在應用起來涉及到許多技術問題,但未來它必定是安全領域一種新的應用模式,可以這樣講:主動防御的發展是以人機交互技術為基礎的,它在安全領域中占得比重越大,表明產品越智能。但這并不意味著主動防御與被動防御存在沖突,相反它們之間倒是很好的互補。只是隨著技術的發展,主動防御在安全產品中會越來越主動!