殺毒軟件的原理

2021-02-16    分類: 網(wǎng)站建設(shè)

殺毒軟件(Anti-virus Software),也稱反病毒軟件或防毒軟件,是可以用來掃描文件,以確定和消除計算機(jī)病毒、特洛伊木馬和其他惡意軟件的一類軟件。殺毒軟件一般由掃描器、病毒庫與虛擬機(jī)組成。

對于一款殺毒軟件來說,一次成功的病毒查殺過程,通常都要經(jīng)歷病毒識別、病毒報警、病毒清除、文件或系統(tǒng)復(fù)原這幾個過程。最關(guān)鍵的是殺毒引擎技術(shù),從廣義上來講,是指通過文件、網(wǎng)頁監(jiān)視等實時監(jiān)控行為,運(yùn)用文件識別技術(shù)來完成病毒掃描、識別、報警以及清除,甚至防御的一整套的機(jī)制,因此引擎技術(shù)也決定了殺毒軟件的優(yōu)劣,而引擎所包含的眾多技術(shù)中,病毒識別技術(shù)又是重中之重。病毒庫是存儲病毒的特征碼。而虛擬機(jī)可以使病毒在一個由殺毒軟件構(gòu)建的虛擬環(huán)境中執(zhí)行,與現(xiàn)實的CPU、硬盤等完全隔離,從而可以更加深入的檢測文件的安全性。

1、檢測殺毒軟件的方法

檢測病毒方法通常有:特征代碼法、校驗和法、行為監(jiān)測法、軟件模擬法、啟發(fā)式掃描。

特征代碼法:“同一病毒或同類病毒的某一部分代碼相同”的原理來識別病毒文件。該技術(shù)是利用留在受感染文件中的病毒特征值進(jìn)行檢測。發(fā)現(xiàn)新病毒后,對其進(jìn)行分析,根據(jù)其特征編成病毒碼,加入到數(shù)據(jù)庫中。今后在執(zhí)行查毒程序時,通過對比文件與病毒數(shù)據(jù)庫中的病毒特征碼,檢查文件是否含有病毒。

校驗和法:此法計算文件的校驗和并保存,可定期或調(diào)用文件時進(jìn)行對比,從而判斷文件是否被病毒感染。

行為監(jiān)測法:此法根據(jù)病毒的行為特征來識別病毒,這需要對病毒行為進(jìn)行詳細(xì)的分類和研究,分析那些病毒共同的行為,以及正常程序的罕見行為,根據(jù)程序運(yùn)行時的行為進(jìn)行病毒判斷和預(yù)警。

軟件模擬法:這種方法通過模擬病毒運(yùn)行的方式來檢測病毒特征。

啟發(fā)式掃描是特征碼掃描的一個分支,病毒完成特定的功能需要有相應(yīng)的代碼,啟發(fā)式掃描的特征碼就是針對病毒的這些功能總結(jié)出來的一套可以判定文件行為的代碼。

啟發(fā)式掃描就是給各種威脅計算機(jī)安全的代碼進(jìn)行加權(quán),舉一個簡單的例子,殺毒軟件設(shè)置了如下加權(quán)標(biāo)準(zhǔn):

在系統(tǒng)目錄下釋放文件得20分

格式化分區(qū)得100分

插入遠(yuǎn)程線程得50分

……………

一個新病毒,他會在系統(tǒng)目錄下釋放3個文件并且會插入到IE的進(jìn)程中,殺毒軟件使用了啟發(fā)式掃描并定義了一個判定病毒的分?jǐn)?shù)。假設(shè)這里的分?jǐn)?shù)為60分,當(dāng)殺毒軟件對某文件的加權(quán)得分達(dá)到60分之后,就將該文件判定為病毒,不到60分則放過該文件。

2、脫殼

加殼其實就是把木馬病毒文件用加密算法壓縮,讓殺毒引擎無法讀取這個文件,從而不能和特征庫匹配。

加殼和脫殼,簡單說就是軟件的加密和解密。病毒、木馬加殼已經(jīng)是非常普遍的現(xiàn)象了,目前主要有兩種脫殼技術(shù):算法脫殼和動態(tài)脫殼,目前主流的殺毒軟件都引入了虛擬機(jī)技術(shù),雖然這會占用一定的系統(tǒng)資源,但使帶殼的病毒文件,運(yùn)行于虛擬機(jī)之上,不僅可以更好的識別各種殼,還可以有效防止病毒真正的感染文件。

算法脫殼:此法是根據(jù)加殼程序的解密算法對病毒進(jìn)行脫殼,雖然有速度快、消耗資源少的優(yōu)點,但也有無法脫變形殼的缺點。不過,很多殺毒軟件還是能夠向用戶發(fā)出警報,以彌補(bǔ)無法脫殼的缺憾。

動態(tài)脫殼:眾所周知,只有讓加過殼的程序運(yùn)行起來,才能將其還原成本來的面目,此時為了避免程序運(yùn)行后真正感染系統(tǒng)文件,因此引入了虛擬機(jī)技術(shù),為帶殼的病毒程序虛擬一個計算機(jī)環(huán)境,使它運(yùn)行于虛擬環(huán)境。此法雖優(yōu)勢明顯,但也會消耗很多的系統(tǒng)資源。

3、特征碼掃描樣例

病毒特征碼需要滿足以下幾個要求:

1、不能從數(shù)據(jù)區(qū)提取,因為數(shù)據(jù)區(qū)的內(nèi)容很容易改變,一旦病毒程序變更版本,改變了數(shù)據(jù)內(nèi)容,特征碼就會失效。而其它的區(qū)塊則相對來說保險一些。

2、在保持特征碼的唯一性的前提下,應(yīng)當(dāng)盡量使得特征碼短小精悍,從而減少檢測過程中的時間與空間的復(fù)雜度,提高檢測效率。

3、經(jīng)過詳細(xì)的逆向分析之后選取出來的特征碼,才足以將該病毒與其它病毒或正常程序相區(qū)別。

4、病毒程序的特征碼一定不能匹配到普通程序,比如選取病毒入口點的二進(jìn)制代碼,就必然出現(xiàn)誤報的情況。

5、特征碼的長度應(yīng)當(dāng)控制在64個字節(jié)以內(nèi)。

病毒文件中總會存在一些可供識別的字符串,很多時候,這些字符串是某個病毒所特有的,因此這種方式適用于所有病毒的特征碼的提取。采用這種方式甚至還能識別某一大類病毒,但是缺點是需要耗費比較多的掃描時間。以我們之前討論過的“熊貓燒香”病毒為例,經(jīng)過我們之前的逆向分析可以知道,病毒最開始會使用“xboy”以及“whboy”這兩個字符串來進(jìn)行解密的操作。比如我們嘗試一下,在病毒程序的二進(jìn)制代碼中搜索“whboy”:


相信一般的程序中不會出現(xiàn)“whboy”以及“xboy”這兩段字符,因此就可以考慮將這兩個字符串或者其中的一個字符串作為“熊貓燒香”病毒的特征碼。這樣只要對目標(biāo)程序中的可打印字符串進(jìn)行檢索,如果發(fā)現(xiàn)了“whboy”就可以認(rèn)為目標(biāo)程序是“熊貓燒香”病毒程序。這樣即便是病毒出現(xiàn)了變種,只要它依舊包含有“whboy”,我們就依然能夠?qū)崿F(xiàn)查殺的工作?;蛘呶覀円部梢钥紤]使用更長的字符串,比如上圖中開始的那32個字節(jié),即“武漢男生感染下載者**”,將其十六進(jìn)制代碼提取出來作為特征碼。將這段字符串作為“熊貓燒香”的特征碼。然后可以使用PEiD查看一下該段代碼所在的區(qū)段:


可見,文件偏移0x0c040位于CODE,即代碼區(qū)段中,那么其實在進(jìn)行匹配的時候,我們只要檢索目標(biāo)程序的這個區(qū)段就可以了。或者為了方便起見,我們在檢測目標(biāo)程序時,只檢測位于文件偏移0x0c040處的字符,如果能夠匹配病毒特征碼,就認(rèn)為目標(biāo)程序是病毒。

當(dāng)前標(biāo)題:殺毒軟件的原理
文章來源:http://muchs.cn/news18/101218.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、外貿(mào)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、品牌網(wǎng)站建設(shè)、企業(yè)建站、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化