計算機病毒的檢測方法

  檢測磁碟中的計算機病毒可分成檢測引導型計算機病毒和檢測檔案型計算機病毒。這兩種檢測從原理上講是一樣的,但由於各自的儲存方式不同,檢測方法是有差別的。下面是小編跟大家分享的是,歡迎大家來閱讀學習~

  一

  2.4.1 比較法

  比較法是用原始備份與被檢測的引導扇區或被檢測的檔案進行比較。比較時可以靠列印的程式碼清單***比如DEBUG的D命令輸出格式***進行比較,或用程式來進行比較***如DOS的DISKCOMP、FC或PCTOOLS等其它軟體***。這種比較法不需要專用的查計算機病毒程式,只要用常規DOS軟體和PCTOOLS等工具軟體就可以進行。而且用這種比較法還可以發現那些尚不能被現有的查計算機病毒程式發現的計算機病毒。因為計算機病毒傳播得很快,新的計算機病毒層出不窮,由於目前還沒有做出通用的能查出一切計算機病毒,或通過程式碼分析,可以判定某個程式中是否含有計算機病毒的查毒程式,發現新計算機病毒就只有靠比較法和分析法,有時必須結合這兩者來一同工作。

  使用比較法能發現異常,如檔案的長度有變化,或雖然檔案長度未發生變化,但檔案內的程式程式碼發生了變化。對硬碟主引導扇區或對DOS的引導扇區做檢查,比較法能發現其中的程式程式碼是否發生了變化。由於要進行比較,保留好原始備份是非常重要的,製作備份時必須在無計算機病毒的環境裡進行,製作好的備份必須妥善保管,寫好標籤,並加上防寫。

  比較法的好處是簡單、方便,不需專用軟體。缺點是無法確認計算機病毒的種類名稱。另外,造成被檢測程式與原始備份之間差別的原因尚需進一步驗證,以查明是由於計算機病毒造成的,或是由於DOS資料被偶然原因,如突然停電、程式失控、惡意程式等破壞的。這些要用到以後講的分析法,檢視變化部分程式碼的性質,以此來確證是否存在計算機病毒。另外,當找不到原始備份時,用比較法就不能馬上得到結論。從這裡可以看到製作和保留原始主引導扇區和其它資料備份的重要性。

  2.4.2 加總比對法

  根據每個程式的檔案名稱、大小、時間、日期及內容,加總為一個檢查碼,再將檢查碼附於程式的後面,或是將所有檢查碼放在同一個資料庫中,再利用此加總對比系統,追蹤並記錄每個程式的檢查碼是否遭更改,以判斷是否感染了計算機病毒。一個很簡單的例子就是當您把車停下來之後,將里程錶的數字記下來。那麼下次您再開車時,只要比對一下里程表的數字,那麼您就可以斷定是否有人偷開了您的車子。這種技術可偵測到各式的計算機病毒,但最大的缺點就是誤判斷高,且無法確認是哪種計算機病毒感染的。對於隱形計算機病毒也無法偵測到。

  2.4.3 搜尋法.

  搜尋法是用每一種計算機病毒體含有的特定字串對被檢測的物件進行掃描。如果在被檢測物件內部發現了某一種特定位元組串,就表明發現了該位元組串所代表的計算機病毒。國外對這種按搜尋法工作的計算機病毒掃描軟體叫Virus Scanner。計算機病毒掃描軟體由兩部分組成:一部分是計算機病毒程式碼庫,含有經過特別選定的各種計算機病毒的程式碼串;另一部分是利用該程式碼庫進行掃描的掃描程式。目前常見的防殺計算機病毒軟體對已知計算機病毒的檢測大多采用這種方法。計算機病毒掃描程式能識別的計算機病毒的數目完全取決於計算機病毒程式碼庫內所含計算機病毒的種類多少。顯而易見,庫中計算機病毒程式碼種類越多,掃描程式能認出的計算機病毒就越多。計算機病毒程式碼串的選擇是非常重要的。短小的計算機病毒只有一百多個位元組,長的有上萬位元組的。如果隨意從計算機病毒體內選一段作為代表該計算機病毒的特徵程式碼串,可能在不同的環境中,該特徵串並不真正具有代表性,不能用於將該串所對應的計算機病毒檢查出來。選這種串做為計算機病毒程式碼庫的特徵串就是不合適的。

  另一種情況是程式碼串不應含有計算機病毒的資料區,資料區是會經常變化的。程式碼串一定要在仔細分析了程式之後才選出最具代表特性的,足以將該計算機病毒區別於其它計算機病毒的位元組串。選定好的特徵程式碼串是很不容易的,是計算機病毒掃描程式的精華所在。一般情況下,程式碼串是連續的若干個位元組組成的串,但是有些掃描軟體採用的是可變長串,即在串中包含有一個到幾個“模糊”位元組。掃描軟體遇到這種串時,只要除“模糊”位元組之外的字串都能完好匹配,則也能判別出計算機病毒。

  除了前面說的選特徵串的規則外,最重要的是一條是特徵串必須能將計算機病毒與正常的非計算機病毒程式區分開。不然將非計算機病毒程式當成計算機病毒報告給使用者,是假警報,這種“狼來了”的假警報太多了,就會使使用者放鬆警惕,等真的計算機病毒一來,破壞就嚴重了;再就是若將這假警報送給殺計算機病毒程式,會將好程式給“殺死”了。

  使用特徵串的掃描法被查計算機病毒軟體廣泛應用。當特徵串選擇得很好時,計算機病毒檢測軟體讓計算機使用者使用起來很方便,對計算機病毒瞭解不多的人也能用它來發現計算機病毒。另外,不用專門軟體,用PCTOOLS等軟體也能用特徵串掃描法去檢測特定的計算機病毒。

  這種掃描法的缺點也是明顯的。第一是當被掃描的檔案很長時,掃描所花時間也越多;第二是不容易選出合適的特徵串;第三是新的計算機病毒的特徵串未加入計算機病毒程式碼庫時,老版本的掃毒程式無法識別出新的計算機病毒;第四是懷有惡意的計算機病毒製造者得到程式碼庫後,會很容易地改變計算機病毒體內的程式碼,生成一個新的變種,使掃描程式失去檢測它的能力;第五是容易產生誤報,只要在正常程式內帶有某種計算機病毒的特徵串,即使該程式碼段已不可能被執行,而只是被殺死的計算機病毒體殘餘,掃描程式仍會報警;第六是不易識別多維變形計算機病毒。不管怎樣,基於特徵串的計算機病毒掃描法仍是今天用得最為普遍的查計算機病毒方法。

  

  2.4.4 分析法

  一般使用分析法的人不是普通使用者,而是防殺計算機病毒技術人員。使用分析法的目的在於:

  1. 確認被觀察的磁碟引導扇區和程式中是否含有計算機病毒;

  2. 確認計算機病毒的型別和種類,判定其是否是一種新的計算機病毒;

  3. 搞清楚計算機病毒體的大致結構,提取特徵識別用的位元組串或特徵字,用於增添到計算機病毒程式碼庫供計算機病毒掃描和識別程式用;

  4. 詳細分析計算機病毒程式碼,為制定相應的防殺計算機病毒措施制定方案。

  上述四個目的按順序排列起來,正好是使用分析法的工作順序。使用分析法要求具有比較全面的有關計算機、DOS、Windows、網路等的結構和功能呼叫以及關於計算機病毒方面的各種知識,這是與其他檢測計算機病毒方法不一樣的地方。

  要使用分析法檢測計算機病毒,其條件除了要具有相關的知識外,還需要反彙編工具、二進位制檔案編輯器等分析用工具程式和專用的試驗計算機。因為即使是很熟練的防殺計算機病毒技術人員,使用效能完善的分析軟體,也不能保證在短時間內將計算機病毒程式碼完全分析清楚。而計算機病毒有可能在被分析階段繼續傳染甚至發作,把軟盤硬碟內的資料完全毀壞掉,這就要求分析工作必須在專門設立的試驗計算機機上進行,不怕其中的資料被破壞。在不具備條件的情況下,不要輕易開始分析工作,很多計算機病毒採用了自加密、反跟蹤等技術,使得分析計算機病毒的工作經常是冗長和枯燥的。特別是某些檔案型計算機病毒的程式碼可達10Kb以上,與系統的牽扯層次很深,使詳細的剖析工作十分複雜。

  計算機病毒檢測的分析法是防殺計算機病毒工作中不可缺少的重要技術,任何一個性能優良的防殺計算機病毒系統的研製和開發都離不開專門人員對各種計算機病毒的詳盡而認真的分析。

  分析的步驟分為靜態分析和動態分析兩種。靜態分析是指利用反彙編工具將計算機病毒程式碼列印成反彙編指令後程序清單後進行分析,看計算機病毒分成哪些模組,使用了哪些系統呼叫,採用了哪些技巧,並將計算機病毒感染檔案的過程翻轉為清除該計算機病毒、修復檔案的過程;判斷哪些程式碼可被用做特徵碼以及如何防禦這種計算機病毒。分析人員具有的素質越高,分析過程越快、理解越深。動態分析則是指利用DEBUG等除錯工具在記憶體帶毒的情況下,對計算機病毒做動態跟蹤,觀察計算機病毒的具體工作過程,以進一步在靜態分析的基礎上理解計算機病毒工作的原理。在計算機病毒編碼比較簡單的情況下,動態分析不是必須的。但當計算機病毒採用了較多的技術手段時,必須使用動、靜相結合的分析方法才能完成整個分析過程。

  2.4.5 人工智慧陷阱技術和巨集病毒陷阱技術

  人工智慧陷阱是一種監測計算機行為的常駐式掃描技術。它將所有計算機病毒所產生的行為歸納起來,一旦發現記憶體中的程式有任何不當的行為,系統就會有所警覺,並告知使用者。這種技術的優點是執行速度快、操作簡便,且可以偵測到各式計算機病毒;其缺點就是程式設計難,且不容易考慮周全。不過在這千變萬化的計算機病毒世界中,人工智慧陷阱掃描技術是一個至少具有主動保護功能的新技術。

  巨集病毒陷阱技術***MacroTrap***是結合了搜尋法和人工智慧陷阱技術,依行為模式來偵測已知及未知的巨集病毒。其中,配合OLE2技術,可將巨集與檔案分開,使得掃描速度變得飛快,而且更可有效地將巨集病毒徹底清除。

  2.4.6 軟體模擬掃描法

  該技術專門用來對付多型變形計算機病毒***Polymorphic/MutationVirus***。多型變形計算機病毒在每次傳染時,都將自身以不同的隨機數加密於每個感染的檔案中,傳統搜尋法的方式根本就無法找到這種計算機病毒。軟體模擬技術則是成功地模擬CPU執行,在DOS虛擬機器***Virtual Machine***下偽執行計算機病毒程式,安全並確實地將其解密,使其顯露本來的面目,再加以掃描。

  2.4.7 先知掃描法

  先知掃描技術***VICE,Virus Instruction Code Emulation***是繼軟體模擬後的一大技術上突破。既然軟體模擬可以建立一個保護模式下的DOS虛擬機器,模擬CPU動作並偽執行程式以解開多型變形計算機病毒,那麼應用類似的技術也可以用來分析一般程式,檢查可疑的計算機病毒程式碼。因此先知掃描技術將專業人員用來判斷程式是否存在計算機病毒程式碼的方法,分析歸納成專家系統和知識庫,再利用軟體模擬技術***Software Emulation***偽執行新的計算機病毒,超前分析出新計算機病毒程式碼,對付以後的計算機病毒。