ELK CLONER:第一個計算機病毒,它將會得到你磁盤上所有的東東,它甚至將滲透到芯片內部,這就是Cloner!它會象膠水一樣粘住你,它還會修改內存!
計算機病毒是大量的電子破壞技術手段中最著名的成員。它們實際上就是一些非常危險的惡意程序,它們是丑陋的,不過在我看來它們很可愛,源於我對Inte.net的駕馭和對計算機程序的探索。它們會復制自己並且可以傳染其它文件,這些被傳染的文件甚至包括了那些很清白的文檔文件。而且它們很容易獲得,他們可以隨處傳播,任何時間、任何地點。實際上,沒有一個OS可以完全抵御病毒,一個病毒可以完全依靠系統本身進行復制,比如利用Windows系列http://edu.itbulo.com/sys/'>操作系統的pe格式的可執行文件和利用類unixhttp://edu.itbulo.com/sys/'>操作系統的elf格式。所以,任何計算機病毒都依附於OS的體系結構,各種OS的病毒的寫法都不一樣,但任何OS也逃避不了病毒,包括Linux。
正如以上所說,Linux也可以被感染,就像Windows NT或者Mac OS這樣的http://edu.itbulo.com/sys/'>操作系統一樣。不論是PC機上的DOS或Windows,或者是Amiga,都可以創造出病毒代碼。那麼,我們為什麼不來看看在Windos NT或Linux系統上的一些病毒呢?
你也許會奇怪,事實上第一個計算機病毒是Unix病毒(有可能第一個就是ElkCloner,好象是編寫於1980到1982年之間)。FredCohen在4BSD的VAX系統上編寫了一些非常早的Unix病毒,一年以後ElkCloner就誕生了。由於Unix系統具有內存保護機制,所以人們不太相信Unix系統上的病毒的危害性會超過Windows和DOS系統,但他們錯了。
一些公共的誤區
一個最大的誤區就是很多高性能的安全系統對病毒蔓延的預防。因為我們是利用DOS系統和它本身並不存在任何內存保護機制和數據保護機制,我們認為病毒可以完全控制計算機的所有資源。是的,它們會很輕易地成為DOS和簡單Windowshttp://edu.itbulo.com/sys/'>操作系統的完全控制用戶。沒有內存保護機制和數據保護機制,計算機病毒可以奪取所有的計算機控制權。相對來說,Windows NT和Unix系統是非常高級的保護機制的系統。這可以預防大多數的病毒的傳染,但不是所有的。當一個用戶以root或administrator的身份來操作的時候,這些系統的保護機制實際上是停止了的。一個設計clearcase/" target="_blank" >cc>的很巧妙的病毒可以利用自己的方法來找到文件系統上的每個文件,NT ownership或者ACL機制都沒有很好的重視這個問題。
另一個誤區就是認為Linux系統尤其可以防止病毒的感染,因為Linux的程序都來自於源代碼,不是二進制格式,這才應該值得重視,因為畢竟只有極少數的人(甚至管理員)才有足夠的能力來從源代碼中發現病毒代碼,而且這是一個相當耗費時間和精力的工作。一般的用戶習慣於用二進制格式的文件來交流,因為他們不想在使用這些程序的時候還要很繁瑣的執行諸如make config、make之類的命令,他們喜歡很簡單的運行程序。所有的這些原因就給了Unix系統上的病毒有足夠的空間來訪問和操控系統。
第三個誤區就是認為Unix系統是絕對安全的,因為它具有很多不同的平台,而且每個版本的Unix系統有很大的不一樣。但是現在不能這樣看了,現在的病毒都用標准C來編寫以適應任何類Unixhttp://edu.itbulo.com/sys/'>操作系統,並且他們可以用make程序來跨平台編譯。想想那個Morris寫的internet的蠕蟲病毒利用的就是這項技術,並且擁有標准的ELF二進制格式和庫文件。
Shell腳本
我們面臨的第一個問題就是如何傳播的問題,這是天生具有的問題,至少在Unix系統上是如此,我們需要想辦法使各個平台兼容,所以我們首先想到的是:shell腳本語言。shell在不同的Unix系統上面的差別很小,所以FredCohen在他的書《入侵者、蠕蟲和病毒》(發表於1990年)中寫道:“在unix的命令解釋語言中,病毒代碼可以被寫到200個字節之內。”也許我們可以根據他的話來寫一個man page的病毒腳本,可以用來操作文件和可執行程序,這和宏病毒非常相像。man page的病毒不會蔓延到別的系統上,除非你有為別的用戶改變man page的格式的習慣。無論如何,這種病毒都是一個公共的跨系統的病毒。同樣,也可以寫另個一個腳本病毒來控制mail的閱讀者。
書寫shell腳本病毒是一個很簡單的制造Unix病毒的方法。我知道肯定會有很多同行會說,腳本病毒怎麼會是真正的病毒呢?它只是用腳本語言來書寫的而不是用匯編。但是實際上,我們評定一個病毒是病毒本身可以在系統上任意感染傳播,而不是這個病毒的大小或者用什麼語言來寫的。在USENIX1989 卷2上你可以看到Tom Duff和M. Douglas McIlroy的腳本病毒代碼。shell腳本病毒的危害性不會很大並且它本身極易被破壞,因為它是以明文方式編寫並執行的