由 hone and zzak 發表於 2014-04-10
翻譯: Juanito Fatas
OpenSSL 在 TLS/DTLS heartbeat
extension (RFC6520
) 實作存在嚴重風險(傳輸層的安全性協議)。這個嚴重安全性風險的 CVE 識別號為 CVE-2014-0160。
利用此弱點攻擊,可導致客戶端與伺服器之間記憶體資料洩漏。攻擊者可於遠端取得機敏資料,包含用來加密 SSL 密鑰與認證用的 Token。
關於此攻擊的更多資訊,參見 heartbleed.com。
Ruby 受影響程度?
只有使用存在弱點的 OpenSSL 透過標準函式庫的 C 擴展所編譯的 Ruby 受影響。
OpenSSL 從 1.0.1 至 1.0.1f 版本皆存在受攻擊的風險。要確認 Ruby 連結的 OpenSSL 版本,使用下面這條命令:
要確認目前 Ruby 安裝的 OpenSSL 版本:
可以使用 emboss 的腳本來檢查客戶端軟體或正在執行的服務是否有存在弱點。
解決辦法
升級至 1.0.1g
或更新版的 OpenSSL,檢查您目前的作業系統的套件管理工具,是否有提供最新版的 OpenSSL。可能需要諮詢系統發佈商,來確認系統內建的 OpenSSL 版本。
若無法升級,請使用打上補丁的 OpenSSL 重新編譯,編譯時請加上 -DOPENSSL_NO_HEARTBEATS
。
OpenSSL 升級之後,推薦您重新編譯 Ruby,確保使用的 OpenSSL 版本是安全的。
這表示需要更新像是用 RVM 或 ruby-build 所建立的 Ruby。若您是自己建 Ruby,編譯時請使用 --with-openssl-dir
選項,來使用已升級的 OpenSSL 目錄。
升級 Ruby 與 OpenSSL 之後,記得重新啟動所有使用存在弱點版本的程式。
許多作業系統發行版已提供(或很快會提供)打上補丁的新版本,並重建了存在弱點的套件。 記得關注作業系統發佈商,來確保您的系統是安全的。