• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Android隱式信息流檢測(cè)的本體模型

      2018-03-20 00:43:02劉其源曹宏盛
      計(jì)算機(jī)應(yīng)用 2018年1期
      關(guān)鍵詞:控制結(jié)構(gòu)信息流分支

      劉其源,焦 健,曹宏盛

      (1.北京信息科技大學(xué) 網(wǎng)絡(luò)文化與數(shù)字傳播北京市重點(diǎn)實(shí)驗(yàn)室,北京 100101; 2.北京信息科技大學(xué) 計(jì)算機(jī)學(xué)院,北京 100101)(*通信作者電子郵箱jiaojian@bistu.edu.cn)

      0 引言

      Android平臺(tái)上的隱私信息泄漏檢測(cè)主要采用污點(diǎn)分析技術(shù),該技術(shù)先確定敏感信息源Source和泄漏點(diǎn)Sink,然后再對(duì)敏感信息從Source到Sink的傳播路徑進(jìn)行靜態(tài)分析[1-2]或動(dòng)態(tài)監(jiān)控[3-4],最終判斷信息源和泄漏點(diǎn)間是否存在一條傳播路徑。污點(diǎn)分析本質(zhì)是一種信息流分析技術(shù),信息流分為顯式和隱式,顯式信息流(Explicit Information Flow, EIF)產(chǎn)生于數(shù)據(jù)依賴,而隱式信息流(Implicit Information Flow, IIF)產(chǎn)生于控制依賴[5]。然而,現(xiàn)有的污點(diǎn)分析技術(shù)如FlowDroid[1]、TaintDroid[3]都只考慮了EIF,它們?cè)贓IF(數(shù)據(jù)依賴)泄露檢測(cè)領(lǐng)域是有效的;然而對(duì)于IIF(控制依賴)而言,由于控制結(jié)構(gòu)無(wú)規(guī)律的內(nèi)容轉(zhuǎn)換會(huì)對(duì)分支結(jié)構(gòu)的執(zhí)行造成影響,進(jìn)而影響程序控制流的走向[6],且控制結(jié)構(gòu)的條件語(yǔ)句變量與分支變量間無(wú)直接的EIF傳遞關(guān)系,因此,上述方法對(duì)隱式流的分析是無(wú)效的。

      文獻(xiàn)[6]的實(shí)驗(yàn)表明FlowDroid不支持隱式流漏洞的檢測(cè),說(shuō)明傳統(tǒng)的污點(diǎn)分析方法在隱式流中的污點(diǎn)傳播存在缺陷,污點(diǎn)標(biāo)記會(huì)在控制結(jié)構(gòu)進(jìn)行內(nèi)容轉(zhuǎn)換時(shí)丟失,導(dǎo)致基于該技術(shù)的隱私泄漏檢測(cè)出現(xiàn)較高的漏報(bào)率。文獻(xiàn)[7]將動(dòng)態(tài)污點(diǎn)分析與靜態(tài)分析結(jié)合以追蹤IIF,使用Dytan工具首先靜態(tài)地分析出所有的控制結(jié)構(gòu),然后將控制結(jié)構(gòu)條件表達(dá)式中謂詞變量的污點(diǎn)不加區(qū)分地傳遞給每一個(gè)分支中的一般語(yǔ)句變量;該方法雖然降低甚至避免了漏報(bào)率,但產(chǎn)生了過(guò)度污染的問(wèn)題,使得檢測(cè)系統(tǒng)的誤報(bào)率較高。文獻(xiàn)[5]專門針對(duì)IIF展開研究,分析了Android環(huán)境,總結(jié)出了五大類能夠產(chǎn)生IIF的結(jié)構(gòu),同時(shí)通過(guò)構(gòu)建的PoC(Proof of Concept)對(duì)幾款A(yù)ndroid惡意應(yīng)用進(jìn)行了驗(yàn)證;它們雖然對(duì)隱式流和控制結(jié)構(gòu)之間的關(guān)系進(jìn)行了研究,但并沒有深入地給出控制結(jié)構(gòu)內(nèi)各關(guān)鍵元素間關(guān)系結(jié)構(gòu)的抽象模型。

      為了解決Android應(yīng)用中隱式流的檢測(cè)問(wèn)題,使得基于污點(diǎn)分析的檢測(cè)方法在控制結(jié)構(gòu)中能夠獲得準(zhǔn)確的變量傳遞關(guān)系,最終提高檢測(cè)的準(zhǔn)確率,本文使用本體技術(shù)[8]對(duì)產(chǎn)生控制依賴的控制結(jié)構(gòu)進(jìn)行建模,描述控制結(jié)構(gòu)中各關(guān)鍵元素(如結(jié)構(gòu)類型、條件語(yǔ)句謂詞變量、操作符、分支語(yǔ)句變量等)間的語(yǔ)義關(guān)系。本體能夠描述控制結(jié)構(gòu)中各組分的概念以及它們之間的關(guān)系[9],并且是可計(jì)算的,結(jié)合語(yǔ)義網(wǎng)規(guī)則語(yǔ)言(Semantic Web Rule Language, SWRL)規(guī)則[10]可以實(shí)現(xiàn)基于嚴(yán)格控制依賴(Strict Control Dependence, SCD)關(guān)系[11]的隱式信息流的準(zhǔn)確判定,最終得到隱式流的變量傳遞關(guān)系。本文的創(chuàng)新點(diǎn)在于:利用本體對(duì)控制結(jié)構(gòu)建模,建立了可共享的領(lǐng)域知識(shí)模型,使得程序源碼的語(yǔ)義被明確定義,將靜態(tài)的程序結(jié)構(gòu)轉(zhuǎn)化為本體實(shí)例,結(jié)合推理引擎與SWRL規(guī)則,解決基于SCD的IIF檢測(cè)問(wèn)題。

      1 Android隱式信息流分析

      Android程序語(yǔ)句間的控制依賴關(guān)系是導(dǎo)致隱式信息流的原因,分析隱式信息流首先定義程序語(yǔ)句間的控制依賴關(guān)系??刂埔蕾囮P(guān)系可以分為兩類,如圖1所示,其中,嚴(yán)格控制依賴關(guān)系導(dǎo)致的隱式信息流是本文要研究的內(nèi)容,它在本質(zhì)上類似于程序中的數(shù)據(jù)依賴關(guān)系,能夠?qū)㈦[私信息準(zhǔn)確地泄露給外界。

      圖1 控制依賴關(guān)系的分類

      嚴(yán)格控制依賴關(guān)系可以分為兩類:基于等價(jià)(“==”“!=”)測(cè)試和基于非等價(jià)(“>”“<”“>=”“<=”)測(cè)試,兩類SCD關(guān)系產(chǎn)生的形式不同,但其本質(zhì)是一致的,即都能產(chǎn)生變量間的強(qiáng)相關(guān)性。比較操作“==”的真分支產(chǎn)生SCD,比較操作“!=”的假分支產(chǎn)生SCD,“!=”操作也會(huì)產(chǎn)生一種隱式的SCD,它由執(zhí)行忽略導(dǎo)致。其余非等價(jià)比較操作通過(guò)條件語(yǔ)句嵌套產(chǎn)生數(shù)值限制,從而產(chǎn)生SCD。

      為了描述不同性質(zhì)信息流的差異,給出變量間相關(guān)系數(shù)的定理說(shuō)明,也是變量間相關(guān)性的一個(gè)粗粒度劃分。

      定理1 變量相關(guān)系數(shù)。給定同一程序中存在的兩個(gè)變量var1與var2,變量間的關(guān)系為一個(gè)二元函數(shù):

      r=R(var1,var2); 0≤r≤1

      其中,r稱為變量var1與var2間的相關(guān)系數(shù),通過(guò)相關(guān)系數(shù)r的值表示變量間相關(guān)性的強(qiáng)弱,計(jì)算規(guī)則如式(1):

      (1)

      1)r=0時(shí),變量間無(wú)直接相關(guān)性,變量var1值的任何變化不會(huì)影響變量var2的值。

      2)0

      3)r=1時(shí),變量間存在強(qiáng)相關(guān)性,變量var1值的任何變化一定會(huì)影響變量var2的值。

      以程序1為例,變量secret的值表示接收的隱私數(shù)據(jù),而變量pub是受條件語(yǔ)句限制的一般語(yǔ)句變量。語(yǔ)句S2的執(zhí)行是一種顯式的信息流傳遞,變量間的數(shù)值傳遞通過(guò)賦值操作完成,此時(shí)相關(guān)系數(shù)r=1;觀察語(yǔ)句S3~S5,變量secret與變量pub間也存在一種信息流傳遞關(guān)系,這種傳遞關(guān)系控制依賴于對(duì)應(yīng)的條件表達(dá)式滿足與否,與S2的顯式值傳遞關(guān)系有本質(zhì)不同,這種信息流被稱為隱式信息流。

      程序1

      S1 secret=get_input();

      S2 m=secret;

      S3 if (secret==0) pub=0;

      S4 else if (secret>0) pub=1;

      S5 else pub=-1;

      對(duì)于IIF而言,盡管兩個(gè)變量間無(wú)直接的數(shù)據(jù)流傳遞關(guān)系,但依據(jù)不同的控制依賴關(guān)系仍可由pub值推導(dǎo)出關(guān)于secret值的部分或全部信息[12];例如:由變量pub值為0知語(yǔ)句S3被執(zhí)行,能推知變量secret值也為0,這種語(yǔ)句分支稱之為SCD分支,僅考慮S3的單個(gè)分支時(shí),變量相關(guān)系數(shù)也為r=1;由變量pub值為1知語(yǔ)句S4被執(zhí)行,只能推知變量secret的值大于0,這種分支的控制依賴關(guān)系是松散控制依賴。兩種控制依賴關(guān)系的本質(zhì)區(qū)別在于其條件表達(dá)式的控制條件不同,松散控制依賴存在多個(gè)滿足控制條件的值,而SCD只有一個(gè)。根據(jù)污點(diǎn)分析技術(shù)[3]可知,若變量secret為污點(diǎn)變量,污點(diǎn)標(biāo)記會(huì)隨著控制轉(zhuǎn)換的發(fā)生停止傳播,變量pub不會(huì)被污染;攻擊者若能夠根據(jù)獲取的pub值準(zhǔn)確推知變量secret的值,那么存在一條隱式的隱私信息泄露路徑(因?yàn)槲幢晃廴镜淖兞吭陔x開系統(tǒng)邊界時(shí)不會(huì)被檢出),它是基于SCD的隱式流;攻擊者利用松散控制依賴引發(fā)的IIF只能得到變量的值范圍,威脅較小;因此,相較于松散控制依賴引發(fā)的IIF,基于SCD的IIF更具威脅,也是本文要研究的內(nèi)容。IIF分析的關(guān)鍵在于得到準(zhǔn)確的變量傳遞關(guān)系。

      2 基于本體的檢測(cè)模型

      為實(shí)現(xiàn)Android隱式信息流的檢測(cè),給出控制結(jié)構(gòu)領(lǐng)域本體的定義和模型構(gòu)建說(shuō)明,包括類的劃分與屬性的確定。其次,結(jié)合該本體模型分析基于SCD的IIF的產(chǎn)生條件并給出判定規(guī)則,最后給出判定規(guī)則對(duì)應(yīng)的SWRL推理規(guī)則。

      2.1 控制結(jié)構(gòu)領(lǐng)域本體

      程序控制結(jié)構(gòu)中存在多種元素。在構(gòu)建控制結(jié)構(gòu)本體的時(shí)候,把控制結(jié)構(gòu)及它的變量、變量值、操作符和參數(shù)設(shè)置為類或數(shù)據(jù)屬性,類與類之間的關(guān)系設(shè)置成關(guān)聯(lián)屬性[13]。文獻(xiàn)[5]對(duì)能夠產(chǎn)生Android應(yīng)用中存在的IIF的控制結(jié)構(gòu)類型進(jìn)行了總結(jié),本文歸納如表1所示;綜合分析給出控制結(jié)構(gòu)的六元組模型,該模型能準(zhǔn)確描述單分支或多分支組合控制結(jié)構(gòu)。

      表1 控制語(yǔ)句結(jié)構(gòu)特征

      除了For循環(huán)和Exception-prone控制結(jié)構(gòu)外,其他4類分支數(shù)最多可達(dá)n的控制結(jié)構(gòu)均能構(gòu)造出符合六元組模型的程序段,本研究在本體構(gòu)建中單獨(dú)對(duì)這兩種分支數(shù)為2的結(jié)構(gòu)進(jìn)行了相應(yīng)的處理。

      定義3 控制結(jié)構(gòu)?;究刂平Y(jié)構(gòu)是一個(gè)六元組K,K=(secret,Sa,Vi,cb,Nc,Pv),其中:secret是各分支條件表達(dá)式中的共有謂詞變量,且secret?Nc;Sa是各分支語(yǔ)句比較操作符的集合,記作Sa={si|si∈{“==”,“!=”,“>”,“>=”,“<”,“<=”}};Vi是各分支條件表達(dá)式中與變量secret參與條件判定操作的謂詞變量或常量集;cb為控制結(jié)構(gòu)K的分支數(shù);Nc是各分支中一般語(yǔ)句P的變量集;Pv為變量在各分支中的取值集合,v∈Nc。

      根據(jù)基本控制結(jié)構(gòu)K中的元素組成,定義控制結(jié)構(gòu)領(lǐng)域本體,給出本體類及其對(duì)象屬性和數(shù)據(jù)屬性,如表2~3所示。由控制結(jié)構(gòu)定義可以描述惡意代碼中的基本控制結(jié)構(gòu),根據(jù)相應(yīng)的推理規(guī)則可判定該結(jié)構(gòu)中是否存在隱式流,進(jìn)而使得惡意代碼中的隱式流漏洞顯式輸出。程序1的解析說(shuō)明了結(jié)構(gòu)模型與惡意代碼功能間的聯(lián)系。

      表2 控制結(jié)構(gòu)本體的部分類信息

      表3 控制結(jié)構(gòu)本體的部分對(duì)象屬性和數(shù)據(jù)屬性信息

      表2中,K-structure、For-loop、Secret_var_name、Pub_var_name、First_operator、Second_operator是六個(gè)平行的基本類。分別代表控制結(jié)構(gòu)的名稱、for循環(huán)類結(jié)構(gòu)的名稱、條件表達(dá)式謂詞變量、一般語(yǔ)句變量以及for循環(huán)結(jié)構(gòu)的循環(huán)控制條件的第一個(gè)變量和第二個(gè)變量。對(duì)象屬性和數(shù)據(jù)屬性的部分信息如表3所示。

      2.2 基于SCD的IIF判定規(guī)則

      首先給出基本SCD關(guān)系的識(shí)別及其特殊形式轉(zhuǎn)化的方法,使其能在模型中被實(shí)例化[14];其次,根據(jù)SCD隱式流(單分支或多分支組合)的產(chǎn)生特點(diǎn)給出變量間關(guān)系的判定規(guī)則。

      SCD關(guān)系產(chǎn)生的來(lái)源分為兩類:基于等價(jià)測(cè)試與非等價(jià)測(cè)試。等價(jià)測(cè)試操作“==”和“!=”能直接產(chǎn)生SCD,可以直接處理。對(duì)于由“!=”操作產(chǎn)生的隱式SCD如圖2(a)所示,“!=”操作的假分支產(chǎn)生SCD關(guān)系,但是當(dāng)假分支被執(zhí)行,通過(guò)發(fā)送變量x1(x1為真分支變量)可以知道變量x1的值為0,此時(shí)可知真分支未被執(zhí)行,假分支條件滿足,確定a的值為5,這種SCD產(chǎn)生的原因是假分支中忽略了x1的存在;解決方法如圖2(a)、(b)所示:“!=”操作的真分支變量集T1減去假分支變量集T2有{x1}-{x2}={x1},在假分支中添加語(yǔ)句x1=x1;不會(huì)改變?cè)绦虻恼Z(yǔ)義,同時(shí)變量x1對(duì)假分支的SCD關(guān)系也被轉(zhuǎn)化為顯式的,問(wèn)題得解。

      圖2 隱式SCD及處理方法

      非等價(jià)測(cè)試操作“<”“>=”等不能直接產(chǎn)生SCD,需要在實(shí)例化前進(jìn)行處理轉(zhuǎn)化成一般的SCD,處理步驟為:

      1)確定各層嵌套條件表達(dá)式謂詞變量是否一致;

      2)若一致,確定謂詞變量數(shù)據(jù)類型;

      3)若為整型數(shù)據(jù),將最外層條件逐步與內(nèi)層條件結(jié)合,分析能否確定謂詞變量的值;

      4)若前n層的條件結(jié)合確定了謂詞變量值,那么在第n層產(chǎn)生了SCD。

      基于“==”操作的SCD非常普遍,If-else語(yǔ)句、Switch語(yǔ)句、Throw異常拋出語(yǔ)句以及Polymorphism多態(tài)語(yǔ)句等結(jié)構(gòu)均能通過(guò)“==”操作(或本質(zhì)是等價(jià)比較操作)構(gòu)造實(shí)用的SCD,通過(guò)不同的方式完成基于SCD的數(shù)據(jù)控制轉(zhuǎn)換?;赟CD的多分支結(jié)構(gòu)判定規(guī)則為:多個(gè)分支的條件表達(dá)式存在一致的謂詞變量,變量不一致時(shí)的處理方法是先將分支按不同謂詞變量分類,再分別處理?;赟CD的隱式流變量間關(guān)系判定規(guī)則分兩種情況:1)基于SCD的單分支語(yǔ)句結(jié)構(gòu)。變量間相關(guān)性恒為1。2)基于SCD的多分支組合語(yǔ)句結(jié)構(gòu)。變量間關(guān)系的判定規(guī)則與定理1中的式(1)一致。根據(jù)以上的判定規(guī)則有3種變量關(guān)系存在,去除變量相關(guān)性為零的情況,還有弱相關(guān)性與強(qiáng)相關(guān)性兩種:r∈(0,1)表示變量間具有弱相關(guān)性,這是由一般語(yǔ)句變量在多個(gè)分支中存在相同版本值導(dǎo)致的;r=1表示變量間具有強(qiáng)相關(guān)性,變量在多個(gè)分支中的版本值均不等,存在當(dāng)條件語(yǔ)句變量secret值變化,變量的值一定隨之變化的嚴(yán)格對(duì)應(yīng)關(guān)系。

      隱式泄露判斷條件為:相關(guān)性r∈(0,1)與r=1的變量間存在基于SCD的隱式信息泄露。

      2.3 構(gòu)建SWRL規(guī)則

      根據(jù)2.1節(jié)控制結(jié)構(gòu)領(lǐng)域本體的定義以及2.2節(jié)基于SCD的IIF判定部分得到的結(jié)論,分別給出基于SCD的單分支結(jié)構(gòu)和多分支組合結(jié)構(gòu)的SWRL規(guī)則。3.1節(jié)的推理實(shí)驗(yàn)表明:由這些規(guī)則得到的推理結(jié)果與隱式流樣本集中所標(biāo)識(shí)的情況基本一致,所以該推理規(guī)則具有一定的合理性。

      1)單分支結(jié)構(gòu)。單分支一般語(yǔ)句中每個(gè)變量的取值僅有一個(gè),條件表達(dá)式的判定操作直接決定了該隱式流的性質(zhì)。單分支結(jié)構(gòu)的一條SWRL規(guī)則如Rule- 1所示:

      Rule- 1: K-structure(?x)∧hasbranch(?x,1)∧

      hassecretname(?x,?sn)∧hasoperator1(?x,?op)∧

      swrlb:equal(?op,"==")∧haspubname(?x,?pub)→

      strongRbetween(?sn,?pub)

      對(duì)規(guī)則1解析如下:K-structure(?x)表示x是K-structure類的一個(gè)實(shí)例;hasbranch(?x,1)表示實(shí)例x為單分支結(jié)構(gòu);hassecretname(?x,?sn)表示實(shí)例x的條件語(yǔ)句謂詞變量為“sn”;hasoperator1(?x,?op)表示實(shí)例x的比較操作為“op”;swrlb:equal(?op,“==”)表示op為等價(jià)判定操作;haspubname(?x,?pub)表示實(shí)例x的一般語(yǔ)句變量為“pub”;strongRbetween(?sn,?pub)表示變量“sn”與變量“pub”間存在強(qiáng)相關(guān)性。其他基于SCD的單分支結(jié)構(gòu)SWRL規(guī)則與規(guī)則1類似,限于篇幅,不再作詳細(xì)解釋。

      2)多分支結(jié)構(gòu)。三分支結(jié)構(gòu)的一條SWRL規(guī)則如Rule- 2所示。其他的多分支情況對(duì)應(yīng)的SWRL規(guī)則在這里不予展示,其基本原理是一致的。

      Rule- 2:K-structure(?x)∧hasbranch(?x,3)∧

      hassecretname(?x,?sn)∧hasoperator1(?x,?op1)∧

      swrlb:equal(?op1,"==")∧hasoperator2(?x,?op2)∧

      swrlb:equal(?op2,"==")∧hasoperator3(?x,?op3)∧

      swrlb:equal(?op3,"==")∧haspubname(?x,?pub)∧

      haspubvalue1(?x,?pv1)∧haspubvalue2(?x,?pv2)∧

      haspubvalue3(?x,?pv3)∧swrlb:notEqual(?pv1,

      ?pv2)∧swrlb:notEqual(?pv1,?pv3)∧

      swrlb:notEqual(?pv2,?pv3)→strongRbetween(?sn,?pub)

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

      本文實(shí)驗(yàn)環(huán)境為Windows 7操作系統(tǒng),內(nèi)存4 GB,CPU是Intel Core i5- 4590 3.30 GHz。本體編輯軟件為Protégé 3.4.7[15],推理引擎使用的是Jess 7.1p2。實(shí)驗(yàn)分為三個(gè)部分:首先,將構(gòu)建的控制結(jié)構(gòu)本體與SWRL規(guī)則導(dǎo)入Jess[16]推理引擎中進(jìn)行推理,得到隱含的變量間關(guān)系,從而驗(yàn)證本文中方法的可行性;其次,采用公開樣本集進(jìn)行測(cè)試,分析該方法的實(shí)用性;最后,針對(duì)推理引擎的推理性能進(jìn)行大量的推理實(shí)驗(yàn),給出系統(tǒng)的性能分析。

      3.1 推理實(shí)現(xiàn)

      安裝并配置推理引擎Jess,在規(guī)則編輯處添加設(shè)定的所有SWRL規(guī)則;通過(guò)Protégé本體構(gòu)建工具添加控制結(jié)構(gòu)的本體實(shí)例,實(shí)例的自動(dòng)化添加可采用Jena提供的接口。

      以程序2、3為例,程序3來(lái)自EC-SPRIDE(European Center for Security and Privacy by Design)研究機(jī)構(gòu)貢獻(xiàn)的DroidBench1.2,它用來(lái)對(duì)手機(jī)的IMEI進(jìn)行轉(zhuǎn)換以逃避檢測(cè);將其與圖2(b)中的程序段添加到本體實(shí)例。詳細(xì)的SWRL規(guī)則和實(shí)驗(yàn)結(jié)果示例如圖3所示。圖3的SWRL規(guī)則中,Branch1-Rule1和Branch1-Rule2表達(dá)的意思為:如果實(shí)例為單分支結(jié)構(gòu),且條件表達(dá)式的謂詞變量和一般語(yǔ)句變量均存在,那么操作為等價(jià)操作與非等價(jià)操作時(shí)的變量間關(guān)系不同,輸出不同推理結(jié)果。Branch2-Rule和Branch3-Rule等分別表示分支數(shù)為2和3等情況下的規(guī)則。

      程序2

      S1 secret1=get_input();

      S2 switch(secret1){

      S3 case ′a′:pub1=′a′;pub2=0;mt="post";break;

      S4 case′b′:pub1=′b′;pub2=0;mt="post";break;

      為了分析深港股市股指收益率波動(dòng)動(dòng)態(tài)傳遞程度是否在“深港通”開通前后兩階段發(fā)生變化,將兩地市場(chǎng)的日收益率動(dòng)態(tài)關(guān)聯(lián)性的數(shù)據(jù)分為前后兩段,然后進(jìn)行配對(duì)樣本T檢驗(yàn),結(jié)果如表5所示。

      S5 case ′c′:pub1=′c′;pub2=1;mt="post";break;

      S6 case ′d′:pub1=′d′;pub2=1;mt="post";break;}

      S7 send(pub1,pub2,mt);

      圖3 SWRL規(guī)則和實(shí)驗(yàn)結(jié)果示例

      程序3

      S1 private String obfuscateIMEI(String secret){

      S2 String pub="";

      S4 switch(c){

      S5 case ′0′:pub+=′a′;break;

      S6 case ′1′:pub+=′b′;break;

      S7 case ′2′:pub+=′c′;break;

      S8 case ′3′:pub+=′d′;break;

      S9 case ′4′:pub+=′e′;break;

      S10 case ′5′:pub+=′f′;break;

      S11 case ′6′:pub+=′g′;break;

      S12 case ′7′:pub+=′h′;break;

      S13 case ′8′:pub+=′i′;break;

      S14 case ′9′:pub+=′j′;break;

      S15 default:System.err.println("Problem in obfuscate IMEI for

      character:"+c);}

      S16 }

      S17 return pub;

      S18 }

      從實(shí)驗(yàn)結(jié)果看,該推理系統(tǒng)可以對(duì)secret、pub、secret1、pub1、pub2、mt等變量之間是否存在隱式信息泄露作出準(zhǔn)確判斷,圖3中的實(shí)驗(yàn)推理結(jié)果如表4所示,推理結(jié)果是多個(gè)隱式流的變量關(guān)系集合,稱其為隱式流集。

      在表4中:相關(guān)系數(shù)r為1的變量間存在基于SCD的隱式信息泄露,信息的映射關(guān)系是1- 2- 1(一對(duì)一);r∈(0,1)的變量間也存在基于SCD的隱式信息泄露,同時(shí)存在1- 2- 1與n- 2- 1(多對(duì)一)映射(或同時(shí)存在多個(gè)n- 2- 1映射);所謂多對(duì)一映射就是指多個(gè)基于SCD的分支語(yǔ)句中,存在兩個(gè)或以上分支的條件表達(dá)式對(duì)應(yīng)的一般語(yǔ)句變量值相同;r=0的變量間不存在基于SCD隱式信息泄露。

      表4 實(shí)驗(yàn)推理結(jié)果

      3.2 公開樣本集測(cè)試

      為驗(yàn)證方法的實(shí)用性,實(shí)驗(yàn)采用了樣本庫(kù)DroidBench[1]中的4個(gè)隱式流用例ImplicitFlow1~4以及樣本庫(kù)Android Malware Genome Project[17]中的3款隱私竊取惡意軟件GoldDream、DroidKungFu、GamblerSMS進(jìn)行了測(cè)試,漏洞在DroidBench中的位置是已知的,3款惡意軟件均在特定的位置添加了隱式流漏洞;輔助工具為apk反編譯工具apktool、dex2jar。結(jié)果如表5所示,其中:“LOC”表示程序的規(guī)模,“Source/Sink”表示程序擁有的Source和Sink要素?cái)?shù)量[18],R表示檢出的隱式流漏洞數(shù),TR表示檢查后確認(rèn)的真實(shí)隱式流漏洞數(shù)。

      由表5的測(cè)試結(jié)果可知,本體模型能夠檢測(cè)出所有樣本中的隱式流漏洞24個(gè),其中真實(shí)漏洞20個(gè),檢測(cè)準(zhǔn)確率達(dá)到83.3%。該結(jié)果表明,使用本體模型進(jìn)行隱式流的檢測(cè)具有顯著的效果。

      表5 樣本集實(shí)驗(yàn)結(jié)果

      3.3 推理性能分析

      本體模型與推理引擎結(jié)合的推理效率分析是必要的,結(jié)構(gòu)合理的本體模型能夠提升推理效率。性能分析從兩個(gè)方面進(jìn)行:首先,在本體中添加30個(gè)實(shí)例,該實(shí)例來(lái)源于惡意樣本中已知的隱式流控制結(jié)構(gòu),考慮30個(gè)本體實(shí)例的控制結(jié)構(gòu)分支數(shù)依次遞增時(shí)的平均推理耗時(shí),平均耗時(shí)數(shù)據(jù)取6組測(cè)試的平均值,單位均為ms,如圖4所示。其次,以6個(gè)本體實(shí)例為一組,6個(gè)實(shí)例分別為6種不同分支數(shù)的結(jié)構(gòu),遞增組數(shù),觀察平均推理耗時(shí)的變化情況,如圖5所示。

      圖4 分支數(shù)遞增的平均耗時(shí)曲線

      對(duì)于只是實(shí)例數(shù)量增加的圖5,其耗時(shí)上升速度明顯低于圖4的分支數(shù)遞增導(dǎo)致的耗時(shí)上升速度,從而可得結(jié)論:推理性能的好壞取決于推理規(guī)則的復(fù)雜程度,隨著分支數(shù)的增加,規(guī)則變得復(fù)雜,因而耗時(shí)上升較快。

      圖5 實(shí)例數(shù)遞增的平均耗時(shí)曲線

      4 結(jié)語(yǔ)

      本文從Android隱式信息流的產(chǎn)生原因入手,分析了能夠產(chǎn)生隱式信息流的控制結(jié)構(gòu),并對(duì)控制結(jié)構(gòu)的基本控制依賴關(guān)系與SCD關(guān)系進(jìn)行了定義;分析出基于SCD的隱式流是導(dǎo)致隱式信息泄露的主要原因。為解決Android應(yīng)用中隱式流的準(zhǔn)確檢測(cè)問(wèn)題,構(gòu)建了控制結(jié)構(gòu)領(lǐng)域本體模型,給出由隱式流分析得到的SWRL規(guī)則,并在本體中添加了樣本實(shí)例,共同導(dǎo)入到Jess進(jìn)行了推理分析。對(duì)DroidBench和Malware Genome Project惡意軟件樣本的實(shí)驗(yàn)結(jié)果表明,該模型能夠有效地進(jìn)行隱式信息泄露的推理,且推理結(jié)果與人工分析得出的結(jié)論一致。

      需要指出的是:基于松散控制依賴的隱式流無(wú)法建立變量間的一對(duì)一映射關(guān)系,對(duì)信息泄露威脅較小,故本文未予考慮;不足之處在于文中的本體實(shí)例尚未實(shí)現(xiàn)自動(dòng)化添加,下一步可以采用Jena接口實(shí)現(xiàn)自動(dòng)添加,提升效率。

      References)

      [1] 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.

      [2] GORDON M I, KIM D, PERKINS J, et al. Information-flow analysis of Android applications in DroidSafe [C]// Proceedings of the 22nd Network and Distributed System Security Symposium. San Diego, CA: ISOC, 2015: 1-16.

      [3] ENCK W, GILBERT P, HAN S, et al. TaintDroid: an information-flow tracking system for realtime privacy monitoring on smartphones [J]. ACM Transactions on Computer Systems, 2014, 32(2): 5-19.

      [4] 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]// Proceedings of the 2010 IEEE symposium on Security and Privacy. Piscataway, NJ: IEEE, 2010: 317-331.

      [5] YOU W, LIANG B, LI J, et al. Android implicit information flow demystified [C]// Proceedings of the 10th ACM Symposium on Information, Computer and Communications Security. Now York: ACM, 2015: 585-590.

      [6] 過(guò)辰楷,許靜,司冠南,等.面向移動(dòng)應(yīng)用軟件信息泄露的模型檢測(cè)研究[J].計(jì)算機(jī)學(xué)報(bào),2016,39(11):2324-2343.(GUO C K, XU J, SI G N, et al. Model checking for software information leakage in mobile application [J]. Chinese Journal of Computers, 2016, 39(11): 2324-2343.)

      [7] CLAUSE J, LI W, ORSO A. Dytan: a generic dynamic taint analysis framework [C]// Proceedings of the 2007 International Symposium on Software Testing and Analysis. New York: ACM, 2007: 196-206.

      [8] 杜小勇,李曼,王珊.本體學(xué)習(xí)研究綜述[J].軟件學(xué)報(bào),2006,17(9):1837-1847.(DU X Y, LI M, WANG S. A survey on ontology learning research [J]. Journal of Software, 2006, 17(9): 1837-1847.)

      [9] 葛強(qiáng),沈國(guó)華,黃志球,等.Web服務(wù)中支持本體推理的隱私保護(hù)研究[J].計(jì)算機(jī)科學(xué)與探索,2013,7(6):536-544.(GE Q, SHEN G H, HUANG Z Q, et al. Research on privacy protection based on ontology in Web service [J]. Journal of Frontiers of Computer Science and Technology, 2013, 7(6): 536-544.)

      [10] HORROCKS I, PATEL-SCHNEIDER P F, BOLEY H, et al. SWRL: a semantic Web rule language combining OWL and RuleML [R]. [S.l.]: W3C Member Submission, 2004.

      [11] BAO T, ZHENG Y, LIN Z, et al. Strict control dependence and its effect on dynamic information flow analyses [C]// Proceedings of the 19th International Symposium on Software Testing and Analysis. New York: ACM, 2010: 13-24.

      [12] KWON Y, KIM D, SUMNER W N, et al. LDX: Causality inference by lightweight dual execution [C]// Proceedings of the 2016 International Conference on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2016: 503-515.

      [13] 周亮,黃志球,倪川.基于SWRL規(guī)則的本體推理研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2015,25(10):67-70.(ZHOU L, HUANG Z Q, NI C. Research on ontology reasoning based on SWRL rules [J]. Computer Technology and Development, 2015, 25(10): 67-70.)

      [14] YADAV U, NARULA G S, DUHAN N, et al. Development and visualization of domain specific ontology using Protégé [J]. Indian Journal of Science and Technology, 2016, 9(16): 1-7.

      [15] MUSEN M A. The Protégé project: a look back and a look forward [J]. AI Matters, 2015, 1(4): 4-12.

      [16] BAK J, JEDRZEJEK C, FALKOWSKI M. Usage of the Jess engine, rules and ontology to query a relational database [C]// Proceedings of the 2009 International Workshop on Rules and Rule Markup Languages for the Semantic Web. Berlin: Springer, 2009: 216-230.

      [17] ZHOU Y, JIANG X. Dissecting android malware: characterization and evolution [C]// Proceedings of the 2012 IEEE Symposium on Security and Privacy. Piscataway, NJ: IEEE, 2012: 95-109.

      [18] RASTHOFER S, ARZT S, BODDEN E. A machine-learning approach for classifying and categorizing Android sources and sinks [C]// Proceedings of the 21nd Network and Distributed System Security Symposium. San Diego, CA: ISOC, 2014: 1-15.

      This work is partially supported by the National Natural Science Foundation of China (61370065, 61502040),the National Key Technology Research and Development Program of the Ministry of Science and Technology of China (2015BAK12B03- 03),the Opening Foundation of Key Laboratory of Internet Culture and Digital Dissemination (ICDDXN001).

      LIUQiyuan, born in 1992, M. S. candidate. His research interests include network security, malicious code analysis of intelligent terminal.

      JIAOJian, born in 1978, Ph. D., associate professor. His research interests include network measurement, network security.

      CAOHongsheng, born in 1989, M. S. candidate. His research interests include network security.

      猜你喜歡
      控制結(jié)構(gòu)信息流分支
      基于信息流的作戰(zhàn)體系網(wǎng)絡(luò)效能仿真與優(yōu)化
      幾種防空導(dǎo)彈自動(dòng)駕駛儀的研究分析
      航天控制(2020年4期)2020-09-03 10:46:16
      巧分支與枝
      基于ATO控制結(jié)構(gòu)的地鐵列車智慧節(jié)能技術(shù)
      基于信息流的RBC系統(tǒng)外部通信網(wǎng)絡(luò)故障分析
      戰(zhàn)區(qū)聯(lián)合作戰(zhàn)指揮信息流評(píng)價(jià)模型
      一類擬齊次多項(xiàng)式中心的極限環(huán)分支
      基于任務(wù)空間的體系作戰(zhàn)信息流圖構(gòu)建方法
      SIL定量計(jì)算評(píng)估方法在BPCS中的應(yīng)用
      生成語(yǔ)法中的控制結(jié)構(gòu)研究述評(píng)
      鹤岗市| 陕西省| 兴山县| 德令哈市| 石渠县| 安平县| 章丘市| 磐石市| 霍山县| 保靖县| 阿拉善右旗| 全州县| 巢湖市| 张家港市| 诸城市| 沂水县| 南召县| 峨眉山市| 比如县| 楚雄市| 商南县| 庄浪县| 新津县| 诸城市| 泽普县| 榕江县| 成都市| 湘阴县| 郎溪县| 乌审旗| 岳池县| 休宁县| 阜新| 剑阁县| 崇仁县| 怀宁县| 洛浦县| 郓城县| 清原| 承德县| 长沙县|