Heartbleed:它是什麼以及緩解它的選項是什麼?

Heartbleed:它是什麼以及緩解它的選項是什麼?

這是一個規範問題關於了解和修復 Heartbleed 安全性問題。

CVE-2014-0160 又稱「Heartbleed」到底是什麼?原因是什麼,哪些作業系統和版本的 OpenSSL 容易受到攻擊,症狀是什麼,是否有任何方法可以偵測成功的漏洞?

如何檢查我的系統是否受到影響?如何緩解此漏洞?我應該擔心我的金鑰或其他私人資料已被洩露嗎?我還應該擔心哪些其他副作用?

答案1

第一的,在驚慌失措之前,請確保您了解此漏洞是否確實適用於您。如果您有伺服器,但實際上從未有任何使用 TLS 的應用程序,那麼這不是您需要解決的高優先級問題。另一方面,如果你曾經有過支援 TLS 的應用程序,那麼您就大飽口福了。繼續閱讀:

CVE-2014-0160 又稱「Heartbleed」到底是什麼?

這是一個大混亂,就是這樣。簡而言之,在 OpenSSL 版本 1.0.1 至 1.0.1f 中發現了一個可遠端利用的漏洞,攻擊者可以透過該漏洞讀取系統記憶體的某些部分。這些部分保存著敏感數據,例如私鑰、預先共享金鑰、密碼和高價值的公司數據等。

此漏洞由 Google Security 的 Neel Mehta(2014 年 3 月 21 日)和芬蘭 IT 安全測試公司 Codenomicon(2014 年 4 月 2 日)獨立發現。

原因是什麼?

好吧,OpenSSL 中有錯誤的程式碼。這裡是引入該漏洞的提交,並且這裡是修復漏洞的提交。該錯誤於 2011 年 12 月出現,並於今天(2014 年 4 月 7 日)修復。

該錯誤也可以被視為更大問題的症狀。兩個相關的問題是(1)採取什麼流程來確保錯誤程式碼不會引入程式碼庫,以及(2)為什麼協議和擴展如此複雜且難以測試。第 (1) 項是 OpenSSL 和許多其他專案的治理和流程問題。許多開發人員只是抵製程式碼審查、分析和掃描等做法。 IETF 的 TLS 工作小組正在討論第 (2) 項。看Heartbleed / 協定複雜性

錯誤代碼是否被惡意插入?

我不會猜測這是否真的是一個錯誤,或者可能是代表壞人的一些代碼。然而,開發 OpenSSL 程式碼的人表示這是無意的。看引入嚴重「Heartbleed」安全漏洞的男子否認是故意插入的

哪些作業系統和版本的 OpenSSL 容易受到攻擊?

如上所述,任何正在使用的作業系統或連結到 OpenSSL 1.0.1 至 1.0.1f 的應用程式。

有什麼症狀,有什麼方法可以偵測成功的漏洞嗎?

這是可怕的部分。據我們所知,目前還沒有已知的方法來檢測此漏洞是否已被利用。理論上,IDS 簽名可能很快就會發布來檢測此漏洞,但截至撰寫本文時,這些簽名尚不可用。

有證據顯示 Heartbleed 早在 2013 年 11 月就已在野外被積極利用。狂野之心:情報機構是否在 2013 年 11 月使用了 Heartbleed?彭博社報道稱,美國國家安全局在漏洞出現後不久就將漏洞武器化了。看據稱,美國國家安全局多年來一直利用 Heartbleed 漏洞來獲取情報。不過,美國情報界否認了彭博社的說法。看IC記錄在案

如何檢查我的系統是否受到影響?

如果如果您在系統上維護 OpenSSL,那麼您可以簡單地發出openssl version

$ openssl version
OpenSSL 1.0.1g 7 Apr 2014

如果如果發行版正在維護 OpenSSL,那麼您可能無法確定 OpenSSL 的版本,因為使用指令openssl或套件資訊(例如 、apt-getdpkg)進行了反向修補。大多數(所有?)發行版使用的反向修補過程僅使用基本版本號(例如“1.0.1e”);並且確實yumrpm不是包括一個有效的安全版本(例如“1.0.1g”)。

超級用戶有一個懸而未決的問題,以確定在回補軟體包時 OpenSSL 和其他軟體包的有效安全版本。不幸的是,沒有有用的答案(除了檢查發行版的網站)。看面臨回溯時確定有效的安全版本

根據經驗,如果您曾經安裝過受影響的版本之一,並且曾經運行過與 OpenSSL 連結以獲得 TLS 支援的程式或服務,那麼您就很容易受到攻擊。

在哪裡可以找到測試該漏洞的程式?

在 Heartbleed 發布後的幾個小時內,互聯網上的一些人就公開了可公開訪問的 Web 應用程序,據稱這些應用程式可用於檢查伺服器是否存在此漏洞。截至撰寫本文時,我還沒有審查任何內容,因此我不會進一步公開他們的申請。借助您首選的搜尋引擎,可以相對輕鬆地找到它們。

如何緩解此漏洞?

升級到無漏洞版本並重置或重新保護易受攻擊的資料。如上所述心血站點,適當的回應步驟大致為:

  1. 修補易受攻擊的系統。
  2. 重新產生新的私鑰。
  3. 向您的 CA 提交新的 CSR。
  4. 取得並安裝新的簽名證書。
  5. 使會話金鑰和 cookie 無效
  6. 重置密碼和共享秘密
  7. 吊銷舊證書。

更詳細的分析與解答請參見對於 Heartbleed OpenSSL 漏洞,網站業者應該採取什麼措施?在安全堆疊交換上。

我應該擔心我的金鑰或其他私人資料已被洩露嗎?我還應該擔心哪些其他副作用?

絕對地。系統管理員需要認為他們使用易受攻擊的 OpenSSL 版本的伺服器確實受到了損害並做出了相應的回應。

該漏洞披露後不久,Cloudfare 提出了一項挑戰,看看伺服器的私鑰是否可以在實踐中恢復。該挑戰由 Fedor Indutny 和 Ilkka Mattila 獨立獲勝。看心血挑戰

我可以在哪裡找到更多資訊?

連結轉儲,對於那些尋找更多詳細資訊的人:


披露事件的相當詳細的時間表可以在以下位置找到:Heartbleed 揭露時間表:誰知道什麼以及何時


如果您是程式設計師並且對各種程式設計技巧感興趣,例如透過 OpenSSL 的回呼檢測 Heartbleed 攻擊msg_cb,那麼請參閱 OpenSSL安全預警2014047

答案2

XKCD 對錯誤的簡單解釋:

XKCD 1354

答案3

Ubuntu 12.04、12.10 和 13.10

Ubuntu已經發布了USN-2165-1,其中指出更新的軟體包現在可以在檔案中使用。執行以下兩個命令來取得修復程式。

sudo apt-get update
sudo apt-get upgrade

烏班圖14.04

我已將包含新版本 (1.0.1g) 的 Debian 軟體包上傳到我為此目的設定的 PPA。這三個命令會將我的 PPA 添加到您的系統,更新可用軟體包列表,並升級所有內容:

sudo add-apt-repository ppa:george-edison55/openssl-heartbleed-fix
sudo apt-get update
sudo apt-get upgrade

注意:PPA 還提供適用於 Ubuntu 12.04 和 13.10 的軟體包,以防萬一您更願意實際運行新版本 (1.0.1g),而不是僅使用檔案中的修補版本。

烏班圖10.04

這是 LTS 版本,伺服器版本仍然受支援並接收安全性更新。但heartbleed漏洞並沒有影響ubuntu 10.04標準安裝的openssl包,因為版本低於1.0.1。

桌面版本已到期,需要升級/重新安裝。

Ubuntu 13.04 和其他過時版本

Ubuntu 13.04 的支援週期非常短,這是您可能意想不到的。它已達到生命週期終點,並且不再接收安全性更新。早就該升級了。如果仍有人在使用它,請立即升級,可以從頭開始升級,也可以按照以下簡單步驟無損升級到 13.10:http://www.howtoing.com/upgrade-ubuntu-13-04-raring-ringtail-to-ubuntu-13-10-saucy-salamander/升級後系統會收到13.10的heartbleed補丁。

對於所有其他過時的 ubuntu 版本,這意味著基本上需要全新安裝。

驗證補丁是否已套用

本質上,運行openssl version -a並確保建造日期是 2014 年 4 月 7 日或更晚,但查看更多這裡

重啟

確保重新啟動所有依賴 OpenSSL 的服務的最佳方法是重啟

答案4

Debian 威茲

Debian 已發布DSA-2896-1和修補庫是可以在這裡找到。 shell 腳本是可以在這裡找到

1. 補丁

apt-get 儲存庫已更新,因此現在可以透過以下方式取得修補的程式庫apt-get update && apt-get upgrade

apt-get upgrade libssl1.0.0 openssl

或(不建議)可以手動升級軟體包:

wget http://security.debian.org/pool/updates/main/o/openssl/libssl1.0.0-dbg_1.0.1e-2+deb7u5_amd64.deb
wget http://security.debian.org/pool/updates/main/o/openssl/openssl_1.0.1e-2+deb7u5_amd64.deb
wget http://security.debian.org/pool/updates/main/o/openssl/libssl1.0.0_1.0.1e-2+deb7u5_amd64.deb
wget http://security.debian.org/pool/updates/main/o/openssl/libssl-dev_1.0.1e-2+deb7u5_amd64.deb

dpkg -i openssl_1.0.1e-2+deb7u5_amd64.deb
dpkg -i libssl1.0.0_1.0.1e-2+deb7u5_amd64.deb
dpkg -i libssl1.0.0-dbg_1.0.1e-2+deb7u5_amd64.deb
dpkg -i libssl-dev_1.0.1e-2+deb7u5_amd64.deb

2. 重啟伺服器/服務

為了獲得最佳保護,請重新啟動整個伺服器,或者如果伺服器無法離線,則重新啟動所需的服務。

3.檢查OpenSSL版本

love@server:~$ openssl version
OpenSSL 1.0.1e 11 Feb 2013
love@server:~$ dpkg -l libssl1.0.0
||/ Name                    Version          Architecture     Description
+++-=======================-================-================-====================================================
ii  libssl1.0.0                 1.0.1e-2+deb7u6  amd64            SSL shared libraries

相關內容