背景:
本文發(fā)表于2012年4月發(fā)表于ACM WiSec會(huì)議上,主要對(duì)android應(yīng)用中嵌入的第三方ad lib進(jìn)行風(fēng)險(xiǎn)分析寨辩。
出處:
WiSec’12,April 16–18, 2012, Tucson, Arizona, USA.
作者:
Michael Grace, Wu Zhou,? Xuxian Jiang and Ahmad-Reza Sadeghi
概述:
本文針對(duì)第三方廣告庫(kù)所造成的隱私泄露問(wèn)題進(jìn)行研究歼冰,通過(guò)建立AdRisk系統(tǒng)來(lái)系統(tǒng)的識(shí)別和分析潛在的風(fēng)險(xiǎn)。分析范圍從上傳敏感信息到遠(yuǎn)程服務(wù)器到互聯(lián)網(wǎng)源執(zhí)行不可信代碼隔嫡。
主要成果:
對(duì)100000個(gè)app中的100個(gè)ad lib進(jìn)行分析,找到并證明在絕大多數(shù)lib中存在威脅腮恩,包括收集次要信息,允許第三方代碼在host app中執(zhí)行等武契。建立主流ad lib與其獲得的相應(yīng)權(quán)限的關(guān)系表。
主要框架:
1.收集app并提取其中的ad lib(100個(gè)届垫,包括主流的20個(gè)lib)
2.判別ad lib是否存在安全和隱私的風(fēng)險(xiǎn)(在此過(guò)程中建立API與權(quán)限之間的關(guān)系)
3.識(shí)別可能存在的風(fēng)險(xiǎn)(兩個(gè)維度)
對(duì)每個(gè)ad lib進(jìn)行可達(dá)性分析(reachability analysis)钧排。
在第一個(gè)維度針對(duì)一些危險(xiǎn)行為的事件(precipitating event),比如一個(gè)入口點(diǎn)(entry point)或是接收的網(wǎng)絡(luò)包等恨溜。尋找從入口點(diǎn)到某一特定API的路徑可以標(biāo)注一個(gè)危險(xiǎn)情況。
第二維度主要尋找一個(gè)到達(dá)外部的危險(xiǎn)調(diào)用判族,如使用networkAPI。
這些危險(xiǎn)的API調(diào)用在之前建立的API-permission表中有標(biāo)注形帮。
在原理方面周叮,本文將之前進(jìn)行標(biāo)注的所有API調(diào)用視為危險(xiǎn),對(duì)每個(gè)API調(diào)用進(jìn)行回溯并找到調(diào)用該API的源(library source)仿耽,通過(guò)lib source尋找潛在的入口點(diǎn),判斷調(diào)用是否安全项贺。對(duì)于無(wú)法溯源的API調(diào)用,向前查找其目標(biāo)是否是外部的(network sink)棕叫。
在算法方面,在實(shí)驗(yàn)過(guò)程中俺泣,對(duì)每一個(gè)lib繪制控制流圖完残,對(duì)其中API調(diào)用的所有可能的執(zhí)行路徑進(jìn)行分析,判斷這些路徑是否可行坏怪。
實(shí)現(xiàn)工具:
使用Felt獲得API調(diào)用與所需的相應(yīng)權(quán)限铝宵。
基于開源的baksmali Dalvik disassembler(1.2.6)進(jìn)行開發(fā),加入4個(gè)hook鹏秋,輸入API-permission的關(guān)系文件用以分析。
實(shí)驗(yàn)結(jié)果:
找到主流ad lib所使用的危險(xiǎn)權(quán)限侣夷,如下圖所示:
總結(jié):
本文對(duì)ad lib中的API調(diào)用進(jìn)行檢測(cè),判斷是否會(huì)有不安全泄露的風(fēng)險(xiǎn)琴锭。實(shí)驗(yàn)結(jié)果中給出主流ad lib獲取的有安全風(fēng)險(xiǎn)的權(quán)限衙传。但是在文中對(duì)于ad lib與權(quán)限的聯(lián)系并沒(méi)有詳細(xì)的說(shuō)明(即ad lib如何通過(guò)這些權(quán)限進(jìn)行危險(xiǎn)操作)。此外在尋找API調(diào)用的源和目的時(shí)不明確蓖捶,沒(méi)有解釋哪種路徑被判定為危險(xiǎn)。