阿丽亚娜 5 号”事故
欧洲航天局“阿丽亚娜 5 号”运载火箭在 1996 年 6 月 4 日首次发射时发生了事故。火箭在飞行的第 40 秒由于软件错误而解体并爆炸,该软件直接沿用了以前“阿丽亚娜 4 号”火箭的软件,且未在新环境中进行测试。
此次事故导致四颗卫星失效,财产损失总额在 3.6 亿至 5 亿美元之间,“阿丽亚娜 5 号”计划被推迟一年,欧洲航天局在市场上名誉扫地。
而这一切都是由于常见的算术溢出和缺乏内置的安全开发程序造成的。
软件漏洞导致的超剂量辐射
1985 年 6 月至 1987 年 1 月间,加拿大国家控股公司 AECL 开发的放射治疗仪
Therac-25 至少造成六起超剂量辐射事故;患者接受了数万拉德剂量的辐射,其中两人因此死亡。
调查显示,此次事故归咎于四个软件漏洞,包括缓冲区溢出、除以零和将同一变量应用于不同目的。而造成此次事故的主要原因是风险评估错误:专家们对软件的安全性过度自信。
另一起事故发生在 2000 年 11 月,事故地点在巴拿马国家癌症研究所:28 名患者接受了超剂量的辐射。原因是美国 Multidata Systems International 公司所开发的用于放射治疗计划的软件存在漏洞。通过钴-60 设备可以生成三维图像,显示所接受的辐射剂量和特殊保护块的位置。
然而,由于文件损坏和缺乏软件监督,最终导致 8 名患者死亡。有义务验证计算机计算结果的巴拿马医生被判谋杀罪,而 Multidata 公司本身也在巴拿马和美国面临多起诉讼。
Knight Capital Group 公司亏损 4.4 亿美元
2012 年 8 月 1 日,金融公司 Knight
Capital Group 在 45 分钟内亏损 4.4 亿美元,其原因是该公司的高频交易软件出现漏洞:新版 Retail Liquidity Program 中一个变量的使用方法不同。
与此同时,工程师忘记将新版软件复制到负责自动发送股票买卖指令的八台服务器中的一台,此举导致了数据不同步:其中一个软件版本“认为”自己在测试环境中工作,未对发送的指令进行检查。
由于这次技术故障,Knight Capital Group 公司的股票暴跌超 70%,并被罚款 1200 万美元。由于缺乏代码审查,公司从此一蹶不振,并于 2012 年 12 月被 Getco LLC 公司兼并。
莫里斯蠕虫
国际数据保护日是
11 月 30 日。选择这个月份并非巧合,因为正是在
1988 年 11 月 2 日,有史以来最大的恶意软件开始传播。
麻省理工学院一年级研究生罗伯特·莫里斯出于研究
目的开发出一种蠕虫病毒,该病毒利用编程语言 C 语言输入输出库中 gets() 程序的漏洞,只在运行 BSD 和SunOS 的 VAX 计算机上传播。但是代码中的一个漏洞引发了一场恶意软件传播,对当时 5% 到 10% 的互联网造成了影响。损失达到 9600 万美元,按照现在的通货膨胀计算超过 2.06 亿美元。
Mars Climate Orbiter 转播卫星灾难
1999 年 9 月 23 日,转播卫星 Mars Climate Orbiter 在火星上空脱轨并在大气层中解体。分析表明,此次事故是由于计算错误造成的:卫星软件使用的是公制测量系统,而为卫星创建程序的软件使用的是英制测量系统。
缺乏换算导致计算错误,最终以灾难告终。事故发生后,美国国家航空航天局最终决定完全改用公制。但是他们本可以立即实施代码分析,这样就可以更早地发现使用不同测量系统的情况。
Amazon 销售总额
2014 年 12 月,在天主教圣诞节前 10 天,在线零售商在 Amazon 上的许多产品价格降至 1 便士。这是买家的喜悦却是卖家的噩梦,而这是由于软件 RepricerExpress 造成的,该软件动态计算商品价格,并努力使用户的价格低于其他用户。
受影响的规模尚未评估,但已有卖家因此破产。Amazon 以此次事故是第三方风险为由拒绝赔偿供应商的损失。RepricerExpress 进行了道歉,但也拒绝赔偿损失。
World of Warcraft 传染病
2005 年,World of Warcraft 的开发商 Blizzard 发布了一个新的突袭首领祖尔格拉布,又称“夺灵者哈卡”。他的能力是将疾病传染给其他玩家。这个咒语本应该只在虚拟世界的某个区域起作用。但由于代码中的一个错误,玩家的宠物能够将感染病毒携带到受控区域之外。
电子游戏史上第一场感染率高达 100% 的传染病开始了,这暂时改变了整个游戏的进程:玩家离开家园,搬到农村和人烟稀少的地区,建立隔离区。玩家失去生命,不得不从头开始,这激怒了许多玩家。
一周后,Blizzard 重启服务器并修复了原来的错误。它之所以出名,是因为其甚至被反恐机构和抗击传染病的组织用来研究现实生活中传染病中的人类行为。