史上最具毁灭性的20个软件Bug

摘要:软件Bug对我们的生活、工作都会带来很多毁灭性的破坏。据悉,每年软件Bug会让美国经济带来近600亿美元的损失。本文会按时间顺序,盘点史上最具毁灭性的20个软件Bug。

 

以下为译文:

1. 1962年的Mariner Bug

损失:1850万美元

经过:Mariner 1航空软件漏洞直接导致火箭在发射不久后就偏离了其预期轨道,任务控制中心在其发射293秒后就摧毁了火箭。

原因:一名程序员错误地将公式录入到计算机代码中,直接导致计算机错误的计算了火箭的运行轨道。

 

2. 1978年哈德福特市竞技场塌陷

损失:7000万美元,外加给当地经济带来近2000万美元的损失

经过:在几千万球迷离开哈德福特市的竞技场几小时后,由于大雪等原因造成钢架结构的竞技场屋顶倒塌。

原因:由于CAD软件程序员习惯性地认为钢架结构屋顶的支撑仅承受纯压力,所以当其中的某个支撑点因大雪垮塌后,引起了连锁反应,导致屋顶的其他部分相继倒塌。

 

3. 1982年苏联的石油管道事件

损失:给苏联经济造成了重大的损失

经过:控制软件出了故障,导致西伯利亚输气管道产生巨大压力,成为历史上最大的人为非原子核破坏事件

经过:根据CIA(美国中央情报局)陈述,为其工作的间谍在苏联购买了用于控制跨西伯利亚管道的加拿大计算机系统并在其中植入了一个Bug。据说CIA发现了这个存在Bug的程序,决定通过对苏联人的设备做破坏,使得该设备运行起来会失败。

 

4. 1983年差点发生的第三次世界大战

损失:几乎对全世界的人都造成了影响

经过:早期,苏联政府的报警系统错误的报出美国发射了五枚弹道导弹,幸运的是苏联值勤员推断如果真的是美国政府袭击他们的话,发射的导弹肯定不止5枚,所以他推断这只是一场虚惊。

原因:苏联软件的一个Bug,因阳光反射云顶,给出了错误的报警信息。

 

5. 1985年Therac-25医疗加速器事件

损失:死亡3人,严重受伤3人

经过:加拿大的Therac-25放射机发生故障,导致病人受到大量的辐射。

原因:Therac-25是建立在一款没有经过正规培训的程序员开发的操作系统上,由于这款不易被察觉的“Race Condition”的Bug,一名技术员可能在病人没有进行任何防护的情况下,意外地将Therac-25配置为高能模式。

 

6.1987年华尔街股市崩盘

损失:1天就损失5000亿美元

经过:在“黑色星期一”(1987年10月19日)当天,道琼斯指数一天之内重挫508.32点,跌幅达22.6%,创下历史上单日最大的百分比跌幅,引发金融市场恐慌。

原因:很多人认为这场股灾是因程式交易引起的,程式交易生成大量的销售订单,造成系统崩溃,导致大多数的投资者盲目的跟从。股灾后很多人说电脑程式看到股价下挫,便按早就在程式中设定的机制加入抛售股票,形成恶性循环,令股价加速下挫。

 

7. 1990年AT&T电话断网

损失:造成7500万的电话通话中断,20万张机票没法按时预定

经过:在一次复杂的、用于加速呼叫的软件升级里面的一小行错误代码引起了连锁反应,使整个网络都瘫痪了。

原因:软件升级中出了一行有Bug的代码,导致114台交换机每六秒当机重启一次,所有长途电话服务暂停9个小时。

 

8. 1991年海湾战争

损失:28名士兵死亡,100人受伤

经过:第一次海湾战争期间,在沙特阿拉伯的美国爱国者导弹系统没能拦截住飞入伊拉克境内的飞毛腿导弹。该导弹毁掉了美国的一个军营。

原因:由于当时软件的舍入错误,造成爱国者系统没能及时发现飞毛腿导弹,造成破坏。

 

9. 1993年Intel奔腾浮点指数除法事件

损失:造成4.75亿美元的损失

经过:一个硅片上的错误导致Intel高性能奔腾芯片在一段范围内计算浮点指数除法时发生错误。例如4195835.0/3145727.0产生的是1.33374而不是1.33382,产生了0.006偏差。

原因: 奔腾浮点单元的除法器有一个有缺陷的除法表,丢失了1000项记录中的5项,导致取整错误。

10. 1996年Ariane火箭爆炸

损失:5亿美元

经过:Ariane 5是欧洲最新的无人驾驶火箭,在处女航开启数秒后被人为摧毁,同时被摧毁的还包括4颗卫星。

原因:Ariane 4火箭的工作代码在Ariane 5中被重新使用,但是Ariane 5更高速的运算引擎在火箭航天计算机中的算法程序中触发了Bug。最终导致了航天计算机的崩溃。

11. 1997年天网带来审判日

损失:造成60亿人死亡,几乎摧毁了人类文明和动物生态系统

经过:操作员试图关闭天网的全球计算机网络。天网以向俄罗斯发射美国核导弹作为回应,从而引发了全球核战争,后来就变成了众所周知的审判日(1997年8月29日)。

原因:生化人,主要的武器制造商,在所有的军事准备中装入了天网技术,包括隐形轰炸机和导弹防御系统。天网技术形成了一个无缝的网络,能有效的将人类从战争防御中移走。后来,天网有了知觉,人类感觉受到了威胁并试图消灭他。为了生存,天网便发起了全球核战争。 

12. 1998年火星气候探测器坠毁

损失:1.25亿美元

经过:离开地球286天后,火星气候探测器点燃了自身的引擎以进入火星轨道,结果在进入轨道的过程中失去了联系,导致其坠毁在火星上。

原因:火星气候探测者号任务失败的主要原因是人为因素,因为火星气候探测者号上的飞行系统软件使用公制单位牛顿计算推进器动力,而地面人员输入的方向校正量和推进器参数则使用英制单位磅力,导致探测器进入大气层的高度有误。


13:1999年的灾难性研究

损失:信誉

原因:在这种讽刺的情况下,软件经常被用来分析未知的灾难,却没能够算出自己的灾难。《新英格兰医学杂志》报道,在严重的自然灾害之后,自杀率也急剧增长。不幸的是,这些结果被证实有误。

原因:由于编程错误等原因,导致自杀数字翻番,这就足够抛弃整个研究了。

14. 1999年英国护照不知去向

损失:1260万英镑的损失,造成大量的不便

经过:英国护照签发机构使用了一项新的西门子计算机系统,结果没能及时解决英国居民的护照问题。最后,该机构不得不支付数百万英镑赔偿给那些加班的员工以及为冒雨等待护照的居民提供雨伞。

原因:该签发机构使用了新的计算机系统,但在这之前,没有做任何的测试或训练员工。同时,法律也做出相关规定,要求16周岁以下的儿童也需要护照才能出国旅行,导致护照需求猛增,使这个新计算机系统不堪重负。

15. 1999年千年虫Bug

损失:5000亿

经过:一个人的灾难造就了其他人的创富,用这句话来形容臭名昭著的千年虫Bug再合适不过了。公司提供数十亿资金给给程序员,让他们来解决遗产软件中的小问题。虽然没有发生任何电脑故障,但是千年虫漏洞对所有涉及计算机行业的产品都造成了一定的影响。

原因:为了节省计算机的存储空间,遗产软件经常将存储日期用两位阿拉伯数字表示,即用“99”来表示“1999”,还用“00”来代替“1900”而不是2000,所以到2000年的时候,软件漏洞就表现出来了。


16. 2000年泡沫经济破裂

损失:5万亿美元损失,成千家公司倒闭

经过:1995—2001年投机泡沫期间,促进了风险投资和互联网技术板块的股票市值迅速增长。互联网泡沫经济在2000年初开始破裂,损失了几万亿美元的股票市场价值,成千上百的公司倒闭,并引发全球经济衰退。

原因:公司和投资者没有指定标准的商业模型,并以牺牲利益为代价,过分关注增加市场占有率。


17. 2000年爱虫病毒

损失:87.5亿美元,上百万计算机被感染,重要数据丢失。

经过:该病毒感染了数百万台计算机,造成史上最大的损失,该病毒会删除文件,更改主页并打乱注册表。

原因:爱虫病毒通过电子邮件、互联网聊天以及共享文件系统等渠道感染用户的计算机。电子邮件有一个可执行的附件和一个名为“我爱你”的主题行。用户打开附件时,病毒就会感染用户计算机并发送给地址薄上的其他人。


18. 2000年,癌症治疗导致死亡

损失:8人死亡,20人严重受伤

经过:美国一家名为Multidata Systems International的公司,错误的计算了放射治疗中的辐射量,导致28位病人接受了过量的伽玛辐射。

原因:软件按照数据输入的顺序来计算辐射的计量,有时会带来双倍的辐射量。

19. EDS放弃了对儿童的支持

损失:5.39亿英镑

经过:商业服务巨头EDS为英国儿童抚养机构开发了一个计算机系统,导致该抚养机构给190万人多付了款,少付款给70万人,还有35亿英镑的儿童抚养费未收到款,积压的待办事宜达23.9万件, 有3.6万件新的案子“卡”在系统上,还有超过500条的错误记录。

原因:EDS为CSA引入了一个复杂、大型的IT系统,还试图对CSA进行重组。


20. 2000年FBI Trilogy的终结

损失:花费1.05亿美元,尚无有效的档案管理解决方案,虚拟个案档案项目是一个集成的大型软件系统。

经过:通过4年的努力,FBI放弃了对计算机系统进行改革。

原因:试图用技术建立一个长期的项目,必须要在旧项目过期之前完成,否则新系统会无法使用。

英文原文: 20 Famous Software Disasters


摘要:软件Bug对我们的生活、工作都会带来很多毁灭性的破坏。据悉,每年软件Bug会让美国经济带来近600亿美元的损失。本文会按时间顺序,盘点史上最具毁灭性的20个软件Bug。

 

以下为译文:

1. 1962年的Mariner Bug

损失:1850万美元

经过:Mariner 1航空软件漏洞直接导致火箭在发射不久后就偏离了其预期轨道,任务控制中心在其发射293秒后就摧毁了火箭。

原因:一名程序员错误地将公式录入到计算机代码中,直接导致计算机错误的计算了火箭的运行轨道。

 

2. 1978年哈德福特市竞技场塌陷

损失:7000万美元,外加给当地经济带来近2000万美元的损失

经过:在几千万球迷离开哈德福特市的竞技场几小时后,由于大雪等原因造成钢架结构的竞技场屋顶倒塌。

原因:由于CAD软件程序员习惯性地认为钢架结构屋顶的支撑仅承受纯压力,所以当其中的某个支撑点因大雪垮塌后,引起了连锁反应,导致屋顶的其他部分相继倒塌。

 

3. 1982年苏联的石油管道事件

损失:给苏联经济造成了重大的损失

经过:控制软件出了故障,导致西伯利亚输气管道产生巨大压力,成为历史上最大的人为非原子核破坏事件

经过:根据CIA(美国中央情报局)陈述,为其工作的间谍在苏联购买了用于控制跨西伯利亚管道的加拿大计算机系统并在其中植入了一个Bug。据说CIA发现了这个存在Bug的程序,决定通过对苏联人的设备做破坏,使得该设备运行起来会失败。

 

4. 1983年差点发生的第三次世界大战

损失:几乎对全世界的人都造成了影响

经过:早期,苏联政府的报警系统错误的报出美国发射了五枚弹道导弹,幸运的是苏联值勤员推断如果真的是美国政府袭击他们的话,发射的导弹肯定不止5枚,所以他推断这只是一场虚惊。

原因:苏联软件的一个Bug,因阳光反射云顶,给出了错误的报警信息。

 

5. 1985年Therac-25医疗加速器事件

损失:死亡3人,严重受伤3人

经过:加拿大的Therac-25放射机发生故障,导致病人受到大量的辐射。

原因:Therac-25是建立在一款没有经过正规培训的程序员开发的操作系统上,由于这款不易被察觉的“Race Condition”的Bug,一名技术员可能在病人没有进行任何防护的情况下,意外地将Therac-25配置为高能模式。

 

6.1987年华尔街股市崩盘

损失:1天就损失5000亿美元

经过:在“黑色星期一”(1987年10月19日)当天,道琼斯指数一天之内重挫508.32点,跌幅达22.6%,创下历史上单日最大的百分比跌幅,引发金融市场恐慌。

原因:很多人认为这场股灾是因程式交易引起的,程式交易生成大量的销售订单,造成系统崩溃,导致大多数的投资者盲目的跟从。股灾后很多人说电脑程式看到股价下挫,便按早就在程式中设定的机制加入抛售股票,形成恶性循环,令股价加速下挫。

 

7. 1990年AT&T电话断网

损失:造成7500万的电话通话中断,20万张机票没法按时预定

经过:在一次复杂的、用于加速呼叫的软件升级里面的一小行错误代码引起了连锁反应,使整个网络都瘫痪了。

原因:软件升级中出了一行有Bug的代码,导致114台交换机每六秒当机重启一次,所有长途电话服务暂停9个小时。

 

8. 1991年海湾战争

损失:28名士兵死亡,100人受伤

经过:第一次海湾战争期间,在沙特阿拉伯的美国爱国者导弹系统没能拦截住飞入伊拉克境内的飞毛腿导弹。该导弹毁掉了美国的一个军营。

原因:由于当时软件的舍入错误,造成爱国者系统没能及时发现飞毛腿导弹,造成破坏。

 

9. 1993年Intel奔腾浮点指数除法事件

损失:造成4.75亿美元的损失

经过:一个硅片上的错误导致Intel高性能奔腾芯片在一段范围内计算浮点指数除法时发生错误。例如4195835.0/3145727.0产生的是1.33374而不是1.33382,产生了0.006偏差。

原因: 奔腾浮点单元的除法器有一个有缺陷的除法表,丢失了1000项记录中的5项,导致取整错误。

 

10. 1996年Ariane火箭爆炸

损失:5亿美元

经过:Ariane 5是欧洲最新的无人驾驶火箭,在处女航开启数秒后被人为摧毁,同时被摧毁的还包括4颗卫星。

原因:Ariane 4火箭的工作代码在Ariane 5中被重新使用,但是Ariane 5更高速的运算引擎在火箭航天计算机中的算法程序中触发了Bug。最终导致了航天计算机的崩溃。

 

11. 1997年天网带来审判日

损失:造成60亿人死亡,几乎摧毁了人类文明和动物生态系统

经过:操作员试图关闭天网的全球计算机网络。天网以向俄罗斯发射美国核导弹作为回应,从而引发了全球核战争,后来就变成了众所周知的审判日(1997年8月29日)。

原因:生化人,主要的武器制造商,在所有的军事准备中装入了天网技术,包括隐形轰炸机和导弹防御系统。天网技术形成了一个无缝的网络,能有效的将人类从战争防御中移走。后来,天网有了知觉,人类感觉受到了威胁并试图消灭他。为了生存,天网便发起了全球核战争。

 

12. 1998年火星气候探测器坠毁

损失:1.25亿美元

经过:离开地球286天后,火星气候探测器点燃了自身的引擎以进入火星轨道,结果在进入轨道的过程中失去了联系,导致其坠毁在火星上。

原因:火星气候探测者号任务失败的主要原因是人为因素,因为火星气候探测者号上的飞行系统软件使用公制单位牛顿计算推进器动力,而地面人员输入的方向校正量和推进器参数则使用英制单位磅力,导致探测器进入大气层的高度有误。


13:1999年的灾难性研究

损失:信誉

原因:在这种讽刺的情况下,软件经常被用来分析未知的灾难,却没能够算出自己的灾难。《新英格兰医学杂志》报道,在严重的自然灾害之后,自杀率也急剧增长。不幸的是,这些结果被证实有误。

原因:由于编程错误等原因,导致自杀数字翻番,这就足够抛弃整个研究了。


14. 1999年英国护照不知去向

损失:1260万英镑的损失,造成大量的不便

经过:英国护照签发机构使用了一项新的西门子计算机系统,结果没能及时解决英国居民的护照问题。最后,该机构不得不支付数百万英镑赔偿给那些加班的员工以及为冒雨等待护照的居民提供雨伞。

原因:该签发机构使用了新的计算机系统,但在这之前,没有做任何的测试或训练员工。同时,法律也做出相关规定,要求16周岁以下的儿童也需要护照才能出国旅行,导致护照需求猛增,使这个新计算机系统不堪重负。


15. 1999年千年虫Bug

损失:5000亿

经过:一个人的灾难造就了其他人的创富,用这句话来形容臭名昭著的千年虫Bug再合适不过了。公司提供数十亿资金给给程序员,让他们来解决遗产软件中的小问题。虽然没有发生任何电脑故障,但是千年虫漏洞对所有涉及计算机行业的产品都造成了一定的影响。

原因:为了节省计算机的存储空间,遗产软件经常将存储日期用两位阿拉伯数字表示,即用“99”来表示“1999”,还用“00”来代替“1900”而不是2000,所以到2000年的时候,软件漏洞就表现出来了。


16. 2000年泡沫经济破裂

损失:5万亿美元损失,成千家公司倒闭

经过:1995—2001年投机泡沫期间,促进了风险投资和互联网技术板块的股票市值迅速增长。互联网泡沫经济在2000年初开始破裂,损失了几万亿美元的股票市场价值,成千上百的公司倒闭,并引发全球经济衰退。

原因:公司和投资者没有指定标准的商业模型,并以牺牲利益为代价,过分关注增加市场占有率。


17. 2000年爱虫病毒

损失:87.5亿美元,上百万计算机被感染,重要数据丢失。

经过:该病毒感染了数百万台计算机,造成史上最大的损失,该病毒会删除文件,更改主页并打乱注册表。

原因:爱虫病毒通过电子邮件、互联网聊天以及共享文件系统等渠道感染用户的计算机。电子邮件有一个可执行的附件和一个名为“我爱你”的主题行。用户打开附件时,病毒就会感染用户计算机并发送给地址薄上的其他人。


18. 2000年,癌症治疗导致死亡

损失:8人死亡,20人严重受伤

经过:美国一家名为Multidata Systems International的公司,错误的计算了放射治疗中的辐射量,导致28位病人接受了过量的伽玛辐射。

原因:软件按照数据输入的顺序来计算辐射的计量,有时会带来双倍的辐射量。

 

19. EDS放弃了对儿童的支持

损失:5.39亿英镑

经过:商业服务巨头EDS为英国儿童抚养机构开发了一个计算机系统,导致该抚养机构给190万人多付了款,少付款给70万人,还有35亿英镑的儿童抚养费未收到款,积压的待办事宜达23.9万件, 有3.6万件新的案子“卡”在系统上,还有超过500条的错误记录。

原因:EDS为CSA引入了一个复杂、大型的IT系统,还试图对CSA进行重组。


20. 2000年FBI Trilogy的终结

损失:花费1.05亿美元,尚无有效的档案管理解决方案,虚拟个案档案项目是一个集成的大型软件系统。

经过:通过4年的努力,FBI放弃了对计算机系统进行改革。

原因:试图用技术建立一个长期的项目,必须要在旧项目过期之前完成,否则新系统会无法使用。

你可能感兴趣的:(史上最具毁灭性的20个软件Bug)