Google的研究人員 – Bodo Möller、Thai Duong和Krzysztof Kotowicz發表了SSL 3.0一篇報告討論的一個嚴重漏洞,讓攻擊者能夠進行中間人攻擊和解密網站伺服器和使用者間的通訊。
比方說,如果你在網路上使用信用卡購物,你可能會認為你的資料是安全的,但因為這個漏洞(被稱為POODLE),它實際上可能是危險的。攻擊者可以劫持你的交易,取得你的信用卡資料,甚至變更你的訂單。
下面總結了此漏洞的一些關鍵要點:
- CVE編號:CVE-2014-3566
- 一般稱為:POODLE(Padding Oracle On Downgraded Legacy Encryption的縮寫)
- 漏洞:SSL 3.0降級漏洞
- 攻擊方式:中間人攻擊
POODLE攻擊如何運作?
根據該報告,關鍵問題是填充SSL 3.0區塊密文的完整性問題。協定並沒有驗證該填充。這會讓能夠成功劫持使用者和網站伺服器連線的攻擊者有辦法去修改SSL密文的最後一個區塊。導致攻擊者能夠成功地解密任何他們所能截取的加密流量。
SSL 3.0是一種舊的加密協定,已經有15年了。它已經由TLS(現在是1.2版)所取代。然而,如果連線有任一方不支援最新版本的話,TLS用戶端和伺服器將降級到較早版本的協定。
想想下面的可能狀況。瀏覽器支援到TLS 1.2版。在進行第一次握手(handshake)時,瀏覽器使用它所支援的最高版本(TLS 1.2)。如果這次握手失敗,瀏覽器會用較早的版本(TLS 1.1,然後TLS 1.0)繼續嘗試。攻擊者就可以讓瀏覽器降級到使用SSL 3.0,此時POODLE漏洞就可以被利用來解密雙方之間的任何通訊。
圖1:攻擊者可能會迫使用戶端和伺服器間的通訊從TLS降級到SSL 3.0,好能夠解密網路通訊
對策
禁用SSL 3.0協定就可以避免此漏洞。網站管理員可以從他們這邊禁用支援。例如這裡有說明介紹如何在Apache進行。
使用者也可以從他們那邊禁用SSL 3.0支援,只要遵循以下步驟:
- 對於Chrome 使用者,使用下列指令來執行Chrome –exe -ssl-version-min=tls1,就可以指定使用的最低版本SSL是TLS 1.0。
- 對於Firefox,在地址列輸入about:config來變更設定。搜尋關鍵字 tls.version.min,將值設為1以禁用SSL 3.0支援。
- IE瀏覽器使用者可以按照資訊安全公告3009008所提供的步驟來禁用SSL 3.0
企業可以透過以下步驟來修補伺服器:
- 透過這裡的方法在IIS 7禁用SSL 2.0和SSL 3.0以保護伺服器。
- 使用指令SSLProtocol All -SSLv2 -SSLv3來保護Apache httpd + mod_ssl
- 使用指令ssl_protocols TLSv1 TLSv1.1 TLSv1.2來保護 nginx
然而要注意的是,禁用SSL3.0並非對所有使用者來說都實際可行,特別當仍然需要用到舊式系統時。OpenSSL.org的安全公告建議網頁伺服器使用TLS_FALLBACK_SCSV機制以確保僅在必要時使用SSL 3.0(涉及舊式環境時)。這樣子,攻擊者就不能再強制協定降級。
趨勢科技的Deep Security可以透過下列DPI規則來保護客戶不受利用POODLE漏洞的攻擊:
- 1006293 – Detected SSLv3 Request
- 1006296 – Detected SSLv3 Response
@原文出處:POODLE Vulnerability Puts Online Transactions At Risk作者:Ziv Chang(趨勢科技網路安全方案協理)