安全動(dòng)態(tài)

史上導(dǎo)致數(shù)百萬美元損失的10大計(jì)算機(jī)漏洞

來源:聚銘網(wǎng)絡(luò)    發(fā)布時(shí)間:2017-01-15    瀏覽次數(shù):
 

信息來源:FreeBuf

software-bug-web.jpg

在IT時(shí)代,計(jì)算機(jī)漏洞或編程錯(cuò)誤(Bug)是一種常見現(xiàn)象,以至于所有的開發(fā)軟件都有可能存在缺陷或漏洞。你信或不信,反正漏洞就在那里,只是要么根本沒人發(fā)現(xiàn),或者有些人對(duì)它進(jìn)行了測試并公開,而有些人對(duì)其測試但未公開(0-day漏洞)。任何軟件在其生命周期內(nèi)都會(huì)存在漏洞或缺陷,而那些未被發(fā)現(xiàn)的漏洞、缺陷、錯(cuò)誤或0-day漏洞將會(huì)對(duì)軟件本身和其應(yīng)用系統(tǒng)產(chǎn)生嚴(yán)重的信息安全威脅,或造成巨大的經(jīng)濟(jì)損失,軟件開發(fā)的安全性設(shè)計(jì)和測試工作應(yīng)該得到更多重視。

在此,我們列舉了史上造成數(shù)百萬美元損失的10大著名安全漏洞,一起來看看:

1 阿麗亞娜5型火箭升空爆炸事件

阿麗亞娜5型火箭,為歐洲空間局研發(fā)的民用衛(wèi)星一次性運(yùn)載火箭,名稱來源于神話人物阿麗雅杜妮(Ariadne)的法語拼寫。1996年6月4日,在風(fēng)和日麗的法屬圭亞那太空發(fā)射場,阿麗亞娜5型運(yùn)載火箭首航,計(jì)劃運(yùn)送4顆太陽風(fēng)觀察衛(wèi)星到預(yù)定軌道。但在點(diǎn)火升空之后的40秒后,在4000米高空,這個(gè)價(jià)值5億美元的運(yùn)載系統(tǒng)就發(fā)生了爆炸,瞬間灰飛煙滅化為烏有。

爆炸原因由于火箭某段控制程序直接移植自阿麗亞娜4型火箭,其中一個(gè)需要接收64位數(shù)據(jù)的變量為了節(jié)省存儲(chǔ)空間而使用了16位字節(jié),從而在控制過程中產(chǎn)生了整數(shù)溢出,導(dǎo)致導(dǎo)航系統(tǒng)對(duì)火箭控制失效,程序進(jìn)入異常處理模塊,引爆自毀。

ariane.gif

2 愛國者反導(dǎo)系統(tǒng)軟件失靈事故

1991年2月25日,部署沙特宰赫蘭基地的美軍“愛國者”防空導(dǎo)彈居然沒有發(fā)現(xiàn)伊拉克來襲的“飛毛腿”導(dǎo)彈,導(dǎo)致美軍兵營被炸,28人死亡98人受傷,而事故原因則由于“愛國者”防空導(dǎo)彈系統(tǒng)的一個(gè)致命軟件錯(cuò)誤。該錯(cuò)誤導(dǎo)致其雷達(dá)探測系統(tǒng)不能有效識(shí)別、跟蹤和攔截?cái)撤綄?dǎo)彈。

在后來的調(diào)查中發(fā)現(xiàn),由于一個(gè)簡單的計(jì)算機(jī)bug,使基地的愛國者反導(dǎo)彈系統(tǒng)失效,未能在空中攔截飛毛腿導(dǎo)彈。當(dāng)時(shí),負(fù)責(zé)防衛(wèi)該基地的愛國者反導(dǎo)彈系統(tǒng)已經(jīng)連續(xù)工作了100個(gè)小時(shí),每工作一個(gè)小時(shí),系統(tǒng)內(nèi)的時(shí)鐘會(huì)有一個(gè)微小的毫秒級(jí)延遲,這就是這個(gè)失效悲劇的根源。愛國者反導(dǎo)彈系統(tǒng)的時(shí)鐘寄存器設(shè)計(jì)為24位,因而時(shí)間的精度也只限于24位的精度。在長時(shí)間的工作后,這個(gè)微小的精度誤差被漸漸放大。在工作了100小時(shí)后,系統(tǒng)時(shí)間的延遲是三分之一秒。伊拉克戰(zhàn)爭開始前,美軍專業(yè)人士就對(duì)“愛國者”導(dǎo)彈的可靠性持懷疑態(tài)度。但雷神公司卻辯解稱,公司在試射“愛國者”導(dǎo)彈過程中的確發(fā)現(xiàn)存在難以分辨敵我的問題,但已經(jīng)進(jìn)行了技術(shù)改進(jìn)。因此,“愛國者”防空導(dǎo)彈倉促投入了實(shí)戰(zhàn)。

Patriot.jpg

3 千年蟲問題

計(jì)算機(jī)2000年問題,又叫做“千年蟲”、“電腦千禧年千年蟲問題”或“千年危機(jī)”??s寫為“Y2K”。在90年代末,千年蟲問題是許多專家廣泛討論的話題,它可能引發(fā)飛機(jī)碰撞、輪船偏離航向、證券交易所崩盤等問題。

問題原因在于某些使用了計(jì)算機(jī)程序的智能系統(tǒng)(包括計(jì)算機(jī)系統(tǒng)、自動(dòng)控制芯片等)中,由于其中的年份只使用兩位十進(jìn)制數(shù)來表示,因此當(dāng)系統(tǒng)進(jìn)行(或涉及到)跨世紀(jì)的日期處理運(yùn)算時(shí)(如多個(gè)日期之間的計(jì)算或比較等),就會(huì)出現(xiàn)錯(cuò)誤的結(jié)果,進(jìn)而引發(fā)各種各樣的系統(tǒng)功能紊亂甚至崩潰。如1970年用70表示,1999年用99表示,所以當(dāng)?shù)搅?000年1月1日時(shí),很多采用這種計(jì)時(shí)方法的系統(tǒng)都錯(cuò)誤地把日期識(shí)別為1900年1月1日。從根本上說千年蟲是一種程序處理日期上的bug(計(jì)算機(jī)程序故障),而非病毒。

y2k.jpg

4 PayPal系統(tǒng)錯(cuò)誤導(dǎo)致的92萬億客戶存款

2013年6月悶熱的一天,56歲的美國男子Chris Reynolds吃驚地發(fā)現(xiàn),在PayPal發(fā)給他的對(duì)賬單中,他的賬戶余額竟然高達(dá)$92,233,720,368,547,800,接近92萬億美元!這個(gè)數(shù)字富可敵國,是當(dāng)時(shí)世界首富墨西哥電信大亨Carlos Slim的一百萬倍。不過,經(jīng)PayPal及時(shí)核實(shí)后,發(fā)現(xiàn)這是個(gè)嚴(yán)重的系統(tǒng)Bug。當(dāng)他再次登陸自己的賬戶時(shí),發(fā)現(xiàn)里面只剩下自己原本的100美元。

130717021713-paypal-error-horizontal-large-gallery.jpg

5 江南Style點(diǎn)擊量超出Youtube播放上限

2014年,鳥叔的《江南Style》視頻在Youtube的播放次數(shù)超過了計(jì)數(shù)上限,導(dǎo)致谷歌不得不對(duì)Youtube進(jìn)行技術(shù)調(diào)整。Youtube之前的播放計(jì)數(shù)上限為32位,即最多為2,147,483,647次觀看量,當(dāng)《江南Style》出現(xiàn)后,點(diǎn)擊量遠(yuǎn)遠(yuǎn)超過該數(shù),谷歌及時(shí)調(diào)整播放上限為64位,即9,223,372,036,854,775,808次播放數(shù)。對(duì)此,谷歌在其Google+上發(fā)表聲明稱:“我們從未想過一段視頻的觀看量會(huì)超過32比特的整數(shù)(=2,147,483,647次觀看量),直到我們遇到了鳥叔”。

maxresdefault.jpg

6 美F-22軟件錯(cuò)誤導(dǎo)致系統(tǒng)癱瘓

2008年,美國空軍聲稱12架“猛禽”執(zhí)行從夏威夷飛往日本的任務(wù)中,當(dāng)途經(jīng)國際日期變更線的時(shí)候,飛機(jī)上的全球定位系統(tǒng)都失靈了,多個(gè)電腦系統(tǒng)發(fā)生崩潰,多次重啟也均告失敗。飛行員們?cè)僖矝]有辦法正確辨識(shí)戰(zhàn)機(jī)的位置、飛行的高度和速度。他們不得不掉頭返航,但是幸運(yùn)的是,當(dāng)時(shí)天氣很好,能見度也非常高,這給“猛禽”加油的KC-135型加油機(jī)可以引導(dǎo)它們安全降落,順利地返回位于夏威夷的希卡姆空軍基地。

“猛禽”一到希卡姆機(jī)場,不出幾個(gè)小時(shí),問題就真相大白:軟件開發(fā)工程師在電腦系統(tǒng)編碼中犯了一個(gè)錯(cuò)誤,引發(fā)了一系列的問題。當(dāng)時(shí)美國空軍退役少將史皮爾德稱:“對(duì)于那些“猛禽”戰(zhàn)斗機(jī)飛行員來說,他們很幸運(yùn),因?yàn)槿绻趯?shí)戰(zhàn)中發(fā)生這個(gè)問題,他們可能會(huì)被擊落。并且這個(gè)小小的軟件錯(cuò)誤,將可能成為扭轉(zhuǎn)整個(gè)戰(zhàn)局的關(guān)鍵點(diǎn),使美國陷入短時(shí)不利的戰(zhàn)爭局面”。

image.jpg

7 32位UNIX系統(tǒng)時(shí)間編碼機(jī)制的2038年問題

當(dāng)工程師在上個(gè)世紀(jì)七十年代開發(fā)出世界上的第一款UNIX操作系統(tǒng)時(shí),他們做出了一個(gè)很隨意的決定,即使用32位簽名整數(shù)(或數(shù)字)來代表時(shí)間,整個(gè)計(jì)時(shí)系統(tǒng)的起始時(shí)間是1970年1月1日。但這個(gè)時(shí)間編碼機(jī)制存在一個(gè)嚴(yán)重的問題,因?yàn)?2位軟件能夠檢測到的最大秒值為2147483647,對(duì)應(yīng)時(shí)間為2038年1月19日。也就是說,如果無法解決這個(gè)問題,地球上的所有計(jì)算機(jī)將在那個(gè)時(shí)刻點(diǎn)將時(shí)間計(jì)數(shù)“歸零”,重新從1970年1月1日起算起。與千年蟲問題類似。

也就是說所有使用UNIX時(shí)間編碼的系統(tǒng)將在2038年發(fā)生溢出錯(cuò)誤,計(jì)時(shí)器可能會(huì)停止工作,跟時(shí)間有關(guān)的所有系統(tǒng)都會(huì)亂套。值得慶幸的是,要解決這個(gè)問題,從技術(shù)上來說并不困難。我們只要將時(shí)鐘系統(tǒng)換成更高位數(shù)的值比如64位就行了,那樣就會(huì)得到一個(gè)更大的最大值。64位系統(tǒng)只是將這個(gè)問題發(fā)生的時(shí)間向后推了而已,雖然看似治標(biāo)不治本,但是其時(shí)鐘系統(tǒng)的最大計(jì)數(shù)值對(duì)應(yīng)的時(shí)間是2920億年之后!因此這也等于很好地解決了這個(gè)難題。

y2038.jpg

8 軟件競爭條件錯(cuò)誤引發(fā)的美國大面積停電事故

2003年8月14日,酷暑中的美國東北部和加拿大部分地區(qū)發(fā)生大面積停電事故,給當(dāng)?shù)亟煌?、通信和居民生活造成?yán)重影響。直到16日上午, 紐約市才全部恢復(fù)正常供電。據(jù)電腦專家分析認(rèn)為,停電的直接原因在于電控系統(tǒng)的競爭條件錯(cuò)誤,其中一個(gè)操作的兩個(gè)獨(dú)立線程在調(diào)用一段相同代碼時(shí),導(dǎo)致輸電系統(tǒng)突然發(fā)生故障。由于沒有適當(dāng)?shù)耐胶腿蒎e(cuò)機(jī)制,線程陷入崩潰,致使輸電系統(tǒng)出現(xiàn)連鎖反應(yīng)。

2003-blackout-001_wide-a344896ac58f1dfa2a46e628b1bde4d075aed9e1.jpg

9 軟件錯(cuò)誤導(dǎo)致的火星氣候探測者號(hào)解體失聯(lián)

火星氣候探測者號(hào)(Mars ClimateOrbiter)是美國國家航空航天局的火星探測衛(wèi)星,也是火星探測98計(jì)劃的一部份,于1999年發(fā)射進(jìn)入預(yù)定軌道。不幸的是,在運(yùn)行286天之后,這個(gè)價(jià)值3億2760萬美元的飛行器失聯(lián)了。失聯(lián)原因在于,探測器的地面控制團(tuán)隊(duì)使用英制單位來發(fā)送導(dǎo)航指令,而探測器的軟件系統(tǒng)使用公制來讀取指令。這一錯(cuò)誤大大改變了導(dǎo)航控制的路徑。最后探測器進(jìn)入過低的火星軌道,在過大的火星大氣壓力和摩擦下解體。

mars-maven-orbit.jpg

10 AT&T9小時(shí)長途電話網(wǎng)癱瘓事件

90年代,AT&T公司在美國占據(jù)70%的長途通訊量,電話呼叫轉(zhuǎn)發(fā)超過11.5億次,是美國最大的電信通訊公司。然而就在1990年1月15日下午,該公司所有客戶都不能正常撥打長途電話,全國各地的長途電話交換機(jī)接連發(fā)生故障,陷入癱瘓。大量技術(shù)團(tuán)隊(duì)參與了事故應(yīng)急與分析,原因令所有人瞠目結(jié)舌。這個(gè)Bug是由一個(gè)非常簡單的語法錯(cuò)誤引起:大型交換機(jī)軟件中一個(gè)C關(guān)鍵字break用法錯(cuò)誤。最終AT&T工程師重裝了電話交換機(jī)以前的軟件版本才得以解決這個(gè)問題。但在電話網(wǎng)絡(luò)癱瘓的九個(gè)小時(shí)里,AT&T公司至少損失6000萬美元,該Bug可以算得上一個(gè)昂貴的Bug了。

attfull.PNG

 
 

上一篇:Flashpoint報(bào)告:俄、中、美為最大的地緣政治網(wǎng)絡(luò)安全威脅

下一篇:2017年01月15日 聚銘安全速遞