蘇鈺
摘 要:該文描述一種動(dòng)靜態(tài)分析結(jié)合的Android系統(tǒng)隱私泄漏檢測(cè)方法。該方法首先利用動(dòng)態(tài)分析技術(shù)分析程序?qū)崟r(shí)運(yùn)行時(shí)的真實(shí)執(zhí)行狀態(tài),從而識(shí)別出具有隱私泄露風(fēng)險(xiǎn)的應(yīng)用程序及其隱私泄露行為執(zhí)行路徑。接著使用靜態(tài)分析技術(shù)對(duì)范圍內(nèi)的應(yīng)用內(nèi)容進(jìn)行分析,最終定位隱私泄露漏洞。實(shí)驗(yàn)結(jié)果顯示,運(yùn)用動(dòng)靜態(tài)分析相結(jié)合的方法能夠縮短分析時(shí)間,同時(shí)提高漏洞分析的精確度,減少誤判率。在此基礎(chǔ)上,能夠進(jìn)一步發(fā)現(xiàn)多應(yīng)用協(xié)作的隱私泄露行為,彌補(bǔ)了靜態(tài)分析方法在檢測(cè)效率和跨應(yīng)用檢測(cè)能力上的不足。
關(guān)鍵詞: Android安全; 隱私泄露; 漏洞檢測(cè); 動(dòng)態(tài)分析; 靜態(tài)分析
中圖分類(lèi)號(hào):TP309? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)30-0042-03
Abstract:This paper proposes a new approach, which detects privacy leakage vulnerabilities on Android with both dynamic and static ways. Based on dynamic analysis, this method firstly constructs the real execution status in order to recognizing those applications that have privacy leakage vulnerabilities and their execution path. Then, using the static analysis to locate the privacy leakage of those applications. The result of experiment shows that this fusion method can increase accuracy of vulnerability analysis and reduce misjudgment ratio while using less time. Besides that, this method can further discovery multiple application privacy leakage vulnerabilities, which makes up the static analysis method in detection efficiency and cross-application detection capability.
Key words:android security; privacy leakage; vulnerability detection; dynamic analysis; static analysis
1 引言
近年來(lái),Android系統(tǒng)一直是市場(chǎng)占有率最高的移動(dòng)智能終端操作系統(tǒng),市場(chǎng)份額在2019年已達(dá)到了87%[1]。Android系統(tǒng)的開(kāi)放性是一把雙刃劍,在市場(chǎng)規(guī)模不斷擴(kuò)大的同時(shí),多樣的應(yīng)用市場(chǎng)和寬松的審查機(jī)制導(dǎo)致Android應(yīng)用的安全性一直飽受詬病。根據(jù)360安全公司的研究調(diào)查[2],Android系統(tǒng)截獲的惡意程序出現(xiàn)次數(shù)呈現(xiàn)爆發(fā)式增長(zhǎng),僅2020年一季度攔截量已超過(guò)2019年全年攔截總量。新增惡意程序類(lèi)型中占比第一的是資費(fèi)消耗(83.6%),其次就是隱私泄露(11.5%)。隱私泄露(Privacy Leakage)利用各類(lèi)手段竊取用戶(hù)隱私信息,并將其暴露在各類(lèi)黑色產(chǎn)業(yè)鏈的威脅之中,進(jìn)而使得用戶(hù)權(quán)益受到侵害。如何檢測(cè)和防范個(gè)人隱私泄露成為各類(lèi)研究的重點(diǎn)。
2 相關(guān)工作
動(dòng)態(tài)檢測(cè)和靜態(tài)檢測(cè)是目前檢測(cè)應(yīng)用隱私泄漏漏洞的兩大方法。動(dòng)態(tài)檢測(cè)通過(guò)實(shí)際運(yùn)行相關(guān)應(yīng)用,并實(shí)時(shí)監(jiān)控應(yīng)用是否有涉及用戶(hù)隱私泄露的相關(guān)高危操作,以此來(lái)判別程序中是否存在隱私泄露安全漏洞,其中Fuzzing和污點(diǎn)跟蹤等分析方法是動(dòng)態(tài)分析方法的代表。William Enck等設(shè)計(jì)的TaintDroid[3],利用插樁實(shí)現(xiàn)動(dòng)態(tài)分析,監(jiān)控敏感信息傳播,實(shí)現(xiàn)不同層次的信息動(dòng)態(tài)追蹤。DroidBox[4]提出了一種可視化API調(diào)用分析方法,以直觀展示動(dòng)態(tài)程序?qū)γ舾蠥PI的調(diào)用。Yuan Yujie等設(shè)計(jì)的RunDroid[5],監(jiān)控程序的方法執(zhí)行,并捕獲執(zhí)行中的相關(guān)對(duì)象,以還原方法調(diào)用圖。
相對(duì)應(yīng)的,靜態(tài)檢測(cè)不依賴(lài)于實(shí)際運(yùn)行響應(yīng)應(yīng)用,而是通過(guò)分析技術(shù)掃描程序代碼的方式來(lái)識(shí)別應(yīng)用中的安全問(wèn)題。目前,對(duì)Android隱私泄露的靜態(tài)分析手段有很多種。Fengguo Wei等設(shè)計(jì)的Amandroid[6]能夠克服靜態(tài)分析中跨組件通信的數(shù)據(jù)流缺失問(wèn)題,從而提升精確性。Jin man Zhao等[7]提出利用神經(jīng)網(wǎng)絡(luò)模型尋找應(yīng)用程序間的通訊,強(qiáng)化了靜態(tài)分析在多應(yīng)用間關(guān)聯(lián)分析的能力。Yang Z等設(shè)計(jì)的AppIntent[8]將符號(hào)執(zhí)行的方法應(yīng)用于隱私泄露的檢測(cè),根據(jù)用戶(hù)對(duì)敏感數(shù)據(jù)流出是否知情,來(lái)判斷是否存在Android隱私泄露。Su[9]等提出了一種基于符號(hào)執(zhí)行的靜態(tài)漏洞檢測(cè)方案。靜態(tài)分析方法無(wú)須運(yùn)行代碼,覆蓋率高而漏報(bào)率較低。但是靜態(tài)分析需要構(gòu)建出程序的控制流圖,對(duì)于大體量的應(yīng)用來(lái)說(shuō)這一步驟需要大量的計(jì)算資源,且無(wú)法發(fā)現(xiàn)多應(yīng)用間的關(guān)聯(lián)關(guān)系。所以在使用靜態(tài)分析技術(shù)時(shí)需要優(yōu)化分析流程以提升檢測(cè)效率。
動(dòng)態(tài)分析真實(shí)性高,靜態(tài)分析覆蓋率高。兩者相結(jié)合的安全分析技術(shù)是目前主流的研究方向之一。本文將動(dòng)態(tài)分析技術(shù)與靜態(tài)分析符號(hào)執(zhí)行技術(shù)相結(jié)合,提出一種Android平臺(tái)隱私泄露檢測(cè)方法。首先通過(guò)動(dòng)態(tài)分析技術(shù),利用程序運(yùn)行時(shí)的信息縮減程序高危行為的分析范圍,然后利用靜態(tài)分析符號(hào)執(zhí)行技術(shù)對(duì)范圍內(nèi)的應(yīng)用內(nèi)容進(jìn)行分析,最終定位隱私泄露漏洞。