国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于TaintDroid的動態(tài)污點檢測技術(shù)分析*

2016-07-01 08:50:51王建偉金偉信吳作順
通信技術(shù) 2016年2期

王建偉,金偉信,吳作順

(1.中國人民解放軍理工大學(xué) 通信工程學(xué)院,江蘇 南京 210007;2.中國電子設(shè)備系統(tǒng)工程研究所,北京 100141)

?

基于TaintDroid的動態(tài)污點檢測技術(shù)分析*

王建偉1,金偉信2,吳作順2

(1.中國人民解放軍理工大學(xué) 通信工程學(xué)院,江蘇 南京 210007;2.中國電子設(shè)備系統(tǒng)工程研究所,北京 100141)

摘要:隨著android智能手機的普及,用戶隱私泄露成為智能終端上最嚴重的安全問題之一。TaintDroid首次在android平臺上實現(xiàn)了動態(tài)污點追蹤,是當前解決Android平臺隱私泄露問題的研究的熱點。在綜述TaintDroid及其基本架構(gòu)的基礎(chǔ)上,深入分析了TaintDroid污點標記的添加、存儲、傳播和提取等關(guān)鍵技術(shù),并通過Android實際應(yīng)用對TaintDroid如何檢測隱私泄露進行了驗證。最后給出了TaintDroid存在的不足和需要的改進之處,為今后的進一步研究指出了方向。

關(guān)鍵詞:Android;TaintDroid;隱私泄露;動態(tài)污點檢測

0引言

Android系統(tǒng)憑借其開源、易用等特點占有中國智能手機市場的絕大多數(shù)份額。Android手機中存儲著大量的用戶隱私信息,一旦這些信息泄露,將可能給用戶帶來嚴重經(jīng)濟、精神損失[1]。因此Android手機隱私泄露是一個必須關(guān)注的問題。針對這個問題,2010年Enck等人[2]在Android2.1系統(tǒng)上實現(xiàn)了動態(tài)污點跟蹤系統(tǒng)TaintDroid,而后一系列基于TaintDroid的系統(tǒng)和隱私檢測工具被提出。本文對TaintDroid的設(shè)計框架和實現(xiàn)原理進行了分析,研究了其核心關(guān)鍵技術(shù),并最終給出了TaintDroid存在的不足之處。

1TaintDroid概述

Taintdroid不是一個安裝在android系統(tǒng)上的一個應(yīng)用,它其實是一個自定義的Android ROM,是通過將android的框架層代碼改寫實現(xiàn)的。因此每一個版本的TaintDroid都與Android一個特定的版本相對應(yīng)。到目前為止TaintDroid分別在Android2.1、Android2.3、Android4.1和Android4.3版本上進行了移植。我們可以下載android源碼,用相應(yīng)TaintTroid源碼來替換android源代碼中的部分代碼并編譯,將其刷入設(shè)備(TaintDroid的官方網(wǎng)站上建議的設(shè)備為Galaxy Nexus,Nexus 4,Nexus 7 (2012),or a Nexus 10)或者模擬器,然后運行其自帶的應(yīng)用TaintDroid Notify在后臺監(jiān)控我們安裝的應(yīng)用程序是否存在隱私泄露行為。一旦應(yīng)用程序泄露了用戶的隱私,TaintDroid會以通知的形式來告知用戶。

TaintDroid的思想就是將所有隱私數(shù)據(jù)變成污染源,在程序運行的過程中如果對污染源進行截取、拼裝、加密、傳遞等操作,那么新生成的數(shù)據(jù)也會被污染[3]。如果有被污染的數(shù)據(jù)被泄露出去,那么就發(fā)生了隱私泄露。TaintDroid首先修改產(chǎn)生隱私數(shù)據(jù)的API[4](涉及攝像頭、麥克風、短信、通話記錄等)添加污點標記;然后在Davlvik虛擬機實現(xiàn)細粒度指令級的污點跟蹤,在文件和IPC(inter-process communication)消息級別實現(xiàn)粗粒度的污點跟蹤;最后在網(wǎng)絡(luò)出口檢測污點標記。圖1詳細描述了TaintDroid的整體設(shè)計框架[5]。

圖1 TaintDroid整體框架

(1)手機內(nèi)部的敏感信息,如地理位置、通訊錄等隱私信息,在有足夠多內(nèi)容的受信任應(yīng)用程序中被視為污點。

(2)污點接口調(diào)用本地方法的Dalvik虛擬機解釋器的接口,同時將標記的污點存儲在虛擬的污染地圖的指定位置。

(3)在Dalvik虛擬機中,當受信任的應(yīng)用程序使用了受污染的信息,受感染標簽將隨著數(shù)據(jù)流傳播。多個虛擬機解釋器會同時傳播受感染的標簽。

(4)當受信任的應(yīng)用程序在進程間通信中使用了受污染的信息,修改后的Binder庫確保數(shù)據(jù)包里有污點的標簽,反映合并感染標記包含的所有數(shù)據(jù)。

(5)這個數(shù)據(jù)包是通過內(nèi)核并被遠程不受信任的應(yīng)用程序接收。值得注意的一點是,解釋代碼是唯一不可信的。

(6)修改后的Binder庫從數(shù)據(jù)包里檢索出污點標簽并將其分配給所有讀取的值。

(7)同樣地,不受信任的應(yīng)用程序需要時,污點標簽也在遠端的Dalvik虛擬機中傳播。

(8)不受信任的應(yīng)用程序調(diào)用被指定為污點標簽片,例如網(wǎng)絡(luò)發(fā)送、通訊錄、通話記錄等。

(9)該庫檢索污點標簽中可疑的數(shù)據(jù),并報告這些可疑事件。

2TaintDroid的關(guān)鍵技術(shù)

2.1污點標記的添加技術(shù)

隱私數(shù)據(jù)的類型包括基本的數(shù)據(jù)類型int、double、char等,擴展數(shù)據(jù)類型包括數(shù)組、字符串等。如我們的sim卡標識可能使用的就是基本類型int,而短信息就可能是擴展類型字符串。

在TaintDroid的源代碼taint.java中提供了以下函數(shù)對隱私數(shù)據(jù)的類型進行污點標記。

addTaintInt(int val,int tag);

addTaintFloat(floatval,int tag);

……

Taintdroid通過修改該API內(nèi)部實現(xiàn)來添加污點標記,如果隱私數(shù)據(jù)一旦被讀取,則通過以上方法將污點標記到相應(yīng)的數(shù)據(jù)上。例如,如果我們想獲得用戶的位置信息,就可以通過調(diào)用getLastKnownLocation()方法[6],得到一個如下的Location對象這個對象中包含了經(jīng)度、緯度、海拔等一系列的位置信息。修改getLastKnownLocation()方法,在其內(nèi)部調(diào)用addTaintFloat()方法,為經(jīng)緯度信息添加污點標記。

下面我們以整型為例,介紹TaintDroid如何為隱私數(shù)據(jù)添加污點。addTaintInt是一個本地方法,我們在vm/native/ dalvik_system_taint.c文件中找到了具體的實現(xiàn)。

首先,如圖2所示傳入?yún)?shù)arg0與arg1,分別代表該整數(shù)和欲添加的污點,然后建立返回污點指針,接著獲取該數(shù)據(jù)本身自帶的污點(程序在初始化整數(shù)時會為其分配初始污點標記0),最后更新該污點,整個操作過程也可以理解為實現(xiàn)了污點的傳播。

圖2 污點標記添加

2.2污點標記的存儲技術(shù)

Dalvik層有五種類型的變量要求存儲:局部方法變量,方法的參數(shù),類的靜態(tài)變量,類實例的字段和數(shù)組。在Android里面的所有引用都是32 bit的,TaintDroid通過修改Dalvik 虛擬機為每個引用分配64 bit空間,程序自身使用32 bit,而TaintDroid使用剩下的32 bit。因此采用bitmap的方式可以標注32中不同類型的隱私。目前TaintDroid只定義了以下17種標記,如表1所示。

表1 污點標記定義

這種方式帶來的副作用不言而喻,它會導(dǎo)致程序引用的內(nèi)存增加一倍,而優(yōu)點是可精確定位到每個被污染的對象。

局部變量:方法內(nèi)部使用的臨時變量稱作局部變量,局部變量通過dalvik虛擬機的寄存器來存儲[7](Dalvik虛擬機和jvm虛擬機的一個主要區(qū)別是,前者是基于寄存器的而后者是基于棧的)。寄存器是包含基本數(shù)據(jù)類型和對象引用類型。寄存器通常是32 bit的,對于64為的的數(shù)據(jù)類型(如long和double),dalvik虛擬機通過分配兩個相鄰的寄存器來存儲,并且通過二進制的指令來決定使用一個或者兩個寄存器。Dalvik虛擬機通過棧來管理寄存器。當應(yīng)用程序調(diào)用一個方法的時候,Dalvik產(chǎn)生一個新的棧幀為所有的寄存器分配存儲空間。在執(zhí)行過程中寄存器通過通過寄存器相對棧頂指針的偏移索引來應(yīng)用該寄存器。例如我們通過fp[0]來引用寄存器v0,通過fp[1]來引用寄存器v1。方法調(diào)用結(jié)束后幀棧彈出變量。

Taintdroid為每個入棧的寄存器變量分配64 bit的空間,其中32 bit用來存儲寄存器變量,剩余的32 bit用于存儲污點標簽。寄存器變量和污點標簽交叉存儲,修改后的棧通過fp[2*i]來引用寄存器vi,通過fp[2*i+1]來引用污點標記。注意Dalvik存儲一個64 bit的變量是通過兩個相鄰的32位內(nèi)部寄存器完成的。修改后的棧格式如圖3所示。

圖3 修改后的棧格式

方法的參數(shù):Dalvik虛擬機通過寄存器為方法傳遞參數(shù)。本地方法和解釋層方法對參數(shù)的處理方式是不同的,在方法調(diào)用之前指定的參數(shù)寄存器被壓入堆棧,如果目標方法是解釋層的方法,那么新的變量存放在調(diào)用棧的棧頂。如果是本地方法必須傳遞一個指向字節(jié)數(shù)組的棧頂指針,從中解析出一個32 bit和64 bit的變量來作為方法簽名[8]。

這種不同影響了污點的存儲,對于解釋層方法,我們?nèi)匀豢梢韵癖镜刈兞恳粯游埸c和變量之間交叉存儲。對于系統(tǒng)native層污點的存儲無法像在解釋層一樣通過修改虛擬機棧的分配來實現(xiàn)(可以通過修改kernel來實現(xiàn),但影響面太大),TaintDroid利用增加調(diào)用參數(shù)的方式來存放污染標記。如圖,有一個調(diào)用的參數(shù)有兩個:arg0和arg1,TaintDroid再多加3個參數(shù),第3個參數(shù)是輸出參數(shù),調(diào)用完成后return值的標記就放在這里,第4和第5個參數(shù)是輸入?yún)?shù)分別是arg0和arg1的污染標記。通過這種方式,在做完一次Native調(diào)用后就可以得到return值的污染標記。

類字段:類的靜態(tài)字段存儲一個變量并且被所有的實例共享而實例字段對于不同的實例有不同的值。因此靜態(tài)字段污點的存儲比較簡單直接按照數(shù)據(jù)結(jié)構(gòu)交叉存儲數(shù)據(jù)和污點就可以。實例字段相對復(fù)雜,需要存儲一個相對于對象實例的偏移。

數(shù)組:為了最小化內(nèi)存的開銷,TaintDroid為每個數(shù)組只存儲一個污點標簽。字符串對象采用這種方式不是很合理,因為字符串中所有的字符將會有相同的污點標記,這也可能導(dǎo)致假陽性污染傳播。

2.3污點標記的傳播技術(shù)

如圖4所示,TaintDroid是一個多粒度Android的污點跟蹤方法,首先TaintDroid利用VM解釋器對不可信的應(yīng)用程序代碼進行變量級的跟蹤。TaintDroid只跟蹤數(shù)據(jù)不跟蹤代碼,并且利用VM解釋器的上下文提供的多種語義來避免在X86指令集中發(fā)生的污點爆炸問題[9,10]。其次TaintDroid在應(yīng)用程序之間使用信息級別的跟蹤,對于進程間通信使用信息污點標記來代替數(shù)據(jù)污點標記可以最小化系統(tǒng)開銷來擴大分析的寬度。再次,當應(yīng)用程序執(zhí)行本地方法的時候,采用方法級別的跟蹤,各種污點標記被作為返回值返回。最后采用文件級別的跟蹤來保證污點標簽的持久性。

圖4 多粒度追蹤架構(gòu)

2.3.1解釋代碼污點傳播

Dalvilk虛擬機運行唯一的dex機器語言[7]。TaintDroid通過分析dex語義,定義了信息流的傳播邏輯。如表2所示。其中vx,vy,vz是寄存器,fy,fz是字段ID,T()表示污點值。

從表2可以看出,污點傳播邏輯中包含了數(shù)據(jù)在dalvik虛擬機中傳播的的三大途徑:賦值、參數(shù)傳遞、返回值,換句話說就是無論在虛擬機中對隱私數(shù)據(jù)進行何種操作都會被污染。

表2 DEX指令級污點傳播

2.3.2原生代碼污點傳播

由于android系統(tǒng)的JNI機制,程序會脫離dalvik虛擬機進入原生代碼庫調(diào)用本地方法,taintdroid不能正常進行污點跟蹤。為了實現(xiàn)污點的傳播,taintdroid對所有的JNI方法進行了手動的修補,通過增加本地方法參數(shù),在調(diào)用返回時更新污點標記。

2.3.3二級存儲污點傳播

當數(shù)據(jù)寫入文件時可能導(dǎo)致污點的丟失,因此TaintDroid設(shè)計了每個文件的存儲標記。當檢測到隱私數(shù)據(jù)寫入文件的時候或含有隱私數(shù)據(jù)的文件的污點被讀取的時候更新污點標記。

2.3.4IPC污點傳播

當APP之間存在交換數(shù)據(jù)時污點標記必須傳播。跟蹤的粒度直接影響了性能和內(nèi)存開銷,TaintDroid使用信息級別的污染跟蹤。一個信息的污染標簽代表了信息上一次污點標記分配給的變量。TaintDroid使用了信息水平級的粒度使得在進程間通訊的性能和存儲開銷達到最小化。

由Android的體系結(jié)構(gòu)可知,所有應(yīng)用內(nèi)與應(yīng)用間通信都是通過binder實現(xiàn),而關(guān)鍵部分總是寫入數(shù)據(jù)包parcel當中的。當通信內(nèi)容中包含整數(shù)型時,系統(tǒng)提供WriteInt方法就可以將數(shù)據(jù)寫入。但此時將丟失污點信息,因此在該過程中需要添加污點傳播代碼。當數(shù)據(jù)寫入時將污點一并寫入parcel,同時在通信對方接收時一并將污點信息提取并標記到所讀取的數(shù)據(jù)污點位。

2.4污點標記的提取技術(shù)

污點標記的提取是TaintDroid污點追蹤的最后一步。污點標記的添加和提取是對應(yīng)的,不同的數(shù)據(jù)類型用不同的方法來進行提取。在TaintDroid的源代碼taint.java中提供了以下方法對污點標記進行提取:

int getTaintInt(intval);

int getTaintString(String str);

int getTaintFloat(float val);

……

TaintDroid選擇在網(wǎng)絡(luò)出口處提取污點標記。在socket內(nèi)部添加以上方法來提取污點標記,若為隱私數(shù)據(jù)就利用taint.log()方法將其寫入日志。最終利用TaintDroidNotify應(yīng)用來讀取日志信息,并通知給用戶應(yīng)用存在隱私泄露行為。

3實例分析

(1)創(chuàng)建一個TaintDroid定制版ROM的AVD。首先利用我們自定義ROM的system.img文件(在/out/target/product /generic目錄里面)替換掉原生SDK的system.img。然后利用eclipse 中的可視化工具Android Virtual Device Manager來創(chuàng)建一個定制的AVD(Device:Nexus,Target:Android4.3.1,cpu:ARM,RAM:768,SD Card:200)。

(2)運行模擬器并安裝“酷我音樂盒”。創(chuàng)建完AVD后直接點擊Start來運行模擬器。初次運行會比較慢,因為要創(chuàng)建sdcard.img、 userdata.img、userdata-qemu.img等等一系列相關(guān)鏡像文件。進入Android系統(tǒng)后打開TaintDroidNotify并開啟監(jiān)控,TaintDroid服務(wù)會在后臺運行。安裝“酷我音樂盒”到系統(tǒng)并打開。這時我們就可以看到一個隱私泄露的系統(tǒng)通知。滑動即可查看具體違規(guī)的詳細情況:“酷我音樂盒”軟件會發(fā)送IMEI到ip地址60.28.210.86。IMEI(International Mobile Equipment Identity)是國際移動設(shè)備身份碼的縮寫,它與每臺手機一一對應(yīng),而且該碼是全世界唯一的。如果有人獲得你設(shè)備的IMEI,他就可以獲知你的電話號碼、中止你的通話、獲得你的位置等信息。因此所有泄露的個人信息類型中,IMEI號泄露行為最為嚴重。

(3)污點分析。應(yīng)用在網(wǎng)絡(luò)出口處發(fā)送了含有污點信息的數(shù)據(jù)(IMEI),由此可以得知程序肯定調(diào)用了getDeviceId()方法。利用Apktools反編譯程序,在~/cn/kuwo/mod/push/pushInit.smail文件中發(fā)現(xiàn)了該方法,TaintDroid修改了該方法(~/telephony/gsm/GSMPhone.java)的具體實現(xiàn),在內(nèi)部利用addTaintString(mImei,Taint_IMEI)方法為變量mImei添加了污點,并通過getDeviceId()方法返回。這樣就完成了污點標記的添加。

雖然TaintDroid可以跟蹤數(shù)據(jù)流,但是在每個地方都打印日志信息會極大的影響系統(tǒng)性能。因此我們無法獲得污點變量的傳播路徑。

從DDMMS中可以看出TaintDroid在網(wǎng)絡(luò)出口處檢測到了應(yīng)用程序泄露了手機的IMEI信息(0x400代表IMEI污點標記)。我們在該實例最終調(diào)用的sendto()方法中看到,TaintDroid在其內(nèi)部添加了污點提取和生成日志的函數(shù)。Taintdroid只跟蹤數(shù)據(jù)流,因此我們只能知道程序存在隱私泄露,而不知道程序是如何產(chǎn)生隱私泄露的。換句話說就是TaintDroid無法跟蹤控制流,這需要結(jié)合靜態(tài)分析才能實現(xiàn)。

4改進方向

(1)TaintDroid不允許調(diào)用第三方動態(tài)庫。根據(jù)上文的分析,TiantDroid無法對第三方動態(tài)庫進行污點跟蹤,因此所有帶有第三方動態(tài)庫的應(yīng)用都不能在taintdroid上運行。而我國的大部分的熱門應(yīng)用都要用到第三方動態(tài)庫,這個問題急需解決。關(guān)鍵代碼可以查看源碼 davilk/vm/Native.cpp源文件中的dvmLoadNativeCode方法,該方法判斷如果應(yīng)用加載的是應(yīng)用自己實現(xiàn)的動態(tài)庫則直接返回,導(dǎo)致應(yīng)用運行奔潰。

(2)只能跟蹤信息流無法跟蹤控制流。Taintdroid可以檢測出信息的泄露但不能給出程序執(zhí)行的路徑信息,沒有使用控制流分析[11-12],從而無法檢測Soundcomber這類利用隱蔽信道(手機震動、選項設(shè)置等)的攻擊[13],但這類行為可利用靜態(tài)分析識別。

(3)對字符串和數(shù)組類型的跟蹤粒度不夠細。taintdroid在設(shè)計時對于字符串和數(shù)組類型只標記了一個引用位置。因此即使字符串或者數(shù)組中的污染源已經(jīng)移走,他們依然存在污點標記。這導(dǎo)致了污點追蹤過程中可能產(chǎn)生污點的過度擴散[14-16],從而產(chǎn)生誤報。例如,定義一個整形數(shù)組a[10],其中a[0]為攜帶污點的數(shù)據(jù)。即使a[0]從數(shù)組中被移除,整個數(shù)組還是帶有污點標記的。并且我們從數(shù)組中提取任意一個索引如a[0],都是帶有污點標記的,這可能帶來大量的性能消耗和污點爆炸問題。

(4)檢測的隱私泄露點不夠多。通常情況下,TaintDroid僅僅對一般的網(wǎng)絡(luò)通信(Socket)進行監(jiān)測,藍牙、短信等通信方式?jīng)]有被監(jiān)測。

(5)沒有對隱私數(shù)據(jù)的泄露進行攔截。TaintDroid只是監(jiān)測隱私數(shù)據(jù)的流向,當隱私數(shù)據(jù)產(chǎn)生時并沒有阻止操作也沒有可選的攔截措施。

5結(jié)語

本文首先給出了TaintDroid的整體框架,詳細分析該框架的實現(xiàn)原理,然后通過對“酷我音樂盒”的安裝測試實驗,用污點追蹤方法對其隱私泄露進行了檢測,驗證了TaintDroid的有效性。通過對污點的標記、存儲、傳播、提取等關(guān)鍵技術(shù)的分析,我們可以充分了解TaintDroid的多粒度污點跟蹤架構(gòu)。TaintDroid作為隱私泄露的一種通用解決方案,我們分析了其存在的不足,為以后的研究指出了方向。

參考文獻:

[1]吳俊昌,蔣凡,程紹銀.基于程序分析的 Android 應(yīng)用惡意行為檢測[J].通信技術(shù),2013,46(07):69-72.

WU Jun-chang,JIANG Fan,CHENG Shao-yin.Malicious Behavior Detection of Android Application based on Program Analysis[J].Communications Technology,2013,46(07):69-72.

[2]Enck W,Gilbert P,Chun B G,et al.TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones.[C]// Usenix Conference on Operating Systems Design & Implementation.2010:99-106.

[3]蔡昌.Android平臺惡意軟件動態(tài)監(jiān)測系統(tǒng)的設(shè)計與實現(xiàn)[D].北京:北京交通大學(xué),2013.

CAI Chang.Design and Implementation of the Android Platform Malware Dynamic Detection System[D].BeiJing: Beijing Jiaotong University,2013.

[4]CHENG K,CUI Y.Design and Implementation of Network Packets Collection Tools based on the Android Platform[C]// Fuzzy Systems and Knowledge Discovery (FSKD),2012 9th International Conference on.IEEE,2012:2166-2169.

[5]湯瑾.Android平臺下隱私數(shù)據(jù)保護方法的研究與實現(xiàn)[D].北京:北京郵電大學(xué),2014.

TANG Jin.Research and Implementation of Privacy Protection on Android.Beijing: Beijing University of Posts and Telecommunications,2014.

[6]Kovacheva A.Efficient Code Obfuscation for Android[M]// Advances in Information Technology.Springer International Publishing,2013:104-119.

[7]Protsenko M,Kreuter S,Muller T.Dynamic Self-Protection and Tamperproofing for Android Apps Using Native Code[C]// Availability,Reliability and Security (ARES),2015 10th International Conference on.IEEE,2015.

[8]Claiborne C L,Ncube C,Dantu R.Random Anonymization of Mobile Sensor Data: Modified Android Framework[C]// Intelligence and Security Informatics (ISI),2015 IEEE International Conference on.IEEE,2015.

[9]ZHU D,JUNG J,SONG D,et al.TaintEraser: Protecting Sensitive Data Leaks using Application-Level Taint Tracking[J].Acm Sigops Operating Systems Review,2011,45(1):142-154.

[10]Schwartz E J,Avgerinos T,Brumley D.All You Ever Wanted to Know about Dynamic Taint Analysis and Forward Symbolic Execution (but Might Have Been Afraid to Ask)[C]// Security and Privacy (SP),2010 IEEE Symposium on.IEEE,2010:317-331.

[11]YUAN J,QIANG W,JIN H,et al.CloudTaint: An Elastic Taint Tracking Framework for Malware Detection in the Cloud[J].Journal of Supercomputing,2014,70(3):1433-1450.

[12]KING D,Hicks B,Hicks M,et al.Implicit Flows: Can't Live with 'Em,Can't Live without 'Em.[M]// Information Systems Security.Springer Berlin Heidelberg,2008:56-70.

[13]彭國軍,李晶雯,孫潤康等.Android惡意軟件檢測研究與進展[J].武漢大學(xué)學(xué)報:理學(xué)版,2015,61(01):21-33.PENG Guo-jun,LI Jing-wen,SUN Run-kang,et al.Android Malware Detection Research and Development[J].Wuhan Univ (Nat.Sci.Ed) 2015,61(01):21-33.

[14]楊廣亮,龔曉銳,姚剛等.一個面向Android的隱私泄露檢測系統(tǒng)[J].計算機工程,2012,38(23):1-6.

YANG Guang-liang,GONG Xiao-rui,YAO Gang,et al.A Privacy Leakage Detection System for Android[J].Computer Engineering.2012,38(23): 1-6.

[15]Slowinska A,Bos H.Pointless Tainting? Evaluating the Practicality of Pointer Tainting[J].Eurosys,2009:61-74.

[16]Schutte J,Titze D,De Fuentes J M.AppCaulk: Data Leak Prevention by Injecting Targeted Taint Tracking into Android Apps[C]// 2014 IEEE 13th International Conference on Trust,Security and Privacy in Computing and Communications (TrustCom).IEEE Computer Society,2014:370-379.

Taint Droid-based Dynamic Taint Detection Technology

WANG Jian-wei1,JIN Wei-xin2,WU Zuo-shun2

(1.College of Communication Engineering,PLA University of Science and Technology,Nanjing Jiangsu 210007,China;2.Institute of Electronic Equipment System Engineering Company,Beijing 100141,China)

Abstract:With the popularity of android smart phones,user privacy disclosure becomes one of the most serious security problems.TaintDroid for the first time realizes dynamic taint tracking on the android platform and becomes the hot research topic in solving the problem of privacy disclosure.Based on the review of TaintDroid and its basic architecture,this paper analyzes in depth the key technologies including the adding,storage,dissemination and extraction of taint marks.In addition,how for TaintDriod to detect privacy disclosure is verified through practical application of Android.Finally,this paper presents the deficiencies and the points to be improved existing in TaintDroid,thus pointing out the direction for further research.

Key words:Android; TaintDroid; privacy disclosure; dynamic taint track

doi:10.3969/j.issn.1002-0802.2016.02.019

* 收稿日期:2015-09-12;修回日期:2015-12-06Received date:2015-09-12;Revised date:2015-12-06

基金項目:國家863 課題(No.2015AA011104)

Foundation Item:National 863 Programs(No.2015AA011104)

中圖分類號:TP309

文獻標志碼:A

文章編號:1002-0802(2016)02-0221-06

作者簡介:

王建偉(1986—),男,碩士研究生,主要研究方向為計算機網(wǎng)絡(luò);

金偉信(1965—),副總工程師。碩士生導(dǎo)師,主要研究方向為信息安全;

吳作順(1974—),高級工程師,碩士生導(dǎo)師,主要研究方向為信息安全。

崇阳县| 瓦房店市| 涿州市| 仙桃市| 镇江市| 酒泉市| 湄潭县| 德格县| 右玉县| 景德镇市| 黄浦区| 华宁县| 抚顺县| 广东省| 佛学| 牙克石市| 陆丰市| 定安县| 怀化市| 广东省| 牡丹江市| 黑龙江省| 衡水市| 陈巴尔虎旗| 桦甸市| 大埔区| 理塘县| 会昌县| 梅河口市| 环江| 新兴县| 利川市| 桃园县| 赣榆县| 府谷县| 广德县| 桓仁| 肥西县| 海城市| 喀什市| 合作市|