ESC 行動應用程式 Content Provider 路徑瀏覽漏洞可能造成資訊外洩
趨勢科技研究人員在 Google Play 上的三款不同應用程式上都發現 Content Provider 路徑瀏覽漏洞,其中一個應用程式已經累積 5 百萬次下載。這三個應用程式分別為:鍵盤客製化應用程式、 知名百貨公司購物應用程式,以及歐洲心臟學會 (European Society of Cardiology,簡稱 ESC) 應用程式。還好,前兩個 (鍵盤與百貨公司) 應用程式目前開發廠商已經修正,但 ESC 應用程式截至本文撰稿為止仍尚未修正。經過進一步的研究顯示,此漏洞很可能被用來竊取私密資訊。以下提供漏洞分析以及一些協助開發人員在未來避免此類問題的一些建議。
什麼是「Content Provider」?
要了解此漏洞,首先必須先了解一下什麼是 Content Provider (內容供應器)?根據 Android Developer 網站的說明,這是一個讓某個處理程序中的資料能被另一個處理程序使用的標準介面。它能將資料包裝起來然後提供介面給應用程式使用,同時也提供一個建立資料防護的機制。而這也是應用程式彼此之間共享資料所必需的。
這些網路詐騙的主要誘因是,詐騙簡訊及詐騙郵件、網路犯罪者所刊登的惡意網路廣告、被網路犯罪者所篡改的網站。其中,惡意廣告不僅僅會出現在成人網站及影視網站上,甚至也會出現在正規的網站上,如果你還抱持著「只要不連結上可疑的網站就安全了」的印象的話那您就太落伍了。以下讓我們看看網路詐騙的幾個代表性手法。
簡而言之,Content Providers 負責管理一組結構化資料的存取,允許資料從一個處理程序傳送至另一個處理程序。
步驟 1:|處理程序 1 發出請求 ———> 處理程序 2 的 Content Provider ————> 處理程序 2 的資料
步驟 2:
處理程序 2 的資料 ———-> 處理程序 2 的 Content Provider ———–>
處理程序 1要從處理程序 2 取得資料,只需要對其 Content Provider 發出請求即可。
漏洞深入剖析
ESC Pocket Guidelines 4.4 版 Android 應用程式當中的漏洞是一個路徑瀏覽漏洞,可讓裝置上的其他應用程式取得敏感資訊,並且還可提供內部儲存的讀/寫權限。
當我們在研究這個應用程式時,我們發現當其 Content Provider 在匯出時,
openFile 函式已遭修改,不會過濾掉「../」路徑。
如此一來,應用程式的資料 (任何應用程式內部所產生並保留的資料) 很容易遭到蒐集,進而引發潛在的風險。就 ESC 應用程式而言,使用者的帳號資訊可能有外洩的危險。好在,這個應用程式只不過是心臟學會所製作的一個臨床醫療口袋指南。但假使這樣的漏洞出現在一些含有更多敏感資訊的應用程式,使用者就很危險,而且企業也會因為資料外洩而承擔法律責任。
為了示範此漏洞的危險性,我們撰寫了一個簡單的應用程式,叫做「PoC」( poc.apk)。這個應用程式會對 ESC 應用程式的 Content Provider (com.esccardio.escpocketguidelines.FileContentProvider) 發出請求。以下程序示範我們如何從這個含有漏洞的應用程式讀取到內部資訊。
含有漏洞的應用程式超過 10 萬次下載
步驟 1
我們在裝置上安裝 ESC Pocket Guidelines 應用程式,確定我們使用的是分析當時的最新版本,此時應用程式已累積超過 10 萬次下載。
圖 1:含有漏洞的應用程式在分析當下已累積超過 10 萬次下載。
步驟 2
將我們撰寫的應用程式也安裝在裝置上。以下是該程式的主程式碼:
當兩個應用程式 (PoC 和 ESC Pocket Guidelines) 都安裝到裝置上後,我們執行 PoC 應用程式:
步驟 3
在執行 PoC 應用程式之後,我們就能取得 ESC 應用程式內部檔案的內容。
首先,我們利用一個「root」指令來找出應用程式內部有哪些類型的檔案。
接著,我們隨機挑選了一個檔案來驗證這個漏洞,第一個範例隨機選中的是「license.json」。
在選好檔案之後,我們在 PoC 應用程式內指定該名稱來測驗這個漏洞。結果成功取得 license.json 的檔案內容 (如下圖)。正如我們前面所說,這個漏洞是因為應用程式內未將「../」路徑過濾掉而引起的,我們可以利用這個漏洞來找到並存取我們想要的檔案。
在第二個範例中,我們選中「AppInfo.xml」檔案,同樣地,我們也是利用 ADB 指令列的 root 指令來事先選好要測試的檔案。
我們取得該檔案的路徑,然後輸入 PoC 應用程式內。結果,我們同樣看到了該檔案的內容。
資安建議
使用者常常在一些應用程式輸入自己的身分識別資訊 (PII),這樣一來,任何可能用於蒐集資料的漏洞都是一項嚴重威脅。由於此漏洞可讓駭客蒐集應用程式內部的任何資訊,因此特別值得留意,而且這是一個相當常見、卻也很容易修正的錯誤。
我們希望開發人員能盡量避免這類漏洞,並在開發應用程式時將資安列入考量。為了防範諸如此類的問題,開發人員必須確保 Content Provider 不能被匯出,或者 openFile 函式必須過濾像「../」這樣的路徑。
趨勢科技解決方案能夠偵測任何利用這項漏洞的不肖應用程式,例如趨勢科技行動安全防護。其多層式防護能守護裝置的資料與隱私,並且防範勒索病毒、詐騙網站以及身分盜用,有助於保障使用者的安全。
針對企業機構, 趨勢科技企業版行動安全防護可提供裝置、法規遵循與應用程式的管理,以及資料防護和組態配置。並可防止裝置遭到漏洞攻擊,避免存取未經授權的應用程式,同時還可偵測並攔截惡意程式和詐騙網站。趨勢科技的行動應用程式信譽評等服務 (MARS) 已經可以利用先進的沙盒模擬分析與機器學習 技術來防範 Android 及 iOS 的威脅,防止使用者遭到惡意程式、零時差漏洞、已知漏洞、隱私外洩、應用程式漏洞等危害。
原文出處:ContentProvider Path Traversal Flaw on ESC App Reveals Info 作者:Jesse Chang