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