【HITCON Free Talk 現場筆記】如何在全球駭客嗜血戰場 OpenSSL Heartbleed 中救自己一命

SSL 已經是今日全球應用層面最廣的加密技術,不論是電子商務、個資安全、機敏資料傳輸都靠它保護,是大家接觸比較多的安全協議之一。看到某個網站用了 https:// 開頭,就是採用了 SSL 安全協議。

全球有 66% 主機和網路設備,使用基於開放原始碼套件 OpenSSL 的程式碼,而近日 Google 資安團隊發佈的 OpenSSL HeartBleed (CVE-2014-0160)漏洞,號稱近十年來網路上最大的漏洞,影響超過 17.5% 的全球網站,只要你家有十台不同廠牌的使用 SSL 設備,就有兩台可能中獎。更有網友 測試了世界最流行​​的 1000 家網站 ,結果 30% ~ 40% 的都有問題。

這個漏洞的可怕之處在於,只要送出簡單的 SSL 協定 Heartbeat 封包,受影響設備就會隨機回傳記憶體中 64KB 的資料。

若攻擊者不斷嘗試,就有超高機率回傳尚未加密的明碼密碼,交易信用卡卡號、個資,甚至用來加密的 PKI 私密金鑰 Private key。大家經常到訪的支付寶、微信、淘寶等網站也存在這個漏洞。

駭客圈私下稱此漏洞為「SSL 記憶體刮刮樂」。

HITCON 台灣駭客年會所舉辦的「HITCON Free Talk」今天邀請到台灣多位頂尖資安專家,現場展示 OpenSSL HeartBleed 破壞力,並提供各大廠牌正確修補方式,若尚未釋出 patch 如何組合防火牆規則可降低被攻擊風險。

以下文字為頂尖資安顧問公司 DEVCORE 戴夫寇爾 CEO、HITCON 台灣駭客年會副總召翁浩正(Allen Own)演講摘要。

  • OppenSSL Heartbleed 到底是一個什麼樣的漏洞?

1. OpenSSL 公告了一個極度嚴重的漏洞(CEV-2014-0160),被稱為「Heartbleed」,而他確實也如同心臟噴出血般的嚴重,根本就是 全球駭客的嗜血戰場

2. 攻擊者從伺服器記憶體中讀取 64 KB 的資料。利用傳送 heartbeat 的封包,在封包中控制變數導致 memcpy 函數複製錯誤的記憶體資料,因而截取記憶體中可能存在的機敏資料。

其中機敏資料包括:私密金鑰、Cookie、SESSION ID、帳號密碼、個人資料(信用卡資料)。

影響版本範圍:

1. 影響範圍:1.0.1 至 1.0.1f / 1.0.2-beta1

2. 修復版本:1.0.1g / 1.0.2-beta2

3. 影響服務有:HTTP、SMTPS、IMAPS、POP3S 等使用 OpenSSL 的服務。

影響範圍系統版本:

1. Debian Wheezy (stable), OpenSSL 1.0.1e-2+deb7u4

2. Ubuntu 12.04.4 LTS, OpenSSL 1.0.1-4ubuntu5.11

3. CentOS 6.5, OpenSSL 1.0.1e-15

4. Fedora 18, OpenSSL 1.0.1e-4

5. OpenBSD 5.3 (OpenSSL 1.0.1c 10 May 2012) and 5.4 (OpenSSL 1.0.1c 10 May 2012)

6. FreeBSD 8.4 (OpenSSL 1.0.1e) and 9.1 (OpenSSL 1.0.1c)

7. NetBSD 5.0.2 (OpenSSL 1.0.1e)

8. OpenSUSE 12.2 (OpenSSL 1.0.1c)

(漏洞發生示意圖)

受害範圍

根據網路掃描工具 Zmap 的研究,針對 Alexa 前一百萬個網域進行掃描。 2014 年 4 月 13 日 11:00 AM EDT ,有 45 % 的網站支援 TLS,6.2% 網站含有 Heartbleed 弱點。

2014 / 4 / 16 台灣受害數據:

1. Port 443 有 3814786 台

2. Port 443 有 OpenSSL 的有 33522 台

3. Port 443 有 OpenSSL 漏洞的有 2424 台

  • 如何自我檢測?

請前往:https://www.ssllabs.com/ssltest/

應對措施(管理者):

1. 更新 OpenSSL 至 1.0.1g 或 1.0.2 -beta2 並注意有無後續更新。

2. 重新產生金鑰(Private Key 外洩)、Session(Session ID 外洩)、密碼(密碼外洩),並撤銷原本的金鑰。

3. 若無法更新,重新編譯 OpenSSL 以關閉 heartbleed 功能。

4. 使用 Perfect Forward Secrecy(PFS),在未來類似風險發生時減低傷害。

5. 使用 IDS、IPS 等設備來偵測 Heartbleed 攻擊(Snort Rule SID 30510 到 30517)。

6. 確認自己的 OpenSSL 版本是否在受害範圍。

7. 使用 ssltest 檢測工具檢測是否含有漏洞。

8. 更新 OpenSSL 至 1.0.1g 或 1.0.2-beta2。

9. 重開所有與 OpenSSL 函式庫相關隻服務。

10. 重新產生 SSL Private Key(因為 Private Key 可能藉由漏洞外洩)。

11. 將網站舊憑證撤銷。

12. 清除所有目前網頁伺服器上的 Session(因為可能遭到竊取)。

13. 必要時更換網站內使用者密碼,或是密切追蹤網站是否有帳號盜用的情況發生。

  • 我一定得更新嗎?

許多業者抱持著僥倖的心態,想說外洩的目標不會輪到自己。如果大家看到這幾天全世界資安人員 / 駭客不眠不休的撈取資料,應該會徹底消滅僥倖的想法乖乖做好防護。

在漏洞揭露的頭幾天,就已經陸續看到不少駭客進入 Google、Facebook、Yahoo! 等伺服器,並且撰寫大規模掃描工具大量攻擊。除非你有把握自已的伺服器沒有任何連線,不然還是請乖乖更新吧。

  • 一般大眾應有的應對措施

1. 注意常用的重要網站服務,是否有針對 Heartbleed 漏洞的更新措施。不少大公司都有發出公告、公告信等。

2. 若常用網站服務有遭遇此風險,記得更換帳號密碼。

3. 若這段時間有網站通知更換密碼,也要注意是否為釣魚信件。注意自己的帳號是否有異常活動。

  • 從這次核彈級的資安事件中我們可以學到什麼

不管哪種攻擊手法、多老舊的漏洞手法,在未來都可能會再度發生。程式碼的 Review 非常重要,一定要在開發過程中導入程式碼 Review 機制,以免開發者寫出含有安全疑慮的程式碼。

另外,加密、Session 控管、金鑰控管等議題,是永遠的課題。一天沒處理好,在未來的風險中會再度受害。

風險永遠會發生在你猜不到的地方,可能是程式、可能是函式庫、可能是加密協定、更可能是亂數產生器。

延伸閱讀:

 全球網路爆發核彈級密碼漏洞,危機網站清單大公開

點關鍵字看更多相關文章: