2
本文作者: 金紅 | 2015-06-29 16:41 |
本月中旬,谷歌推出了針對查找安卓系統(tǒng)漏洞的“安卓安全獎勵”計劃,發(fā)現(xiàn)一次漏洞最少可獲500美元獎勵。不過半月,真的有人發(fā)現(xiàn)了安卓系統(tǒng)漏洞。
趨勢科技(Trend Micro)近日發(fā)現(xiàn)了存在于Android調試器Debuggerd中的漏洞,該漏洞可以獲取設備內(nèi)存中的數(shù)據(jù),包括Android 4.0 Ice Cream Sandwich(冰淇淋三明治)到Lollipop(棒棒糖)等系統(tǒng)均受到影響。
Debuggerd是android的一個daemon進程,負責在進程異常出錯時,將進程的運行時信息dump出來供分析。Debuggerd生成的coredump數(shù)據(jù)是以文本形式呈現(xiàn),被保存在 /data/tombstone/ 目錄下,共可保存10個文件,當超過10個時,會覆蓋重寫最早生成的文件。從4.2版本開始,Debuggerd同時也是一個實用工具:可以在不中斷進程執(zhí)行的情況下打印當前進程的native堆棧。這可以協(xié)助分析進程執(zhí)行行為,但最最有用的地方是:它可以非常簡單的定位到native進程中鎖死或錯誤邏輯引起的死循環(huán)的代碼位置。
然而一個構造精巧的ELF(Executable and Linkable Format)文件可以導致調試器崩潰,然后通過tombstone文件和對應的logd日志文件暴露內(nèi)存內(nèi)容。此文件可用于拒絕服務攻擊,以及幫助繞過ASLR執(zhí)行惡意代碼。導致漏洞的原因是在執(zhí)行字符串復制命令時,Debuggerd會使用sym->st_name作為offset,而不進行錯誤檢查。這個值可以輕易被惡意的ELF文件控制,它可以將offset值指向不可讀取的內(nèi)存,從而導致Debuggerd崩潰。如果反復崩潰就會造成拒絕服務攻擊,也無法再連接Debuggerd了。如果精心構造offset就會使Debuggerd暴露相應的內(nèi)存內(nèi)容,Debuggerd會將它們存入dump和log文件中。不過僅僅利用該漏洞是無法進行代碼執(zhí)行的,而通過該漏洞暴漏的信息則可以和其他漏洞結合從而用于代碼執(zhí)行。
該漏洞可被惡意或重新打包的應用程序利用。不過因為不能直接通過代碼執(zhí)行,能造成的影響會相對有限。目前受到漏洞影響的系統(tǒng)版本包括Android 4.0 (Ice Cream Sandwich)到Lollipop(5.x),而在最新版本Android M中該漏洞已經(jīng)得到了修復。
據(jù)悉,趨勢科技已經(jīng)在今年4月27日向谷歌提交了漏洞報告,谷歌承認了該問題的存在,并將其判定為低等級漏洞。在今年5月15日的Android Open Source Project (AOSP,Android 開放源代碼項目) 大會上,谷歌更新了一個針對該漏洞的補丁。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉載。詳情見轉載須知。