本月中旬,谷歌推出了針對查找安卓系統漏洞的“安卓安全獎勵”計劃,發現一次漏洞最少可獲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 開放源代碼項目) 大會上,谷歌更新了一個針對該漏洞的更新檔。