2024年3月21日发(作者:怎么创建pdf文件)
软件所带来的悲剧
由于软件本身特有的性质决左了只要存在一个很小的错误,就可能带来灾难性的后果。 虽
然这种情况不是很多,但一旦发生后果是很严重的。这里,我们介绍几个典型的例子,如 千年
虫、“冲击波”计算机病毒、火星登陆事故、爱国者导弹防御系统和放射性机器系统等。
1. 千年虫
在20世纪70年代,程序员为了节约非常宝贵的内存资源和硬盘空间,在存储日期时, 只
保留年份的后两位,如“ 1980”被存为“80”。但是,这些程序员万万没有想到他们的程 序会一直
被用到2000年,当2000年到来的时候,问题就会出现。比如银行存款程序在计算 利息时,应该
用现在的日期“2000年1月1日”减去当时存款的日期,比如“1989年1月 1日”,结果应该是
21年,如果利息是3%,每100元银行要付给顾客大约86元利息。如果 程序没有纠正年份只存储
两位的问题,其存款年数就变为-89年,变成顾客反要付给银行 1288元的巨额利息。所以,当
2000年快要来到的时候,为了这样一个简单的设计缺陷,全 世界付出几十亿美元的代价。
2•“冲击波”计算机病毒
新浪科技引用《商业周刊》网站在“网络安全”专题中的文章,对“冲击波”计算机病 毒
进行了分析。2003年8月11日,“冲击波”计算机病毒首先在美国发作,使美国的政府 机关、
企业及个人用户的成千上万的汁算机受到攻击。随后,冲击波蠕虫很快在因特网上广 泛传播,
中国、日本和欧洲等国家也相继受到不断的攻击,结果使十几万台邮件服务器瘫痪, 给整个世
界范围内的Internet通信带来惨重损失。
制造冲击波蠕虫的黑客仅仅用了 3周时间就制造了这个恶毒的程序,“冲击波”计算机 病
毒仅仅是利用微软Messenger Service中的一个缺陷,攻破计算机安全屏障,可使基于 Windows
操作系统的计算机朋溃。该缺陷几乎影响当前所有微软Windows系统,它甚至使 安全专家产生
更大的忧虑:独立的黑客们将很快找到利用该缺陷控制大部分计算机的方法。
随后,微软公司不得不紧急发布补丁包,修正这个缺陷。
3. 火星登陆事故
仅仅由于两个测试小组单独进行测试,没有进行很好沟通,缺少一个集成测试的阶段, 结
果导致1999年美国宇航局的火星基地登陆飞船在试图登陆火星表面时突然坠毁失踪。质 量管理
小组观测到故障,并认左出现误动作的原因极可能是某一个数据位被意外更改。什么 情况下这
个数据位被修改了?又为什么没有在内部测试时发现呢?
从理论上看,登陆计划是这样的:在飞船降落到火星的过程中,降落伞将被打开,减缓 飞
船的下落速度。降落伞打开后的几秒钟内,飞船的3条腿将迅速撑开,并在预左地点着陆。 当飞
船离地面1800米时,它将丢弃降落伞,点燃登陆推进器,在余下的髙度缓缓降落地面。
美国宇航局为了省钱,简化了确左何时关闭推进器的装置。为了替代其他太空船上使用 的
贵重雷达,在飞船的脚上装了一个廉价的触点开关,在计算机中设置一个数据位来关掉燃 料。
很简单,飞船的脚不“着地”,引挚就会点火。不幸的是,质量管理小组在事后的测试 中发现,
当飞船的脚迅速摆开准备着陆时,机械震动在大多数情况下也会触发着地开关,设 宜错误的数
据位。设想飞船开始着陆时,汁算机极有可能关闭推进器,而火星登陆飞船下坠 1800米之后冲
向地而,必然会撞成碎片。
为什么会岀现这样的结果?原因很简单。登陆飞船经过了多个小组测试。其中一个小组 测
试飞船的脚落地过程(leg fold-down procedure),但从没有检査那个关键的数据位,因为 那不是这
个小组负责的范围;另一个小组测试着陆过程的英他部分,但这个小组总是在开 始测试之前重
置汁算机、淸除数据位。双方本身的工作都没什么问题,就是没有合在一起 测试,苴接口没有被
测,而问题就在这里,后一个小组没有注意到数据位已经被错误设左。
4. 爱国者导弹防御系统
美国爱国者导弹防御系统是主动战略防御(即星球大战)系统的简化版本,它首次被用 在第
一次海湾战争对抗伊拉克飞毛腿导弹的防御作战中,总体上看效果不错,贏得各界的赞 誉。但
它还是有几次失利,没有成功拦截伊拉克飞毛腿导弹,英中一枚在沙特阿拉伯的多哈 爆炸的飞
毛腿导弹适成28名美国士兵死亡。分析专家发现,拦截失败的症结在于一个软件 缺陷,当爱国
者导弹防御系统的时钟累计运行超过14小时后,系统的跟踪系统就不准确。 在多哈袭击战中,
爱国者导弹防御系统运行时间已经累汁超过100多个小时,显然那时系统 的跟踪系统已经很不
准确,从而造成这种结果。
5. 放射性设备治死4个人
由于放射性治疗仪Therac-25中的软件存在缺陷,导致几个癌症病人受到非常严重的过 量放
射性治疗,其中4个人因此死亡。一个独立的科学调查报告显示:即使在加拿大原子 能公司(AECL,
Atomic Energy of Canada Limited)已经处理了几个特定的软件缺陷,这种 事故还是发生了。造成
这种低级但致命错误的原因是缺乏软件工程实践,一个错误的想法是 软件的可靠性依赖于用户
的安全操作。
1.3.2其他一些例子
除了上述一些实例外,还有一些相对影响较小的由于软件缺陷而造成的事例,如因为软 件
缺陷给企业带来经济上或商业名誉上巨大的损失。下而介绍几个曾经给美国迪斯尼、微软、 英
特尔等公司造成或多或少的损失的例子。
1. 迪斯尼的圣诞节礼物
1994年圣诞节前夕,迪斯尼公司发布了第一个而向儿童的多媒体光盘游戏“狮子王童 话”。
尽管在此之前,已经有不少公司在儿童计算机游戏市场上运作多年,但对迪斯尼公司 而言,还
是第一次进军这个市场。由于迪斯尼公司的著塔品牌和事先的大力宣传及良好的促 销活动,结
果,市场销售情况非常不错,该游戏成为父母为自己孩子过圣诞节的必买礼物。
但结果却出人意料,12月26日,圣诞节后的第一天,迪斯尼公司的客户支持部电话开 始响
个不停,不断有人咨询、抱怨为什么游戏总是安装不成功,或没法正常使用。很快,电 话支持部
门就淹没在愤怒家长的责问声和玩不成游戏孩子们的哭诉之中,报纸和电视开始不 断报道此事。
后来证实,迪斯尼公司没有对当时市场上的各种PC机型进行完整的系统兼容性测试, 只是
在几种PC机型上进行了相关测试。所以,这个游戏软件只能在少数系统中正常运行, 但在大众
使用的其他常见系统中却不能正常安装和运行。
2. 丹佛新机场启用推迟16个月
丹佛新国际机场希望被建成现代的(state-of-the-art)机场,它将拥有复杂的、计算机控 制的、
自动化的包裹处理系统,而且还有5300英里长的光纤网络。不幸的是,在这包裹处 理系统中存
在一个严重的程序缺陷,导致行李箱被绞碎,居然还开着自动包裹车往墙里而钻。
结果,机场启用推迟16个月,使得预算超过32亿美元,并且废弃这个自动化的包裹处 理
系统,使用手工处理包裹系统。
3. Windows 2000 安全漏洞
微软曾经承认
,Windows 2000操作系统远程服务中存在7个漏洞,并发布了相应的补 丁软
件来进行修补。微软远程服务是一种用于远程登录到大学、政府机关以及其他机关网站 的系统
或邮件服务器上的协议。Windows 2000内运行的远程服务软件所出现的安全漏洞可 能导致3种
截然不同的安全隐患一一拒绝服务、权限滥用、信息泄壺。安全漏洞可能会导致 DOS攻击,使
得系统无法向合法用户提供远程登录服务。而另外两种安全缺陷更严重些, 都涉及到系统管理
权限,有可能帮助攻击者通过键盘输入的一个系统功能在无须登录的情况 下完全控制Windows
2000系统。这样攻击者便可以在讣算机上执行任意操作,包括在计算 机上添加用户,安装或删
除系统组件,添加或删除软件,破坏数据,或执行其他操作。
据美国军方在2002年3月18日证实,微软网络软件中一个原来未知的缺陷让一名联机 攻
击者控制了美国国防部服务器的公开接口。美国陆军网络技术事业司令部(NTEC)主任
Dmuchowski上校说,受到攻击的军事网站不属于军方。上校强调,陆军很认真地对待这种 威胁。
微软IIS5.0和Windows 2000中的这个缺陷使微软公司的安全团队大吃一惊,因为没 有一名安全
研究人员曾经发现这个问题。在通常情况下,发现缺陷的安全研究人员或黑客会 公布缺陷详情,
或者将问题报告提交给软件制作者。
4. 英特尔奔腾芯片缺陷
在计算机的“计算器”程序中输入以下算式:
(4195835 / 3145727) X3145727-4195835
如果答案是0,就说明该计算机浮点运算没问题。如果答案不是0,就表示计算机的浮 点除法
存在缺陷。1994年,英特尔奔腾CPU芯片就曾经存在这样一个软件缺陷,而且被大 批生产岀来
卖到用户那里,最后,英特尔为自己处理软件缺陷的行为道歉并拿出4亿多美元 来支付更换坏
芯片的费用,可见,这个软件缺陷造成的损失有多大!
这个缺陷是美国弗吉尼亚州Lguchbny大学的Thomas R. Nicely博上发现的。他在奔 腾PC
机上做除法实验时记录了一个没想到的结果。他把发现的问题放到因特网上,随后引 发了一场
风眾,成千上万的人发现了同样的问题,以及其他得岀错误结果的情形。万幸的是, 这种情况
很少见,仅仅在进行精度要求很高的数学、科学和工程il•算中才导致错误。大多数 进行财会管
理和商务应用的用户根本不会遇到此类问题。
这个故事不仅说明软件缺陷所带来的问题,更重要地是说明对待软件缺陷的态度。
•英特尔的软件测试工程师在芯片发布之前进行内部测试时已经发现了这个问题,但 管理层
认为这没有严重到一定要修正,甚至需要公布这个问题。
•当软件缺陷被发现时,英特尔通过新闻发布和公开声明试图掩饰这个问题的严 重性。
•受到压力时,英特尔承诺更换有问题的芯片,但要求用户必须证明自己受到软件缺 陷的影
响。
结果舆论大哗。因特网新闻组充斥着愤怒的客户要求英特尔解决问题的呼声。得到这个 教
训之后,英特尔在网站上报告已发现的问题,并认頁•对待客户在因特网新闻组上的反馈意 见。
5. 赛门铁克安全软件的安全缺陷
安全软件制造商赛门铁克公司曾通知客户,使用该公司联机安全检测(securitycheck) 服务的
用户有可能下载了一个带有缺陷的ActiveX控件,该控件有可能被入侵者利用并侵入 受害者的
计算机。
安全检测(security check)服务的目的是帮助人们锁泄系统并安装一个ActiveX控件以 对计
算机进行扫描。但具有讽刺意味的是,在扫描后仍存留在计算机中的这个ActiveX控件 具有一
个内存缺陷,该缺陷会被攻击者利用并进入计算机。
不过,该问题已经得到了较好的解决赛门铁克已经用一款新的软件替换和覆盖了原来的 软
件。
发布者:admin,转转请注明出处:http://www.yc00.com/xitong/1711008944a1848554.html
评论列表(0条)