計算機病毒防範研究論文

才智咖 人氣:2.59W

一、重寫病毒是不能從系統中徹底刪掉的

計算機病毒防範研究論文

只能刪掉被感染的檔案,然後再從備份介質恢復。一般來說,重寫病毒不是非常成功的威脅,因為病毒造成的威脅明顯太容易被發現了。然而,這種病毒效果如果基於網路的傳播技術結合起來,可能產生很大的威脅,比如:VBS/LoveLetter.A@mm通過群發郵件把病毒傳送到其他系統中,當該病毒執行時,它會用自己的拷貝重寫本地所有下面副檔名的檔案:.vbs,.vbe,.js,.css,.wsh,.sct,.gta,.jpg,.jpeg,.wav,.txt,.gif,.doc,.htm,.html,.xls,.ini,.bat,.com,.avi,.mpg,.mpeg,.cpp,.c,.h,.swd,.psd,.wri,.mp3,.and,.mp2等。重寫技術的另一種罕見形式是不改變檔案頂部的程式碼,而是在宿主檔案中隨機找一個位置把自己寫進去。顯然,這種病毒不太可能獲得控制權,它通常會導致宿主在執行到病毒程式碼之前就崩潰了。這種病毒的例子是俄羅斯的Omud。現在的反病毒掃描程式會為了提高效能而減少磁碟I/O,因此如果可能的話,只查詢已知的位置。掃描器在查詢隨機重寫病毒時有一定的問題,因為掃描器必須搜尋宿主程式的全部內容,這種操作的I/O開銷太大了。有些比較簡單的而病毒並不主動駐留在記憶體中,最先感染IBMPC的檔案感染型別病毒Virdem和Vienna就是這樣,通常,直接感染型病毒的傳播速度比較慢,傳播範圍也比較窄。直接感染型病毒隨著宿主程式一起裝入記憶體中。在取得系統控制權後,他們以搜尋新檔案的方式搜尋可能感染的物件。很多常見的計算機病毒都使用直接感染方式的傳播引擎,這種病毒在各個平臺都很容易構造,無論是二進位制還是指令碼形式。歷史上曾經有過這樣的例子。Borland公司在DOS環境下開發的Quattrospreadsheet系統的第一個版本是全部使用Hungary組合語言開發的。在系統的開發過程中發生了意見非常有趣的事情。有時候,系統命名在執行一個迴圈,可是系統的實際流程和控制流程的期望值剛好相反。程式碼本身並沒有什麼錯誤,因此通過閱讀程式碼的方式根本不可能解釋發生這種現象的原因。最後發現產生這個錯誤的原因是因為一個時鐘程式偶爾會改變系統的執行流程,原因是時鐘程式改變了方向標記,而有時又忘記恢復這個標記,結果,時鐘程式五一地破壞了spreadsheets系統的內容,當然它也會對其他程式造成破壞。這個具有破壞性的時鐘程式就是一個TSR程式。病毒採用各種方式入侵電腦程式和伺服器程式,大部分電腦書籍對病毒檢測的討論都停留在相當淺的層次上,就連一些比較新的書都把防毒掃描器描述為“在檔案和記憶體中檢索病毒特徵位元組序列的普通程式”。這種說法所描述的當然是最流行的計算機病毒檢測方法之一———這種方法也很有效,但當今最先進的防毒軟體使用了更多出色的方法檢測僅用第一代掃描器無法對付的複雜病毒。例如:字串掃描、萬用字元掃描、不匹配位元組數、通用檢測法、書籤、首位掃描、入口點固定點掃描等等。隨著時代的進步第二代掃描器也隨之來臨,第二代掃描器採用近似精確識別法(nearlyexactidentification)和精確識別法(exactidentifica-tion),有助於提高對計算機病毒和惡意程式的檢測精度。第二代掃描器同樣包括很多種方式,例如:智慧掃描、骨架掃描法、近似精確識別法和精確識別法等。掃描技術的多樣性清楚地表明:給予對一隻病毒的識別能力來檢測病毒是多麼困難。因此,看來採取更為通用的方法———如給予檔案和可執行物件的完整性來檢測和預防病毒對其內容的篡改———可以更好的解決病毒檢測這個問題。手工啟動型完整性掃描工具需要使用一個校驗和資料庫,該資料庫要麼在受保護的系統中生成的,要麼是一個遠端線上資料庫。完整性檢查工具每次檢查系統中是否有新生成物件,或者是否有任何物件的校驗值發生變化,都用到該資料庫。通過檢驗出新的或發生了變化的物件,顯然最容易發現病毒感染及系統受到的其他侵害。然而,這種方法也有很多缺點,例如:

(1)虛警;

(2)要有乾淨的初始化狀態,而實際上不一定會有這麼一個狀態;

(3)速度。完整性檢查通常很慢;

(4)特殊物件。工作需要懂得一些特殊物件;

(5)必須有物件發生改變等等。還有一些方案試圖基於應用程式的.行為來阻斷病毒傳染。最早的反病毒軟體之一FluShot就是屬於這一類病毒防護方案。如果一個應用程式以寫入模式打開了可執行檔案,則阻斷工具就會顯示一條警告,要求使用者授權寫操作。不幸的是這種低級別時間可能會引起太多的警告,因而阻斷工具受使用者歡迎的程度常常還不如完整性檢測工具。而且,不同型別的計算機病毒的行為可能差異很大,因而可能導致感染的行為模式數量有無窮多種。

二、結語

由於WindowsNT的記憶體管理器會回收未使用分介面,而記憶體中頁面只有當被訪問的時候才會被讀取,因此記憶體掃描的速度大體上取決於記憶體的大小,一臺計算機的記憶體越大則記憶體掃描器的速度就會越快———如果計算機擁有的實體記憶體非常有限,則頁面錯誤數量將會大很多。每當SCANPROC.EXE對所有執行中的程序掃描時,這些程序的記憶體會明顯提高。對於病毒的防範也更加規範。