史旭寧
摘要:文章首先對計算機惡意軟件作一概論,針對惡意軟件的特點,種類,介紹惡意軟件主要的檢測技術(shù),在此基礎(chǔ)上,針對基于免疫原理的惡意軟件檢測方法,論述了其原理、特點、發(fā)展,并提出了自己的一種實現(xiàn)方法,該方法通過采用程序運行時所產(chǎn)生的IRP序列與檢測器的匹配,可實現(xiàn)對絕大多數(shù)“非己”成份的判別,從而達到未知惡意軟件的檢測目標(biāo)。
關(guān)鍵詞:惡意軟件;特征碼檢測;行為檢測;啟發(fā)式檢測;免疫原理檢測
中圖分類號:TP393文獻標(biāo)識碼:A文章編號:1009-3044(2012)24-5810-03
Malware and its Detection Method
SHI Xu-ning
(Tongchuan Vocational and Technical College,Tongchuan 727031,China)
Abstract: In this article, I introduced computer malwares generally, including their types, features and the main testing techniques, and spe? cially gave a detailed introduction of my unique technique scheme which is based on detection of immune principle. I discussed its princi? ples, characteristics, development, and proposed my implementation method, the method can detect the majority of "non-self" component by matching the IRP sequence and the detector which are created by running programs, so as to achieve the goal of detecting unknown malware.
Key words: malware; signature detection; behavior detection; heuristic detection; detection of immune principle
隨著信息技術(shù),特別是互聯(lián)網(wǎng)的高速發(fā)展,網(wǎng)絡(luò)安全問題正受到人們越來越多地關(guān)注,對網(wǎng)絡(luò)安全的諸多威脅中,惡意軟件無疑是危害最大的,這也成為網(wǎng)絡(luò)安全領(lǐng)域研究的焦點。如何對計算機系統(tǒng)和網(wǎng)絡(luò)中的各種非法行為進行有效檢測和抑制,成為當(dāng)今計算機安全亟待解決的重要問題……
1惡意軟件概論
1.1惡意軟件的定義及特征
最復(fù)雜的一類計算機系統(tǒng)威脅來自于那些利用系統(tǒng)漏洞的程序(在此我們關(guān)注應(yīng)用程序和公共程 序),這類威脅稱作惡意軟件(MaliciousSoftware)。惡意軟件是一種被設(shè)計用來對目標(biāo)計算機造成破壞或者占用目標(biāo)計算機資源的軟件。它常被封裝或偽裝到合法軟件中,在某些情況下通過E-mail或可移動存儲介質(zhì)等方式向其他計算機傳播。
1.2惡意軟件的分類
惡意軟件可以分為兩類:需要主機程序的惡意軟件和獨立的惡意軟件。前者又稱為寄生惡意軟件,其不能作為某個實際程序、公共程序或系統(tǒng)程序獨立存在的程序片段,例如病毒和邏輯炸彈。后者是獨立的程序,可以被操作系統(tǒng)調(diào)度或運行,例如蠕蟲和僵尸網(wǎng)絡(luò)。也可通過是否可復(fù)制對惡意軟件進行分類。不進行復(fù)制的惡意軟件是被觸發(fā)器激活的程序或程序片段,例如后門和僵尸網(wǎng)絡(luò)。進行復(fù)制的惡意軟件在執(zhí)行時可能生成若干個自身副本,并在當(dāng)前系統(tǒng)或其他系統(tǒng)中被激活,例如病毒。
1.3惡意軟件的危害
惡意軟件在未明確提示用戶或未經(jīng)用戶許可的情況下,于目標(biāo)計算機或其他終端上安裝運行,其一般具有下述行為的一種或多種:強制安裝、瀏覽器劫持、竊取、修改用戶數(shù)據(jù)、惡意收集用戶信息、惡意卸載、惡意捆綁及其他侵犯用戶知情權(quán)、選擇權(quán)的惡意行為等。這些行為將嚴(yán)重侵犯用戶合法權(quán)益,甚至將為用戶及他人帶來巨大的經(jīng)濟或其他形式的利益損失。
2惡意軟件檢測的傳統(tǒng)方式
當(dāng)前惡意軟件的檢測技術(shù)主要有特征碼檢測法、行為檢測法和啟發(fā)式檢測法。這些技術(shù)原理各異,各自優(yōu)點突出而迷人,缺點明顯卻又難以彌補。這些技術(shù)的廣泛應(yīng)用有其深刻內(nèi)因,對其研究以“知己”也不乏驅(qū)動。
2.1特征碼檢測法
特征碼是被確定為只有某種惡意軟件才可能會有的一串二進制字符串,而這字符串通常是文件里對應(yīng)的代碼或匯編指令的地址。特征碼檢測法通過采集惡意軟件樣本,提取其特征碼,檢測時將特征碼與檢測樣本比較,判斷是否有樣本片段與此特征碼吻合,從而判定該軟件是否為惡意軟件。特征碼檢測法速度快,誤報率低,且占用資源少;但該方法只能檢測已知病毒,對于目前廣泛傳播的變形病毒、多態(tài)病毒等無能為力。
特征碼檢測法的高速高效使其被當(dāng)前主流殺毒軟件所采用。在某一種惡意軟件極度流行時,反病毒公司一般會采取計算整個惡意軟件的MD5或SHA-256作為特征碼的方法來加快查殺效率。
2.2行為檢測法
行為檢測法利用惡意軟件的特有行為特性檢測病毒。惡意軟件通常會有一些共同行為,且該類行為比較特殊,在正常程序中較為罕見。當(dāng)程序運行時,監(jiān)視其行為,如果發(fā)現(xiàn)了惡意軟件行為,即可判定該軟件是為惡意軟件。行為檢測法可發(fā)現(xiàn)未知病毒、可相當(dāng)準(zhǔn)確地預(yù)報多數(shù)未知病毒,但其誤報率較高,且實現(xiàn)困難。
行為檢測法因可檢測多數(shù)未知病毒而備受親睞,深入的研究帶來了該技術(shù)的不斷發(fā)展與成熟,從而使該技術(shù)得到不斷的推廣。一般的惡意軟件行為包括:占用INT 13H、修改DOS系統(tǒng)數(shù)據(jù)區(qū)的內(nèi)存總量、以COM和EXE文件做寫入動作、病毒程序與宿主程序的切換等。通過對這些行為的監(jiān)控,即可實現(xiàn)較為理想的惡意軟件檢測。
2.3啟發(fā)式檢測法
啟發(fā)式檢測法是虛擬機檢測和行為檢測的結(jié)合,從工作原理上可分為靜態(tài)啟發(fā)和動態(tài)啟發(fā)兩種,靜態(tài)啟發(fā)式通過簡單的反編譯,在不運行惡意軟件的情況下,核對惡意軟件頭靜態(tài)指令從而確定惡意軟件的一種技術(shù)。動態(tài)啟發(fā)式通過殺軟內(nèi)置的虛擬機技術(shù),給惡意軟件構(gòu)建一個仿真的運行環(huán)境,誘使惡意軟件在殺軟的模擬緩沖區(qū)中運行,如運行過程中檢測到可疑的動作,則判定為危險程序。啟發(fā)式檢測法優(yōu)點在于對未知病毒的防御,但針對不同類型的惡意軟件,需要用完全不同的規(guī)則來構(gòu)建啟發(fā)式分析器的判斷邏輯,實現(xiàn)較為困難,占有系統(tǒng)資源較多,還會導(dǎo)致過多的虛警,并存在可繞過方法。
啟發(fā)式檢測法屬于主動防御的一種,其主要針對:木馬、間諜、后門、下載者、已知病毒的變種,是當(dāng)前對付未知病毒的主要手段。該方法作為特征檢測技術(shù)的輔助手段,已經(jīng)用實踐經(jīng)驗證明了是檢測病毒的一個成功手段,它具備某種人工智能特點,向我們展示了實現(xiàn)一種通用的、不依賴于升級的惡意軟件檢測技術(shù)和產(chǎn)品的可能性。因此啟發(fā)式檢測法具有廣闊的應(yīng)用前景,但其自身的難以克服的缺點極大限制了它的發(fā)展。
3基于免疫原理的惡意軟件檢測
3.1免疫原理檢測法的原理
基于生物免疫原理的惡意軟件檢測法主要模擬生物免疫系統(tǒng)中核心思想,包括抗體的產(chǎn)生、自體耐受、克隆、免疫記憶等。
該方法的基本原理:計算機系統(tǒng)看作“自體”,把惡意軟件看作“非自體”或者“抗原”,通過已知惡意軟件可以生成相應(yīng)的“抗體”,該抗體能夠識別“抗原”,且“抗體”按照一定的算法進行變異和進化,可以實現(xiàn)免疫應(yīng)答(即一次應(yīng)答識別新“抗原”,二次應(yīng)答識別舊“抗原”),并保持自適應(yīng)性和自穩(wěn)定性的特征。該原理的核心在于能夠有效檢測已知惡意軟件并自適應(yīng)識別未知惡意軟件。
3.2免疫原理檢測法的特點
生物免疫系統(tǒng)具有良好的多樣性、分布性、自學(xué)習(xí)、自適應(yīng)和魯棒性等,將生物免疫原理應(yīng)用到惡意病毒檢測中,使得這些優(yōu)秀特性得到了極大發(fā)揮。理論研究表明,基于生物免疫原理的惡意軟件檢測系統(tǒng)能夠有效檢測已知、未知的惡意軟件,在實現(xiàn)較高檢測率的同時,可極大限度的控制誤報漏報率。同時,隨著系統(tǒng)的不斷“學(xué)習(xí)”,這種優(yōu)勢將愈加明顯。
3.3免疫原理檢測法的一種實現(xiàn)
1)抗原、抗體定義
抗原:采用惡意軟件運行時產(chǎn)生的IRP請求序列作為抗原。可選取部分高頻率IRP請求類型作為抗原組成(例如IRP_MJ_CRE? ATE、RP_MJ_CLEANUP等,最高頻的八種IRP請求類型即占總數(shù)的98.68%)。
抗體:采用可與抗原相匹配的IRP請求序列作為抗體(即檢測器)。檢測器可分為三種,未成熟檢測器:系統(tǒng)隨機生成,需經(jīng)過自體耐受才可以進行檢測;成熟檢測器:經(jīng)過自體耐受后存活的未成熟檢測器;記憶檢測器:成熟檢測器匹配到非自體抗原,且達到一定閾值后激活產(chǎn)生。
2)實現(xiàn)框架
①準(zhǔn)備階段:首先收集合理數(shù)量的正常程序運行時產(chǎn)生的IRP請求序列,即自體集合,以供自體耐受使用;之后隨機產(chǎn)生大量未成熟檢測器,以自體集合為基礎(chǔ)對其進行自體耐受,得到一定數(shù)量的成熟檢測器,并丟棄已經(jīng)過自體耐受的未成熟檢測器。通過該準(zhǔn)備階段,該實現(xiàn)已初步具備了惡意軟件檢測能力。
②檢測階段:對待檢測軟件進行檢測時,首先將其產(chǎn)生的IRP序列與記憶檢測器集合(初始階段為空)進行匹配,若達到一定閾值,則將該軟件判定為惡意軟件,并對與該惡意軟件匹配的記憶檢測器進行克隆變異,產(chǎn)生部分未成熟檢測器(需對這些未成熟檢測器進行自體耐受,以產(chǎn)生成熟檢測器用來更新、擴充成熟檢測器集合);若未達到設(shè)定閾值,則將待檢測軟件產(chǎn)生的IRP序列與成熟檢測器集合進行匹配,若達到一定閾值,則將該軟件判定為惡意軟件,并對與該惡意軟件匹配的成熟檢測器激活為記憶檢測器,從成熟檢測器集合中刪除,并加入記憶檢測器集合,同時對其進行克隆變異,產(chǎn)生部分未成熟檢測器(同樣需對這些未成熟檢測器進行自體耐受,以產(chǎn)生成熟檢測器用來更新、擴充成熟檢測器集合);若依舊未達到設(shè)定閾值,則該待測軟件安全,非惡意軟件。
3)關(guān)鍵過程描述
①自體耐受:未成熟檢測器需要經(jīng)過自體耐受,以生成成熟檢測器。即當(dāng)未成熟檢測器與自體集合相匹配時將其丟棄,否則即可將其激活為成熟檢測器。其中,檢測器長度、匹配度、最大匹配閾值等需根據(jù)實踐統(tǒng)計結(jié)果確定。匹配算法可采用柔性字符串匹