一个与米特尼克齐名的黑客传奇 (绿盟转过来的)

weixin_38068389 2003-04-16 04:00:18

菲尔·莱普斯利(Phil Lansley)遇到了难题。这位加州大学伯克利分校电子工程系学生刚进入一台Sun 工作站,便觉得苗头不对。

    他发现有一群人似乎想进入伯克利的电脑。一定是有人在闯关。一年中总有那么几次针对电子工程系的入侵。这一回,入侵者十分顽强,一次又一次地尝试登录。所以,莱普斯利开始记录这位不速之客使用的机器的名字。然而他惊讶地看到,这些机器在屏幕上流动的速度比他记录的速度要快得多。他甚至连读都来不及。这时,莱普斯利认识到,这不是人,而是一个程序。它盗用用户的名字在运行。

    这个程序连续不断地叩击伯克利的电子之门。更糟的是,当莱普斯利试图清除它时,却发现“一个倒下去,千万个站起来。”随着这个魔鬼般的入侵者吞噬了越来越多的处理时间,遭到袭击的机器的速度越来越慢,开始陷于瘫痪。它们呆在那里一动不动,不再接受任何输入信息。虽然工作站在瘫痪之后会自动恢复运转,但只要它们一启动,又立即被侵犯。伯克利分校受到了一种计算机病毒的袭击。

     莱普斯利拨通了迈克·卡瑞尔斯(Mike Karels)的电话。卡瑞尔斯是计算机系的伯克利Unix专家,如果说有人能找到解决办法,那人非卡瑞尔斯莫属。

    莱普斯利听到的是一声干涩的苦笑:“你们也难逃此劫,是吗?”

    30分钟后,人们发现病毒已扩散到伯克利之外。美国国家航空和宇航局(NASA)阿姆斯研究中心和劳伦斯利沃莫尔实验室先后报告了同样的问题。显然这不是一起地域性事件。病毒侵入了整个互联网。

    那些校园和研究机构的网络管理员们多年以来一直在预防各种不测事件。计算机科学家也早就指出,存在着病毒破坏整个网络的可能性,但没有人预料到1988年11月2日傍晚互联网会遭遇到如此大规模的袭击。

    全美各地的计算机纷纷屈服于病毒的淫威之下,每隔几分钟,就有更多的的计算机被卷入这场浩劫。下午6:30,位于圣莫尼卡的兰德公司的专家们首先发现计算机非同寻常地放慢了速度;55分钟后,在美国大陆的另一端,麻省理工学院人工智能实验室陷入灾难。然后是斯坦福大学、普林斯顿大学和新墨西哥州洛斯阿拉莫斯国家实验室。病毒在一些计算机中复制了上百份拷贝,使机器的运行完全停顿下来。成功地进入一台机器后,它立刻转向下一个目标。即使入侵受阻,病毒的不断叩门也足以打乱正常的工作节奏。在人们试图消灭它时,病毒会激发出巨大的再生力量,几乎不可能把它斩尽杀绝。它有一种神秘的寻找计算机缺口的能力。当天晚上,它在网络中兴风作浪,所到之处一片狼藉。

    全美各地的系统管理员都不曾睡上一个安稳觉。他们被惊惶失措的夜间值班人员叫醒,在凌晨2点到4点的时候赶往办公室。其他人则在正想从家里上网时发现情况不对。还有一些人直到第二天上班时才知道病毒已把一切弄得一塌糊涂。

    更令人恐慌的是,这程序也许是一匹特洛伊木马——表面上看似无害,但却会在以后的某个时间内发出指令销毁电脑中的数据。当它侵入军方位于马里兰州的弹道研究实验室时,系统管理员怀疑某种外国势力发动了入侵。由于病毒程序来自网络,他们还担心军方情报被它带到网络上。为了做好最坏的打算,实验室决定切断与网络的联系。这样的情形持续了一周。互联网上的许多联网机构采取了同样的步骤。

    这种步骤有效地断绝了病毒的来路和去路,但它却有一个不幸的副作用:对于那些已习惯于电子讯息交换的人来说,他们的生命线也被切断了。大多数计算机专家都把电子网络当作唯一的交流手段,他们想不起打电话,即使想起来也没用,因为他们很少交换电话号码。

    只有伯克利分校才能力挽狂澜。这所大学是伯克利Unix的诞生地,病毒正是借助这个广泛流传的操作系统肆虐一时。它很有心机,专门挑选那些联结最。多系统的工作站作为靶子。对这一程序来说,似乎传染那些关键性的机器具有重要的战略价值,因为这样就能够在一击之后,成功地扩散到更多的计算机中。伯克利的专家们拒绝把他们的电脑撤出网络,那意味着承认自己的失败。他们面临的挑战是,在联网的同时杀死病毒。

    这些专家很快发现,病毒首先建立一个欲攻击的远程机器的名单。它用4种办法选择攻击对象:查阅它存身的主机所信任的机器名单,查阅用户的邮件转发文档,查阅用户使用远程账户的情况,或是运行一个检查网络连接情况的程序。对每一个潜在的攻击对象,病毒尝试用各种不同的方法进入:在破解某一账户的口令后,假扮电脑用户进入;利用finger程序(这一程序允许网络用户获取有关其他用户的信息,如用户的全名、登录名和电话等)中的一个臭虫进入;或利用sendmail程序(用以在计算机之间收发电子邮件的程序)的远程调试选择项中的一个后门进入。

    在攻击新的主机的同时,病毒不断猜测它存身的主机上的更多账户口令。它首先用账户名及其不同的组合方式试验,然后用内置的432个口令试验,最后用一部联机词典中的所有单词试验。已侵入而未经发现的病毒会花很多工夫来破解口令。

    一旦进攻新机器得手,病毒会先派出一个小小的“侦察兵”,这在计算机中叫做“引导程序”(bootstrap),机器一旦执行了这个程序就可导致另外一些指令被装入并且执行,直到完整的计算机程序被装入存储器为止。如果“侦察兵”进展顺利,它会在120秒内返回把病毒的母体带上网络。病毒母体内含经过加密的带有完整病毒代码的文档,它会发出指令让加密文档生成一个新的病毒。病毒在新机器上站住脚后,这一过程便会无休无止地重复下去。

     病毒确实试图对自己的数量加以控制,在同一台主机上,它寻找其他的同伴,并和它们谈判以决定谁去谁留。然而,一个同意终止生命的病毒在完成和同伴的讨价还价前,首先会对许多主机发起攻击,这使得总体上病毒的出生率高于死亡率。并且,每7个病毒中就有1个宣称自己是不朽的,根本不参加“计划生育”工作。

    病毒的作者花了很大的力气对病毒进行乔装打扮。病毒母体被加密,而且只在它的“侦察兵”做好前期工作后才出发到远程机器上去。新的病毒在文档系统中根本无迹可寻:它把自身的所有文档都存入存储器中,然后把它们从系统目录上删除得一干二净。一般的系统在出错的情况下,都具有“清理存储器”的功能,病毒使这一功能完全失灵,并且,因为它本身经过加密,万一这样的功能被运行,也会对病毒毫发无损。

    第一眼看上去,病毒并不想损坏数据,它对计算机内的信息进行检查,只是为了寻找进入其他计算机的机会。但伯克利专家们不敢排除特洛伊木马的可能性。唯一发现它的本性的办法,是把它一行一行地加以分解,而这绝不是短期内能够完成的。在“用显微镜和镊子”对病毒进行分析以前,无人能确认它的危险性到底有多大。

     伯克利的程序员们整夜奋战,试图把病毒逐出系统并了解它是如何工作的。卡瑞尔斯和凯斯·波斯蒂克(Keith BOstic),两位设计了伯克利Unix的软件专家,把这次袭击视为对自己个人尊严的挑战。他们见识过外来人员的入侵,但如此气势汹汹的进犯却是第一次领教。这正是每一个系统管理员恐惧的恶梦。与此同时,这又好像有人交给了这些专家们一道填字游戏题——它难以解决,但充满刺激。

    空气似乎紧张得一触即发。到次日凌晨3时,专家们终于对病毒的性质和动态都有了充分的掌握。伯克利的电脑一部接一部地恢复正常。伯克利校园终于挺过了这场灾难。

    专家们向互联网上的其他计算机发出了警告,并在电子邮件发送清单(mailing list)上公布了处理病毒的办法。对他们来说,这是一个难忘的痛苦的夜晚。但对其他人来说,痛苦才刚刚开始。第二天一早,有关病毒的消息就传遍了全国。

    3日下午,《纽约时报》接到一个匿名电话。打电话的人无意透露病毒制造者的姓名,但想让报社知道,写作程序的人并无恶意,只是在编写代码时犯下了一个可怕的错误。

    《纽约时报》专门报道计算机事务的约翰·马可夫已经听说了这一事件。上午10点,他接到克利夫·斯多的电话,斯多说自己整夜都在与病毒搏斗,它破坏了哈佛大学天文物理中心的大约50台计算机。马可夫立即往大学和研究中心打了一圈电话,其中之一是打给国家安全局的一位研究电脑安全的朋友的,但这位朋友不在,马可夫只好留言给他。

    接到马可夫电话的人对病毒的起源都毫无所知。有人猜测病毒的制造者是一个爱搞恶作剧的家伙,还有人认为他是外国间谍。所以,那个匿名电话显得格外重要。打匿名电话的人自称保罗,当马可夫与他取得联系后,立即意识到保罗了解整个事件的真相。这个听起来声音激动的年轻人说他是病毒的“才华横溢”的作者的朋友。保罗说,作者本来只想写个无害的病毒,但一个微小的错误使得程序在网络中大量复制,造成不可收拾的局面。

    第二天,保罗和马可夫在电话上交谈了好几次。保罗把病毒作者称为调先生,两人开始讨论调先生可能会遇到怎样的麻烦。至此,有关该程序的新闻在全国各地都上了报纸头条,晚间电视节目也作了报道。有的媒介称它为病毒,也有的称其为“蠕虫”。美国的电脑系统第一次遭受这样大规模的攻击。令人不安的是,军方的系统也未能幸免。该程序已得到了控制,但对它造成的损害还没有确切的估计。

     接着,保罗犯了一个错误。在一次交谈中,他忘了将其朋友称作调先生,而是顺嘴管他叫rtm。马可夫在电脑圈中硕炼多年,立即想到这个缩写可能是计算机的登录名。他要斯多帮他查一下网络用户的“号码簿”。斯多使用finger程序发现,rtm是罗伯特·泰潘·莫里斯的缩写,他是康奈尔大学的一名研究生,名字后面还有地址和电话。

    现在马可夫有了一个名字,但却还缺乏一个故事。没有旁证,他无法肯定保罗说的是否是真话,也不能确认他口中的rtm与斯多查到的rtm就是同一个人。他打电话到康奈尔大学,但没有人接。

    下午晚些时候,国家安全局的朋友终于回话了。打电话的人是鲍勃·莫里斯(Bob Morris),该局的首席科学家,也是一位电脑安全专家。

“我想我已经知道了写作病毒的人是谁,”马可夫说。
“是谁?”莫里斯大叫。
马可夫迟疑了一下。“我不想告诉你。你是电脑警察。”

    两人进行了一段紧张的对话。很快马可夫发现,莫里斯对写作病毒的人了如指掌。他似乎比自己知道的还多。

    最后马可夫说:“我认为这一程序是罗伯特·泰潘·莫里斯写的。”

    “你说对了,”莫里斯给了马可夫他所需要的旁证。这一天,关于此事的说法矛盾百出,难以理出头绪。马可夫困惑不解:如果一个康奈尔研究生写了一个程序,国家安全局的安全专家怎会知道?这到底是怎么回事呢?就在他要挂断电话之前,一个想法如电光石火在他头脑中一闪:“这难道不是一个有趣的巧合吗,”马可夫说,“你们两人都叫莫里斯。”

    莫里斯毫不迟疑地答道:“这不是巧合。他是我儿子。”

    鲍勃·莫里斯1950年进入哈佛大学,先修化学,后转攻数学博士。1960年夏,他在素负盛名的贝尔实验室找到了一份临时工作。

    AT&T的经理们认识到,重大突破不是来自于规划,而是来自于人的创造力,所以贝尔实验室保持着一种自由开放的气氛。鲍勃感到如鱼得水,暑期工作结束后,他没有离开,一直在这里呆了26年。

     60年代,计算机科学正处于茁壮成长的时期,新发现层出不穷。计算机刚刚打入学术研究圈子,任何接触到它的数学家都有机会开展一些始创性的工作。这些人当然都对计算机没有多少认识,但无一不为它所吸引。很多问题借助于计算机的快速计算而得到数学解答。对莫里斯和他的同事来说,编写程序令一台机器能够随心所欲地为己所用,甚至在计算机上创造出一个人工世界,这是一件无比美妙的事情。尤其是莫里斯,他似乎对计算机具有一种天然的理解力,只要是有关计算机的问题,他总能发现创造性的解决办法。逐渐地,他在贝
尔实验室开始以编程奇才而著称。

     鲍勃初露锋芒是在1962年,那时他的同事道格·麦克劳埃和维克多·维索茨基发明了一种叫“达尔文”的简单游戏。维索茨基想创造一种新型游戏,它在程序与程序。而不是在人与人之间进行,其要点是,让各种程序互相搏斗,哪个程序能把对手全部消灭就是胜者。这也就是后来的“核心战”(Core Wars)游戏的前身。该游戏由于个人计算机的普及而广为流行。参加游戏者编制各自的“勇士”程序,然后将其投放到计算机内存中的想象战场上,竭尽全力破坏直至摧毁其他人的程序,同时保护自己的程序正常运行。这将“弱肉强食”的原则表现得淋漓尽致。

    3位年轻的科学家玩了一周“达尔文”游戏而不分胜负,这时,鲍勃拿出了他的杀手锏。这个程序只有30道指令,它的威力在于它能够适应环境——它研究对手的防护手段,再据此设计自己的攻击办法。游戏以鲍勃的程序大获全胜而告终,但这种最初只是科学家用来消遣的游戏后来却被视作电脑病毒的前身。

    即便实验室里英才济济,鲍勃仍显得很突出。到实验室工作不久,他开始蓄须,一蓄就是30多年。他生性不崇拜任何权威,习惯于挑战别人的说法,证明自己的论点时不遗余力。但他实践自己的准则时从不死搬教条,而是充满戏谑。一次,一位同事断定机房中的所有设备都是防火的,为了证明他的错误,莫里斯用火柴点燃了计算机硬盘的写保护环,然后把它扔进废纸篓。此举触发了火灾警报器,给整个实验室都造成了一场虚惊。

    类似的事情使大家认识到,鲍勃具有一种非常规思维能力。他写的拼写检查程序不含任何字典,也不懂英语,而是建立在统计概率的基础上。它专门寻找异乎寻常的字母组合,这样,拼错的单词无一能逃过它的法眼。

    鲍勃喜爱探索未知的领域,时常给同事出智力测验题。假如他发现对面办公室的某个人精通相对论,他会抱着这个问题啃一通。然后去找那个人探讨。这与其说是为了显示自己的学问,不如说是为了满足好奇心。

    1979年哈佛同学聚会时,鲍勃曾说过:“很早以前我发誓要学会希腊语、了解行星的运行规律和掌握破译密码的方法。为了实现这3个誓言,我走了很长一段路。”在30岁时他自学了希腊语,在贝尔实验室时,他写了一个用以预测行星运动的天文程序;不过,与他的实验室工作最紧密相关的,还是第3个誓言。

    1964年,鲍勃成为贝尔实验室里最早在家中拥有终端的科学家之一。他的调制解调器以135比特/秒的速率与实验室交换数据,今天看来这简直慢得出奇。

    60年代早期,计算机安全还不成问题,锁上机房的门就是了。分时系统的到来改变了这一点。“分时”的原意是让每个用户在自己需要的时候使用计算机,成本则彼此分摊。这是人们第一次想到共享一台计算机的能力,它与60年代大学计算机系学生黑客们的努力密不可分。在分时系统出现的同时,也出现了对系统记账和安全方面的需求,因为不止一个人在同时使用一台计算机。但黑客们痛恨任何阻碍信息共享和电脑的自由使用的东西,所以安全专家与黑客的较量从那时就开始了。

    对于研究计算机安全的人来说,通过打入计算机来寻求改进安全的措施是一个重要手段。(在这个意义上,也许可以说,计算机安全专家人人都是黑客。)鲍勃对此非常着迷。他更加着迷的是密码(cipher)。他是一位数学家,对数论怀有浓厚的兴趣,它涉及到素数和随机性的研究。密码术(cryptology)是数论的自然延伸,因为它需要通过巧妙地安排数字从而把文字转换为代码。密码术也不仅仅与数学相关;它还要求语言技巧。它需要极强的悟性和高超的想象力。莫里斯不乏这些才能。他还具有一种洞察别人看不到的安全漏洞的能力。

    这时,鲍勃已同安妮·法洛结了婚,1965年,他们生下了罗伯特,这是他们的第二个孩子。罗伯特还有姐姐梅瑞迪丝和弟弟本。他们买下了新泽西州密灵顿小镇上的一所农庄,它建于1740年,与现代生活显得格格不入。鲍勃喜欢田园生活,所以尽管他研究的是影响未来的高科技,可凡是到他的乡村农舍拜访过的朋友,都感到像是回到了过去。在地下室中,计算机终端与一个巨大的18世纪的蜂窝炉相邻而放。

    孩子们在上种与众不同的气氛中长大。他们都被送到最好的私立学校读书,父母鼓励他们自己选择今后的道路。本喜欢户外生活,梅瑞迪丝爱好文学,而罗伯特则在很小的时候,就显示出他将来可能继承父亲的衣钵。9岁的时候他就如饥似渴地阅读《科学美国人》。还没上小学,他就用手边所能找到的硬纸板、回形针和文件夹制作了一辆汽车模型。很快,他开始像父亲一样把电子设备拆开又装好。

    安妮发现,罗伯特意识到他与同龄人有些不一样。他知道自己与众不同,但不明白为什么。有一次他对母亲说,他觉得自己是个“怪人”。父母清楚,那是因为罗伯特比他的同学在智力上要高出一筹。罗伯特讨厌上学,在学校里表现也不好。在他上五年级时,鲍勃决定干预。他找到校长,建议让罗伯特跳到六年级。校长以不合政策为由拒绝了。鲍勃让罗伯特在家呆了4天,校长最后让步,把罗伯特转到六年级。他的成绩立刻上升了。

     莫里斯家里有6000多本藏书,从宗教到历史,从天文到航海,应有尽有。孩子们从小都喜欢读书。到七年级时,罗伯特爱上了科幻小说,一天读两、三本。鲍勃和本也是科幻小说迷,但罗伯特却与科幻小说形影不离,不论去哪里,总在腋下夹着一本。一次安妮去学校参观时,罗伯特正上数学课。安妮看到罗伯特坐在前排,也不听讲,只顾埋头读小说。当老师要他回答问题时,他微微抬起头,说出准确的答案,然后继续读他的小说。安妮意识到这一定是数学老师与罗伯特达成了默契,他可以读小说,同时在班上遥遥领先。

    上高中的时候,莫里斯把孩子们送到一所以音乐教育闻名的私立学校。罗伯特学的是小提琴,本拿起了中提琴,梅瑞迪丝则吹起法国号。孩子们回家后,安妮吹响巴松管,鲍勃操动大提琴,音乐成为联系一家人的纽带。每个孩子一到10岁,都被带到纽约听歌剧。假期里他们去冰岛观光,到英国划船。

    孩子们的另一个嗜好是电脑。本和梅瑞迪丝常在电脑上玩游戏,但只有罗伯特对电脑迷得发狂。只要鲍勃一离开终端,罗伯特立即坐到电脑前,也就是在这时他开始懂得“电子友谊”。

    为了让孩子们领略计算机和通讯的神奇,贝尔实验室的许多父母都给孩子立了单独的电脑账号。最多的时候,有二十几个孩子通过实验室的计算机系统互相联络。许多孩子甚至在谋面之前就建立了深厚的电子友谊。

    罗伯特可以说是伴随着计算机网络而成长起来的第一代。14岁的罗伯特第一次感受到即时通讯的巨大威力。他立即成为实验室计算机网的常客,与小伙伴一起玩交互式游戏,互相倾诉友情。

    有个孩子写了个叫“四角”的游戏,可以许多人一起玩。参加者在四通八达的地道里捉迷藏。罗伯特在此基础上写了“捉住我”游戏。在“四角”游戏里,参加者只能互相交谈;而在“捉住我”里,他们还可以拥抱。亲吻。拳打脚踢。这个游戏的发明使罗伯特的同伴们对他崇拜得五体投地。

    罗伯特在网上最要好的朋友之一是贝尔实验室一位科学家的聪明的女儿,她也是网络上屈指可数的女孩中的一个。她自己设计了一个“衣柜”程序,这一程序告诉她每天穿什么。清晨起床的时候启动这个程序,程序就会显示最近她在衣柜里的衣服有哪些没有穿过,还会作出几种搭配建议。罗伯特特意为她修改了游戏中的一些功能,比如说,她的形象一进入游戏中的教堂,圣坛就会闪闪发光。虽然他们的住所相隔并不大远,但罗伯特和这个女孩在网络上相交了一年才真正见面。

    通过电子交往,这些孩子们不仅学到了计算机知识,也懂得了电脑社区的规矩。对有些孩子来说,贝尔实验室的计算机好像电话和电视的合二为一,既有助于社交,也能满足他们的娱乐要求。

    偶尔他们也会闯祸。一天鲍勃气冲冲地闯进办公室,宣称要立即取消孩子们的所有账户。同事们感到这个突然的决定后面一定有溪跷,一致要求他说明原因。原来是一个孩子在计算机上获取了超级用户特权。

“这样,关闭那个孩子的账户好了,”一位同事建议说。
鲍勃摇摇头。
在更多的追问下,鲍勃只好说出是罗伯特干的。
“他怎么弄到口令的?”有人问。
“他不知道口令。”
“那他怎么进去的呢?”

    最终事情真相大白:原来鲍勃在超级用户状态下操作实验室的计算机时,漫不经心地离开了,罗伯特乘虚而入。

    罗伯特显然不只对电子游戏感兴趣。他上了初中以后,父亲向他介绍了Unix,他竟能发现其中的漏洞!他学会了盗取超级用户特权,甚至在贝尔实验室的系统中改动了几个档案,以提醒父亲的同事们,系统的安全措施并不牢固。即便贝尔实验室的研究人员对一个十几岁的孩子发现了他们工作中的毛病觉得好笑和感激,他们也没有让这种感觉流露出来,而是责令他从此不要再做这类事情。

    年级的时候,罗伯特已更像是父亲的同事而不是学生。鲍勃从来不对孩子说:“坐下来,我给你上一课。”有时,父子俩会为一个技术问题滔滔不绝地讨论几个星期,他们讨论的时候,会对家里的其他事情视而不见。鲍勃的知识当然比罗伯特丰富得多,安妮常常感到他在故意给儿子出难题。两人谈论的大多是有关计算机的理论问题,但鲍勃也不断鼓励罗伯特锻炼自己的编程技能。

    在外人看来,鲍勃似乎在鼓励罗伯特入侵电脑。1982年,作家吉娜·科拉塔要为《史密森)杂志写一篇有关电脑犯罪的文章,特意找鲍勃采访有关电脑安全的话题。他讲了一些入侵电脑的故事,甚至不无得意他说,只要拿吉娜的钱包看几分钟,他就可以猜出她的电脑口令。当吉娜问是否能介绍她采访一些年轻的黑客时,他建议这位作家到他家里和他儿子谈谈,只要不在杂志上披露真名。

    吉娜对罗伯特的第一印象是,这个16岁的男孩很害羞,似乎被这次采访吓坏了,整个采访过程中,吉娜都感觉到,父亲就好像儿子的同伴。罗伯特告诉她,他的确阅读过电脑上的私人信件,并打入过一些电脑网络。“我知道这样做不好,”罗伯特说,但他仍然忍不住要从事黑客活动,因为它既刺激又充满挑战性,那一年,罗伯特获得了全州高中生物理竞赛的第17名。奖品是赠阅一年的《史密森)杂志,第一期上就刊登了吉娜对他的专访。

    这篇文章问世的时间,正是电脑安全意识逐渐加强的年代。到80年代,成千上万的个人计算机通过网络联结在一起,“一个用户,一台机器”成为新的计算哲学。与此同时。另外一个构想开始浮现:为什么不开发一个不是在单独的机器上,而是在电脑网络上广泛应用的计算机系统?这一系统具有很高的智能,在需要处理一个特别的计算任务时,可以自动地把这一任务交给拥有最佳资源的节点去完成。一场新的计算机革命正在形成之中。

    在罗伯特还是一个少年时,网络主要是为实验室里的计算机科学家服务的,他们以此试验计算机的新的应用方法。他父亲所做的,以及他在贝尔实验室里所听说和学到的,无不是为了这个目的。但事态发展很快,阿帕网(Arpanet)出现了,并成为下一个10年中最有力的变革工具。阿帕网的名字来源于五角大楼的高级研究计划署(ARPA)。这一机构虽然隶属于军方,但却是由科学家来管理的,常常开展一些高风险的项目。在60年代和70年代,ARPA资助了大量研究,正是这些研究导致了计算机科学的一些最重要的进展。个人计算机、网络、人工智能、语音识别等等成果,都直接或间接地与ARPA资助的项目有关。

    阿帕网则是一群计算机科学家智慧的结晶,在6O年代后期,这群科学家首次预见到这样的可能性:科学家和工程师可以随时随地共享昂贵的计算机资源。一个计算机网络既是研究人员即时通讯的工具,又是通讯方式的实验场所。这是一个革命性的想法。

    60年代初,兰德公司的科学家保罗·巴兰(Paul Baran)致力于寻找一种使电话网络更加安全的办法,使用这种办法以后,即使爆发了核大战,电话也能够照常运行。他将数字化的讯息(亦称报文)分解为“包”(packet),每条讯息里都带有自己的地址,可以经由最有效的路径传输。这种传输方法称为“包切换”(packet switching,亦称分组交换)。它极大地降低了数据通讯的成本,为以较低成本建立计算机网络创造了条件。真正把计算机联成网络的想法出自杰·西·阿·里克莱德(J.C.R.Lickder),他本是一位心理学家,后来成为ARPA的第一任信息处理与信息技术部主任。

    网络先行者提出了网络建设的两个原则:其一是,通讯网络必须没有中央权威:其二是,在遭到破坏的情况下它也能照常运转。这就意味着,要使网络上的每台计算机,或称“节点”(node),在产生和传输数据时具有平等的身份。一个向远程机器发号施令的中央指挥系统在战争中是很容易成为袭击目标的,而在上述网络中,系统中的大量计算机都能够实现同样的指挥功能。

    早期的阿帕网是围绕彼此分离的用以传递讯息的接口报文处理机(IMP,Interface Message Processor)建立起来的,它们构成了网络的主干(backbone)。不久,一些小的被称作终端接口处理机(TIP,terminal interface processor)的计算机也加入了网络,用以连接速度较慢的拨号终端。每个接口报文处理机通过电话专线彼此相连,它们能以较快的速度收发报文。现代网络的传输速度还在不断加快,所以才会有“信息高速公路”的形象说法。

    1969年,阿帕网的第一个节点在加州大学洛杉矾分校建成,接着,加州大学圣巴巴拉分校、斯坦福研究院、犹他大学的节点也投入了运营。第二年,东海岸又增加了3个节点:麻省理工学院,设计了阿帕网的思想库波尔特一贝拉奈克一纽曼研究所以及哈佛大学。

    此前,其他研究项目也对连接计算机作过尝试,但阿帕网最终成为一个全国性的计算机网。它将研究中心。军事基地与大学连接起来。开始的时候,网络上的机器清一色地都是DEC生产的PDP一10,而用户也全部是政府资助的专业计算机研究人员。到1973年,阿帕网上连接了25台机器。

    那时,与阿帕网相连意味着加入了一个精英集团。很多研究人员都把能够上阿帕网作为选择工作的条件,学术机构也往往以此为诱饵。对有些计算机科学家来说,访问阿帕网是必不可少的工作程序。如果让他们离开网络搞研究,就好像微生物学家被剥夺了显微镜一样。

    阿帕网仿佛一家私人俱乐部。“你上网了吗?”大名鼎鼎的计算机科学家见面时常常这样互相询问。加入这家俱乐部不容易,但一旦成为其成员,便获得了一个自由的空间。根本没有什么安全问题,任何人都可以在网络上的任何地方调阅文档。大学的研究生们在网络上随意游荡,度过了许多快乐的时光。

    这种俱乐部气氛部分地是由于技术的局限所产生的。70年代,阿帕网最多只能连接256台电脑。1982年,终于出现了一种新的网络编址方法,使网络获得了几何级数的增长。80年代中期,阿帕网成为一种叫做国际互联网的更加复杂的网络的前身,开始发展到美国以外的地方。它不再是一个工程实验。计算中心从网络上寻找技术支持,研究人员通过网络互相交流,各种各样的软件也因网络的存在得以大范围扩散。商业机构根据同样的通讯协议,建立起自己的私有网络,并利用互联网与世界各地保持联系。通过网关,互联网与其他成千上万的网络联系在一起,一些人甚至谈论起,更广泛的联网的可能性。他们将这种更大的网称作“矩阵”(the Matrix),这个名字出自于吉布森的《电脑魔异》。

    阿帕网的先驱者们看到他们创建的网络走向社会,并不感到高兴。起初,联网的费用每年高达25万美元,后来,由于用户的增多,这一费用大大降低了。大学和研究中心仍然是主力军,但到1988年的时候,网络的功能已得到空前的扩大。阿帕网本来是作为一家计算实验室来使用的,慢慢地却成为发送电子邮件的工具,这些邮件包含五花八门的话题。创建者们感到困惑,他们有些气愤地看到,记者也开始建立了网上账户。这就好像看见这些耍笔杆子的人跑到大学的化学实验室里挥舞吸管和本生灯(一种实验室用的煤气灯)一样荒唐可笑。

    逐渐地,阿帕网被更快的数据传输线路所取代,1990年它撤出运行,完全融入到互联网之中。互联网目前已成为对人类生活发生巨大影响的技术,全世界有上千万人在使用它改变我们的工作、教育和娱乐方式。最崇尚权力和等级制度的军方创造了最分散和平等的网络,这件事本身就十分有趣。

    不过,当初建立网络的目的是为了进行试验,探索网络自身的影响和威力。1971年,波尔特一贝拉奈克一纽曼研究所的鲍勃·托马斯(Bob Thomas)开始从事有关分布式软件的研究。研究小组设计了一个空中交通控制仿真系统,用以在不同的计算机上模仿不同的机场。它可以将一架飞机的控制权由一台计算机转移到另一台上,并通知其他的计算机,这架飞机的方位有所改变。为此,托马斯写了一个巧妙的程序,能够穿行于网络中,在每台计算机上显示:“我是一只爬虫!你抓不住我!”很快,它在同行中出了名,其他黑客也开始写作类似的程序,其中一些在穿行网络的过程中不断复制(这与“爬虫”不同,“爬虫”并不繁殖,只是不断移动),另外一些则含有“捕获者”功能,能够搜索并消灭“爬虫”。这类程序风行了几个月,慢慢才沉寂下来。

    80年代早期,施乐帕洛阿尔托研究中心的两位研究人员开始实验“蠕虫”程序,它能够在一个局域网中的许多计算机上运行。“蠕虫”来自于布鲁纳1975年的经典科幻小说《电波骑士》。小说描写的是一个集权政府通过无所不在的电脑网络操纵一切。一个反叛的程序员在网络中安放了一种叫做“绦虫”的程序,成群结队地出没于网上,政府为了杀死“绦虫”,不得不关闭网络,在此过程中它的权力遭到颠覆。

    随着这本书的畅销,布鲁纳成为科幻小说读者心目中的偶像。它对刚刚开始发育的的美国计算机地下社会产生了巨大的影响,在硅谷和马萨诸塞州的坎布里奇(cambridge,麻省理工学院所在地)这两个个人计算机的发展圣地,它被飞客和黑客们如饥似渴地阅读着。施乐公司的约翰·肖奇(John Shoch)和乔恩·海普(Jon Hepp)也是布鲁纳的崇拜者。

    这两位研究人员在寻找一种更加普及和有效地共享局域网计算机资源的方法。他们写了五六个有用的“蠕虫”程序。一个叫“宣传虫”,它的任务是在网络中穿行,每到一处都发布公告。另外一种是“诊断虫”,可以在机器间跳来跳去,检查什么地方出了毛病。最值得赞扬的是“吸血虫”,它用以在网络工作站上寻找空闲的处理能力。每台机器都有不少闲置的时候,有了这种程序,就能够化废为宝。晚上当人们下班回家的时候,“吸血虫”可以自行启动,利用这段时间解决特别复杂、需要大量运算的问题。第二天早晨,当电脑的主人开
始工作时,“吸血虫”就把还没计算好的题目存起来,退到一边,等待晚上继续处理。

    但肖奇与海普也认识到“蠕虫”带有某种潜在的危险。一天晚上,一个出岔的蠕虫程序在帕洛阿尔托研究中心的局域网上失去了控制。次日晨,当中心的科学家们来上班时,他们发现所有的计算机都瘫痪了。他们开始重新启动系统,但每次启动后计算机都因蠕虫的袭击而再次失败。最好他们只好写了一个“疫苗”程序,给网络上的每台机器种上疫苗以抵抗蠕虫。

    阿帕网也自然而然地成为研究计算机安全的试验场。70年代后期,贝尔实验室的科学家肯·汤普森(Ken Thompson)为了写一篇关于破解口令的论文。选了好几所学校,如哈佛、麻省理工学院、卡内基梅隆和加州大学伯克利分校做试验。他的口令破解程序非常成功,他发现自己无意中获得了阿帕网的一些主要管理人员的口令,这些人在网络中的许多电脑上都有账户。他试着用这些口令打开系统,无一失灵。汤普森和鲍勃想,如果这些口令落到了“坏人”手里,后果将不堪设想。汤普森立即给口令的主人发出邮件,警告他们注意这个问题。

    罗伯特·泰潘·莫里斯1983年秋步其父后尘,进入哈佛学习。当时的哈佛还没有正式的计算机科学系,在中学就是电脑迷的罗伯特到校后不久就找到艾肯计算实验室(Aiken Computation Laboratory),要求开一个账户。实验室是为了纪念霍华德·艾肯(Howard Aiken)而建立的,这位哈佛数学教授1944年在IBM的协助下,制造了世界上第一台大型电子计算器马克一号(Mark I)。

    实验室负责人耐心地对罗伯特解释说,一年级的学生不能在艾肯开账户,它只对教师和高年级学生开放。罗伯特二话不说走出来。几天后,他自己解决了这一问题:他把艾肯的VAX机改成单用户状态,建立了自己的账户,然后再把机器恢复为多用户状态。他的登录名是rtm,自从在贝尔实验室的日子起,他就使用这个名字。此后不久,一位父亲的老朋友帮他弄了一个正式账户。

    实验室的管理员尼克·霍顿(Nick Horton)对Unix系统所知甚少,而罗伯特则是这方面的行家,所以霍顿在很多地方需要罗伯特助他一臂之力。罗伯特很快成了实验室的常客,像他父亲一样,他对一切都充满好奇,不论对软件还是硬件都十分精通。他变得小有名气,人们有困难都爱找他。

    哈佛大学主修电脑的学生不多,每年只有30人左右,但与街对面的麻省理工学院的学生相比,他们个个都是全才。罗伯特不是只会玩电脑的书呆子,他是游泳好手,又是合唱团的成员。他的同学每人都有许多爱好。有位教授找一位学生帮他写程序,一天他去实验室时看到的情景令他一震:这位学生利用等待计算机输出结果的空隙,同时在看两本书:一本是法语,一本是德语。

    到一年级未的时候,罗伯特几乎把所有的时间都花在了艾肯。他擅长迅速编写程序来解决紧迫的问题。他对Unix 的精通也令人吃惊:Unix的操作手册有两千页之多,别人把它带在身边是为了随时查阅,但罗伯特读来却像读科幻小说一样津津有味,并把大部分的细节都牢记在心。只要他在机房,别人就懒得查阅手册,请教罗伯特要方便得多。依照传统的标准衡量,他是一个不折不扣的黑客。

    那年暑假,罗伯特回到密灵顿家中,同时为贝尔实验室工作。他完成了一篇有关伯克利Unix安全漏洞的技术论文。哈佛大学甚至专门在学校和贝尔实验室之间架设了一条数据线路,以便罗伯特能够对学校的计算机系统进行远程诊断和维修。罗伯特的指示很简要,但总是能够一举解决问题。

    艾肯的工作人员流动很快,但在1986年初,一群背景不同的人才组成了一个凝聚力很强的团体。他们中有尼克·霍顿,一个热衷于社会活动的心理学学生;安迪·萨杜斯(Andy Sudduth),一个高个子、红头发的奥林匹克赛艇选手;大卫·汉德勒(David Hendier),主修信息和科学史,但却对烹调情有独钟。这些学生趣味相投,一起参观博物馆。滑雪或者聚餐。

    在艾肯工作并不轻松,工作时间没有规律,任务要求却很高。但罗伯特总能找到时间搞一些恶作剧。人们在查询有关电子邮件时,总爱把mail一词拼成mia1,罗伯特利用这一点做了手脚。他写了一段程序,每次只要有人犯了这样的错误,屏幕上不但不会出现邮件,反而会显示一个“地牢和龙”的冒险游戏。人们被这一手弄得哭笑不得,要求罗伯特清除这段程序。接着,四月一日愚人节的时候,罗伯特又故伎重演,他写了一个程序,让所有人一进入哈佛的计算机系统就感觉时光仿佛倒转了10年,看到的是早已过时的操作系统在同样过时的硬件上运行。每当有人间这是不是罗伯特干的,他总是低下头羞涩地一笑。

    然后是那个叫做Oracle的把戏。进入计算机的每个人都被告知:可以向Oracle程序提任何问题。但在提问之前,必须先回答Oracle的问题。有些问题涉及一些小的技术细节,另一些问题则很蠢(“为什么我们早晨8:30就得上课?”)。人们过了一段时间才明白,问题并不是由计算机提出来的,而是由其他用户发出的。有人一进入计算机,在计算机的要求下先提问,然后他的问题被送给下一个登录的用户。这个用户的回答又被送回第一个用户,如此循环往复。Oracle的聪明之处在于,它看起来似乎是计算机在操纵,实际上却是用户在彼此问答,计算机只是把他们的讯息传来传去而已。

    那些熟悉罗伯特的人都知道,他对计算机和安全怀有特殊的兴趣。这也是他对逐字逐句阅读Unix手册乐此不疲的原因。发现安全漏洞的最好办法就是仔细琢磨代码。他总爱抱怨伯克利Unix的漏洞太多。

    保罗·格雷厄姆(paul Graham),一个年轻而活跃的计算机科学研究生,一向认为启己比其他人都聪明。在他21年的短短人生中,也的确未遇对手。然而一天却有人跟他谈起了罗伯特。在一次艾肯的聚会上,别人把这个电脑神童指给他看。

    保罗走到他面前问道:“嗨,你是罗伯特·莫里斯吗?”
    这个被问的年轻人不好意思地低下头,然后把房间另一头的一个人指给保罗看:“不,那人才是罗伯特·莫里斯。”

    几天后,保罗才发觉自己上当了。这个否认自己是罗伯特的人几乎总呆在艾肯,总是干到凌晨3点,总在弄一些复杂的活计。当保罗开始到艾肯消磨时光时,罗伯特正在为电脑绘图课编写一个程序。令保罗印象深刻的是,尽管罗伯特已修完了这门课,他仍然在不断地完善这个程序,他这样做纯粹是为了智力上的乐趣。这个程序的运行很耗时,罗伯特总是抽空来做。为了不影响其他的系统用户,他编写了一个类似“吸血虫”的程序,利用电脑的空闲时间来进行运算。

    保罗开始用罗伯特的登录名rtm来称呼他。rtm似乎无所不知,他不仅精通VAX机,也会电脑绘图,并且读过所有的unix源代码。除了电脑外,他还熟读古典作品,懂得欣赏歌剧。他和保罗这样的郊区中产阶级青少年很不一样:他们在电子游戏、电视和垃圾食品的影响下长大。与罗怕特相比,保罗感到自己的童年完全浪费掉了。他羡慕罗怕特的成长环境:田园般的家园,私立学校教育,有趣的度假生活,名望卓著的父亲。他敬佩rtm的才能,觉得认识他是自己一生中最棒的事情。

    直觉告诉保罗他会和rtm成为好朋友,因为他发现两人有一个共同点:都不愿意坐在教室里听“没劲”的课,两人都是逃课老手。但保罗很关心,为什么rtm没有女朋友。“如果你喜欢上谁,rtm,你可得对她说啊,”保罗开导罗伯特说。“你不能指望她猜到你的心思。”

    “但我就这么害羞,有什么办法呢?”罗伯特总是这样回答。
    罗伯特和他的朋友不止一次梦想依靠他们的专业知识发大财。罗伯特曾想开一家电脑制图公司,还想用电脑预测赛马结果,但最后都不了了之。

    罗伯特上三年级时,鲍勃决定换一份工作。他期望自己能当上负责开发新一代Unix的部门的主任,这一Unix新版本将堵塞过去的安全漏洞。但由于贝尔实验室的官僚作风,一连好几个月他都没有等到任命结果。就在这时国家安全局向他提供了一份他难以回绝的工作:出任全国计算机安全中心的首席科学家。他卖掉了密灵顿的房子,搬到了马里兰州的阿诺德。

    到四年级,罗伯特还是照样在艾肯起劲地玩电脑,而把学校的功课丢在一边。要是不去艾肯,他就和大卫一起烘饼干给朋友们吃。放寒假时,在父亲的建议下,他给国家安全局作了一场有关Unix安全问题的报告,第二天又向海军研究实验室的一群人重复了同样的内容。毕业后,罗伯特考取了康奈尔大学计算机系的研究生。

    1988年8月的最后一个星期,罗伯特进了康奈尔大学。

    在康奈尔大学的第一周,学校的计算机系统管理员迪恩·克拉夫特(Dean Krafft)介绍了一些基本的计算机系统使用知识,诸如怎样登录、怎样发送电子邮件等等,罗伯特几乎没怎么听课。克拉夫特给每人发了一份计算机系的计算机使用规定,禁止“使用学校的计算机系统浏览私人文件,进行加密材料的解密,或是非法取得用户特权”。在克拉夫特还在那里蝶蝶不休的时候,罗伯特已经登录到系统上了。

    罗伯特从基础的研究生课程上起。教授注意到他有着异乎寻常的好奇心。如果一样东西不能立刻引起他的注意,他会毫不客气地予以拒绝。有一位教授交给他一篇论文要他阅读,他却把论文还给了教授,说他对论文的题目不感兴趣。他过去已在讨厌的课堂上花了大多时间盯着窗外出神,现在可不想忍气吞声了。

    罗伯特很孤僻,对许多事情都有些漫不经心。他在电脑上花了很多时间,但对学校的课程并不上心。他和道森·迪恩(Dawson Dean)交上了朋友。道森来自麻省理工学院,也喜欢讨论技术问题。一天晚上,两人都在计算机系所在的阿普森大楼工作得很晚,随意谈起了网络安全。罗伯特说他已经发现了好几种越过局域网的安全防护装置的办法。

“你是那种为了好玩而侵入电脑的人吗?”道森问。
罗伯特笑着点点头。他告诉道森,他曾经就安全问题给国家安全局和海军研究实验室作过报告。但他可不想以后从事计算机安全工作。“那太枯燥了。”他对道森说。

    罗伯特可能还没有确定长期目标,但心目中却有一个短期目标。

    1972年,科幻小说家大卫·杰罗德(David Gerrold)首次使用“病毒”一词来指有害的电脑代码。80年代初,病毒开始困扰个人计算机,1983年,弗雷德·科恩(Fred Co hen)第一个给出了电脑病毒的科学定义。但直到1987年,公众才普遍感知这一问题。那一年,一起袭击了宾夕法尼亚州勒海大学(Lehigh University)的病毒事件引起了全美国的注意。一年后,病毒相继成为《时代》和《商业周刊)的封面故事。它之所以惹人注目,是因为它带有一种神秘感,并且与生物学上的病毒非常相像。计算机也会被“感染”,需要接种“疫苗”,这些都令普通人感到好奇和恐惧。很快人们就把电脑病毒与艾滋病毒相提并论。

    一般人都认为,所有的病毒都是有害的,都会损坏数据。但内行人知道,实情并非如此。事实上,写一个微妙而无害的程序,同时又使它有能力大规模扩散。是一件比制造那些破坏性的病毒更有趣的事情。

    这就是罗伯特的目标。写一个能够传染尽可能多的计算机的病毒,这听上去颇为激动人心。罗伯特兴奋地幻想着他的目标实现的那一天:一个看不见的软件在由成千上万台计算机组成的电子宇宙中不断向前推进,缓慢地、不为人觉察地扩张它的疆土,任何想要摧毁它的人都无计可施,这一病毒由此获得了永生。他拥有实现这一目标的手段:两年来他发现了伯克利Unix中的许多漏洞,他耐心地研究它们,也许就是为了有朝一日对它们加以利用。到10月初,罗伯特已被这个念头烧得坐立不安。

10月15日,罗伯特列了一张清单,上面有他打算完成的任务:
目标:每次感染以大网(局域网)上的3台机器
只在所有用户都停止工作的时候运行
绕开速度慢的机器
检查主机表,寻找已知的网关,然后找出该网的主机
偷偷进入口令文件,破解口令,再重新运行

    在罗伯特的心目中,这是一个检验网络安全的无害的计划。在计算机科学的发展早期,为了赢得同行的尊敬,他父亲说不定也曾梦想过这样的宏图伟业。但罗伯特忘记了网络的发展已是今非昔比。他也许根本没想过,破坏分子也会采取同样的手段颠覆整个电脑网。

    暑假的时候,罗伯特搭道森的车回到坎布里奇。大卫去了欧洲,但保罗和安迪都在。这就好像回到了旧日的时光。罗伯特在楼上一如既往地玩电脑,保罗则在楼下一位数学教授的办公室里。一天傍晚,罗伯特从楼上下来,脸上带着他惯有的腼腆的笑容。保罗知道有什么事情要发生。罗伯特在办公室里转来转去,说他一直在阅读unix的源代码,在文件传输协议(FTP)中发现了一个大的编码疏漏,这种疏漏常被编程人员戏称为“臭虫”(bug)。FTP允许用户在网络中从一台计算机向另一台计算机拷贝文件,而这个“臭虫”使人可以在目标计算机上读取或撰写文件。

    从罗伯特激动的语调判断,保罗知道他一定是在几分钟前发现的“臭虫”。他在小屋中转得越来越快,甚至跳上了教授的办公桌。

    “rtm,快下来!”保罗不明白罗伯特为何这样激动,那只不过是打入Unix的又一种方法罢了。“这个漏洞是很有趣,但那又怎样呢?”

    “我可以利用这个漏洞写一个病毒。”罗伯特解释说,在康奈尔,整个学期他都在琢磨一个能在互联网上缓慢扩散的病毒。这一病毒不会做什么有害的事情,当然也不会损坏数据。它只是无休止地扩散,侵入尽可能多的计算机。

    保罗立刻来了劲儿。他一直鼓励罗伯特在康奈尔多交些朋友,多参加社会活动,但当他听说罗伯特把时间用在琢磨病毒上,他很兴奋,还有些羡慕。

    “这真是太棒了!你应该把这作为你的学位论文!”

    在某种意义上,保罗是最理想的朋友。他一旦对一件事发生兴趣,会竭尽全力鼓动朋友去做。他的热情常常会感染其他人,对他的朋友和偶像rtm就更是如此了。他是一个单人啦啦队。他的赞扬使罗伯特更加坚定了信心。

    当晚罗伯特和保罗要和安迪一起吃晚饭。两人在一家餐馆外面等待安迪,这时,他们又情不自禁地聊起了病毒。由于网上没有这样的先例,所以思考起来需要很多的创意。两人一致认为,这个想法会导致电脑圈子里梦寐以求的“伟大的黑客行动”。罗伯特开始向保罗描述这样一个程序的一些重要特征。首先,它必须能够潜入网络中的许多不同的机器,还得尽可能地不引人注目,以防系统管理员怀疑;其次,它立足之后,必须想法发现是否已有自己的其他拷贝在机器上,它应该有自我控制能力,对每台机器上的拷贝数进行限制。但有一个
难题仍未解决:如何在不停止病毒运行的前提下控制其蔓延。

    在等待安迪的时候,罗伯特进一步明确了他的计划。病毒将从他发现的Unix漏洞中进入计算机,然后在系统中寻找有无其他拷贝。如果有的话,两个程序将互相“交谈”,在理想情况下,其中之一将自动停止运行,从而达到控制病毒繁殖的目的。但如果有人发现了侵入的病毒,那又该怎么办呢?程序员可以写作一个欺骗性的程序,使病毒误以为在这台机器上已有自己的拷贝了,这种“疫苗”程序将有效地阻止病毒的扩散。罗伯特和保罗仿佛两个棋手,每走一步都要设想对手会有什么反击的招数。他们用什么办法击败“疫苗”程序呢?

    随机性!这个念头突然闪过他们的脑海。他们一起上过迈克尔。拉宾(Michaei Rabin)的课,他是一位著名的数学家和密码专家,在哈佛讲授算法课。他总是强调随机化的重要意义,一再告诉学生说,如果遇上一个难以解决的问题,可以把它简化,然后再应用随机性原则。(这也是鲍勃·莫里斯的拼写检查程序的基本思路。)拉宾说的是运用随机性解决抽象问题,比如说寻找素数,但罗伯特和保罗却想,他们可以用同一个概念构想病毒。当病毒进入计算机并发现另一个拷贝时,它可以扔一个“电子硬币”决定谁生谁死。

    罗伯特还想出了另外一种保证病毒生存的办法。病毒在N次尝试进入一台计算机后,给自己下一个永不停止运行的指令。然而新的问题又来了:N值应该是多少?5次?1000次?10000次?

    就在他们讨论得正热烈的时候,安迪过来了。虽然他不是外人,但他担任着艾肯的系统管理员,这件事会把他置于尴尬境地。两人突然中断了谈话,安迪还以为他们在议论一个他和罗伯特都喜欢的女孩儿。

    罗伯特难以摆脱关于病毒的思绪。他也无法抑制他发现“臭虫”的兴奋之情。第二天,他还是忍不住对安迪说了这件事,并要安迪不要外传。

    安迪立马就要在计算机上验证罗伯特的发现。当他弄不明白时,罗伯特不得不给予更详细的解释。

    罗伯特回到康奈尔后,保罗给他发了一封电子邮件:“伟大的计划有什么新进展吗?”两天后,他接到罗伯特的回信:“没有进展。我正陷在合法工作中。”保罗知道他指的是功课。但病毒项目并没有中断,罗伯特在哈佛休假时所做的一件最耗时的事情就是,破解他从全国各地的机器上搜集来的一组加密的口令文件。

    直接将一个口令解密几乎办不到,但猜测却常常奏效。破解者不可能倒转加密过程来解密,但可以把一部字典整个加密,然后把加密结果与经过编码的口令相比较,从中猜出原始口令。许多口令都是普通的英语单词,所以使用词典破解法发现口令的频率相当高。计算机越快,使用的机器越多,破解的时间就越短。

    一天晚上,道森在机房里遇到了罗伯特,他问罗伯特在于什么。罗伯特让道森看他电脑屏幕上的东西。道森睁大了眼睛,那是一长串经过解密的口令,其中不乏康奈尔学生和教授的口令。他们导师的口令也在上面,它看上去有点可笑,叫做“番茄”。

“哇!”道森惊叹道。“我的口令也在上面吗?”
他的口令没在上面,因为它不是词典上的词。
道森好奇地问:“你能够在任何地方都破解口令、建立一个全国性的口令库吗?”

    罗伯特说他除了破解口令外,还有其他办法打入计算机。

    道森一再追问他还有什么办法,最后罗伯特只好告诉道森,在阅读Unix源代码时,他发现了好几个臭虫。在send-mail程序中有一个后门,另外,在finger程序中也有一个漏洞,使他可以毋须登录也能在另一台机器上运行程序。罗伯特说他发现这两个臭虫已有一年,似乎还没有其他人知道。

    道森想知道罗伯特能进入哪些电脑。他向罗伯特说起一家私人公司的电脑,罗伯特摇摇头:“进入那里并不难,但最好是只同大学的电脑打交道。一般说来,大学的安全管理比较松懈。”他还说,最好不要侵入外州的电脑。

    道森请罗伯特进入麻省理工学院媒体实验室(Media LaU),几分钟之内,罗伯特就进去了。道森惊叹不已:“你用的是谁的账户?”

    罗伯特让机器显示他使用的账户名,回答是“无人进入系统”。显然,他骗过了计算机,悄悄溜进了系统内。

    但罗伯特没告诉道森他的伟大计划。他已经开始写作病毒程序。一周后,也就是1988年11月2日,他在网络上看到一条讯息,心里十分沮丧。伯克利Unix专家凯斯·波斯蒂克已经堵塞了FTP中的漏洞。罗伯特才把这一漏洞告诉给安迪没几天,他怀疑一定是安迪跟伯克利的什么人说了。他给安迪发去一封信,质问对方是否泄露了秘密,安迪没有回答。这意味着罗伯特不能利用FrP中的臭虫了。但send-mail和finger程序中的漏洞还在。

    当天下午和傍晚,罗伯特一直在奋战,以便抓紧完成病毒的写作。7点半的时候他终于写完了。1小时后,他进入麻省理工学院人工智能实验室,下了几条指令,让电脑执行病毒。然后他就出去吃晚饭了。

    在他按下回车键,站起身来往外走的同时,病毒开始扩散。几分钟后,它已肆虐于网上,一台又一台的计算机纷纷倒下。罗伯特在餐厅里狼吞虎咽的时候,病毒正在大量繁殖,与正常的程序展开计算时间的争夺战。成千上万的机器变得越来越慢,最后陷于瘫痪。

    吃完晚饭,罗伯特本来是打算回宿舍的,但他忍不住要去阿普森大楼检查一下病毒的进展情况。他试图登录,但计算机毫无反应。事情似乎不对,病毒失去了控制。

    当晚11点,保罗和安迪刚刚从外面回到艾肯的办公室,房门还没打开,就听到电话铃响。安迪接了电话,是罗伯特,他想和保罗通话。安迪把听筒递给保罗,就转身走开了。

    电话里的罗伯特听起来情绪低沉:“我他妈的闯祸了!”他叫道。保罗第一次听到rtm说脏话,他知道一定出了什么大事。他的第一个反应是罗伯特在女人身上遇到了麻烦。

“到底是怎么回事?”保罗问。
“我释放了一个病毒,和我预先设想的运行情况完全不同,”罗伯特说,“我把它的复制参数设置错了。”
“你用的参数是多少?”保罗明白,复制参数是指即便电脑内已有一份病毒拷贝,这台电脑仍有多少机会感染病毒。
“1/7”。
“1/7!你发疯了,rtm!”保罗当时就想到,这一参数应该是1/1000甚至更小。

    但罗伯特没心思和他探讨为什么会发生这样的错误。他告诉保罗康奈尔大学的Sun和VAX工作站全部瘫痪,由此推断,其他地方的计算机肯定也难逃噩运。他说他当晚早些时候在麻省理工学院人工智能实验室释放了这个病毒,晚饭后发现,凡是他能检查的系统都被病毒缠住了。

    他们一起讨论控制病毒的办法。保罗的点子是再释放一个杀病毒程序,一路追踪病毒并杀掉它。但罗伯特却忧心忡忡:他已经把一个程序弄得一团糟,如果第二个程序再出岔怎么办?

    另一个办法是告诉安迪。安迪起初不信,但后来想起了罗伯特给他的那封关于FTP臭虫的信。他的确把罗伯特的发现讲给一些人听了,可能最后又传到伯克利。事后他才想起来罗伯特叮嘱过他要保密。他一直未给罗怕特回信,这时听了保罗的话,便发了一封电子邮件:

    “很抱歉我辜负了你的信任。告诉我现在发生了什么事。”

    1小时后,罗伯特打电话给安迪,告诉他网络上有一种病毒似乎在破坏许多电脑。他没说病毒是他写的,安迪也没问。安迪关心艾肯的电脑是否也被传染上了,罗伯特说没有,因为艾肯已经修补了病毒赖以进入的漏洞。罗伯特请安迪发一封匿名邮件到网上,告诉大家控制病毒的办法。罗伯特说了几个要点,安迪拟好邮件发出去:

病毒报告:
可能有一个病毒在互联网上失去了控制。
我得到如下的讯息:
我很抱歉。
为了防止更多的传染,请采取以下步骤:,
(1)不要运行finger程序
(2)修改sendmail程序,取消其中的“调试功能
(3)不要运行rexecd程序

    希望这些能有所帮助。更愿这是一场虚惊。

    安迪说他会确保这一邮件由远程机器发出,以免追查到他和罗伯特身上。他决定不去告发,应由罗伯特自己决定何去何从。他要罗伯特做好撒慌的准备。如果有人间起病毒的事情,千万不要脸红!

    挂上电话后,安迪在网络上七绕八绕发出了邮件,因为这封邮件绝不能出自哈佛或康奈尔。然而它的命运一开始就不济。安迪选择的发信地点布朗大学已被病毒包围。而且,安迪忘了写上“事由”一项,这使得邮件即使到了网上,也很难引起人们的注意。

    安迪还试图打电话给伯克利,但却不知打给谁。伯克利的总机没人接,他想,也许不值得为这事把人家从床上叫醒,加州已是半夜了。

    安迪清楚,每个程序员都可能出错,即便是编程奇才罗伯特也不能幸兔。他自己也曾因网络路径指令中一个小小的错误导致哈佛的200台电脑关机。校方知道这是个意外,没有处理他。也许这个病毒并没有罗伯特和保罗说的那样可怕。如果它影响了康奈尔的一些电脑,有些人会不高兴,但这也没什么了不起的。他已为朋友做了应做的事情,于是,凌晨4点,安迪回去睡觉了。

    罗伯特、安迪和保罗都未曾想到过,罗伯特的行为犯了法。罗伯特最大的担心是电脑界会因此事而愤怒,也害怕学校处罚他。病毒已经对互联网造成了破坏,并且也许还在继续蔓延,罗伯特真心希望安迪发出的邮件能减轻点损失。

    3日早晨,安迪起床上班时,病毒的消息已传遍了艾肯。很多人都猜测是罗伯特干的,因为哈佛人都知道他是个安全专家、网络老手,并且喜欢偶尔搞些恶作剧。唯一与罗伯特天性不合的地方是,这个横扫网络的病毒太毒辣了。

    安迪不清楚他的邮件是否被人们看到了。不断从伯克利和麻省理工学院传出如何处理病毒的指示,但没人提及那封匿名信。这些指示与罗伯特告诉安迪的一模一样。
---
...全文
363 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

435

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧