天天看點

OpenSSL漏洞補救辦法詳解

CVE-2014-0160漏洞背景

2014年4月7日OpenSSL釋出了安全公告,在OpenSSL1.0.1版本中存在嚴重漏洞(CVE-2014-0160)。OpenSSL Heartbleed子產品存在一個BUG,問題存在于ssl/dl_both.c檔案中的心跳部分,當攻擊者構造一個特殊的資料包,滿足使用者心跳包中無法提供足夠多的資料會導緻memcpy函數把SSLv3記錄之後的資料直接輸出,該漏洞導緻攻擊者可以遠端讀取存在漏洞版本的OpenSSL伺服器記憶體中多達64K的資料。

在目前已有的資料中,國内外同行已經稱本漏洞為 “擊穿心髒”、“毀滅級”、“今年最嚴重”的漏洞。由于SSL協定是網絡加密登陸認證、網絡交易等的主流安全協定,而OpenSSL又是主流的SSL搭建平台。是以這些稱呼好不為過,建議各網絡服務提供者、管理機構和使用者高度注意本漏洞的處理情況,希望廣大使用者做出相應的對策。

OpenSSL受影響版本的分布

根據已經公開的資訊,該漏洞影響分布情況如下。

1、OpenSSL 1.0.1f (受影響)

2、OpenSSL 1.0.2-beta (受影響)

3、OpenSSL 1.0.1g (不受影響)

4、OpenSSL 1.0.0 branch (不受影響)

5、OpenSSL 0.9.8 branch (不受影響)

處置建議如下

3.1 針對網絡管理者,可以做的事情包括

鑒于本漏洞的嚴重程度,如果确定本漏洞存在,對一般性的網絡服務者,暫停服務進行處置是一種較好的應對政策。

如果确定本漏洞存在,又必須保證服務不能停止,可以在漏洞修補過程中,暫時停止https服務,改用http服務,但這會帶來相關認證資訊明文傳輸的風險,具體利害需要做出謹慎的判斷權衡。

具體修補方式為:

OpenSSL版本更新到最新的1.0.1g

重新生成你的私鑰

請求和替換SSL的證書

也可以使用-DOPENSSL_NO_HEARTBEATS參數重新編譯低版本的OpenSSL以禁用Heartbleed子產品,最新版本更新位址為:https://www.openssl.org/source/. (OpenSSL官方)

3.2 針對普通網絡使用者,我們鄭重提出的建議包括

鑒于本漏洞的嚴重程度,在不能确定你所網站和服務修補了本漏洞的情況下,在未來2~3天内(2014年4月9日日起)不登陸,不操作是一種較好的應對政策(這些操作包括網購、網銀支付等)。

如果你必須進行操作,可以關注這些網站和服務的修改情況。

一些手機用戶端的登陸,是對SSL的封裝,是以手機登入也不安全。

其他安全企業團隊會公布目前仍有問題的站點、或沒有問題的站點情況,請予以關注。

分析與驗證

目前該漏洞的利用和驗證腳本已經可以被廣泛擷取,位址包括。

http://fi****o.io/Heartbleed/ (web測試頁面)

http://s3. ****guin.org/ssltest.py (python腳本)

http:// **.* u u.com/s/1nt3BnVB (python腳本)

盡管從安全團隊的角度,我們不适宜明文傳播這些位址,但我們必須提醒使用者的是,幾乎所有的攻擊者都已經擁有了相關資源,在過去24小時内,這一漏洞已經遭到了極為廣泛的探測和嘗試。相信大多數有漏洞的站點均遭到了不止一次的攻擊。

鑒于該漏洞的嚴重程度和攻擊爆發事件,我們不得不打破搭建環境,測試驗證的管理,

在第一時間,選擇相對“輕量級”的網站做出直接驗證,以分析其實際後果敏感資訊。通過網絡中已有的測試方法,我們尋找到幾個存在問題的網站進行分析,為了避免行為失當,我們沒有選擇與金融、交易相關的站點。

存在問題的網站位址:

Ap***.*****.gov.cn (測試時間為2014-04-09 01:00)

my-****.in (測試時間為2014-04-09 01:10)

www.shu****.cn (測試時間為2014-04-09 01:15)

git****.com (測試時間為2014-04-09 01:20)

feng*****.com (測試時間為2014-04-09 01:30)

擷取回來的相關資訊情況如下:

圖 1 測試網站1

通過漏洞利用工具發送資料後,傳回的資料中可以看到有内網IP位址、路徑等資訊。

圖 2 測試網站2

通過漏洞利用工具發送資料後,傳回的資料中可以看到有APP資訊、cookie資訊和使用者名資訊等。

圖 3 測試網站3

通過漏洞利用工具發送資料後,傳回的資料中可以看到有手機号碼等。

圖 4 測試網站4

通過漏洞利用工具發送資料後,傳回的資料中可以看到有信箱和密碼等資訊。

通過上面的幾個網站的分析測試,發現該漏洞确實可以擷取到帶有敏感資訊的記憶體内容。例如:使用者的cookie資訊、内網IP位址、使用者名、密碼、手機号、信箱等。如攻擊者利用此漏洞對網絡交易、證券、銀行等網絡進行攻擊,那麼将會擷取到使用者名、密碼、銀行賬号等敏感資訊。再次提醒網站管理者和使用SSL協定連接配接網站的使用者請盡快按照我們的處置建議進行操作。

網絡檢測相關方法

通用Snort規則檢測

由于衆所周知的SSL協定是加密的,我們目前沒有找到提取可比對規則的方法,我們嘗試編寫了一條基于傳回資料大小的檢測規則,其有效性我們會繼續驗證,如果有問題歡迎回報。

alert tcp $EXTERNAL_NET any -> $HOME_NET 443 (msg:"openssl Heartbleed attack";flow:to_server,established; content:"|18 03|"; depth: 3; byte_test:2, >, 200, 3, big; byte_test:2, <, 16385, 3, big; threshold:type limit, track by_src, count 1, seconds 600; reference:cve,2014-0160; classtype:bad-unknown; sid:20140160; rev:2;)

Snort規則說明:此次漏洞主要針對的SSL協定。是針對心跳資料包前4個位元組中包含\x18\x03,而在資料包第5個位元組和第6個位元組的數值按大尾模式轉化成數值在200和16385之間,在後面則是一些報警和過濾功能,日志記錄裡,每10分鐘記錄一次。

行為檢測

從公共網絡管理者的角度,可以從同一IP短時間探測多個443端口的網絡連接配接角度進行檢測。這樣可以發現攻擊者或殭屍電腦的大面積掃描行為。

另外由于攻擊者可能定期性的進行資料持續擷取,也可以從連接配接持續規律的時間性和首發資料數量的對比的角度進行檢測。

其他

是否相關攻擊的主機痕迹和驗證方式,我們正在驗證。

本文轉自wangfeng7399 51CTO部落格,原文連結:http://blog.51cto.com/wangfeng7399/1393668,如需轉載請自行聯系原作者

繼續閱讀