大計算機和小惡作劇
早在電子計算機發明以前,“計算機之父”約翰·馮·諾依曼(John Von Neumann)就在一篇名為《復雜自動裝置理論及組識的進行》的論文里提出了可自我復制程序的概念,可以說,創造病毒的條件之一這時在理論上已經具備了。
但是實際情況有些滯后,一直到1974年以前,計算機大都是些巨大、昂貴而笨重的設備,只有大公司、大學、研究機構能買得起。這些計算機的速度慢得可怕,指令復雜得驚人,只有少數人能夠掌握。
在20世紀60年代初,美國貝爾實驗室,3個年輕人維克多·A·維索特斯克(Victor A. Vysottsky)、馬爾科姆·道格拉斯·邁克爾羅伊(Malcolm Douglas Mcllroy)和羅伯特·H·莫里斯(RobertH. Morris)在設計和開發UNIX操作系統之余,開發了一個叫做“達爾文”(Darwin)的游戲,在一臺IBM 7090計算機上運行。
他們這個游戲應用了馮·諾依曼提到的“程序自我復制理論”,獲得競爭優勢的“個體”可以發展壯大,后來這個程序也被稱為“磁芯大戰”(Core War)。
和現在的游戲比起來,它的玩法復雜得出奇,每個玩家都要自己撰寫程序來和別人爭奪地盤,并且爭取找到對方的弱點從而消滅對方的程序。他們使用的編程語言“Redcode”同樣是老古董。
這個游戲在很長一段時間都不為人知。直到1983年亞歷克山大·杜特尼(Alexander Keewatin Dewdney)在《科學美國人》雜志上發表了一篇名為《計算機娛樂》(Computer Recreations)的文章,才把這種游戲介紹給大眾。
由于這種游戲只在指定程序下運行,所以它雖然具備自我復制能力,但還不能稱為病毒。實際上在杜特尼發表這篇文章的時候,“計算機病毒”這個名詞還沒有被發明出來。
1983年,弗雷德·科恩(Fred Cohen)正在南加州大學攻讀博士學位,他寫出了有可自我復制及感染能力的程序,這個程序能夠在一個小時內傳遍整個電腦系統。科恩的導師艾德勒曼(Len Adleman)將這一類型的程序命名為計算機病毒,這是這個名詞第一次出現。
1982年初,黎巴嫩山高中九年級學生理查德·斯克倫塔(Richard Skrenta)在蘋果II型計算機上寫出了一個叫做“Elk Cloner”的程序,并且把它拷貝到游戲軟盤中去。
當寫入了該程序的軟盤運行時,它就自我復制一份在計算機內存里,一旦有人將一張干凈軟盤插入計算機并查看文件時,“Elk Cloner”就會自我復制入其中。當第50次啟動被感染的軟盤時,將會出現斯克倫塔寫的一首打油詩。
這個惡作劇的影響超出了斯克倫塔的想象。直到10年后,一個水兵在海灣戰爭期間還曾遭遇過這個惡作劇。而這時斯克倫塔已經從西北大學畢業好幾年了。
“戰國時代”的古老病毒
20世紀70年代末到80年代初是計算機的戰國時代。20世紀70年代初,英特爾創造性地把計算機的運算器部分全部做在了一個小小的硅芯片上,推出了8008芯片。第二年,他們推出了8080,速度是8008的10倍。
微軟公司的創始人比爾·蓋茨(Bill Gates)和保羅·艾倫(Paul Gardner Allen)在1975年1月的《大眾電子學》雜志封面看到了真正的微型計算機的廣告,那是一臺由微儀表和自動系統公司(MITS)設計和制造的叫做“牽牛星8800”的家伙,沒有屏幕,通過發光二極管的點亮或者熄滅來表示信息。
就是這樣一個方盒子促使他們創建了微軟公司。而蘋果公司要到次年的愚人節才成立,邁克爾·戴爾(Michael Dell)——未來戴爾公司的創始人才10歲,還沒開始做他的郵票生意呢。
1980年IBM提出了“兼容機”概念,這一概念給了資金和實力不太雄厚的企業機會,聯合起了一大批硬件設計生產商,從而占據了大量的市場份額。微軟公司推出了MS-DOS,并且和IBM的個人電腦捆綁銷售,很快就流行了起來。
在計算機的存儲和運算能力成為可以廉價獲得的資源之后,人們開始嘗試讓計算機的功能更多樣化。1986年初在巴基斯坦的拉合爾,巴錫特(Basit Farooq Alvi)和阿賈德(Amjad Farooq Alvi)兩兄弟編寫了“巴基斯坦”(Pakistan)病毒,也被稱為“C-Brain”病毒。
這種病毒在DOS操作系統下運行,會自我復制到磁盤的引導區里,并且把磁盤上一些存儲空間標記成不可用,它還會把自己藏在計算機的內存中,從而感染每張在染毒的計算機上使用過的磁盤。
“巴基斯坦”病毒在一年之內就流傳到了世界各地,很快衍生出了很多變種。這兩兄弟在接受《時代周刊》的采訪時說,寫出這個病毒的初衷只不過是為了保護自己寫出的軟件不被盜版而已。
又過了兩年,1988年羅伯特·T·莫里斯(Robert Tappan Morris)寫出了世界上第一個通過網絡傳播的病毒。這個莫里斯的父親就是“達爾文”游戲的3個發明者之一——羅伯特·H·莫里斯。
當時小莫里斯正在康奈爾大學讀研究生,他想統計一下當時連接在網絡上的計算機的數目,所以就寫了一個程序,并且在11月2日從麻省理工學院一臺計算機上釋放出去。
考慮到網絡管理員可能會刪除掉程序,從而使統計結果不夠準確,所以他設置了一個自認合理的方案:讓這個程序以一定的概率自我復制。但是他忘了測試這個功能的危險性。
這個程序開始無休止地復制自身,占據了大量磁盤空間、運算資源以及網絡帶寬,最終導致計算機死機和網絡癱瘓。
這個程序感染了大約6000臺計算機,受到影響的則包括5個計算機中心和12個地區結點以及在政府、大學、研究所和企業中的超過25萬臺計算機,美國國防部成立了計算機應急行動小組來應對這次事件并且減少損失。
據估計,這個程序造成的經濟損失在9600萬美元左右。人們從這時開始,才意識到病毒能夠帶來什么樣的危害。
這個實驗使得小莫里斯被判處1萬美元罰款和400小時的社區服務,也給計算機病毒添加了一個全新的分類,叫做“蠕蟲病毒”。
新型病毒出現
1989年11月9日柏林墻倒塌,1991年12月25日蘇聯解體,持續了數十年的“冷戰”時代終結了。計算機也開始更多地走進人們的生活。
這個時候,在DOS上傳播的病毒也已經經歷了好幾個階段了。從最早的引導區病毒開始,逐漸經歷DOS可執行階段、伴隨及批次階段、幽靈階段和病毒制造機幾個階段。
大概是在1992年,出現了一種叫做“金蟬”(Golden Cicada)的病毒,這是一種嶄新的類型:“伴隨型病毒”。這種病毒會把原來的文件改名,然后把自己改成文件本來的名字,并且讓病毒文件優先運行,再調用用戶本來要運行的文件。當用戶認為自己在使用一個安全文件的時候,實際運行了病毒。
又過了兩年,出現了幽靈病毒。這類新病毒每次感染時都會產生不同的代碼,讓依據“病毒特征碼”查殺的殺毒軟件頭疼不已。
隨后病毒制造機也出現了,其中具有代表性的是“病毒制造實驗室”,它能夠生成上千萬種病毒,每一種的特征碼都不同。同時還出現了一些專門研究病毒制造技術的組織,例如澳大利亞的VLAD、西班牙的29A等組織。
1995年8月24日,微軟公司發布了劃時代的操作系統——Windows 95。人們終于可以不再記憶復雜的命令和參數,只動動鼠標就能完成工作。
這對于普通用戶來說它真是一大福音,同時它對病毒制造者也是一大挑戰。全世界的病毒制造者都在研究怎樣戰勝聲稱“百毒不侵”的Windows 95。
1996年,VLAD的Boza病毒首先做到了這一點。這個病毒每月30號發作,受感染計算機將會顯示一段文字說明,告訴用戶這是VLAD組織的杰作,并不會造成損失。
逝去的黑客精神
在最開始時,病毒大都是一些計算機愛好者所制造,出發點往往在于對技術的迷戀和好奇。發現別人沒有發現的漏洞并加以利用是這一階段病毒發展的主題。
那些趴在鍵盤上徹夜不眠的年輕人只關心技術,從來沒有想過這種好奇將會造就每年50億美元的殺毒軟件市場。
隨著操作系統和應用軟件功的強大,代碼也越來越復雜,破綻必然會越來越多。這些破綻永遠不可能被全部修復,病毒總能找到突破口。
但是對于普通用戶來說,使用計算機的過程已經漸漸變成了一場被迫的自衛戰。那些沉迷于計算機技術的“黑客”的光榮一去不返,我們談到病毒時再也不會贊嘆制造者的聰明才智。
(作者:猛犸)
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!