它被稱為史上最大的安全漏洞,美國曾想據(jù)為己有,發(fā)動網(wǎng)絡戰(zhàn)爭
福布斯網(wǎng)絡安全專欄作家約瑟夫·斯坦伯格寫道:“有些人認為,至少就其潛在影響而言,‘心臟流血’是自互聯(lián)網(wǎng)商用以來,所發(fā)現(xiàn)的最嚴重的漏洞。”
約瑟夫筆下的“心臟流血”到底是什么漏洞,值得他以如此重的口吻寫下這樣一句話?
如果你經(jīng)歷過2014年的那場互聯(lián)網(wǎng)安全危機,一定還記憶猶新。
“心臟流血”漏洞就如同打開地獄的一把鑰匙一樣,無數(shù)黑客利用這一漏洞,肆無忌憚地對全球各個目標網(wǎng)站發(fā)動攻擊。
大到雅虎、GitHub、思科,小到不知名的小站點,全都受到了影響。
一時間,互聯(lián)網(wǎng)一度成為黑客們的天堂。
- 美國第二大營利性連鎖醫(yī)院機構(gòu)的安全密鑰被竊,450萬份病人病例泄密;
- 加拿大聯(lián)邦政府關(guān)閉了稅務局及多個部門的在線服務;
- Steam、英雄聯(lián)盟、索尼在線娛樂等游戲受到影響。
全球不少地區(qū)的網(wǎng)民,還出現(xiàn)了恐慌潮,在漏洞被披露的幾天內(nèi),不敢訪問https網(wǎng)站,生怕自己的賬號密碼等敏感信息被黑客竊取。
工程師們也在加班加點修復漏洞,避免黑客利用該漏洞攻擊網(wǎng)站。
美國國家安全局也因為該漏洞,深陷信任危機。據(jù)彭博新聞社報道,美國國家安全局在漏洞出現(xiàn)不久后,便知道了它的存在,但卻沒有對外披露,而是嚴格保守秘密,以便作為發(fā)動網(wǎng)絡戰(zhàn)爭的武器。
“心臟流血”的起源
“心臟流血”漏洞,要從其編寫者羅賓·賽格爾曼說起。
2012年,傳輸層安全(TLS)和數(shù)據(jù)報傳輸層安全(DTLS)協(xié)議的心跳擴展成為標準,它提供了一種無需每次都重新協(xié)商連接,就能測試和保持安全通信鏈路的方式。
其作者之一的羅賓在2011年為OpenSSL實現(xiàn)了心跳擴展,隨后由OpenSSL四位核心開發(fā)者之一的斯蒂芬·N·漢森負責審核。
遺憾的是,斯蒂芬并沒有發(fā)現(xiàn)其中的錯誤,2011年年末,這一藏有致命缺陷的代碼,被加入到OpenSSL的源代碼庫中。
OpenSSL是一個開放源代碼的軟件庫包,應用程序可以使用這個包來進行安全通信、避免被竊聽。Apache使用它加密https,OpenSSH使用它加密SSH。
基本上大部分SSL協(xié)議都采用OpenSSL。換句話說,只要哪一個家網(wǎng)站安裝了SSL證書,就會存在這一漏洞,讓黑客有機可乘。
原本為網(wǎng)站安裝SSL證書,是為了保護網(wǎng)站安全,沒曾想適得其反。
這一漏洞存在了長達兩年的時間,2014年才由谷歌安全團隊的尼爾·梅塔發(fā)現(xiàn)并報告。
“心臟流血”的原理
“心臟流血”到底是怎么被利用,竊取敏感數(shù)據(jù)的呢?
試著用一個不太恰當,但很形象、很通俗易懂的例子來解釋它的原理。
我們將服務器比作 物流公司的傳送帶設(shè)備,訪客比作分揀員。用戶從服務器上接收數(shù)據(jù),就相當于分揀員從傳送帶上拿取快遞。
分揀員使用多大的袋子,傳送帶上的快遞就會將其填滿,正常情況下不會出現(xiàn)問題。
但有一天,黑客出現(xiàn)了,他負責分揀發(fā)往新疆的快遞,發(fā)往新疆的快遞很少,本來只需要使用很小的袋子,就可以裝滿。但不懷好意的他,使用了很大的袋子,因為控制傳送帶的系統(tǒng)存在一個嚴重的bug,導致其為了裝滿這個大袋子,將發(fā)往其他地區(qū)的快遞,也裝進了黑客的袋子里。
黑客便獲得了其他地區(qū)的快遞。其他地區(qū)的快遞,便是其他用戶的敏感數(shù)據(jù)。
要命的是,黑客還可能拿到控制傳送帶系統(tǒng)的鑰匙,一旦黑客獲得了這把鑰匙,就可以隨意控制傳送帶,偷取任何地區(qū)的快遞包裹。
這把鑰匙便是密碼學上所說的私鑰。
黑客每次在傳送帶上最多拿64個包裹,因此不可能一次將傳送帶上的包裹拿完,所以攻擊量很小,不會導致所有用戶的數(shù)據(jù)泄露,但因為有漏洞的存在,黑客可以頻繁抓取用戶的敏感數(shù)據(jù),最終將所有包裹偷走。
以上便是黑客利用“心臟流血”漏洞攻擊的過程。
文末我們來說一些有意思的事情。
雖然“心臟流血”在全球范圍內(nèi)造成了很大的破壞,但也不是完全沒有好處。
反惡意軟件研究人員就利用了該漏洞,訪問了網(wǎng)絡犯罪的秘密論壇。黑產(chǎn)們可能做夢也沒有想到會因為計算機程序的漏洞,而使自己有面臨牢獄之災的風險。