◆馬敏燕 季瑩瑩
(國(guó)家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心浙江分中心 浙江 310052)
Google 發(fā)布Android 系統(tǒng)以來(lái),憑借開(kāi)源性和高度的開(kāi)放性,Android 迅速占領(lǐng)移動(dòng)終端市場(chǎng)。在移動(dòng)APP 產(chǎn)業(yè)快速發(fā)展的同時(shí),在巨大經(jīng)濟(jì)利益的誘惑下,灰產(chǎn)和黑產(chǎn)紛紛盯上這塊大蛋糕,導(dǎo)致各種惡意APP 層出不窮。
本文基于動(dòng)靜態(tài)檢測(cè)的方式分析Android APP敏感行為開(kāi)展研究。動(dòng)態(tài)檢測(cè)模塊可對(duì)APP 運(yùn)行時(shí)數(shù)據(jù)進(jìn)行分析,主要結(jié)合API Hook技術(shù)監(jiān)控APP 的API 調(diào)用、結(jié)合多種網(wǎng)絡(luò)流量分析技術(shù)監(jiān)控APP 和網(wǎng)絡(luò)數(shù)據(jù)、結(jié)合自動(dòng)化測(cè)試技術(shù)提高檢測(cè)效率。靜態(tài)檢測(cè)模塊可對(duì)APP 的代碼進(jìn)行掃描,分析其中的敏感行為,主要結(jié)合APP 逆向技術(shù)獲取APP 匯編代碼、結(jié)合基于抽象語(yǔ)法樹(shù)的控制流、數(shù)據(jù)流分析技術(shù)分析APP 中的非安全調(diào)用、隱私泄露行為等敏感行為。
Android APP 有如下幾大類影響軟件安全性的問(wèn)題:
(1)APP 自身含有惡意行為影響用戶的信息安全。Android 惡意APP 通過(guò)推送惡意廣告誘騙欺詐、私自下載其他APP 偷跑流量、私發(fā)短信惡意吸費(fèi)、出賣(mài)用戶隱私等方式非法獲取利益。
(2)APP 自身編寫(xiě)存在問(wèn)題而被惡意利用。由于APP 開(kāi)發(fā)者的水平參差不齊以及APP 測(cè)試的不完善,導(dǎo)致了很多APP 自身都存在安全問(wèn)題,容易被攻擊者惡意利用從而對(duì)用戶產(chǎn)生威脅。
(3)APP 過(guò)度的隱私收集。為了提高用戶體驗(yàn),或是提高廣告投放的精準(zhǔn)度,大多數(shù)APP 都盡可能多的收集用戶信息,但用戶的手機(jī)中存儲(chǔ)著大量個(gè)人隱私,一旦過(guò)度收集用戶個(gè)人數(shù)據(jù),甚至是惡意竊取,造成隱私泄露問(wèn)題。
針對(duì)以上問(wèn)題,本文中通過(guò)對(duì)Android 安全情況的長(zhǎng)期研究、技術(shù)積累,對(duì)APP 中可能存在的安全問(wèn)題進(jìn)行全面、細(xì)粒度的檢測(cè)。
為實(shí)現(xiàn)更加全面、準(zhǔn)確的Android APP敏感行為檢測(cè),本文在已有工作基礎(chǔ)上,擬訂在動(dòng)態(tài)方面研究APP 敏感操作的運(yùn)行時(shí)特征與行為,實(shí)現(xiàn)APP 動(dòng)態(tài)監(jiān)控技術(shù),在靜態(tài)方面研究相關(guān)機(jī)器代碼工作流程與常見(jiàn)模式,實(shí)現(xiàn)APP 逆向分析技術(shù)。
本系統(tǒng)為實(shí)現(xiàn)功能,分為以下四個(gè)功能層:數(shù)據(jù)采集層、業(yè)務(wù)邏輯層、通信層、存儲(chǔ)支撐層。
數(shù)據(jù)采集層負(fù)責(zé)APP 信息采集,主要功能為對(duì)常見(jiàn)應(yīng)用商店的爬取,實(shí)現(xiàn)APP 信息采集和樣本下載;業(yè)務(wù)邏輯層包括APP敏感行為動(dòng)態(tài)檢測(cè)模塊、APP敏感行為靜態(tài)檢測(cè)模塊,是系統(tǒng)的核心業(yè)務(wù)層,功能為對(duì)App 樣本進(jìn)行自動(dòng)化分析,動(dòng)態(tài)運(yùn)行獲取App 敏感API 調(diào)用、網(wǎng)絡(luò)通信數(shù)據(jù),靜態(tài)反編譯App 進(jìn)行控制流數(shù)據(jù)流通過(guò)模式匹配獲取APP敏感行為;調(diào)度管理層包括業(yè)務(wù)管理、日志管理、節(jié)點(diǎn)管理和結(jié)果管理,主要對(duì)系統(tǒng)的各節(jié)點(diǎn)、業(yè)務(wù)功能和數(shù)據(jù)進(jìn)行管理和調(diào)度;存儲(chǔ)支撐層主要為系統(tǒng)提供存儲(chǔ)和算力支撐。

圖1 系統(tǒng)功能

圖2 流程圖
對(duì)國(guó)內(nèi)外主流Android APP 市場(chǎng)進(jìn)行收集,利用爬蟲(chóng)與分布式下載等技術(shù),進(jìn)行信息采集及樣本獲取,得到待測(cè)APP 信息及樣本文件。進(jìn)行檢測(cè)時(shí),動(dòng)態(tài)檢測(cè)任務(wù)下發(fā)到測(cè)試機(jī),通過(guò)自動(dòng)化測(cè)試進(jìn)行敏感API 檢測(cè),同時(shí)通過(guò)網(wǎng)絡(luò)監(jiān)控模塊對(duì)App 的網(wǎng)絡(luò)通信數(shù)據(jù)進(jìn)行分析,獲取其中敏感數(shù)據(jù);靜態(tài)任務(wù)在服務(wù)器上進(jìn)行,對(duì)其進(jìn)行逆向等預(yù)處理后生成抽象語(yǔ)法樹(shù),進(jìn)行控制流與數(shù)據(jù)流分析,通過(guò)與數(shù)據(jù)庫(kù)中的敏感行為模式進(jìn)行匹配,從代碼層面分析被檢App 的敏感行為。最后匯總并分析動(dòng)態(tài)檢測(cè)和靜態(tài)檢測(cè)結(jié)果,生成報(bào)告。
基于動(dòng)靜態(tài)分析技術(shù),實(shí)現(xiàn)對(duì)Android APP 以下敏感行為的監(jiān)控,包括但不限于:非法竊取隱私數(shù)據(jù)、異常數(shù)據(jù)記錄、異常權(quán)限持有、文件系統(tǒng)行為、遠(yuǎn)程控制行為、惡意傳播行為。
基于網(wǎng)絡(luò)流量監(jiān)控與分析技術(shù),支持對(duì)APP 流量中HTTPS、TLS協(xié)議傳輸?shù)募用軘?shù)據(jù)分析,輸出泄露的敏感信息、相關(guān)數(shù)據(jù)及上下文信息。支持對(duì)遠(yuǎn)程控制、惡意傳播行為的發(fā)現(xiàn),可以分析并記錄相關(guān)網(wǎng)絡(luò)傳輸目標(biāo)IP、端口、域名、協(xié)議信息。
本文基于動(dòng)靜態(tài)檢測(cè)的方式分析Android APP敏感行為開(kāi)展研究,實(shí)現(xiàn)基于動(dòng)態(tài)運(yùn)行時(shí)的Android APP敏感行為檢測(cè)方案,實(shí)現(xiàn)基于逆向的Android APP 靜態(tài)代碼敏感行為檢測(cè),有效發(fā)現(xiàn)APP 中多種隱私泄露行為。