日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
TaintDroid:智能手機(jī)監(jiān)控實(shí)時(shí)隱私信息流跟蹤系統(tǒng)(二)-創(chuàng)新互聯(lián)

4TaintDroid

TaintDroid:智能手機(jī)監(jiān)控實(shí)時(shí)隱私信息流跟蹤系統(tǒng)(二)

成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、建水網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場(chǎng)景定制、電子商務(wù)商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為建水等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

TaintDroid是一個(gè)多粒度Android的污點(diǎn)跟蹤方法。TaintDroid使用變量級(jí)的跟蹤VM解釋器。多個(gè)污點(diǎn)標(biāo)記被存儲(chǔ)為一個(gè)污點(diǎn)標(biāo)簽。當(dāng)應(yīng)用程序執(zhí)行本地方法的時(shí)候,各種的污點(diǎn)標(biāo)記被作為返回值返回。最后,最后污點(diǎn)標(biāo)記被分配給包通過Binder機(jī)制進(jìn)行傳播。注意在技術(shù)報(bào)告中對(duì)于這部分執(zhí)行細(xì)節(jié)有更詳細(xì)的解釋。

圖 2描述了TaintDroid的系統(tǒng)架構(gòu)。信息被標(biāo)記為可信任的應(yīng)用程序當(dāng)有充足的上下文時(shí)。污點(diǎn)接口調(diào)用了本地的方法和Dalvik虛擬機(jī)進(jìn)行交互,存儲(chǔ)精確的污點(diǎn)標(biāo)記在虛擬的污點(diǎn)集中。Dalvik VM傳播污點(diǎn)標(biāo)簽根據(jù)數(shù)據(jù)流規(guī)則作為可信任的應(yīng)用程序使用污點(diǎn)信息。每一個(gè)的解釋器實(shí)例同時(shí)傳播污點(diǎn)標(biāo)記。當(dāng)可信任的APP使用污點(diǎn)信息在IPC中進(jìn)行傳播,修改后的Binder庫確保了包裹有污點(diǎn)標(biāo)記反射出合并后的污點(diǎn)標(biāo)記包含了所有的數(shù)據(jù)。包裹傳輸完全通過內(nèi)核并且被遠(yuǎn)程的不可信任程序接受。注意僅有解釋代碼是不可信的。修改后的Binder庫檢索來自包的污點(diǎn)標(biāo)記并將它分配給所有的值從其中讀取。Dalvik VM實(shí)例的遠(yuǎn)程傳播將完全相同的污點(diǎn)標(biāo)記為不可信應(yīng)用程序。當(dāng)不可信任的應(yīng)用程序調(diào)用調(diào)用一個(gè)特定的程序作為一個(gè)污點(diǎn)池。e.g.網(wǎng)絡(luò)發(fā)送數(shù)據(jù),庫來檢索污點(diǎn)標(biāo)記數(shù)據(jù)問題并且報(bào)告事件。

執(zhí)行這個(gè)架構(gòu)需要解決幾個(gè)系統(tǒng)的挑戰(zhàn):

a)    污點(diǎn)的存儲(chǔ)

b)    解釋代碼污點(diǎn)傳播

c)    原生代碼污點(diǎn)傳播

d)   IPC污點(diǎn)傳播

e)    二級(jí)存儲(chǔ)污染

剩余的部分將會(huì)描述我們的設(shè)計(jì)。

4.1   污點(diǎn)標(biāo)記存儲(chǔ)

對(duì)于怎樣選擇存儲(chǔ)標(biāo)記直接影響了執(zhí)行和存儲(chǔ)的效率。動(dòng)態(tài)污點(diǎn)跟蹤系統(tǒng)通常存儲(chǔ)每個(gè)字節(jié)或標(biāo)簽。跟蹤內(nèi)存是結(jié)構(gòu)化的,沒有內(nèi)容的語義。常用的污點(diǎn)標(biāo)記被存儲(chǔ)在不相鄰的單元和標(biāo)記地圖上。TaintDroid使用了解釋器里的語義變量。我們存儲(chǔ)相鄰的污點(diǎn)標(biāo)記在內(nèi)存當(dāng)中,提供空間位置。

Dalvik有五種類型的變量要求存儲(chǔ):局部方法變量,方法的參數(shù),類的靜態(tài)變量,類實(shí)例的字段值和數(shù)組。在所有的情況下,我們存儲(chǔ)了一個(gè)32位的位向量對(duì)于每一個(gè)污點(diǎn)標(biāo)記每個(gè)變量進(jìn)行編碼,允許存儲(chǔ)32種不同的污點(diǎn)標(biāo)記。

Dalvik存儲(chǔ)方法的本地變量值還有參數(shù)在內(nèi)部棧。當(dāng)應(yīng)用程序調(diào)用一個(gè)方法的時(shí)候,一個(gè)新的堆棧幀分配給所有的局部變量。方法參數(shù)的傳遞也通過內(nèi)部棧。在調(diào)用方法之前,被調(diào)用的函數(shù)的參數(shù)的地方在堆棧的頂部,這樣它們成為了高編號(hào)被登記在被調(diào)用的函數(shù)的堆棧幀。我們給污點(diǎn)存儲(chǔ)分配增加一倍大小的存儲(chǔ)空間。污點(diǎn)標(biāo)簽值之間的交叉例如寄存器Vi最初訪問的變量是fp[i]當(dāng)被修改之后訪問的是fp[2·i]。注意Dalvik存儲(chǔ)一個(gè)64位的變量是通過兩個(gè)相鄰的32位內(nèi)部寄存器完成的。然而字節(jié)碼解釋這些相鄰的寄存器作為一個(gè)單獨(dú)的64位的值,解釋器管理這些寄存器作為單獨(dú)的值。因此,我們對(duì)棧的修改是透明的并且檢索64位的值對(duì)于分開的寄存器。最后,本機(jī)方法的目標(biāo)要求一個(gè)稍微不同的堆??蚣鼙闶腔谝陨显颉?/p>

TaintDroid:智能手機(jī)監(jiān)控實(shí)時(shí)隱私信息流跟蹤系統(tǒng)(二)

圖3修改后的棧的格式

污點(diǎn)標(biāo)記是交錯(cuò)在寄存器之間的來解釋方法目標(biāo)和附加的本地方法。深灰色的盒子代表的是污點(diǎn)標(biāo)記。

詳細(xì)的討論在4.3節(jié)。修改的棧格式如圖 3所示。

污點(diǎn)標(biāo)記存儲(chǔ)在相鄰的類字段和數(shù)組在VM解釋器的內(nèi)部的數(shù)據(jù)結(jié)構(gòu)。為了使存儲(chǔ)開銷最小化TaintDroid存儲(chǔ)的僅僅是每個(gè)數(shù)組的一個(gè)污點(diǎn)標(biāo)簽。對(duì)于Java字符串對(duì)象來說每個(gè)污染值的存儲(chǔ)是極其低效的。作為所有的特征都有相同的標(biāo)簽。不幸的是,對(duì)于每個(gè)數(shù)組只存儲(chǔ)一個(gè)污點(diǎn)標(biāo)簽可能導(dǎo)致假陽性污染傳播。例如,如果一個(gè)沒有被標(biāo)記污點(diǎn)的值u存儲(chǔ)的數(shù)組A下標(biāo)索引為0(A[0])的位置并且污點(diǎn)變量t存儲(chǔ)在A[1],此時(shí)數(shù)組A是被標(biāo)記為污染的。之后,如果變量v被分配給A[0],v將會(huì)被標(biāo)記,即使u是未被標(biāo)記的。不幸的是,Java頻繁的使用對(duì)象,并且對(duì)象之間的引用是被頻繁的標(biāo)記的(見4.2節(jié)),因此編碼實(shí)踐將會(huì)呈現(xiàn)出更少的假陽性。

4.2   解釋代碼污染傳播

污點(diǎn)跟蹤的粒度和流的語義直接影響了性能和準(zhǔn)確性。TaintDroid執(zhí)行變量級(jí)的污點(diǎn)跟蹤使用了Dalvik VM解釋器。變量提供有價(jià)值的語義污點(diǎn)傳播,從標(biāo)量值區(qū)分?jǐn)?shù)據(jù)指針。TaintDroid最原始的跟蹤是基本類型變量(e.g.int,float,etc);但是,在一些情況下對(duì)象的引用必須成為受污染的以確保污點(diǎn)傳播的正確性;這一節(jié)描述了為什么這些例子是存在的。但是,首先我們呈現(xiàn)出污點(diǎn)跟蹤在Dalvik機(jī)器語言是作為正常的邏輯。

4.2.1污點(diǎn)傳播邏輯

Dalvik VM運(yùn)行唯一的DEX機(jī)器語言指令集,因此我們必須設(shè)計(jì)一個(gè)合適的傳播邏輯。我們使用了數(shù)據(jù)流邏輯,作為跟蹤隱式流要求的靜態(tài)分析和引起顯著的

性能開銷和高估的跟蹤(見第8節(jié))。我們開始定義了污點(diǎn)標(biāo)記,污點(diǎn)標(biāo)簽,變量以及污點(diǎn)傳播。我們呈現(xiàn)了我們對(duì)于DEX的邏輯。

設(shè)集合L是對(duì)一個(gè)特定集合的一般情況下的污點(diǎn)標(biāo)記。一個(gè)污點(diǎn)標(biāo)記是這個(gè)集合中的一個(gè)元素,t L。每一個(gè)變量都有一個(gè)相關(guān)聯(lián)的污點(diǎn)標(biāo)記。一個(gè)變量是在4.1節(jié)中描述的5個(gè)類型中的一種。對(duì)于每一種類型我們采用了不同的表示。局部變量和參數(shù)變量我們對(duì)應(yīng)于相應(yīng)的虛擬寄存器,使用VX。類的字段變量我們使用fx來表示用X來表示類的下標(biāo)。字段的實(shí)例要有一個(gè)對(duì)象的實(shí)例來指示被標(biāo)記為Vy(fx),其中Vy是實(shí)例對(duì)象的引用(包括對(duì)象的直接引用和間接引用),靜態(tài)字段也是用fx來標(biāo)記,速記為S(fx),其中S()表示的是靜態(tài)的取值范圍。最終,Vx[·]代表的是一個(gè)數(shù)組,Vx代表的是數(shù)組變量的引用。

我們的污點(diǎn)函數(shù)集使用的是τ(·)。τ(v)返回的是污點(diǎn)標(biāo)記變量。檢索和復(fù)制是不同我們使用符號(hào)←來區(qū)分。當(dāng)τ(v)出現(xiàn)在←的右邊表示的是檢索污點(diǎn)標(biāo)記的變量值v。當(dāng)τ(v)出現(xiàn)在←的左邊表示的對(duì)變量值v賦值。例如,τ(v1)← τ (v2)將污點(diǎn)標(biāo)記V2的值賦給V1。

表 1展示的是我們傳播邏輯。該表列舉了抽象的DEX字節(jié)碼指令的詳細(xì)說明。寄存器變量和類的字段分別使用Vx和fx代替。R表示的返回E表示的是異常。大寫的A,B,C代表的是不變的字節(jié)碼。表中沒有列出清除污點(diǎn)寄存器的目的寄存器。

TaintDroid:智能手機(jī)監(jiān)控實(shí)時(shí)隱私信息流跟蹤系統(tǒng)(二)

表1TaintDroid的傳播邏輯

例如我們不考慮指令數(shù)組的長度對(duì)于返回一個(gè)污點(diǎn)值即使這個(gè)數(shù)組是受污染的。注意數(shù)組的長度有助于直接控制流的傳播。

4.2.2污點(diǎn)對(duì)象引用

在表 1中的傳播規(guī)則有兩個(gè)例外。其一,污點(diǎn)傳播邏輯包括污點(diǎn)標(biāo)記數(shù)組的索引中查找處理轉(zhuǎn)換表(e.g. ASCII/UNICODE的大小寫轉(zhuǎn)換)。例如,考慮從小寫轉(zhuǎn)換到大寫字母的情況:如果一個(gè)污點(diǎn)值“a”是數(shù)組的一個(gè)索引,由此導(dǎo)致“A”也是被污點(diǎn)標(biāo)記的即使“A”在數(shù)組中不是。因此,污點(diǎn)邏輯aget-op既使用數(shù)組和數(shù)組索引污點(diǎn)。第二,當(dāng)這個(gè)數(shù)組包含對(duì)象索引(e.g.一個(gè)證型數(shù)組),這個(gè)污點(diǎn)索引標(biāo)記傳播的是對(duì)象的引用而不是對(duì)象的值。因此,我們包含對(duì)象引用污點(diǎn)標(biāo)記在實(shí)例中得到了(iget-op)規(guī)則。

圖 4列出的代碼展示出了一個(gè)實(shí)際的實(shí)例對(duì)象引用污點(diǎn)的必要性。在這里,ValueOf()返回一個(gè)整數(shù)對(duì)象傳遞int。如果整型參數(shù)在-128到127之間,ValueOf()返回引用靜態(tài)定義的整型對(duì)象。ValueOf()對(duì)象隱式的轉(zhuǎn)換為一個(gè)對(duì)象??紤]下列方法的定義:

Object intProxy(int val) { return val; }

int out = (Integer) intProxy(tVal);

考慮一下這樣一種情況tVal的值是int為1并且是被標(biāo)記的。當(dāng)intProxy()傳遞tVal的時(shí)候最后返回的值是val。在這種情之下,Integer.valueOf()獲得一個(gè)整數(shù)實(shí)例對(duì)應(yīng)val標(biāo)量的變量。在這種情況下,Integer.valueOf()返回一個(gè)引用靜態(tài)對(duì)象其值為1。這個(gè)變量字段(整型類)對(duì)應(yīng)的對(duì)象標(biāo)記為;然而,因?yàn)閍get-op傳播規(guī)則包括污點(diǎn)的索引寄存器,這個(gè)對(duì)象的索引有一個(gè)污點(diǎn)標(biāo)記。因此,僅僅只包含對(duì)象的污點(diǎn)標(biāo)記當(dāng)字段讀取來自整型,正確的污點(diǎn)標(biāo)記將會(huì)被賦值。

TaintDroid:智能手機(jī)監(jiān)控實(shí)時(shí)隱私信息流跟蹤系統(tǒng)(二)

圖4摘自Android整數(shù)類說明需要對(duì)象引用的污點(diǎn)傳播

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


網(wǎng)頁題目:TaintDroid:智能手機(jī)監(jiān)控實(shí)時(shí)隱私信息流跟蹤系統(tǒng)(二)-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://www.dlmjj.cn/article/dodgso.html