走火的科学神童
罗伯特释放病毒的当晚,波斯蒂克只睡了3小时。清晨6点他赶到办公室时,电话铃已
经响个不停。打电话的是来自各地的愤怒的电脑管理员,要求知道怎样对付病毒。他们对伯
克利分校怨气冲天。伯克利Unix的最大客户之一美国国防部更是怒不可遏。你们知道伯克
利Unix有漏洞吗?谁释放了这种阴险的病毒?他会不会在病毒中安放了特洛伊木马?伯克
利是否计划将病毒代码层层分解?问题连珠炮般提出来。
前一天波斯蒂克已发出“病毒报告第一号”,要用户修改sendmail程序。8点的时
候,他发出“病毒报告第二号”,对如何修改进一步作了说明。他和同事们准备分解病毒,
这是一项艰巨的任务,但不这样做,就无法搞清病毒是否有害。
与此同时,麻省理工学院的程序员也在昼夜奋战。3日中午,伯克利接到麻省理工学院
的通报,指出病毒进攻的第二个渠道是finger程序。病毒向finger传输超量数据使其瘫
痪,一旦它占据了内存空间,就会启动一个小程序,从网络的其他地方把病毒的母体带入目
标计算机。
波斯蒂克起初不信——finger只是一个50行的小程序,这么个小东西会隐藏重大错误
吗?但麻省理工学院送来一个finge,中漏洞的展示样本,波斯蒂克不得不服。他很快发出
“病毒报告第三号”,指示用户修改finger程序。
由此,波斯蒂克认定:唯一发现病毒隐藏危险的办法就是对其逐行分解。
分解程序,意味着把它由1和0组成的序列(电脑把这些1或0理解为“开”或“关”
的指令)还原为程序员能够编写和理解的东西。这就好像拿到一本由英文原版翻译过来的中
文书,再在没有原版书参考的情况下,把它翻回英文。新的英文书不可能与原版完全一样,
但好的译者能做到意思大致不差。在一个程序分解后,它使用的语言也许会有所不同,但其
表现方式与原程序将是相似的。
在通常情况下,人们编写而不分解程序。也就是说,一旦程序由源代码翻译成机器可执
行的代码,就没有理由去逆转这个过程。一个程序的源代码是无价之宝,因为它是了解程序
作者意图的窗口。如果某一程序的作者有意隐藏源代码以避免他人看穿他的用心,那么唯一
的办法就是分解程序。只有很少的程序员有过这种经验。
伯克利却能够胜任这样的工作。它不仅是伯克利Unix 的发源地,而且还是世界各地
Unix专家一年一度聚会的场所。事发之际恰逢unix年会召开,所以波斯蒂克很快找到了一
些分解程序的好手,建立了一个工作小组,其中之一来自硅谷,名叫戴夫·巴尔(Dave
Bare)。就这样,美国东西两岸的程序员同时在于着分解程序的工作。麻省理工学院与怕克
利分校表面上合作,暗地里却较着劲儿。它们都想抢先完成。伯克利小组时时接到国防部打
来的询问进展情况的电话。
紧张的气氛源于人们不知道病毒程序是否内藏有害的指令。一次,巴尔看到有些代码似
乎带有定时器。
“嘿,伙计们,”巴尔叫道,“每过12小时它就活动一次!”
“什么?”所有的人都绷紧了弦。
“它启动一个叫做‘清除H’的任务。”
“清除H?”这意味着清除主机吗(H=Host)?它是不是想把它所运行的主机上的所
有文档都销毁?
波斯蒂克赶忙冲到巴尔身旁。任何定时的东西都不是什么好兆头。预定时间一到,谁都
不清楚会发生什么事。巴尔立即对它进行了分解,结果证明是一场虚惊。病毒每隔12小时
就产生一个受感染主机的清单,“清除H”是用来消除这个清单的。
伯克利小组很快发现了病毒程序中的一些错误。最使巴尔不解的是,程序的质量很不稳
定。有些部分美妙绝伦,另一些部分则败笔迭出,似乎根本就不是同一个人写的。
在坎布里奇,麻省理工学院发现了程序的一个重大缺陷:新到来的病毒与已经在机器中
立足的病毒难以对话,因为后者并没有足够的耐心听前者说话,从而承认它的到来。因而,
每个病毒都认为自己是唯一的,罗伯特设计的用以促使病毒拷贝自我毁灭的“电子硬币”投
掷,根本就不会发生。这是该病毒的致命伤。由于这个缺陷,不要说作者把复制参数误设为
1/7,就是设定为1/1 0,也是无济干事。
3日下午4点,病毒的结构重组完毕,结论很明显:它是无害的。第二天早晨,波斯蒂
克发出了第四份也是最后一份病毒报告。这份报告是伯克利小组开的一个玩笑,它是病毒自
身缺陷的勘误表!它似乎在嘲笑病毒的作者:你可真有两下子,但离伟大还差得远呢。这以
后,波斯蒂克把分解后的程序送了一个拷贝给国防部,然后回家睡觉去了。他两天不曾合过
一次眼。
但有一个问题立刻引起争论:应不应该把分解后的程序在网络上公布。波斯蒂克坚决反
对公布,他可不想让中学生抄下这一程序再试着运行。其他人则认为这种态度有点“老子天
下第一”,但波斯蒂克坚持说,在网上散发源代码就好像给人随便发枪。国防部对波斯蒂克
的态度倒是很赞赏。
3日早晨,罗伯特没有去机房,他留在宿舍里试图做功课。晚上,他去合唱团练唱,顺
道去了阿普森大楼检查自己的电子邮件。他发现大部分机器都恢复了正常,信箱里有学校的
通知,说互联网上发现了病毒,但康奈尔已控制住了局面。还有伯克利发出的关于修补漏洞
的指示。最后是保罗的来信,叫罗伯特打电话给他。
晚上11点,罗伯特打去电话,保罗告诉他媒介对此事的巨大反响。罗伯特没有电视,
当他听说三大电视网都把病毒事件作为头条报道时,感到十分震惊。
这天晚上,鲍勃和安妮在外用餐,席间谈起渗透互联网的病毒,斯多在早晨的电话里告
诉了鲍勃这个消息,但鲍勃一直在忙其他事,没有细想过病毒的来源。
11点30分,鲍勃已在家熟睡,罗伯特打电话来。他坚持让安妮叫醒父亲,说有事要
说。父子俩进行了一场简短的交谈。听说儿子做出这等事,鲍勃很不安,但没有发火。罗伯
特告诉父亲他已买好了第二天去费城的机票,鲍勃叫他不要对任何人暴露他的行踪。他需要
律师的建议。
5日,《纽约时报》头版头条以大字标题刊出《电脑病毒作者是国家安全局数据安全专
家之子》。报纸没能拿到罗伯特的照片,但第二天,父亲和儿子的照片同时出现。鲍勃的大
胡子遮住了半边脸,看起来就像一个科学狂人。
尽管总统大选在即,媒介还是对病毒事件穷迫不舍。计算机安全专家的儿子破坏了互联
网,这个故事简直大绝妙了。到6日早晨,电视和报刊记者已经挤满了莫里斯家的车“道,
他们在那里盘踞了两个星期。电话洪水般打进来。鲍勃没有失去他的幽默感。当一个朋友打
电话来,劈头就说“我不是记者”时,鲍勃回答:“那么你一定是拨错电话了。”
媒介报道起初集中在病毒对军方电脑的破坏上面,随着作案者身份的暴露,很快就转移
到莫里斯杰出的一家和科学神童的恶作剧怎样走火、酿成大祸的话题上。《芝加哥论坛报》
的专栏作家要求判处罗伯特重刑。记者们四处寻找计算机安全专家评论此事。DEC总裁
肯·奥尔森(Ken Olsen)在接受采访时说,尽管DEC电脑常常是黑客袭击的目标,电脑界
也不能因此限制网络的自由使用。“这件事引发的最坏结果,”奥尔森说,“就是我们阻止
学术信息的自由活动,而那是应该不惜任何代价保留的。”
当罗伯特的名字见诸报端时,认识他的人都不觉得惊讶。有一个故事说,当病毒叩击贝
尔实验室大门时,那里的unix专家都笑着说:“一定是莫里斯的小家伙干的。”哈佛的教
授们则叹息说:“为什么他不先在小范围内模拟试验呢?”
安迪、保罗和大卫则坐在艾肯的办公室里商量怎样保护他们的朋友。他们想设法让媒介
多从正面着手来报道这件事。正在他们商量的时候,罗伯特来了电话,他没告诉他们自己现
在何处。
“你在干什么呢?”
“烘饼干送给朋友,”罗伯特回答。
亦凡公益图书馆(shuku.net)
下一章 回目录