Android調試器爆漏洞,可獲取設備內存數據


本月中旬,谷歌推出了針對查找安卓系統漏洞的“安卓安全獎勵”計劃,發現一次漏洞最少可獲500美元獎勵。不過半月,真的有人發現了安卓系統漏洞。

趨勢科技(Trend Micro)近日發現了存在於Android調試器Debuggerd中的漏洞,該漏洞可以獲取設備內存中的數據,包括Android 4.0 Ice Cream Sandwich(冰淇淋三明治)到Lollipop(棒棒糖)等系統均受到影響。

Debuggerd是android的一個daemon進程,負責在進程異常出錯時,將進程的運行時信息dump出來供分析。Debuggerd生成的coredump數據是以文本形式呈現,被保存在 /data/tombstone/ 目錄下,共可保存10個文件,當超過10個時,會覆蓋重寫最早生成的文件。從4.2版本開始,Debuggerd同時也是一個實用工具:可以在不中斷進程執行的情況下打印當前進程的native堆棧。這可以協助分析進程執行行為,但最最有用的地方是:它可以非常簡單的定位到native進程中鎖死或錯誤邏輯引起的死循環的代碼位置。

然而一個構造精巧的ELF(Executable and Linkable Format)文件可以導致調試器崩潰,然後通過tombstone文件和對應的logd日誌文件暴露內存內容。此文件可用於拒絕服務攻擊,以及幫助繞過ASLR執行惡意代碼。導致漏洞的原因是在執行字符串複製命令時,Debuggerd會使用sym->st_name作為offset,而不進行錯誤檢查。這個值可以輕易被惡意的ELF文件控制,它可以將offset值指向不可讀取的內存,從而導致Debuggerd崩潰。如果反覆崩潰就會造成拒絕服務攻擊,也無法再連接Debuggerd了。如果精心構造offset就會使Debuggerd暴露相應的內存內容,Debuggerd會將它們存入dump和log文件中。不過僅僅利用該漏洞是無法進行代碼執行的,而通過該漏洞暴漏的信息則可以和其他漏洞結合從而用於代碼執行。

該漏洞可被惡意或重新打包的應用程序利用。不過因為不能直接通過代碼執行,能造成的影響會相對有限。目前受到漏洞影響的系統版本包括Android 4.0 (Ice Cream Sandwich)到Lollipop(5.x),而在最新版本Android M中該漏洞已經得到了修復。

據悉,趨勢科技已經在今年4月27日向谷歌提交了漏洞報告,谷歌承認了該問題的存在,並將其判定為低等級漏洞。在今年5月15日的Android Open Source Project (AOSP,Android 開放源代碼項目) 大會上,谷歌更新了一個針對該漏洞的補丁。


資料來源:雷鋒網

如果喜歡我們的文章,請即分享到︰