Poketto

只是想“数一数”互联网有多大:康奈尔研究生的蠕虫,让 1988 年的网络停摆

文章主题概念插画

配图:AI 生成的概念示意图,非论文原图、真实现场或实验数据。

TL;DR:1988 年 11 月 2 日,康奈尔研究生罗伯特·莫里斯放出一个自我复制的程序,约有 10% 的联网计算机被拖垮,通常引用的数字是约 6000 台。这并非新闻,而是三十多年前的旧事。“感染 10%”本身是估算,不是精确统计;事故的主因是复制逻辑的设计失误,而不是破坏性代码。莫里斯后来成为首个依据美国《计算机欺诈与滥用法》被判重罪的人。

这件事发生在 1988 年,当时的“互联网”还是几万台机器的小圈子,当时全网估计只有约 6 万台计算机。

11 月 2 日晚,莫里斯从 MIT 的网络上放出了这个程序。它利用了几个当时常见的漏洞:sendmail 邮件程序里遗留的调试模式、finger 服务的缓冲区溢出,以及 rsh/rexec 的信任关系,同时还会用常见单词和简单规律去猜弱口令。

真正的灾难来自一个小设计。为了防止管理员用“假装已被感染”的办法挡住它,莫里斯让蠕虫无论目标是否已被感染,都有约 14%(大约七分之一)的概率继续复制。结果是同一台机器上堆满副本,系统越来越慢,直到无法使用。

“约 10%”的来历也值得说一句:它来自对当时联网规模的估计,约 6000 台受影响,对应约 6 万台的总量。也有研究者认为实际只有几千台。至于损失,估算范围极大:单个站点的清理成本从几百到数万美元不等,总经济影响的估计在十万到一千万美元之间。

莫里斯随后被识别,并依据当时才出台两年的《计算机欺诈与滥用法》被定罪,成为该法下首个重罪判例。经上诉后,他被判三年缓刑、400 小时社区服务和约 1 万美元罚款,没有入狱。

这次事故的另一个遗产是 CERT。DARPA 出资在卡内基梅隆大学建立了计算机应急响应小组协调中心(CERT/CC),让“网络出事了该找谁”第一次有了固定答案。

荒诞之处在于:一个本想低调测量网络规模的程序,因为一个“保险”参数,成了早期互联网第一次集体停摆。

来源:

关注这个空间,它的新文章会出现在你的关注动态里。