計(jì)算機(jī)病毒的檢測方法
檢測磁盤中的計(jì)算機(jī)病毒可分成檢測引導(dǎo)型計(jì)算機(jī)病毒和檢測文件型計(jì)算機(jī)病毒。這兩種檢測從原理上講是一樣的,但由于各自的存儲(chǔ)方式不同,檢測方法是有差別的。下面是學(xué)習(xí)啦小編跟大家分享的是計(jì)算機(jī)病毒的檢測方法,歡迎大家來閱讀學(xué)習(xí)。
計(jì)算機(jī)病毒的檢測方法一
2.4.1 比較法
比較法是用原始備份與被檢測的引導(dǎo)扇區(qū)或被檢測的文件進(jìn)行比較。比較時(shí)可以靠打印的代碼清單(比如DEBUG的D命令輸出格式)進(jìn)行比較,或用程序來進(jìn)行比較(如DOS的DISKCOMP、FC或PCTOOLS等其它軟件)。這種比較法不需要專用的查計(jì)算機(jī)病毒程序,只要用常規(guī)DOS軟件和PCTOOLS等工具軟件就可以進(jìn)行。而且用這種比較法還可以發(fā)現(xiàn)那些尚不能被現(xiàn)有的查計(jì)算機(jī)病毒程序發(fā)現(xiàn)的計(jì)算機(jī)病毒。因?yàn)橛?jì)算機(jī)病毒傳播得很快,新的計(jì)算機(jī)病毒層出不窮,由于目前還沒有做出通用的能查出一切計(jì)算機(jī)病毒,或通過代碼分析,可以判定某個(gè)程序中是否含有計(jì)算機(jī)病毒的查毒程序,發(fā)現(xiàn)新計(jì)算機(jī)病毒就只有靠比較法和分析法,有時(shí)必須結(jié)合這兩者來一同工作。
使用比較法能發(fā)現(xiàn)異常,如文件的長度有變化,或雖然文件長度未發(fā)生變化,但文件內(nèi)的程序代碼發(fā)生了變化。對(duì)硬盤主引導(dǎo)扇區(qū)或?qū)OS的引導(dǎo)扇區(qū)做檢查,比較法能發(fā)現(xiàn)其中的程序代碼是否發(fā)生了變化。由于要進(jìn)行比較,保留好原始備份是非常重要的,制作備份時(shí)必須在無計(jì)算機(jī)病毒的環(huán)境里進(jìn)行,制作好的備份必須妥善保管,寫好標(biāo)簽,并加上寫保護(hù)。
比較法的好處是簡單、方便,不需專用軟件。缺點(diǎn)是無法確認(rèn)計(jì)算機(jī)病毒的種類名稱。另外,造成被檢測程序與原始備份之間差別的原因尚需進(jìn)一步驗(yàn)證,以查明是由于計(jì)算機(jī)病毒造成的,或是由于DOS數(shù)據(jù)被偶然原因,如突然停電、程序失控、惡意程序等破壞的。這些要用到以后講的分析法,查看變化部分代碼的性質(zhì),以此來確證是否存在計(jì)算機(jī)病毒。另外,當(dāng)找不到原始備份時(shí),用比較法就不能馬上得到結(jié)論。從這里可以看到制作和保留原始主引導(dǎo)扇區(qū)和其它數(shù)據(jù)備份的重要性。
2.4.2 加總比對(duì)法
根據(jù)每個(gè)程序的檔案名稱、大小、時(shí)間、日期及內(nèi)容,加總為一個(gè)檢查碼,再將檢查碼附于程序的后面,或是將所有檢查碼放在同一個(gè)數(shù)據(jù)庫中,再利用此加總對(duì)比系統(tǒng),追蹤并記錄每個(gè)程序的檢查碼是否遭更改,以判斷是否感染了計(jì)算機(jī)病毒。一個(gè)很簡單的例子就是當(dāng)您把車停下來之后,將里程表的數(shù)字記下來。那么下次您再開車時(shí),只要比對(duì)一下里程表的數(shù)字,那么您就可以斷定是否有人偷開了您的車子。這種技術(shù)可偵測到各式的計(jì)算機(jī)病毒,但最大的缺點(diǎn)就是誤判斷高,且無法確認(rèn)是哪種計(jì)算機(jī)病毒感染的。對(duì)于隱形計(jì)算機(jī)病毒也無法偵測到。
2.4.3 搜索法.
搜索法是用每一種計(jì)算機(jī)病毒體含有的特定字符串對(duì)被檢測的對(duì)象進(jìn)行掃描。如果在被檢測對(duì)象內(nèi)部發(fā)現(xiàn)了某一種特定字節(jié)串,就表明發(fā)現(xiàn)了該字節(jié)串所代表的計(jì)算機(jī)病毒。國外對(duì)這種按搜索法工作的計(jì)算機(jī)病毒掃描軟件叫Virus Scanner。計(jì)算機(jī)病毒掃描軟件由兩部分組成:一部分是計(jì)算機(jī)病毒代碼庫,含有經(jīng)過特別選定的各種計(jì)算機(jī)病毒的代碼串;另一部分是利用該代碼庫進(jìn)行掃描的掃描程序。目前常見的防殺計(jì)算機(jī)病毒軟件對(duì)已知計(jì)算機(jī)病毒的檢測大多采用這種方法。計(jì)算機(jī)病毒掃描程序能識(shí)別的計(jì)算機(jī)病毒的數(shù)目完全取決于計(jì)算機(jī)病毒代碼庫內(nèi)所含計(jì)算機(jī)病毒的種類多少。顯而易見,庫中計(jì)算機(jī)病毒代碼種類越多,掃描程序能認(rèn)出的計(jì)算機(jī)病毒就越多。計(jì)算機(jī)病毒代碼串的選擇是非常重要的。短小的計(jì)算機(jī)病毒只有一百多個(gè)字節(jié),長的有上萬字節(jié)的。如果隨意從計(jì)算機(jī)病毒體內(nèi)選一段作為代表該計(jì)算機(jī)病毒的特征代碼串,可能在不同的環(huán)境中,該特征串并不真正具有代表性,不能用于將該串所對(duì)應(yīng)的計(jì)算機(jī)病毒檢查出來。選這種串做為計(jì)算機(jī)病毒代碼庫的特征串就是不合適的。
另一種情況是代碼串不應(yīng)含有計(jì)算機(jī)病毒的數(shù)據(jù)區(qū),數(shù)據(jù)區(qū)是會(huì)經(jīng)常變化的。代碼串一定要在仔細(xì)分析了程序之后才選出最具代表特性的,足以將該計(jì)算機(jī)病毒區(qū)別于其它計(jì)算機(jī)病毒的字節(jié)串。選定好的特征代碼串是很不容易的,是計(jì)算機(jī)病毒掃描程序的精華所在。一般情況下,代碼串是連續(xù)的若干個(gè)字節(jié)組成的串,但是有些掃描軟件采用的是可變長串,即在串中包含有一個(gè)到幾個(gè)“模糊”字節(jié)。掃描軟件遇到這種串時(shí),只要除“模糊”字節(jié)之外的字串都能完好匹配,則也能判別出計(jì)算機(jī)病毒。
除了前面說的選特征串的規(guī)則外,最重要的是一條是特征串必須能將計(jì)算機(jī)病毒與正常的非計(jì)算機(jī)病毒程序區(qū)分開。不然將非計(jì)算機(jī)病毒程序當(dāng)成計(jì)算機(jī)病毒報(bào)告給用戶,是假警報(bào),這種“狼來了”的假警報(bào)太多了,就會(huì)使用戶放松警惕,等真的計(jì)算機(jī)病毒一來,破壞就嚴(yán)重了;再就是若將這假警報(bào)送給殺計(jì)算機(jī)病毒程序,會(huì)將好程序給“殺死”了。
使用特征串的掃描法被查計(jì)算機(jī)病毒軟件廣泛應(yīng)用。當(dāng)特征串選擇得很好時(shí),計(jì)算機(jī)病毒檢測軟件讓計(jì)算機(jī)用戶使用起來很方便,對(duì)計(jì)算機(jī)病毒了解不多的人也能用它來發(fā)現(xiàn)計(jì)算機(jī)病毒。另外,不用專門軟件,用PCTOOLS等軟件也能用特征串掃描法去檢測特定的計(jì)算機(jī)病毒。
這種掃描法的缺點(diǎn)也是明顯的。第一是當(dāng)被掃描的文件很長時(shí),掃描所花時(shí)間也越多;第二是不容易選出合適的特征串;第三是新的計(jì)算機(jī)病毒的特征串未加入計(jì)算機(jī)病毒代碼庫時(shí),老版本的掃毒程序無法識(shí)別出新的計(jì)算機(jī)病毒;第四是懷有惡意的計(jì)算機(jī)病毒制造者得到代碼庫后,會(huì)很容易地改變計(jì)算機(jī)病毒體內(nèi)的代碼,生成一個(gè)新的變種,使掃描程序失去檢測它的能力;第五是容易產(chǎn)生誤報(bào),只要在正常程序內(nèi)帶有某種計(jì)算機(jī)病毒的特征串,即使該代碼段已不可能被執(zhí)行,而只是被殺死的計(jì)算機(jī)病毒體殘余,掃描程序仍會(huì)報(bào)警;第六是不易識(shí)別多維變形計(jì)算機(jī)病毒。不管怎樣,基于特征串的計(jì)算機(jī)病毒掃描法仍是今天用得最為普遍的查計(jì)算機(jī)病毒方法。
計(jì)算機(jī)病毒的檢測方法二
2.4.4 分析法
一般使用分析法的人不是普通用戶,而是防殺計(jì)算機(jī)病毒技術(shù)人員。使用分析法的目的在于:
1. 確認(rèn)被觀察的磁盤引導(dǎo)扇區(qū)和程序中是否含有計(jì)算機(jī)病毒;
2. 確認(rèn)計(jì)算機(jī)病毒的類型和種類,判定其是否是一種新的計(jì)算機(jī)病毒;
3. 搞清楚計(jì)算機(jī)病毒體的大致結(jié)構(gòu),提取特征識(shí)別用的字節(jié)串或特征字,用于增添到計(jì)算機(jī)病毒代碼庫供計(jì)算機(jī)病毒掃描和識(shí)別程序用;
4. 詳細(xì)分析計(jì)算機(jī)病毒代碼,為制定相應(yīng)的防殺計(jì)算機(jī)病毒措施制定方案。
上述四個(gè)目的按順序排列起來,正好是使用分析法的工作順序。使用分析法要求具有比較全面的有關(guān)計(jì)算機(jī)、DOS、Windows、網(wǎng)絡(luò)等的結(jié)構(gòu)和功能調(diào)用以及關(guān)于計(jì)算機(jī)病毒方面的各種知識(shí),這是與其他檢測計(jì)算機(jī)病毒方法不一樣的地方。
要使用分析法檢測計(jì)算機(jī)病毒,其條件除了要具有相關(guān)的知識(shí)外,還需要反匯編工具、二進(jìn)制文件編輯器等分析用工具程序和專用的試驗(yàn)計(jì)算機(jī)。因?yàn)榧词故呛苁炀毜姆罋⒂?jì)算機(jī)病毒技術(shù)人員,使用性能完善的分析軟件,也不能保證在短時(shí)間內(nèi)將計(jì)算機(jī)病毒代碼完全分析清楚。而計(jì)算機(jī)病毒有可能在被分析階段繼續(xù)傳染甚至發(fā)作,把軟盤硬盤內(nèi)的數(shù)據(jù)完全毀壞掉,這就要求分析工作必須在專門設(shè)立的試驗(yàn)計(jì)算機(jī)機(jī)上進(jìn)行,不怕其中的數(shù)據(jù)被破壞。在不具備條件的情況下,不要輕易開始分析工作,很多計(jì)算機(jī)病毒采用了自加密、反跟蹤等技術(shù),使得分析計(jì)算機(jī)病毒的工作經(jīng)常是冗長和枯燥的。特別是某些文件型計(jì)算機(jī)病毒的代碼可達(dá)10Kb以上,與系統(tǒng)的牽扯層次很深,使詳細(xì)的剖析工作十分復(fù)雜。
計(jì)算機(jī)病毒檢測的分析法是防殺計(jì)算機(jī)病毒工作中不可缺少的重要技術(shù),任何一個(gè)性能優(yōu)良的防殺計(jì)算機(jī)病毒系統(tǒng)的研制和開發(fā)都離不開專門人員對(duì)各種計(jì)算機(jī)病毒的詳盡而認(rèn)真的分析。
分析的步驟分為靜態(tài)分析和動(dòng)態(tài)分析兩種。靜態(tài)分析是指利用反匯編工具將計(jì)算機(jī)病毒代碼打印成反匯編指令后程序清單后進(jìn)行分析,看計(jì)算機(jī)病毒分成哪些模塊,使用了哪些系統(tǒng)調(diào)用,采用了哪些技巧,并將計(jì)算機(jī)病毒感染文件的過程翻轉(zhuǎn)為清除該計(jì)算機(jī)病毒、修復(fù)文件的過程;判斷哪些代碼可被用做特征碼以及如何防御這種計(jì)算機(jī)病毒。分析人員具有的素質(zhì)越高,分析過程越快、理解越深。動(dòng)態(tài)分析則是指利用DEBUG等調(diào)試工具在內(nèi)存帶毒的情況下,對(duì)計(jì)算機(jī)病毒做動(dòng)態(tài)跟蹤,觀察計(jì)算機(jī)病毒的具體工作過程,以進(jìn)一步在靜態(tài)分析的基礎(chǔ)上理解計(jì)算機(jī)病毒工作的原理。在計(jì)算機(jī)病毒編碼比較簡單的情況下,動(dòng)態(tài)分析不是必須的。但當(dāng)計(jì)算機(jī)病毒采用了較多的技術(shù)手段時(shí),必須使用動(dòng)、靜相結(jié)合的分析方法才能完成整個(gè)分析過程。
2.4.5 人工智能陷阱技術(shù)和宏病毒陷阱技術(shù)
人工智能陷阱是一種監(jiān)測計(jì)算機(jī)行為的常駐式掃描技術(shù)。它將所有計(jì)算機(jī)病毒所產(chǎn)生的行為歸納起來,一旦發(fā)現(xiàn)內(nèi)存中的程序有任何不當(dāng)?shù)男袨?,系統(tǒng)就會(huì)有所警覺,并告知使用者。這種技術(shù)的優(yōu)點(diǎn)是執(zhí)行速度快、操作簡便,且可以偵測到各式計(jì)算機(jī)病毒;其缺點(diǎn)就是程序設(shè)計(jì)難,且不容易考慮周全。不過在這千變?nèi)f化的計(jì)算機(jī)病毒世界中,人工智能陷阱掃描技術(shù)是一個(gè)至少具有主動(dòng)保護(hù)功能的新技術(shù)。
宏病毒陷阱技術(shù)(MacroTrap)是結(jié)合了搜索法和人工智能陷阱技術(shù),依行為模式來偵測已知及未知的宏病毒。其中,配合OLE2技術(shù),可將宏與文件分開,使得掃描速度變得飛快,而且更可有效地將宏病毒徹底清除。
2.4.6 軟件仿真掃描法
該技術(shù)專門用來對(duì)付多態(tài)變形計(jì)算機(jī)病毒(Polymorphic/MutationVirus)。多態(tài)變形計(jì)算機(jī)病毒在每次傳染時(shí),都將自身以不同的隨機(jī)數(shù)加密于每個(gè)感染的文件中,傳統(tǒng)搜索法的方式根本就無法找到這種計(jì)算機(jī)病毒。軟件仿真技術(shù)則是成功地仿真CPU執(zhí)行,在DOS虛擬機(jī)(Virtual Machine)下偽執(zhí)行計(jì)算機(jī)病毒程序,安全并確實(shí)地將其解密,使其顯露本來的面目,再加以掃描。
2.4.7 先知掃描法
先知掃描技術(shù)(VICE,Virus Instruction Code Emulation)是繼軟件仿真后的一大技術(shù)上突破。既然軟件仿真可以建立一個(gè)保護(hù)模式下的DOS虛擬機(jī),仿真CPU動(dòng)作并偽執(zhí)行程序以解開多態(tài)變形計(jì)算機(jī)病毒,那么應(yīng)用類似的技術(shù)也可以用來分析一般程序,檢查可疑的計(jì)算機(jī)病毒代碼。因此先知掃描技術(shù)將專業(yè)人員用來判斷程序是否存在計(jì)算機(jī)病毒代碼的方法,分析歸納成專家系統(tǒng)和知識(shí)庫,再利用軟件模擬技術(shù)(Software Emulation)偽執(zhí)行新的計(jì)算機(jī)病毒,超前分析出新計(jì)算機(jī)病毒代碼,對(duì)付以后的計(jì)算機(jī)病毒。