史上導致數(shù)百萬美元損失的10大計算機漏洞

責任編輯:editor006

作者:clouds

2017-01-14 19:51:58

摘自:黑客與極客

在IT時代,計算機漏洞或編程錯誤(Bug)是一種常見現(xiàn)象,以至于所有的開發(fā)軟件都有可能存在缺陷或漏洞?!懊颓荨币坏较?窓C場,不出幾個小時,問題就真相大白:軟件開發(fā)工程師在電腦系統(tǒng)編碼中犯了一個錯誤,引發(fā)了一系列的問題。

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

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

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

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

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

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

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

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

  3 千年蟲問題

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

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

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

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

  5 江南Style點擊量超出Youtube播放上限

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

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

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

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

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

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

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

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

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

  9 軟件錯誤導致的火星氣候探測者號解體失聯(lián)

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

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

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

鏈接已復制,快去分享吧

企業(yè)網(wǎng)版權所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號