1. 程式人生 > >解析OpenSSL重大安全漏洞

解析OpenSSL重大安全漏洞

  2014年4月8日,XP宣佈正式停止服務的日子,也是OpenSSL爆出大漏洞的日子。這個漏洞影響30~50%比例使用https的網站,其中包括大家經常訪問的:支付寶、微信、淘寶、網銀、社交、門戶等知名網站。只要訪問https的網站便有可能存在被嗅探資料的風險。

  OpenSSL是什麼?

  OpenSSL是目前移動網際網路上應用最廣泛的安全傳輸方法(基於SSL即安全套接層協議)。它為網路通訊提供安全及資料完整性的一種安全協議,囊括了主要的密碼演算法、常用的金鑰和證書封裝管理功能以及SSL協議,並提供了豐富的應用程式供測試或其它目的使用。

  OpenSSL漏洞

  OpenSSL是一種開放原始碼的SSL實現,用來實現網路通訊的高強度加密,現在被廣泛地用於各種網路應用程式中。OpenSSL Heartbleed模組存在一個BUG,當攻擊者構造一個特殊的資料包,滿足使用者心跳包中無法提供足夠多的資料會導致memcpy把SSLv3記錄之後的資料直接輸出,該漏洞導致攻擊者可以遠端讀取存在漏洞版本的OpenSSL伺服器記憶體中長大64K的資料。

  存在該漏洞的版本

  OpenSSL 1.0.1 through 1.0.1f(inclusive) are vulnerable

  OpenSSL 1.0.1g is NOT vulnerable

  OpenSSL 1.0.0 branch is NOT vulnerable

  OpenSSL 0.9.8 branch is NOT vulnerable

  簡單的說,黑客可以對使用https(存在此漏洞)的網站發起攻擊,每次讀取伺服器記憶體中64K資料,不斷的迭代獲取,記憶體中可能會含有程式原始碼、使用者http原始請求、使用者cookie甚至明文帳號密碼等。

  這個漏洞影響究竟有多大?

  影響很大,因為有很多隱私資訊都儲存在伺服器記憶體中。普林斯頓大學電腦科學家艾德•菲爾騰(Ed Felten)表示,使用這項技術的攻擊者可以通過模式匹配對資訊進行分類整理,從而找出金鑰、密碼,以及信用卡號等個人資訊。

  丟失了信用卡號和密碼的危害有多大,相信已經不言而喻。但金鑰被盜的後果可能更加嚴重。這是資訊伺服器用於整理加密資訊的一組程式碼。如果攻擊者獲取了伺服器的私鑰,便可讀取其收到的任何資訊,甚至能夠利用金鑰假冒伺服器,欺騙使用者洩露密碼和其他敏感資訊。

  一位安全行業人士在知乎上透露,他在某著名電商網站上用這個漏洞嘗試讀取資料,在讀取200次後,獲取了40多個使用者名稱,7個密碼,用這些密碼,他成功地登入了該網站。之後又發現雅虎門戶主頁、微信公眾號、微信網頁版,YY語言、淘寶、網銀、陌陌、社交、入口網站存在此漏洞。

  圖為獲取到了使用者登入的帳號以及密碼,這裡的密碼使用的明文傳輸,以至於通過這樣的漏洞攻擊黑客可以成功的登入了上百個賬戶。

  使用者修改密碼、傳送訊息、登入等請求以及很多操作全部在資料包中暴露出來,這裡不列舉更多受影響的網站了。其實這個漏洞據說早在2012年就被挖掘出來,直到昨天CVE納入編號CVE-2014-0160,8號才正式爆發。使用HTTPS的網站大多是因為資料需加密防止嗅探等攻擊的發生,漏洞爆發後徹底將這層大門打破,於是很多網站處於被監聽的狀態中。

  因此漏洞非使用者安全所致,只要網站使用了存在漏洞的OpenSSL版本,使用者登入該網站時就可能被黑客實時監控到登入賬號和密碼,此漏洞應由服務商儘快提供OpenSSL的升級。

  可喜的是諸如騰訊、網易、淘寶這些大的廠商對安全問題的應急相應速度很快,很多存在OpenSSL問題的網站已經修復,剩下一些相信也會通過白帽子們的努力很快修復。

  使用者應當如何應對該問題?

  對重要服務,儘可能開通手機驗證或動態密碼,比如支付寶、郵箱等,登入重要服務,不僅僅需要驗證使用者名稱密碼,最好繫結手機,加手機驗證碼登入。這樣就算黑客拿到帳戶密碼,登入還有另一道門檻。

  另外,隨著事件進展,可能受累及的網路服務在增加或更明確,建議使用者修改重要服務的登入密碼。對於密碼設定的建議是,一個密碼的使用時間不宜過長,超過3個月就應該換掉,並且密碼設定要足夠長,儘量不要多次使用同一個密碼。

感謝分享。