早在4月9日,一個(gè)代號(hào)“Heartbleed”(“心臟出血”)的重大安全漏洞被曝光,能讓攻擊者從服務(wù)器內(nèi)存中讀取包括用戶名、密碼和信用卡號(hào)等隱私信息在內(nèi)的數(shù)據(jù)。盡管該漏洞已經(jīng)過去6個(gè)月,但發(fā)現(xiàn)該漏洞的Google安全工程師一直沒有透露過相關(guān)內(nèi)容。
“心血”漏洞
筆者帶著一些好奇感,從澳大利亞Risky.biz播客上查找到,Google安全工程師Neel Mehta首度揭秘了對“心臟出血”的發(fā)現(xiàn)過程。Neel Mehta是在大量應(yīng)用于多數(shù)互聯(lián)網(wǎng)的OpenSSL安全軟件的源代碼中發(fā)現(xiàn)該安全漏洞。
所謂源代碼是指一系列人類可讀的計(jì)算機(jī)語言指令,特別是開源軟件是免費(fèi)提供給社區(qū)開發(fā)者和用戶能夠重新分配和修改的一種軟件形式。由于從事OpenSSL審計(jì)工作,谷歌工程師對于整個(gè)SSL通信層安全都需要進(jìn)行一項(xiàng)長期的審計(jì)工作,從而發(fā)現(xiàn)“心血”漏洞。
谷歌工程師發(fā)現(xiàn)“心血”漏洞
正如OpenSSL的代碼庫都是開放的,一旦有修改就造成一個(gè)問題,新的漏洞被修復(fù)所有人就都知道這個(gè)漏洞了(比如 Heartbleed), 這時(shí)雖然漏洞在源代碼上被修復(fù)了,但是大多數(shù)用戶還沒來得及更新,這就給了一些攻擊者可乘之機(jī)。
SSL(Secure Sockets Layer)是一個(gè)保障數(shù)據(jù)完整、安全的加密協(xié)議,它經(jīng)常用在客戶端與服務(wù)器之間,漏洞通過讀取網(wǎng)絡(luò)服務(wù)器內(nèi)存,攻擊者可以訪問敏感數(shù)據(jù),從而危及服務(wù)器及用戶的安全。谷歌安全工程師Mehta表示,“心臟出血”漏洞被發(fā)現(xiàn)的最主要原因,是由于在SSL協(xié)議棧上一些早先漏洞被發(fā)現(xiàn),包括今年2月份發(fā)現(xiàn)的GoToFail漏洞、3月份發(fā)現(xiàn)的GnuTLS漏洞。
漏洞還可能暴露其他用戶的敏感請求和響應(yīng),包括用戶任何形式的POST請求數(shù)據(jù),會(huì)話cookie和密碼,這能使攻擊者可以劫持其他用戶的服務(wù)身份。Mehta表示并沒想到反響會(huì)如此巨大,主流媒體大多都做了報(bào)道。
不過對于漏洞被公布后,彭博社報(bào)道中提到:美國國家安全局早知道“心臟流血”漏洞,并利用其進(jìn)行信息收集的報(bào)道,Mehta表示不太確定這個(gè)說法,并認(rèn)為不太可能。但對于“心臟出血”漏洞這一個(gè)問題存在兩年之久,直到Google對自身使用的基礎(chǔ)服務(wù)審查才被發(fā)現(xiàn)。
由此,安全重視和漏洞可能是到達(dá)了一個(gè)臨界點(diǎn),加密在過去一年被越來越重視。隨著一大堆問題被逐漸發(fā)展并解決,使得用戶對于安全防范更加重視,特別是在斯諾登泄密事件后,美國國家安全局曾經(jīng)竊聽過Google數(shù)據(jù)中心之間的加密數(shù)據(jù)。
漏洞之所以嚴(yán)重,是由于類似bash、OpenSSL的開源軟件被廣泛應(yīng)用于全球數(shù)億設(shè)備之上。他懷疑其它軟件——被其稱之為“用膠水貼合在一起”的軟件,可能還存在著很多未被發(fā)現(xiàn)的問題。例如Zlib,一個(gè)在很多軟件中使用的壓縮庫;libjpeg,一個(gè)被廣泛應(yīng)用的JPEG庫文件。
“libjpeg庫中的bug,將會(huì)有巨大的影響。”Mehta說道。
另外,Mehta還談到了“破殼”漏洞(Shellshock),認(rèn)為這是比“心臟出血”漏洞更為嚴(yán)重。