本來我們想做一個Unix操作系統病毒的概述,但在這裡,我們單獨把Shell腳本拿出來分析。window7中包含的shell在計算機科學中,Shell俗稱殼(用來區別於核),是指“提供使用者使用界面”的軟件(命令解析器)。它類似於DOS下的command.com。它接收用戶命令,然後調用相應的應用程序。同時它又是一種程序設計語言。
作為命令語言,它交互式解釋和執行用戶輸入的命令或者自動地解釋和執行預先設定好的一連串的命令;作為程序設計語言,它定義了各種變量和參數,並提供了許多在高階語言中才具有的控制結構,包括循環和分支。在C++中,Shell是希爾排序的名稱。
我們面臨的第一個問題就是如何傳播的問題,這是天生具有的問題,至少在Unix操作系統上是如此,我們需要想辦法使各個平台兼容.所以我們首先想到的是:shell腳本語言.shell在不同的Unix操作系統上面的差別很小.所以FredCohen在他的書:入侵者,蠕蟲和病毒(發表於1990年)寫到:"在unix的命令解釋語言中,病毒代碼可以被寫到200個字節之內".
也許我們可以根據他的話來寫 一個man page的病毒腳本,可以用來Unix操作系統操作文件和可執行程序.這和宏病毒非常相像.man page的病毒不會蔓延到別的Unix操作系統上,除非你有為別的用戶改變man page的格式的習慣.無論如何,這種病毒都是一個公共的跨Unix操作系統的病毒.同樣,也可以寫另個一個腳本病毒來控制mail的閱讀者.
書寫shell腳本病毒是一個很簡單的制造Unix病毒的方法.我知道肯定會有很多同行會說,腳本病毒怎麼會是真正的病毒呢?它只是用腳本語言來書寫的而不是用匯編.
但是實際上,我們評定一個病毒是病毒本身可以在Unix操作系統上任意感染傳播,而不是這個病毒的大小或者用什麼語言來寫的.在 USENIX1989 卷2上你可以看到Tom Duff和M. Douglas McIlroy的腳本病毒代碼.
shell腳本病毒的危害性不會很大並且它本身極易被破壞,因為它是以明文方式編寫並執行的,任何用戶和管理員都可以發覺它的代碼.但是,我想大多數的用戶都不會理解一下代碼的吧:
- for %%f in (*.bat) do copy %%f + bfv.bat
通常一個用戶會深信不疑的去執行任何腳本,而且不會過問該腳本的由來.這樣,這些Unix操作系統用戶都成為病毒的目標了;這些都是用戶的意識問題,這樣是沒辦法避免病毒的入侵的,所以我們的用戶需要大大加強對這些病毒的防范意識.
我們對Unix操作系統中的病毒要了解的更多,才能有效的防護我們的電腦。