A-A+

黑色技术——计算机病毒简史(一)

2008年12月07日 资源分享 暂无评论 阅读 1 次

猛犸 发表于2008-08-13 星期三 11:17
分类: 其他 | |

本文将发表于《先锋国家历史》,与发表版有所不同。

现在的计算机用户似乎都有了些共识。当计算机运行不正常的时候,当显示器蓝屏、频繁死机、文件打不开的时候,大部分用户的第一反应就是:“我是不是中了病毒?”

往往是这样。在大概十年以前,曾经听说过“戴口罩防止被计算机病毒传染”的笑话。现在不会再有人把这个笑话当真了,因为计算机病毒已经成为了我们在使用计算机的过程中必然会接触到的东西。在接下来的部分里,我们将会带领读者,一起去看看这些在我们计算机中不受欢迎的小小程序。

一、早期的计算机病毒

在生物学领域中,病毒本来是指一类比较原始的、有生命特征的、能够自我复制和只能够在细胞内寄生的非细胞生物。但在计算机科学领域里,所谓病毒,“是指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。”(1994年2月18日颁布的《中华人民共和国计算机信息系统安全保护条例》第二十八条)

从这个定义可以看出,计算机病毒(Computer Virus)与其他计算机程序的重要区别在于自我复制性以及它的破坏性。

实际上早在电子计算机发明以前,约翰·冯·诺依曼(John Von Neumann)就在一篇名为《复杂自动装置的理论及组识的进行》的论文里提出了可自我复制的程序的概念。顺便提一句,现在几乎所有计算机都是按照冯·诺依曼提出的构想而设计的,都属于“冯·诺依曼机”,而冯·诺依曼本人也被称为“计算机之父”。

冯·诺依曼,帅哥

在20世纪60年代初,美国电报电话公司(AT&T)的贝尔实验室(Bell Lab)中的三个年轻人维克多·A·维索特斯克(Victor A Vysottsky)、马尔科姆·道格拉斯·迈克尔罗伊(Malcolm Douglas McIlroy)和罗伯特·H·莫里斯(Robert “Bob”H Morris)在忙于设计和开发UNIX操作系统之余,开发了一个叫做“达尔文”(Darwin)的游戏,在一台IBM 7090计算机上运行,以模拟生物的进化过程。他们这个游戏中,应用了冯·诺依曼曾经提到过的程序自我复制的理论。后来这个程序也被称为“磁芯大战”(Core War),参与者自己撰写程序来和别人的程序争夺地盘,并且争取消灭别的程序。当时他们使用的编程语言是“Redcode”。1983年A.K.Dewdney(Alexander Keewatin Dewdney)在《科学美国人》(Scientific American) 杂志上发表了一篇名为《计算机娱乐》(Computer Recreations)的文章,把这种游戏介绍给大众。因为这种游戏只能在指定的环境中运行,因此虽然其中的某些程序具备了自我复制的能力,但是还不能称之为病毒。实际上,在他发表这篇文章的时候,“计算机病毒”这个名词还没有被发明出来呢。这个名词是直到1983年11月才首次提出的。

1983年,弗雷德·科恩(Fred Cohen)正在南加州大学(University of Southern California)攻读他的博士学位,他写出了可自我复制及感染能力的程序。他发现,这个程序能够在一个小时内传遍他的整个电脑系统,快的话只需要五分钟。11月10日他在一个电脑安全研讨会上公布了自己的研究结果,并且指出:“这一类型的程序可在电脑网络中象在电脑之间一样传播,这将给许多系统带来广泛和迅速的威胁。”他的导师艾德勒曼(Len Adleman)将这一类型的程序命名为计算机病毒。(BTW,艾德勒曼也是牛人来的。RSA加密算法中的A,就是他。)

弗雷德·科恩

这下子人们终于知道该怎么称呼去年的一个恶作剧了。1982年初,就读于Mt.Lebanon高中的九年级学生理查德·斯克伦塔(Richard“Rich” Skrenta)在苹果II型(Apple II)计算机上写出了一个叫做“Elk Cloner”的程序,并且把它拷贝到游戏软盘中去。当时人们对于软件的版权问题还不太在乎,盗版情况十分严重,相互复制软件是十分平常的事。当写入了“Elk Cloner”的软盘运行或启动时,它就会把自己复制一份放在计算机内存里,一旦有人将一张没有这个程序的软盘插进被感染计算机并输入指令来查看文件列表时,“Elk Cloner”就会再复制一次并且把副本写入那张未被感染的软盘中。于是,这个程序就开始传播开来。当第50次启动被感染的软盘时,将会出现斯克伦塔写的一首短诗:

Elk Cloner: The program with a personality

It will get on all your disks

It will infiltrate your chips

Yes it’s Cloner!

It will stick to you like glue

It will modify ram too

Send in the Cloner!

它会传染你的磁盘;

它会渗进你的芯片;

它在克隆哪。

它会和你如影随形;

还会修改你的内存;

继续传染吧。

这首诗写得倒像是使用说明。

理查德·斯克伦塔,资深帅哥

这个恶作剧的影响超出了斯克伦塔的想象。直到10年后,一个水兵在海湾战争期间还曾遭遇过它。而这个时候,斯克伦塔已经从西北大学毕业好几年了。

无论如何,斯克伦塔的“Elk Cloner”的破坏性还不很突出。1986年初,在巴基斯坦的拉合尔(Lahore),巴锡特(Basit Farooq Alvi)和阿贾德(Amjad Farooq Alvi) 两兄弟编写了“巴基斯坦”(Pakistan)病毒,也被称为“(C)Brain”病毒。这是一种具有破坏性的病毒,在DOS操作系统下运行,会把自己复制到磁盘的引导区里,并且把磁盘上一些存储空间标记成不可用。对于DOS来说,计算机启动的最后一个步骤是读取并执行磁盘上的主引导记录。主引导记录读取并执行磁盘上第一个活动分区的分区引导记录,而分区引导记录将负责读取并执行IO.SYS,这是DOS最基本的系统文件。主引导记录和分区引导记录像是一本书上的目录,失去了它们,计算机这个机器脑袋就不会找到磁盘上存放的文件了。“巴基斯坦”病毒在一年之内就流传到了世界各地,并且很快衍生出了很多变种,其中有一些变种造成的损失比原始病毒造成的损失还大。这两兄弟在当地经营着一家销售IBM PC兼容机和软件的小商店,他们在接受时代周刊的采访时说,写出这个病毒的初衷只不过是为了保护自己写出的软件不被盗版而已。

有时候理想和现实之间的差距就是这么大。

被巴基斯坦病毒改变的引导区

又过了两年,罗伯特·T·莫里斯(Robert Tappan Morris)写出了世界上第一个通过网络传播的病毒。还记得我们刚才提到的“达尔文”游戏的三个发明者吗?其中有一个叫做罗伯特·H·莫里斯,正是这个莫里斯的父亲。那是1988年,小莫里斯正在康奈尔(Cornell)大学读研究生。他想统计一下当时连接在网络上的计算机的数目,所以就写了一个程序,并且在11月2日从麻省理工学院(Massachusetts Institute of Technology,MIT)的一台计算机上释放了出去。考虑到网络管理员们可能会删除掉他的程序,从而让他的的统计结果不够准确,所以他设置了一个自认为比较合理的方案:他让这个程序有一定的概率对自己进行复制,无论它所在的计算机有没有被感染都是这样。

罗伯特·T·莫里斯,青涩帅哥

给我留言

Copyright © 浩然东方 保留所有权利.   Theme  Ality 07032740

用户登录