999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于動(dòng)態(tài)污點(diǎn)分析的Android隱私泄露檢測(cè)方法

2017-09-23 02:57:17
關(guān)鍵詞:用戶分析檢測(cè)

劉 陽 俞 研

(南京理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 江蘇 南京 210094)

基于動(dòng)態(tài)污點(diǎn)分析的Android隱私泄露檢測(cè)方法

劉 陽 俞 研*

(南京理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 江蘇 南京 210094)

針對(duì)Android應(yīng)用存在的隱私泄露問題,提出一種基于動(dòng)態(tài)污點(diǎn)分析技術(shù)的隱私泄露檢測(cè)方法。通過插裝Android系統(tǒng)框架層API源碼標(biāo)記隱私數(shù)據(jù),并修改Android應(yīng)用程序的執(zhí)行引擎Dalvik虛擬機(jī),保證準(zhǔn)確跟蹤污點(diǎn)標(biāo)記在程序執(zhí)行期間的傳播,當(dāng)有數(shù)據(jù)離開手機(jī)時(shí)檢查污點(diǎn)標(biāo)記判斷是不是隱私數(shù)據(jù)。動(dòng)態(tài)污點(diǎn)分析使得應(yīng)用程序?qū)﹄[私數(shù)據(jù)的使用更具透明性。實(shí)驗(yàn)結(jié)果表明,該方法能夠有效檢測(cè)出Android應(yīng)用泄露用戶隱私的行為,從而更好地保護(hù)用戶的隱私信息。

隱私泄露 動(dòng)態(tài)污點(diǎn)分析 Android

0 引 言

隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,智能終端設(shè)備在人們生活中扮演的角色越來越重要。Android是目前最流行的智能終端系統(tǒng),Kantar Worldpanel ComTech的調(diào)研數(shù)據(jù)顯示2015年第三季度,Android在中國(guó)已經(jīng)占據(jù)了78.1%的市場(chǎng)份額。Android系統(tǒng)的普及加上其開放性的特點(diǎn)使得基于Android平臺(tái)的應(yīng)用程序日益繁榮,豐富的應(yīng)用程序方便了人們的生活、工作與學(xué)習(xí),同時(shí)也給用戶帶來安全隱患。

近年來Android平臺(tái)惡意軟件數(shù)量急速增長(zhǎng),種類繁多。統(tǒng)計(jì)分析表明,Android惡意軟件主要包括隱私竊取、惡意扣費(fèi)、遠(yuǎn)程控制、系統(tǒng)破壞等,其中尤以竊取隱私的行為最為常見。手機(jī)承載了用戶大量隱私信息,比如聯(lián)系人、短信、位置等,如何保護(hù)用戶的隱私信息是移動(dòng)安全研究所面臨的重要課題。

鑒于Android平臺(tái)面臨的隱私安全問題,一系列解決方案相繼出現(xiàn)。文獻(xiàn)[1]將Dalvik字節(jié)碼轉(zhuǎn)化為Java源碼,然后使用Fortify SCA[2]對(duì)Java源碼進(jìn)行靜態(tài)分析,包括控制流分析、數(shù)據(jù)流分析、結(jié)構(gòu)分析和語義分析,用以檢查應(yīng)用程序的惡意行為和漏洞,但是該方法無法分析進(jìn)程和組件通信過程中產(chǎn)生的隱私泄露行為。Grace等設(shè)計(jì)實(shí)現(xiàn)了Woodpecker[3],用于檢測(cè)Android應(yīng)用存在的能力泄露問題。能力泄露是指應(yīng)用程序沒有顯式聲明權(quán)限卻可以執(zhí)行該權(quán)限對(duì)應(yīng)的行為,違背了Android系統(tǒng)基于權(quán)限的訪問控制機(jī)制。該工具主要檢測(cè)Android應(yīng)用在沒有申請(qǐng)權(quán)限的前提下存在的隱私泄露行為,但隱私泄露行為不僅限于此。文獻(xiàn)[4]通過權(quán)限組合的方式判定隱私泄露類型的惡意軟件,但應(yīng)用程序申請(qǐng)權(quán)限不代表一定執(zhí)行權(quán)限對(duì)應(yīng)的行為,因此具有較高誤報(bào)率。Burguera等提出基于行為的動(dòng)態(tài)檢測(cè)系統(tǒng)Crowdroid[5],該系統(tǒng)包含客戶端和服務(wù)端兩部分。客戶端是安裝在Android手機(jī)上的App,負(fù)責(zé)監(jiān)控Linux內(nèi)核系統(tǒng)調(diào)用并將其發(fā)送到服務(wù)器。服務(wù)器部署了一個(gè)基于行為的惡意軟件檢測(cè)系統(tǒng),對(duì)客戶端發(fā)來的數(shù)據(jù)進(jìn)行分析處理得出結(jié)論反饋給用戶。系統(tǒng)調(diào)用缺少Java層的語義信息,難以準(zhǔn)確判斷出具體的隱私泄露行為。

針對(duì)上述Android平臺(tái)隱私泄露問題,本文設(shè)計(jì)并實(shí)現(xiàn)了一款基于動(dòng)態(tài)污點(diǎn)分析技術(shù)的Android隱私泄露檢測(cè)系統(tǒng)。本系統(tǒng)對(duì)Android應(yīng)用獲取的隱私數(shù)據(jù)進(jìn)行污點(diǎn)標(biāo)記,并在程序執(zhí)行期間跟蹤污點(diǎn)標(biāo)記的流向。當(dāng)隱私數(shù)據(jù)離開手機(jī)時(shí)系統(tǒng)會(huì)給出提示,讓用戶知道自己的隱私數(shù)據(jù)去往何處,實(shí)現(xiàn)了Android應(yīng)用對(duì)用戶隱私數(shù)據(jù)的透明化使用。

1 問題描述

本文將隱私泄露界定為用戶的隱私數(shù)據(jù)(短信、位置、聯(lián)系人等)通過某種方式發(fā)送出去,比如網(wǎng)絡(luò)或者短信。檢測(cè)是否發(fā)生隱私信息泄露需要解決如下三個(gè)問題:

(1) 哪些是隱私數(shù)據(jù),隱私數(shù)據(jù)從何處得來

(2) 隱私數(shù)據(jù)在程序執(zhí)行期間是如何變化的

(3) 當(dāng)數(shù)據(jù)離開手機(jī)時(shí),如何確定其是不是隱私數(shù)據(jù)

上述三個(gè)問題具體到基于動(dòng)態(tài)污點(diǎn)分析技術(shù)的隱私泄露檢測(cè)系統(tǒng)中對(duì)應(yīng)于污點(diǎn)標(biāo)記、污點(diǎn)傳播和污點(diǎn)誤用檢測(cè)三個(gè)過程。本文將動(dòng)態(tài)污點(diǎn)分析技術(shù)用于檢測(cè)隱私泄露,被標(biāo)記的對(duì)象是Android用戶的隱私數(shù)據(jù),Android應(yīng)用能獲取到的隱私數(shù)據(jù)種類繁多,包括位置、短信、通信錄等。污點(diǎn)標(biāo)記要解決如何對(duì)這些隱私數(shù)據(jù)進(jìn)行標(biāo)記的問題,對(duì)數(shù)據(jù)進(jìn)行準(zhǔn)確標(biāo)記是執(zhí)行動(dòng)態(tài)污點(diǎn)分析的前提和基礎(chǔ)。

動(dòng)態(tài)污點(diǎn)分析技術(shù)作為一種動(dòng)態(tài)技術(shù),需要實(shí)際運(yùn)行程序執(zhí)行分析。應(yīng)用程序在運(yùn)行期間數(shù)據(jù)的流動(dòng)是復(fù)雜多變的,如何準(zhǔn)確跟蹤污點(diǎn)信息在程序執(zhí)行過程中的流向是污點(diǎn)傳播需要解決的關(guān)鍵問題。此外,由于對(duì)隱私數(shù)據(jù)增加了污點(diǎn)標(biāo)記,還需要考慮程序運(yùn)行時(shí)內(nèi)存分配,以及數(shù)據(jù)存取的問題。

對(duì)數(shù)據(jù)進(jìn)行標(biāo)記的目的是追蹤其流向,最終判斷隱私數(shù)據(jù)有沒有離開手機(jī)。基于動(dòng)態(tài)污點(diǎn)分析技術(shù)的隱私泄露檢測(cè)系統(tǒng)要能夠監(jiān)控?cái)?shù)據(jù)是否離開手機(jī)并判斷離開手機(jī)的數(shù)據(jù)是不是污點(diǎn)數(shù)據(jù)。

2 方法與實(shí)現(xiàn)

2.1 基本思想

動(dòng)態(tài)污點(diǎn)分析是一種動(dòng)態(tài)信息流分析技術(shù),其原理是首先標(biāo)記程序中的相關(guān)數(shù)據(jù),然后跟蹤程序運(yùn)行時(shí)數(shù)據(jù)在內(nèi)存中的顯式傳播過程,從而監(jiān)控應(yīng)用程序的行為。動(dòng)態(tài)污點(diǎn)分析包括確定污點(diǎn)源,制定污點(diǎn)傳播規(guī)則和選取污點(diǎn)檢測(cè)點(diǎn)三項(xiàng)內(nèi)容。

本文將動(dòng)態(tài)污點(diǎn)分析技術(shù)用于檢測(cè)Android隱私泄露,主要思想是:首先標(biāo)記Android系統(tǒng)中的隱私數(shù)據(jù)(位置、IMEI、聯(lián)系人等),將其作為污點(diǎn)源;然后在程序運(yùn)行期間根據(jù)污點(diǎn)傳播規(guī)則追蹤污點(diǎn)數(shù)據(jù)(被標(biāo)記的隱私數(shù)據(jù))的傳播路徑,即追蹤污點(diǎn)標(biāo)記流經(jīng)的變量、方法等,這一步的主要作用是保證污點(diǎn)標(biāo)記在程序執(zhí)行過程中不丟失;最后當(dāng)程序調(diào)用向外發(fā)送數(shù)據(jù)的API時(shí)檢查數(shù)據(jù)中是否包含污點(diǎn)標(biāo)記,從而可以判定有沒有發(fā)生敏感數(shù)據(jù)泄露。圖1是使用動(dòng)態(tài)污點(diǎn)分析技術(shù)檢測(cè)Android隱私泄露示意圖。

圖1 動(dòng)態(tài)污點(diǎn)分析過程示意圖

如圖1所示,污點(diǎn)源和檢測(cè)點(diǎn)都設(shè)在Android系統(tǒng)框架層,應(yīng)用程序通過框架層提供的API獲取隱私數(shù)據(jù),本文對(duì)框架層源碼進(jìn)行插裝實(shí)現(xiàn)添加標(biāo)記和提取標(biāo)記。

Android應(yīng)用程序運(yùn)行在Dalvik虛擬機(jī)中,Dalvik虛擬機(jī)有一套指令集,本文通過修改相關(guān)指令來追蹤污點(diǎn)數(shù)據(jù)的傳播過程。包含污點(diǎn)標(biāo)記的數(shù)據(jù)(污點(diǎn)數(shù)據(jù))在程序運(yùn)行期間會(huì)經(jīng)過多種操作,污點(diǎn)傳播規(guī)則定義了不同操作對(duì)污點(diǎn)標(biāo)記產(chǎn)生的影響。數(shù)據(jù)1和數(shù)據(jù)2經(jīng)過運(yùn)算操作產(chǎn)生數(shù)據(jù)3,則數(shù)據(jù)3中包含了數(shù)據(jù)1的污點(diǎn)標(biāo)記,這就是一條傳播規(guī)則,程序中除了運(yùn)算操作還包括其他種類操作,它們共同決定了污點(diǎn)標(biāo)記如何傳播。數(shù)據(jù)到達(dá)污點(diǎn)檢測(cè)點(diǎn)時(shí),通過取出其中的污點(diǎn)標(biāo)記判斷是不是隱私數(shù)據(jù),從而達(dá)到檢測(cè)隱私泄露的目的。

2.2 方法實(shí)現(xiàn)

動(dòng)態(tài)污點(diǎn)分析包含三個(gè)過程:污點(diǎn)標(biāo)記、污點(diǎn)傳播和污點(diǎn)檢測(cè)。本文將動(dòng)態(tài)污點(diǎn)分析技術(shù)用于檢測(cè)Android應(yīng)用隱私泄露問題,實(shí)現(xiàn)這三個(gè)過程需要對(duì)Android源碼進(jìn)行相應(yīng)修改。

2.2.1 污點(diǎn)標(biāo)記

(1) 污點(diǎn)源

污點(diǎn)源是隱私數(shù)據(jù)的來源,Android應(yīng)用通過調(diào)用框架層API獲取隱私數(shù)據(jù),如通過getDeviceId()方法獲取IMEI等,因此污點(diǎn)源設(shè)在此類API處。本文通過在這些API源碼處插入額外代碼為隱私數(shù)據(jù)添加污點(diǎn)標(biāo)記。污點(diǎn)標(biāo)記可以僅僅用來標(biāo)識(shí)一個(gè)數(shù)據(jù)是不是污點(diǎn)數(shù)據(jù),比如用0表示非污點(diǎn)數(shù)據(jù),1表示污點(diǎn)數(shù)據(jù),也可以包含更豐富的信息,例如標(biāo)明是哪一類隱私數(shù)據(jù)(位置、IMEI等)。

(2) 污點(diǎn)存儲(chǔ)

污點(diǎn)數(shù)據(jù)相較于原始數(shù)據(jù)多了污點(diǎn)標(biāo)記,污點(diǎn)標(biāo)記本質(zhì)上也是一種數(shù)據(jù),在程序運(yùn)行期間需要占用相應(yīng)的內(nèi)存空間。Android程序運(yùn)行時(shí)的數(shù)據(jù)存儲(chǔ)是通過維護(hù)內(nèi)部棧實(shí)現(xiàn)的,方法的調(diào)用和返回依賴于出棧入棧操作。污點(diǎn)數(shù)據(jù)可能是方法中的參數(shù)、局部變量或返回值,本文修改Android虛擬機(jī)棧結(jié)構(gòu),通過額外分配一個(gè)字節(jié)(8位二進(jìn)制)存儲(chǔ)污點(diǎn)標(biāo)記。如圖2所示。

圖2 修改后的虛擬機(jī)棧結(jié)構(gòu)

圖2是修改后的Android虛擬機(jī)棧結(jié)構(gòu),數(shù)據(jù)與污點(diǎn)標(biāo)記相鄰存儲(chǔ)。由于每個(gè)變量都多出一個(gè)字節(jié)的存儲(chǔ)空間,導(dǎo)致數(shù)據(jù)相對(duì)于幀指針的偏移地址發(fā)生改變,所以需要調(diào)整方法執(zhí)行過程中獲取數(shù)據(jù)的方式。圖中輸入?yún)?shù)0相對(duì)于幀指針的偏移地址為+(4+1),其中多出的1個(gè)字節(jié)是局部變量0的污點(diǎn)標(biāo)記。

Dalvik虛擬機(jī)執(zhí)行的是Dex文件,文件包含應(yīng)用程序運(yùn)行所需的全部數(shù)據(jù),數(shù)據(jù)以類為單位存放。Dalvik虛擬機(jī)定義了若干結(jié)構(gòu)體作為Dex文件中類數(shù)據(jù)加載到內(nèi)存之后的存儲(chǔ)形式,包括ClassObject、ArrayObject和DataObject,三者均繼承自O(shè)bject結(jié)構(gòu)體。本文對(duì)Dalvik虛擬機(jī)定義的數(shù)據(jù)對(duì)象進(jìn)行了修改,通過在Object結(jié)構(gòu)體中添加額外的成員變量存儲(chǔ)對(duì)象的污點(diǎn)標(biāo)記。

如前所述,本文增加了一個(gè)字節(jié)的空間存儲(chǔ)變量的污點(diǎn)標(biāo)記,八位二進(jìn)制共有256種編碼方式,亦即可以存儲(chǔ)256種污點(diǎn)信息。目前,對(duì)于Android隱私數(shù)據(jù)尚沒有統(tǒng)一的界定,一般認(rèn)為隱私數(shù)據(jù)是涉及用戶及系統(tǒng)相關(guān)的機(jī)密信息,取決于用戶的決策,由用戶決定。本文根據(jù)Google官方對(duì)Android權(quán)限級(jí)別的劃分[14],將危險(xiǎn)級(jí)別權(quán)限對(duì)應(yīng)的數(shù)據(jù)作為本文關(guān)注的隱私數(shù)據(jù),因?yàn)榇祟悢?shù)據(jù)機(jī)密性較高,所以Google才會(huì)用危險(xiǎn)級(jí)別的權(quán)限控制應(yīng)用程序?qū)Υ祟悢?shù)據(jù)的訪問,主要包括位置、通信錄、手機(jī)狀態(tài)信息、短信、照相機(jī)、麥克風(fēng)、瀏覽器歷史記錄,并定義了上述隱私數(shù)據(jù)對(duì)應(yīng)的污點(diǎn)標(biāo)記。對(duì)于同一種隱私數(shù)據(jù),Android系統(tǒng)提供API可能不止一個(gè),比如發(fā)短信的API有sendTextMessage()、sendSms()等。本文建立一張存儲(chǔ)表用來存儲(chǔ)不同編碼方式對(duì)應(yīng)的隱私數(shù)據(jù)種類以及獲取該數(shù)據(jù)所調(diào)用的API,如表1所示。

表1 污點(diǎn)標(biāo)記編碼及對(duì)應(yīng)API

2.2.2 污點(diǎn)傳播

程序運(yùn)行過程中會(huì)對(duì)污點(diǎn)數(shù)據(jù)進(jìn)行多次操作,這些操作對(duì)污點(diǎn)數(shù)據(jù)的影響可以概括為兩種情況:(1) 原污點(diǎn)數(shù)據(jù)變?yōu)榉俏埸c(diǎn)數(shù)據(jù);(2) 非污點(diǎn)數(shù)據(jù)變成新的污點(diǎn)數(shù)據(jù)。動(dòng)態(tài)污點(diǎn)分析要保證污點(diǎn)標(biāo)記在程序執(zhí)行過程中不丟失,亦即實(shí)現(xiàn)準(zhǔn)確的污點(diǎn)傳播過程。污點(diǎn)傳播需要考慮兩個(gè)問題:一是污點(diǎn)標(biāo)記的存儲(chǔ),二是污點(diǎn)標(biāo)記的傳播規(guī)則。

本文通過修改Object結(jié)構(gòu)體和Dalvik虛擬機(jī)棧結(jié)構(gòu)實(shí)現(xiàn)第一點(diǎn)。對(duì)于第二點(diǎn),Android應(yīng)用程序運(yùn)行在各自獨(dú)立的Dalvik虛擬機(jī)實(shí)例中,Dalvik虛擬機(jī)執(zhí)行的是由Dalvik字節(jié)碼組成的指令集合,Dalvik字節(jié)碼(Android4.3)大約包含250左右條指令。不同指令對(duì)污點(diǎn)傳播產(chǎn)生的影響是不一樣的,本文中污點(diǎn)傳播規(guī)則是根據(jù)Dalvik字節(jié)碼指令集制定的,此處列舉部分規(guī)則,見表2。

表2 根據(jù)Dalvik指令集制定的污點(diǎn)傳播規(guī)則

表2中列舉的指令格式代表一類指令,比如mov_op vX,vY可以指mov vA,vB,也可以指mov/from16 vAA,vBB等。污點(diǎn)傳播規(guī)則是根據(jù)指令對(duì)污點(diǎn)傳播產(chǎn)生的不同效果制定的,涵蓋了Android虛擬機(jī)指令集中的大部分指令。

2.2.3 污點(diǎn)檢測(cè)

污點(diǎn)檢測(cè)作用是檢查到達(dá)sink點(diǎn)的數(shù)據(jù)中是否包含污點(diǎn)標(biāo)記。本文將sink點(diǎn)設(shè)在向外發(fā)送數(shù)據(jù)的地方,經(jīng)分析共定義兩類sink點(diǎn):一是通過網(wǎng)絡(luò)發(fā)送數(shù)據(jù),二是通過短信發(fā)送數(shù)據(jù)。這兩種方式是Android應(yīng)用最常用的發(fā)送數(shù)據(jù)的方式,Android系統(tǒng)提供了豐富的向外發(fā)送數(shù)據(jù)的API,如通過sendTextMessage發(fā)送短信,通過Socket進(jìn)行網(wǎng)絡(luò)通信等。與對(duì)污點(diǎn)源的處理類似,本文在這些sink點(diǎn)處插裝代碼用以判斷到達(dá)sink點(diǎn)的數(shù)據(jù)中是否包含污點(diǎn)標(biāo)記。

3 實(shí)驗(yàn)結(jié)果分析

本部分內(nèi)容是測(cè)試使用本文提出的動(dòng)態(tài)污點(diǎn)分析方法檢測(cè)Android應(yīng)用隱私泄露行為的效果。實(shí)驗(yàn)中從Android應(yīng)用市場(chǎng)(豌豆莢)下載了20個(gè)生活中常用的App,包含天氣、新聞、社交、地圖、網(wǎng)購(gòu)、游戲等多個(gè)分類。考慮到篇幅限制,下文選取微信、酷我音樂等幾款應(yīng)用程序的實(shí)驗(yàn)結(jié)果進(jìn)行分析。實(shí)驗(yàn)主要選取短信(M),位置信息(L),手機(jī)狀態(tài)信息(P)和照相機(jī)(C)四種最常見類型的隱私數(shù)據(jù)進(jìn)行驗(yàn)證,結(jié)果如表3所示。

表3 檢測(cè)結(jié)果

注:“√”表示申請(qǐng)了對(duì)應(yīng)權(quán)限,“×”表示沒有申請(qǐng)對(duì)應(yīng)權(quán)限

由表3的實(shí)驗(yàn)結(jié)果可見,Android應(yīng)用普遍存在泄露用戶隱私信息的行為,本方法能夠有效檢測(cè)出Android應(yīng)用是否獲取用戶的隱私信息并將其發(fā)送出去。例如,酷我音樂獲取手機(jī)IMEI并發(fā)送到地址為60.28.201.13的服務(wù)器;墨跡天氣發(fā)送手機(jī)IMEI和地理位置到54.223.224.2。由于樣本空間的有限,所選樣本并未涵蓋本文定義的全部隱私數(shù)據(jù)類型,但是考慮到不同隱私數(shù)據(jù)僅僅體現(xiàn)在污點(diǎn)源API的不同,因此并不影響本方法的有效性。為保證嚴(yán)謹(jǐn)性,本文編寫測(cè)試應(yīng)用對(duì)其他幾種隱私數(shù)據(jù)進(jìn)行了驗(yàn)證,結(jié)果表明本方法能準(zhǔn)確檢測(cè)出對(duì)應(yīng)的隱私數(shù)據(jù)泄露行為。表3中檢測(cè)出的隱私泄露行為概括起來可以分為兩類:一類是需要用戶觸發(fā),即由用戶的相關(guān)操作引起的;另一類是在用戶不知情的情況下發(fā)生的。例如,墨跡天氣會(huì)在啟動(dòng)后發(fā)送手機(jī)的IMEI;微信在新用戶注冊(cè)時(shí)發(fā)送短信。

為了測(cè)試本方法的準(zhǔn)確度和實(shí)用性,實(shí)驗(yàn)選取若干已知存在隱私泄露行為的Android應(yīng)用程序樣本進(jìn)行測(cè)試,觀察正確檢測(cè)出隱私泄露行為的比率,并將測(cè)試結(jié)果與靜態(tài)污點(diǎn)分析系統(tǒng)FlowDroid[15]進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果如表4所示。

表4 本方法檢測(cè)隱私泄露行為的準(zhǔn)確度

從表4可以看出本方法對(duì)不同隱私信息的泄露都有較高的檢出率,略低于FlowDroid的檢測(cè)結(jié)果,分析發(fā)現(xiàn)是因?yàn)镕lowDroid將日志輸出也作為污點(diǎn)檢測(cè)點(diǎn),而本文的污點(diǎn)檢測(cè)點(diǎn)設(shè)在短信和網(wǎng)絡(luò)發(fā)送。對(duì)于本方法未檢測(cè)到的樣本,分析認(rèn)為可能是以下原因:(1) 其使用到的API不包含在本系統(tǒng)修改的API中;(2) 應(yīng)用程序的有些行為需要滿足一定條件才會(huì)觸發(fā),本實(shí)驗(yàn)未滿足此類條件;(3) 應(yīng)用中使用了Native代碼,導(dǎo)致系統(tǒng)無法準(zhǔn)確跟蹤污點(diǎn)標(biāo)記。

4 結(jié) 語

本文針對(duì)Android應(yīng)用泄漏用戶隱私問題,提出一種基于動(dòng)態(tài)污點(diǎn)分析技術(shù)的檢測(cè)方法,主要包括污點(diǎn)標(biāo)記、污點(diǎn)傳播和污點(diǎn)檢測(cè)三個(gè)過程。實(shí)現(xiàn)這三個(gè)過程需要修改Android源碼,其中主要涉及到對(duì)Android系統(tǒng)架構(gòu)中的framework層和運(yùn)行時(shí)環(huán)境(Dalvik虛擬機(jī))的修改。實(shí)驗(yàn)表明,本文方法對(duì)檢測(cè)Android平臺(tái)隱私泄露行為具有較高的準(zhǔn)確度。相對(duì)于靜態(tài)分析技術(shù),動(dòng)態(tài)分析不需要獲得Apk源碼,現(xiàn)在很多商用軟件使用加固技術(shù)增加了對(duì)其進(jìn)行靜態(tài)分析的難度,動(dòng)態(tài)分析技術(shù)則不受這方面的限制。

對(duì)于通過JNI調(diào)用的Native代碼,其執(zhí)行不受Dalvik虛擬機(jī)的控制,因此本文無法對(duì)Native代碼進(jìn)行準(zhǔn)確分析,這是未來工作研究的重點(diǎn)和難點(diǎn)。

[1] Enck W,Octeau D,McDaniel P,et al.A study of android application security[C]//USENIX security symposium,2011,2:2.

[2] Fortify 360 Source Code Analyzer(SCA)[OL].https://www.fortify.com/products/fortify360/source-code-analyzer.html.

[3] Zhou Y,Jiang X.Systematic detection of capability leaks in stock android smartphones[C]//Proceedings of the Nineteenth Annual Network & Distributed System Security Symposium Ndss’12 Isoc,2012:19.

[4] 黃梅根,曾云科.基于權(quán)限組合的Android竊取隱私惡意應(yīng)用檢測(cè)方法[J].計(jì)算機(jī)應(yīng)用與軟件,2016,33(9):320-323,333.

[5] Burguera I,Zurutuza U,Nadjm-Tehrani S.Crowdroid: behavior-based malware detection system for android[C]//Proceedings of the 1st ACM workshop on Security and privacy in smartphones and mobile devices.ACM,2011:15-26.

[6] Mann C,Starostin A.A framework for static detection of privacy leaks in android applications[C]//Proceedings of the 27th Annual ACM Symposium on Applied Computing.ACM,2012:1457-1462.

[7] Wei Z,Lie D.Lazytainter:Memory-efficient taint tracking in managed runtimes[C]//Proceedings of the 4th ACM Workshop on Security and Privacy in Smartphones & Mobile Devices.ACM,2014:27-38.

[8] Chen K Z,Johnson N,D’Silva V,et al.Contextual Policy Enforcement in Android Applications with Permission Event Graphs[J].Heredity,2013,110(6):586.

[9] Chen X,Zhu S.DroidJust: automated functionality-aware privacy leakage analysis for Android applications[C]//Proceedings of the 8th ACM Conference on Security & Privacy in Wireless and Mobile Networks.ACM,2015:5.

[10] 高岳,胡愛群.基于權(quán)限分析的Android 隱私數(shù)據(jù)泄露動(dòng)態(tài)檢測(cè)方法[J].信息網(wǎng)絡(luò)安全,2014(2):27-31.

[11] 豐生強(qiáng).Android軟件安全與逆向分析[M].人民郵電出版社,2013.

[12] 張子言.深入理解Android虛擬機(jī)[M].清華大學(xué)出版社,2014.

[13] 吳澤智,陳性元,楊智,等.安卓隱私安全研究進(jìn)展[J].計(jì)算機(jī)應(yīng)用研究,2014,31(8):2241-2247.

[14] https://developer.android.com/guide/topics/security/permissions.html.

[15] Arzt S,Rasthofer S,Fritz C,et al.FlowDroid: Precise Context,Flow,Field,Object-sensitive and Lifecycle-aware Taint Analysis for Android Apps[J].Acm Sigplan Notices,2014,49(6):259-269.

DETECTIONOFANDROIDPRIVACYLEAKBASEDONDYNAMICTAINTANALYSIS

Liu Yang Yu Yan*

(SchoolofComputerScienceandEngineering,NanjingUniversityofScienceandTechnology,Nanjing210094,Jiangsu,China)

This study was motivated by privacy leakage existing in Android applications. Therefore, a privacy leakage detecting method based on dynamic taint analysis was proposed. We first added taint mark to user privacy data through Android framework source code instrumentation. Moreover, we modified execution engine (Dalvik virtual machine) of Android application to ensure that the taint mark can accurately be traced during the execution of the program. When data moves, dynamic taint analysis will check whether or not the taint marks is private data, which makes those applications more transparent. Thus, our approach can effectively detect user privacy leakage, so as to protect the user privacy.

Privacy leakage Dynamic taint analysis Android

TP3

A

10.3969/j.issn.1000-386x.2017.09.029

2016-10-31。國(guó)家自然科學(xué)基金項(xiàng)目(61572255);中興通訊研究基金資助項(xiàng)目。劉陽,碩士生,主研領(lǐng)域:Android安全。俞研,副教授。

猜你喜歡
用戶分析檢測(cè)
“不等式”檢測(cè)題
“一元一次不等式”檢測(cè)題
“一元一次不等式組”檢測(cè)題
隱蔽失效適航要求符合性驗(yàn)證分析
電力系統(tǒng)不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
電力系統(tǒng)及其自動(dòng)化發(fā)展趨勢(shì)分析
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
小波變換在PCB缺陷檢測(cè)中的應(yīng)用
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
主站蜘蛛池模板: 91在线精品麻豆欧美在线| 国产一级视频在线观看网站| 国产在线日本| 久久男人视频| 欧美日韩精品一区二区视频| 国产精品成人免费综合| 国产欧美在线观看精品一区污| 国产精品三级av及在线观看| 国产精品爆乳99久久| 色噜噜综合网| 99久久国产精品无码| 性做久久久久久久免费看| 欧美中日韩在线| 日韩一二三区视频精品| 日本午夜影院| 久久99国产乱子伦精品免| 亚洲天堂网在线播放| 国产精品护士| 中文字幕亚洲综久久2021| 久久一本日韩精品中文字幕屁孩| 国产一区二区三区在线精品专区| 精品撒尿视频一区二区三区| 国产在线观看一区二区三区| 亚洲天堂视频在线观看免费| 国产成人h在线观看网站站| 欧美日韩午夜| 国产黑丝一区| 久草视频中文| 国产成人综合网在线观看| 亚洲欧美日韩成人高清在线一区| 欧美日韩在线亚洲国产人| 青青国产在线| 亚洲一级毛片在线观播放| 亚洲无线国产观看| 国产精品丝袜在线| 国产在线专区| 麻豆精品国产自产在线| 国产爽妇精品| 91久久偷偷做嫩草影院| 国产区免费精品视频| 免费aa毛片| 欧美亚洲欧美区| 超级碰免费视频91| 日本成人一区| 在线播放国产99re| 日韩精品无码免费一区二区三区| 亚洲天堂精品视频| 精品乱码久久久久久久| 欧亚日韩Av| 青青久久91| 婷婷色一二三区波多野衣| 日韩AV手机在线观看蜜芽| 黄色福利在线| 国产精品分类视频分类一区| 刘亦菲一区二区在线观看| 欧美特级AAAAAA视频免费观看| 中国一级特黄视频| 国产精欧美一区二区三区| 91成人在线观看| www.国产福利| 青青青国产视频| 欧美日韩一区二区三区四区在线观看| 国产欧美日韩精品第二区| 婷婷五月在线| 亚洲日本韩在线观看| 夜夜操天天摸| 国产精品原创不卡在线| 一本大道东京热无码av| 九九热精品视频在线| 久久精品嫩草研究院| 国产综合欧美| 欧美日本在线播放| 欧美日韩精品在线播放| 人妖无码第一页| 精品成人一区二区| 一区二区三区成人| 免费大黄网站在线观看| 欧美一级专区免费大片| 国产成+人+综合+亚洲欧美| 免费国产小视频在线观看| 久久亚洲天堂| 欧美成人综合在线|