Android 有顆心,這顆心會流血嗎?

作者 | 發布日期 2014 年 04 月 29 日 15:43 | 分類 市場動態 , 資訊安全 line share follow us in feedly line share
Android 有顆心,這顆心會流血嗎?


OpenSSL Heartbleed 漏洞讓遠端駭客利用竄改的封包並觸發緩衝區溢位來竊取記憶體中的機密資料[1]。Heartbleed 漏洞震驚了業界,因為它能讓駭客傳送被竄改的 SSL heartbeat 訊息,並藉此竊取受駭網站上的機密資料。由於伺服器也能傳送 heartbeat 訊息給用戶端,因此惡意伺服器也能攻擊用戶端並竊取機密資料。我們在 Android 平台上發現某些 Android 程式含有具 Heartbleed 漏洞的 OpenSSL 函式庫,而且下載次數高達 1.5 億次。

目前 Google Play 中有 17 個號稱可偵測 Heartbleed 漏洞的防毒程式,其中六種會掃描 Android 平台上的 OpenSSL 函式庫,以找出漏洞。不過,這種方法並無法有效偵測出 Android 上的 Heartbleed 漏洞。除了特定 Android 版本(4.1.0-4.1.1 為主),大部分的 Android 平台都沒有這樣的弱點,因為他們都是使用不會受影響的 OpenSSL 函式庫或已停用 OpenSSL heartbeat 功能。

不過,Android 程式經常使用自建函式庫,因此會直接或間接地用到易受攻擊的 OpenSSL 函式庫。換句話說,即使 Android 平台本身安全無虞,駭客仍可對易受攻擊的程式發動攻擊,例如劫持網路連線、將程式導引至惡意伺服器,並將被竄改的 heartbeat 訊息傳送到程式,以竊取機密資料。

我們研究了有安全弱點的 OpenSSL 函式庫,並確認了攻擊的事實,結果發現易受攻擊的大多數是遊戲程式,以及少數的文書應用程式。雖然遊戲程式通常沒有太多重要資料,但駭客仍可竊取 OAuth 代碼(例如存取與更新代碼)並入侵玩家帳號,如此一來,駭客就能用這些資料入侵相關的社群網站帳號,並更改設定。至於遭受 Heartbleed 漏洞攻擊的辦公室文書軟體可能導致機密資料外洩,因此危險性較高。

在調查含有 OpenSSL 函式庫安全弱點的辦公室文書軟體時,我們很驚訝地發現它們並不會遭受 Heartbleed 攻擊。為什麼呢?經過深入探討,我們發現這些程式不是原生碼的連結有問題,就是含有無效的程式碼。因此,當駭客試圖啟動 SSL 功能時,程式會直接用 Android 作業系統內無安全弱點的 OpenSSL 函式庫,而不會用程式提供的有弱點函式庫。使用原生碼開發的 Android 應用程式經常會出現這種連結錯誤,沒想到這種錯誤卻歪打正著地降低了程式被攻擊的風險。

在 Google Play 的 17 個 Heartbleed 漏洞偵測程式中,只有六個會針對裝置上已安裝程式檢查 Heartbleed 漏洞。在這六個程式中,其中兩個的檢查結果顯示所有已安裝的程式都是安全的,包括我們確認已遭受攻擊的程式、其中一個未顯示任何掃描結果、另一個未掃描正確的 OpenSSL 版本,只有剩下的兩個程式有進行深度檢察。雖然這兩個程式把某些安全程式標記為受攻擊的程式,不過我們認同此份報告的有效性,因為內容提到了漏洞與連結錯誤。我們也發現這 17 種 Heartbleed 漏洞偵測程式中有幾個是虛有其表的,不僅無法實際偵測漏洞,也不會顯示偵測結果,因此充其量只是廣告軟體。

我們於 4 月 10 日檢視了 5.4 萬個 Google Play 上的應用程式(每個程式下載率都超過 10 萬次),發現至少有 2.2 億次的下載遭受 Heartbleed 漏洞攻擊。我們也通知程式的開發人員與函式庫廠商,告知產品有 OpenSSL Heartbleed 漏洞。幸虧大多數的開發人員與函式庫廠商都很重視 Heartbleed 漏洞這個問題,並於修復後推出更新版本。至 4 月 17 日為止,遭受攻擊的程式下載率已降到 1.5 億次。

[1] CVE-2014-0160漏洞摘要

本文刊登於 Mobile ThreatsThreat IntelligenceThreat Research 與 Vulnerabilities 等 FireEye 部落格。作者包括Yulong ZhangHui XueTao Wei。 2014年4月22日 | 作者:Yulong ZhangHui XueTao Wei