什麼是心臟出血漏洞?(工作原理、易受攻擊的裝置、如何預防)
Heartbleed(心臟出血)是廣泛使用的OpenSSL加密軟體庫中的一個嚴重漏洞。此漏洞允許竊取通常由用於保護Web的SSL/TLS加密保護的資訊。SSL/TLS 為網際網路、郵件、訊息服務和一些VPN透過網際網路的通訊提供隱私和安全。
OpenSSL對TLS心跳擴充套件的實現中的缺陷導致了Heartbleed問題,這導致了不正確的輸入驗證。
這是一個最初在2014年發現的開源軟體漏洞。任何有網際網路訪問許可權的人都可以利用此漏洞訪問系統漏洞的記憶體,而不會留下任何入侵痕跡。
OpenSSL是最廣泛使用的開源加密庫(用C語言編寫),用於使用安全套接字層(SSL)和傳輸層安全(TLS)加密網際網路資料。儘管問題出在OpenSSL庫中,但SSL/TLS協議不受影響。此缺陷在於管理TLS/DTLS心跳擴充套件的OpenSSL程式碼中。
由於此漏洞,惡意使用者可能會誘騙易受攻擊的Web伺服器提交敏感資訊,例如使用者名稱和密碼。
用於識別服務提供商和加密通訊的私鑰,以及使用者的身份和密碼,以及實際資訊都處於危險之中。因此,攻擊者可以竊聽對話,直接從服務和使用者那裡竊取資料,並冒充這些服務和使用者。
鑑於Heartbleed漏洞已為人所知至少兩年,任何已安裝OpenSSL 1.0.1到1.0.1f版本的公司都特別容易受到它的攻擊,應採取措施來減輕其影響。
Heartbleed漏洞的發現
Google開發人員Neel Mehta和芬蘭安全公司Codenomicon首先發現了Heartbleed漏洞。德國軟體開發人員Robin Seggelmann在開源OpenSSL加密技術中引入了此安全漏洞。自從該漏洞廣為人知以來,Seggelmann表示,他和另一位程式碼審查員意外地忽略了此漏洞,並且此漏洞並非故意引入的。
Heartbleed漏洞的工作原理?
要理解Heartbleed漏洞的工作原理,您必須首先了解TLS/SSL協議的工作原理以及計算機如何將資料儲存在記憶體中。
**心跳**是TLS/SSL協議的重要組成部分。這是相互互動的兩臺計算機相互告知它們仍然連線的方式,即使個體目前沒有上傳或匯出任何內容。
在極少數情況下,其中一臺系統會向另一臺系統傳送一個稱為心跳請求的加密資料位。第二臺計算機將以相同的資料進行響應,證明連線沒有中斷。心跳請求還會提供有關其長度的資料,這一點至關重要。
Heartbleed漏洞的產生是因為OpenSSL對心跳功能的實現缺乏一項關鍵的安全措施:從未測試過接收心跳請求的計算機是否與預期的一樣長。
由於在心跳查詢中的長度和有效負載變數上缺少邊界檢查,並且信任從其他機器接收到的資料,響應計算機會發送回其記憶體資料。
哪些裝置容易受到Heartbleed漏洞的影響?
雖然所有版本的Android作業系統都包含舊版本的OpenSSL庫,但易受攻擊的心跳元件僅在Android 4.1.1 Jelly Bean中預設啟用。BlackBerry也已證實某些裝置容易受到Heartbleed漏洞的影響,但OpenSSL漏洞不會影響Apple的iOS裝置。
IP電話、調變解調器、醫療裝置、智慧電視、嵌入式系統以及許多其他依賴OpenSSL進行加密通訊的裝置也可能暴露於Heartbleed問題,因為來自Google的Android合作伙伴的補丁不太可能很快到來。
如何避免此類軟體漏洞?
您可以採取以下措施來避免像Heartbleed漏洞這樣的軟體漏洞:
整合對安全軟體開發至關重要的安全相關任務。
永遠不要信任來自第三方的資料來源。
為確保線上帳戶的安全,您應該儘快更改密碼,無論站點是否已修復了問題。