◆李維峰
(中國飛行試驗研究院 陜西 710089)
SSL是Secure Sockets Layer(安全套接字層)的縮寫,是一系列加密技術,可讓Web用戶保護其在Internet上傳輸的信息的隱私。
當用戶訪問安全網站(例如mail.aliyun.com)時,URL旁會顯示一個鎖,表明用戶與該站點的通信已加密。這是Safari瀏覽器中的外觀:

圖1 SSL在網站中的應用
該鎖應該表明第三方將無法讀取您發送或接收的任何信息。在后臺,SSL通過將您的數據轉換為只有收件人知道如何解密的編碼消息來實現此目的。如果惡意方正在聽對話,它將僅看到看似隨機的字符串,而不是電子郵件,論壇帖子,信用卡號或其他私人信息的內容。SSL由Netscape于1994年引入。近年來,主流在線服務已趨向于默認使用加密。
如果正確實施,則認為SSL是高度安全的。但是對于SSL安全而言,2014年是糟糕的一年。Heartbleed不是那年發現的唯一安全漏洞。2月,在Apple的SSL實施中發現了一個嚴重缺陷。一個月后,在另一個SSL實例中發現了另一個漏洞,該實例在開源操作系統中很流行。
OpenSSL是允許計算機使用SSL加密標準進行通信的軟件。這是一個由志愿者創建和維護的開源項目。它于1998年首次發布,現已成為世界上最受歡迎的SSL實現之一。
OpenSSL被廣泛使用。原因之一是它已被合并到其他各種軟件產品中。例如,兩個最受歡迎的Web服務器軟件包,Apache和nginx,都使用OpenSSL加密網站。
在發生Heartbleed攻擊時,OpenSSL網站僅列出了15位活躍的開發人員,其中大多數是自愿為該項目做出貢獻的。但是,并非所有對OpenSSL軟件所做的更改都是由這15個人編寫的。
考慮到備受矚目的商業軟件項目通常需要數十甚至數百人來進行工作,因此,OpenSSL團隊在2012年推出新版本的軟件時沒有注意到細微的Heartbleed錯誤就不足為奇了。
發現Heartbleed錯誤后,幾家大型科技公司集中了資源,加大力度保護OpenSSL和其他構成互聯網核心基礎結構的開源軟件。
SSL標準包括“心跳”選項,該選項為SSL連接一端的計算機提供了一種方法來再次檢查線路的另一端是否仍然有人。此功能很有用,因為某些Internet路由器在空閑時間過長時會斷開連接。簡而言之,心跳協議的工作方式如下:

圖2 心跳協議的工作方式
心跳消息分為三個部分:請求確認,簡短的隨機選擇消息(在這種情況下為“banana”)以及該消息中的字符數。只需假定服務器確認已收到請求,然后將消息鸚鵡化。
Heartbleed攻擊利用了服務器過于信任這一事實。當有人告訴它消息包含6個字符時,服務器會自動發送回6個字符作為響應。惡意用戶可以利用服務器的輕信:

圖3 漏洞出現
顯然,“giraffe”一詞的長度不超過100個字符。但是服務器在發回響應之前不會費心檢查,因此它會發回100個字符。具體來說,它將發回7個字符的單詞“giraffe”,然后在服務器內存中緊隨單詞“giraffe”之后存儲的93個字符返回。計算機通常以隨意的順序存儲信息,以將其盡可能緊密地包裝到內存中,因此無法確定可能返回的信息。在這種情況下,單詞“長頸鹿”后面的記憶位包含屬于用戶John Smith的敏感個人信息。
在真正的Heartbleed攻擊中,攻擊者不僅要求輸入100個字符。攻擊者可以要求大約64,000個字符的純文本。它不僅可以詢問一次,還可以一遍又一遍地發送惡意的心跳消息,使攻擊者每次都能取回服務器內存的不同片段。在此過程中,它可以獲得從未打算向公眾提供的大量數據。
解決此問題的方法很簡單:服務器只需要較少的信任即可。服務器不需要盲目地發回所請求的數據,而是需要檢查服務器是否要求發回的字符數比開始時多。這正是OpenSSL對Heartbleed Bug的修復。
在披露Heartbleed漏洞五年后的今天,它仍然存在于許多服務器和系統中。當然,當前版本的OpenSSL是固定的。但是,未升級到已修補版本的OpenSSL的系統仍然會受到該漏洞的影響,并且容易受到攻擊。對于攻擊者而言,發現Heartbleed漏洞是一項獎勵。攻擊者如果通過自動檢索工具,則更容易發現漏洞。攻擊者找到易受攻擊的系統后,利用該漏洞則相對容易。發生這種情況時,攻擊者就可以訪問用于發起其他攻擊的信息或憑據。
Heartbleed漏洞是由于人為錯誤引入OpenSSL的安全漏洞。由于OpenSSL的普及,許多應用程序受到了影響,攻擊者才能夠獲取大量數據。
發現該漏洞后,Google員工找到了解決方案,并向OpenSSL貢獻者提供了解決此問題的代碼。然后,指示OpenSSL用戶升級到最新的OpenSSL版本。
但是,今天,即使升級OpenSSL版本而不是編譯代碼庫,仍然可以在應用程序、系統和設備中找到Heartbleed漏洞。如果用戶擔心自己可能會受到影響,則可以在設備無法支持修補程序的情況下測試系統的Heartbleed漏洞和修補程序,以消除風險或減輕風險。
Heartbleed 攻擊的規模為Internet 社區敲響了警鐘。作為回應,十多家技術公司已承諾為“核心基礎設施計劃”做出貢獻[1]。該項目由非營利性Linux 基金會組織,將把資金引導到資金不足卻廣泛使用的開源項目,例如OpenSSL。
該基金會在2014年4月下旬告訴Ars Technica,它已經從包括亞馬遜,微軟,谷歌和Facebook 在內的主要技術公司獲得了390 萬美元的捐款。
由惠普聯合創始人威廉·休利特(William Hewlett)和他的妻子創立的惠普基金會(Hewlett Foundation)也為互聯網安全工作提供資金。出于非凡的遠見卓識,該基金會于2014年4月2日,即公開披露Heartbleed 計劃的前幾天,宣布了一項2,000 萬美元的“網絡計劃”[2]。該基金會希望幫助“建立一個專家網絡,以確保互聯網安全、開放和良好的管理。”
這些投資是糾正互聯網安全資金嚴重不足的一小步。網絡占據了數十億美元的商業收入,即使在這筆2400萬美元的慈善投資之后,仍然迫切需要投入更多的資源來保障網絡安全。