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