|
四種絕招檢測硬盤與內(nèi)存中的隱藏病毒
|
來源:中關(guān)村在線 2007-11-21 11:13:36
|
病毒要進(jìn)行傳染,必然會留下痕跡。生物醫(yī)學(xué)病毒如此,電腦病毒也是一樣。檢測電腦病毒,就要到病毒寄生場所去檢查,發(fā)現(xiàn)異常情況,并進(jìn)而驗(yàn)明“正身”,確認(rèn)電腦病毒的存在。電腦病毒靜態(tài)時(shí)存儲于硬盤中,被激活時(shí)駐留在內(nèi)存中,因此對電腦病毒的檢測可以分為對硬盤的檢 從原始的、未受病毒感染的DOS系統(tǒng)軟盤啟動,可以保證內(nèi)存中不帶病毒。啟動必須是上電啟動而不是按鍵盤上的“Alt+Ctrl+Del”三鍵的那種熱啟動,因?yàn)槟承┎《究梢酝ㄟ^截取鍵盤中斷,將自己駐留在內(nèi)存中。檢測硬盤中的病毒,啟動系統(tǒng)軟盤的DOS版本號應(yīng)該等于或高于硬盤內(nèi)DOS系統(tǒng)的版本號。如果硬盤上使用了硬盤管理軟件DM、ADM,硬盤壓縮存儲管理軟件Stacker、DoubleSpace等,啟動系統(tǒng)軟盤時(shí)應(yīng)把這些軟件的驅(qū)動程序包括在軟盤上,并把它們寫入config.sys文件中,否則用系統(tǒng)軟盤引導(dǎo)啟動后,將不能訪問硬盤上的所有分區(qū),使躲藏在其中的病毒逃過檢查。 檢測硬盤中的病毒可分成檢測引導(dǎo)區(qū)型病毒和檢測文件型病毒。這兩種檢測的原理上相同,但由于病毒的存儲方式不同,檢測方法還是有差別的。主要是基于下列四種方法:比較被檢測對象與原始備份的比較法;利用病毒特征代碼串進(jìn)行查找的搜索法;搜索病毒體內(nèi)特定位置的特征字識別法;運(yùn)用反匯編技術(shù)分析被檢測對象,確證是否為病毒的分析法。 比較法 這是用原始備份與被檢測的引導(dǎo)扇區(qū)或被檢測的文件進(jìn)行比較的方法,可以用打印的代碼清單(比如Debug的D命令輸出格式)進(jìn)行比較,也可用程序來進(jìn)行比較(如DOS的DISKCOMP、COMP或PCTOOLS等其它軟件)。比較法不需要專用的查病毒程序,只要用常規(guī)DOS軟件和PCTOOLS等工具軟件就可以進(jìn)行,而且還可以發(fā)現(xiàn)那些尚不能被現(xiàn)有的殺毒軟件發(fā)現(xiàn)的計(jì)算機(jī)病毒。因?yàn)椴《緜鞑サ煤芸欤虏《緦映霾桓F,而目前還沒有能查出一切病毒的通用程序,或通過代碼分析,可以判定某個(gè)程序中是否含有病毒的查毒程序,所以只有靠比較法和分析法,或這兩種方法相結(jié)合來發(fā)現(xiàn)新病毒。 對硬盤的主引導(dǎo)區(qū)或?qū)OS的引導(dǎo)扇區(qū)作檢查,用比較法能發(fā)現(xiàn)其中的程序源代碼是否發(fā)生了變化。由于要進(jìn)行比較,因此保留好原始備份是非常重要的。制作備份時(shí)必須在無電腦病毒的環(huán)境里進(jìn)行,制作好的備份必須妥善保管,寫好標(biāo)簽,貼好寫保護(hù)。比較法的好處是簡單、方便,不用專用軟件;缺點(diǎn)是無法確認(rèn)病毒的種類名稱。另外,造成被檢測程序與原始備份之間差別的原因尚需進(jìn)一步驗(yàn)證,以查明是電腦病毒造成的,還是DOS數(shù)據(jù)被偶然原因,如突然停電、程序失控、惡意程序等破壞的。這些要用到以后講的分析法,查看變化部分代碼的性質(zhì),以此來確認(rèn)是否存在病毒。 搜索法 這種方法主要是對每一種病毒含有的特定字符串進(jìn)行掃描,如果在被檢測對象內(nèi)部發(fā)現(xiàn)了某一種特定字節(jié)串,就表明發(fā)現(xiàn)了該字節(jié)串所代表的病毒。國外稱這種按搜索法工作的病毒掃描軟件為“Scanner”。這種病毒掃描軟件由兩部分組成:一部分是病毒代碼庫,含有經(jīng)過特別選定的各種電腦病毒的代碼串;另一部分是利用該代碼庫進(jìn)行掃描的掃描程序,病毒掃描程序能識別的電腦病毒的數(shù)目完全取決于病毒代碼庫內(nèi)所含病毒種類的多少。 病毒代碼串的選擇是非常重要的,短小的病毒代碼只有一百多個(gè)字節(jié),長的也只有10KB字節(jié)。一定要在仔細(xì)分析程序之后選出最具代表特性的,足以將該病毒區(qū)別于其它病毒和該病毒的其它變種的代碼串。一般情況下,代碼串是由連續(xù)若干個(gè)字節(jié)組成的,但是有些掃描軟件采用的是可變長串,即在串中包含有一個(gè)到幾個(gè)“模糊”字節(jié)。掃描軟件遇到這種串時(shí),只要除“模糊”字節(jié)之外的字串都能完好匹配,就也能夠判別出病毒。另外,特征串還必須能將病毒與正常的非病毒程序區(qū),不然就會出現(xiàn)“假報(bào)、誤報(bào)”。特征字識別法 這是基于特征串掃描法發(fā)展起來的一種方式,運(yùn)行速度較快、誤報(bào)頻率較低。特征字識別法只須從病毒體內(nèi)抽取很少的幾個(gè)關(guān)鍵特征字,組成特征字庫。由于需要處理的字節(jié)很少,又不必進(jìn)行串匹配,因此大大加快了識別速度,當(dāng)被處理的程序很大時(shí),用這種辦法比較合適。由于特征字識別法更注意電腦病毒的“程序活性”,因此減少了錯報(bào)的可能性。使用基于特征串掃描法的查病毒軟件方法與使用基于特征字識別法的查病毒軟件方法是一樣的,只要運(yùn)行查毒程序,就能將已知的病毒檢查出來。這兩種方法的使用,都須要不斷地對病毒庫進(jìn)行擴(kuò)充,一旦捕捉到病毒,經(jīng)過提取特征并加入到病毒庫,就能使查病毒程序多檢查出一種新病毒來。 分析法 這種方法一方面可以確認(rèn)被觀察的磁盤引導(dǎo)區(qū)和程序中是否含有病毒,另一方面可以辨認(rèn)病毒的類型和種類,判定是否為一種新病毒,另外還可以搞清楚病毒體的大致結(jié)構(gòu),提取用于特征識別的字節(jié)串或特征字,增添到病毒代碼庫中供病毒掃描和識別程序使用。同時(shí),詳細(xì)地分析病毒代碼,還有助于制定相應(yīng)的反病毒方案。 與前三種檢測病毒的方法不同,使用分析法檢測病毒,除了要具有相關(guān)的知識外,還需要使用Debug、Proview等分析工具程序和專用的試驗(yàn)用計(jì)算機(jī)。因?yàn)榧词故呛芫ú《镜募夹g(shù)人員,使用性能完善的分析軟件,也不能完全保證在短時(shí)間內(nèi)將病毒代碼分析清楚;而病毒則有可能在被分析階段繼續(xù)傳染甚至發(fā)作,把軟盤、硬盤內(nèi)的數(shù)據(jù)完全毀壞掉,所以分析工作必須在專門的試驗(yàn)用PC機(jī)上進(jìn)行,不怕其中的數(shù)據(jù)被破壞。不具備必要的條件,不要輕易開始分析工作。 很多電腦病毒采用了自加密、抗跟蹤等技術(shù),使得分析病毒的工作經(jīng)常是冗長枯燥的。特別是某些文件型病毒的源代碼可達(dá)10KB以上,與系統(tǒng)的牽扯層次很深,使詳細(xì)的剖析工作十分復(fù)雜。病毒檢測的分析法是反病毒工作中不可或缺的重要技術(shù),任何一個(gè)性能優(yōu)良的反病毒系統(tǒng)的研制和開發(fā)都離不開專門人員對各種病毒詳盡、認(rèn)真的分析。 分析法分為靜態(tài)和動態(tài)兩種。靜態(tài)分析是指利用Debug等反匯編程序?qū)⒉《敬a打印成反匯編后的程序清單進(jìn)行分析,看病毒分成哪些模塊,使用了哪些系統(tǒng)調(diào)用,采用了哪些技巧,如何將病毒感染文件的過程翻轉(zhuǎn)為清除病毒、修復(fù)文件的過程,哪些代碼可被用做特征碼以及如何防御這種病毒等等。分析人員的素質(zhì)越高,分析過程就越快,理解也就越深;動態(tài)分析則是指利用Debug等程序調(diào)試工具在內(nèi)存帶毒的情況下,對病毒作動態(tài)跟蹤,觀察病毒的具體工作過程,以進(jìn)一步在靜態(tài)分析的基礎(chǔ)上理解病毒工作的原理。在病毒編碼比較簡單的情況下,動態(tài)分析不是必須的。但是,當(dāng)病毒采用了較多的技術(shù)手段時(shí),就必須使用動、靜相結(jié)合的分析方法才能完成整個(gè)分析過程。 綜上所述,利用原始備份和被檢測程序相比較的方法適合于不用專用軟件,可以發(fā)現(xiàn)異常情況的場合,是一種簡單、基本的病毒檢測方法;掃描特征串和識別特性字的方法更適用于廣大PC機(jī)用戶使用,方便而又迅速;但對新出現(xiàn)的病毒會出現(xiàn)漏檢的情況,須要與分析和比較法結(jié)合使用。 通過采取技術(shù)上和管理上的措施,電腦病毒是完全可以防范的。 |