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

?

基于Hook技術(shù)的Android平臺(tái)隱私保護(hù)系統(tǒng)

2018-05-26 06:55朱曉妍章輝馬建峰
關(guān)鍵詞:共謀規(guī)則分類

朱曉妍,章輝,馬建峰

?

基于Hook技術(shù)的Android平臺(tái)隱私保護(hù)系統(tǒng)

朱曉妍1,章輝1,馬建峰2

(1. 西安電子科技大學(xué)通信工程學(xué)院,陜西 西安 710071;2. 西安電子科技大學(xué)網(wǎng)絡(luò)與信息安全學(xué)院,陜西 西安 710071)

針對(duì)Android中惡意應(yīng)用竊取用戶隱私的問題,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于Hook技術(shù)的隱私保護(hù)系統(tǒng)。該系統(tǒng)包括應(yīng)用分類模塊、隱私信息管理模塊和共謀攻擊管理模塊。應(yīng)用分類模塊利用權(quán)限特征向量集構(gòu)建分類模型,對(duì)手機(jī)上的應(yīng)用進(jìn)行分類;隱私信息管理模塊利用Hook技術(shù)對(duì)所有涉及隱私信息的API進(jìn)行掛鉤,通過返回虛假值或者空值,攔截惡意應(yīng)用獲取隱私信息;共謀攻擊管理模塊同樣使用Hook技術(shù),對(duì)提供應(yīng)用間通信的API進(jìn)行掛鉤,當(dāng)通信雙方滿足共謀攻擊的權(quán)限規(guī)則,通過返回空值實(shí)現(xiàn)攔截雙方的通信內(nèi)容。最后,通過實(shí)驗(yàn)驗(yàn)證了該系統(tǒng)的可行性和有效性,并且該系統(tǒng)不需要對(duì)Android系統(tǒng)和應(yīng)用進(jìn)行修改,占用的內(nèi)存較小,能夠?qū)崟r(shí)攔截竊取隱私的行為。

隱私保護(hù);Android平臺(tái);Hook技術(shù);共謀攻擊;權(quán)限管理

1 引言

近年來,隨著移動(dòng)互聯(lián)網(wǎng)的迅速發(fā)展,智能手機(jī)幾乎成為人們生活及工作中的必需品。根據(jù)美國(guó)市場(chǎng)研究公司Gartner[1]發(fā)布的2017年全球智能手機(jī)系統(tǒng)市場(chǎng)份額報(bào)告顯示,全球手機(jī)銷量超過15億臺(tái),其中,搭載Android系統(tǒng)的手機(jī)在全球手機(jī)市場(chǎng)的占有率達(dá)到85.9%,以絕對(duì)的優(yōu)勢(shì)占據(jù)著主導(dǎo)地位。與此同時(shí),Android各類應(yīng)用軟件激增,為用戶帶來方便的同時(shí)也帶來了危險(xiǎn),因?yàn)槠渲胁环τ行孤峨[私信息的惡意應(yīng)用,對(duì)用戶的隱私數(shù)據(jù)造成了嚴(yán)重的威脅。

針對(duì)Android智能手機(jī)隱私泄露的問題,國(guó)內(nèi)外經(jīng)典的惡意應(yīng)用檢測(cè)技術(shù)主要是基于行為的檢測(cè)技術(shù)。

首先出現(xiàn)的是靜態(tài)分析方法,采用靜態(tài)數(shù)據(jù)流分析技術(shù)對(duì)應(yīng)用中的敏感數(shù)據(jù)流向進(jìn)行分析,如Gibler等[2]提出的AndroidLeaks系統(tǒng)、Yang等[3]提出的Leakminer系統(tǒng)、Arzt等[4]提出的Flowdroid系統(tǒng)。靜態(tài)分析方法雖然具有運(yùn)行速度快、代碼覆蓋率高的特點(diǎn),但無法解決代碼混淆、加固的問題,因此出現(xiàn)了動(dòng)態(tài)分析方法。動(dòng)態(tài)分析方法根據(jù)應(yīng)用程序運(yùn)行時(shí)敏感信息的傳輸特征,動(dòng)態(tài)監(jiān)控應(yīng)用泄露隱私的行為,其中,最著名的是Enck等[5]設(shè)計(jì)的TaintDroid系統(tǒng),該系統(tǒng)修改了Android內(nèi)核代碼,使用動(dòng)態(tài)污點(diǎn)分析技術(shù)對(duì)隱私數(shù)據(jù)進(jìn)行標(biāo)記,當(dāng)被標(biāo)記的隱私數(shù)據(jù)通過網(wǎng)絡(luò)或者其他途徑離開手機(jī)系統(tǒng)時(shí),TaintDroid會(huì)記錄隱私數(shù)據(jù)的去向,并警告用戶。之后研究者對(duì)TaintDroid進(jìn)行改進(jìn),設(shè)計(jì)出其他類似的系統(tǒng),如Hornyack等[6]設(shè)計(jì)的AppFence系統(tǒng)和Lantz等[7]設(shè)計(jì)的DroidBox系統(tǒng)。

近年來,基于動(dòng)態(tài)污點(diǎn)分析技術(shù)的思想,研究者設(shè)計(jì)出不需要對(duì)Android系統(tǒng)進(jìn)行修改的動(dòng)態(tài)分析系統(tǒng)。Rastogi等[8]提出的Uranine通過對(duì)應(yīng)用進(jìn)行修改,實(shí)現(xiàn)對(duì)應(yīng)用的動(dòng)態(tài)監(jiān)控:首先對(duì)應(yīng)用進(jìn)行反編譯,然后注入污染代碼,最后將應(yīng)用重打包。You等[9]提出的TaintMan同樣采取注入污染代碼的方式對(duì)應(yīng)用進(jìn)行修改,同時(shí)對(duì)庫(kù)文件進(jìn)行導(dǎo)出,然后對(duì)庫(kù)文件注入污染代碼,最后將庫(kù)文件重新導(dǎo)入,實(shí)現(xiàn)對(duì)應(yīng)用更全面的動(dòng)態(tài)監(jiān)控。

雖然動(dòng)態(tài)分析方法解決了靜態(tài)分析不能解決的問題,但是也存在代碼覆蓋率不足、運(yùn)行慢等問題,因此研究者結(jié)合2種分析方法的優(yōu)勢(shì),提出了動(dòng)靜態(tài)結(jié)合分析方法。Yang等[10]提出的AppIntent首先利用靜態(tài)分析方法獲取應(yīng)用中敏感數(shù)據(jù)傳播的候選集,然后通過動(dòng)態(tài)符號(hào)化執(zhí)行驗(yàn)證候選敏感數(shù)據(jù)流是否會(huì)發(fā)生。Xia等[11]提出的AppAudit首先使用靜態(tài)方法找出可疑函數(shù),然后通過近似執(zhí)行的動(dòng)態(tài)分析方法執(zhí)行部分應(yīng)用代碼,有效猜測(cè)未知變量,保證分析路徑盡可能完全。

近年來,數(shù)據(jù)挖掘技術(shù)也被應(yīng)用到檢測(cè)惡意應(yīng)用中[12]。楊歡等[13]提出的Androdect系統(tǒng)首先利用靜態(tài)和動(dòng)態(tài)方法獲取應(yīng)用盡可能多的特征,然后分別對(duì)不同特征應(yīng)用不同的分類器,最后通過判決算法對(duì)應(yīng)用進(jìn)行分類。Talha等[14]提出的APKAuditor系統(tǒng)首先使用靜態(tài)方法獲取應(yīng)用權(quán)限特征,利用概率論方法對(duì)每個(gè)權(quán)限進(jìn)行評(píng)分,然后用Logistic回歸方法確定惡意應(yīng)用分?jǐn)?shù)的臨界值。

由于針對(duì)單個(gè)應(yīng)用的檢測(cè)已經(jīng)有很多方法,近幾年出現(xiàn)了隱蔽性更高的共謀攻擊。Bhandari等[15]針對(duì)內(nèi)部組件通信而導(dǎo)致的共謀攻擊提出了一種自動(dòng)化框架,首先利用靜態(tài)分析技術(shù)獲取2個(gè)應(yīng)用的通信流向,然后通過自定義權(quán)限策略判斷是否存在共謀攻擊。Bugiel等[16,17]設(shè)計(jì)了XManDroid框架,該框架能夠分別從Android中間層、內(nèi)核層監(jiān)控應(yīng)用間通信,同樣通過自定義權(quán)限策略判斷是否存在共謀攻擊。Blasco等[18]針對(duì)共謀攻擊開發(fā)出ACE系統(tǒng),該系統(tǒng)能夠根據(jù)配置文件自動(dòng)生成共謀攻擊應(yīng)用對(duì),為共謀攻擊實(shí)驗(yàn)提供樣本集。

基于以上提出技術(shù)的優(yōu)點(diǎn)以及存在的問題,本文提出一種數(shù)據(jù)挖掘分類、Hook技術(shù)監(jiān)控和攔截的用戶隱私信息保護(hù)系統(tǒng)。該系統(tǒng)提取基于權(quán)限的靜態(tài)特征作為訓(xùn)練集,對(duì)智能手機(jī)上的應(yīng)用進(jìn)行分類判斷,同時(shí)使用Hook技術(shù)對(duì)用戶隱私信息的獲取進(jìn)行監(jiān)控及攔截,針對(duì)隱蔽性較高的共謀攻擊,采用Hook技術(shù)監(jiān)控應(yīng)用間通信渠道,對(duì)滿足共謀攻擊規(guī)則的應(yīng)用進(jìn)行攔截,實(shí)現(xiàn)更加全面的用戶隱私信息保護(hù)。本文設(shè)計(jì)了多個(gè)實(shí)驗(yàn)對(duì)VirusShare網(wǎng)站上的惡意應(yīng)用和應(yīng)用市場(chǎng)上的非惡意應(yīng)用進(jìn)行檢測(cè),證明本文提出方法的有效性,相比于基于DTA技術(shù)的檢測(cè)系統(tǒng),該系統(tǒng)不需要修改Android系統(tǒng)和應(yīng)用本身,占用的內(nèi)存不會(huì)隨著系統(tǒng)的運(yùn)行成倍增加,相比于文獻(xiàn)[15]和文獻(xiàn)[17]的權(quán)限策略,本文制訂權(quán)限規(guī)則降低了誤報(bào)率,并且該系統(tǒng)能夠?qū)崟r(shí)攔截竊取隱私的行為。

2 系統(tǒng)框架

本文提出了一種基于數(shù)據(jù)挖掘技術(shù)和Hook技術(shù)的Android用戶隱私信息保護(hù)系統(tǒng),能夠檢測(cè)與攔截惡意應(yīng)用,保護(hù)用戶的隱私信息。該系統(tǒng)將權(quán)限信息作為分類特征,對(duì)手機(jī)上的應(yīng)用進(jìn)行分類,同時(shí)使用Hook技術(shù)對(duì)應(yīng)用獲取隱私信息的行為進(jìn)行監(jiān)控與攔截;針對(duì)共謀攻擊,同樣使用Hook技術(shù)監(jiān)控應(yīng)用間通信,對(duì)于滿足共謀攻擊規(guī)則的應(yīng)用行為進(jìn)行攔截。

系統(tǒng)結(jié)構(gòu)框架如圖1所示,該系統(tǒng)由3部分組成:應(yīng)用分類模塊、隱私信息管理模塊和共謀攻擊管理模塊,具體介紹如下。

1) 應(yīng)用分類模塊

圖1 系統(tǒng)結(jié)構(gòu)框架

提取從網(wǎng)絡(luò)上收集的正常應(yīng)用與惡意應(yīng)用的權(quán)限特征,將各自的權(quán)限信息組合成權(quán)限向量,所有權(quán)限向量組合成的向量集作為數(shù)據(jù)挖掘分類算法的訓(xùn)練集,生成分類模型,內(nèi)置在系統(tǒng)中;對(duì)于手機(jī)上的應(yīng)用,通過Android系統(tǒng)提供的PackageManager類獲取權(quán)限信息,組合成特征向量,根據(jù)分類模型進(jìn)行分類判斷,輸出分類結(jié)果。

2) 隱私信息管理模塊

使用Hook技術(shù)對(duì)提供涉及用戶隱私信息的接口進(jìn)行Hook,用戶隱私信息包括聯(lián)系人信息、通話記錄、短信信息、電話標(biāo)識(shí)、地理位置、瀏覽歷史、日歷信息、多媒體文件等,當(dāng)分類為惡意的應(yīng)用調(diào)用涉及用戶隱私信息的接口時(shí),將空值或者隨機(jī)生成的虛假值替換這些接口的返回值,實(shí)現(xiàn)對(duì)用戶隱私信息的攔截,對(duì)于分類為正常的應(yīng)用不予攔截。

3) 共謀攻擊管理模塊

使用Hook技術(shù)對(duì)提供應(yīng)用間通信的接口進(jìn)行Hook,通信渠道包括Intent、ContentProvider、SharedPreferences以及External Storage,當(dāng)2個(gè)分類為正常的應(yīng)用調(diào)用提供通信的接口并訪問同一個(gè)位置時(shí),對(duì)雙方權(quán)限信息進(jìn)行共謀攻擊權(quán)限規(guī)則判斷,若滿足規(guī)則,將空值替換通信渠道接口的返回值,實(shí)現(xiàn)對(duì)通信內(nèi)容的攔截,并對(duì)雙方的隱私信息獲取和外部訪問能力進(jìn)行限制,否則不予攔截。

3 關(guān)鍵技術(shù)及實(shí)現(xiàn)

3.1 特征構(gòu)建

系統(tǒng)中的特征構(gòu)建采用的是靜態(tài)分析技術(shù),圖2為特征構(gòu)建的流程,具體步驟如下。

1) 使用反編譯軟件對(duì)應(yīng)用apk文件進(jìn)行批量反編譯操作,獲得反編譯文件夾中的AndroidManifest. xml文件。

2) 使用腳本對(duì)每個(gè)xml文件進(jìn)行解析,提取其中的權(quán)限特征信息,各自放到一個(gè)集合中。

3) 自定義權(quán)限向量矩陣,并根據(jù)權(quán)限信息集對(duì)權(quán)限向量矩陣進(jìn)行賦值,將權(quán)限向量矩陣作為特征向量集。

上述步驟除了反編譯操作使用軟件進(jìn)行,其余步驟都是通過Python腳本自動(dòng)執(zhí)行。首先通過ElementTree解析AndroidManifest.xml文件,獲取所有節(jié)點(diǎn)的內(nèi)容,并放進(jìn)一個(gè)列表中。然后將Android提供的所有權(quán)限信息按照字母順序生成一個(gè)權(quán)限向量,向量元素只包含1和0,1表示應(yīng)用具有元素對(duì)應(yīng)的權(quán)限,0表示應(yīng)用不具有元素對(duì)應(yīng)的權(quán)限,再在這個(gè)向量中添加一個(gè)元素表示應(yīng)用類型,1表示惡意應(yīng)用,0表示正常應(yīng)用,形成特征向量。將這些特征向量放進(jìn)一個(gè)CSV文件中,形成一個(gè)訓(xùn)練集。

圖2 特征構(gòu)建流程

3.2 Hook技術(shù)

系統(tǒng)中隱私信息管理模塊和共謀攻擊管理模塊的監(jiān)控和攔截都是基于Hook技術(shù),其中,隱私信息管理模塊主要對(duì)涉及用戶隱私信息的接口進(jìn)行Hook,而共謀攻擊管理模塊主要對(duì)應(yīng)用間的通信渠道進(jìn)行Hook,下面分別介紹2個(gè)模塊實(shí)現(xiàn)Hook的細(xì)節(jié)。

3.2.1 隱私信息Hook

Android框架層中提供了很多管理系統(tǒng)服務(wù)的接口,可以通過這些接口獲取所需的系統(tǒng)資源,首先需要通過getSystemService函數(shù)獲取相關(guān)管理類,其中,LocationManager類和TelephonyManager類分別提高了位置信息和電話信息的獲取,因此這2個(gè)類中的一些函數(shù)是Hook的目標(biāo)。

Android四大組件之一的ContentProvider可以用來實(shí)現(xiàn)應(yīng)用程序之間共享數(shù)據(jù),Android系統(tǒng)通過默認(rèn)的URL路徑為開發(fā)者提供常見的數(shù)據(jù)獲取方法,其中,聯(lián)系人、通話記錄、短信、瀏覽記錄、日歷信息、多媒體文件等就是通過這種方式獲取的。本方案調(diào)用getContentResolver函數(shù)得到對(duì)象來獲取query函數(shù)。因?yàn)閝uery函數(shù)根據(jù)傳入的URL值返回對(duì)應(yīng)的數(shù)據(jù),本方案把它作為Hook的目標(biāo)。

表1展示了部分被Hook的提供用戶隱私信息的接口結(jié)構(gòu)。

3.2.2 應(yīng)用間通信渠道Hook

Intent是Android組件之間相互通信的紐帶,封裝了不同組件之間通信的條件,根據(jù)這些條件啟動(dòng)或者喚醒想要通信的組件,而這些組件可以位于不同應(yīng)用中。2個(gè)組件通信時(shí),發(fā)送方可以通過putExtra等函數(shù)攜帶數(shù)據(jù),接收方通過getExtra等函數(shù)獲得數(shù)據(jù),因此,Intent類中傳遞數(shù)據(jù)和獲取數(shù)據(jù)的函數(shù)是hook的目標(biāo)。

表1 提供用戶隱私信息的接口結(jié)構(gòu)

ContentProvider組件不僅可以獲取系統(tǒng)資源,也可以通過自定義URL路徑實(shí)現(xiàn)自己的數(shù)據(jù)共享。ContentProvider提供了類似于數(shù)據(jù)庫(kù)的操作,通過insert、delete、update和query函數(shù)實(shí)現(xiàn)增刪改查,因此,ContentResolver類中插入、修改和查詢的函數(shù)是Hook的目標(biāo)。

Android文件系統(tǒng)提供了SharedPreferences和外部存儲(chǔ)對(duì)數(shù)據(jù)進(jìn)行存放和讀取,其中SharedPreferences實(shí)際上是一個(gè)xml文件,而外部存儲(chǔ)的文件可以是任何格式。不管使用哪種方式,最終都會(huì)調(diào)用IoBridge類的open函數(shù),因此open函數(shù)是Hook的目標(biāo)。

表2展示了部分被Hook的應(yīng)用間通信渠道接口結(jié)構(gòu)。

表2 應(yīng)用間通信渠道的接口結(jié)構(gòu)

3.2.3 Xposed模塊實(shí)現(xiàn)

確定了Hook目標(biāo),就可以進(jìn)行Hook操作。著名的開源項(xiàng)目XPosed是一個(gè)基于Java層Hook的框架服務(wù),其Hook函數(shù)的原理就是修改Java虛擬機(jī)調(diào)用函數(shù)的方式,將指向原函數(shù)的指針指向自己實(shí)現(xiàn)的函數(shù),然后在這個(gè)函數(shù)中調(diào)用原來的函數(shù),并在調(diào)用前后插入鉤子,這樣就達(dá)到Hook的目的。

本文基于XPosed框架實(shí)現(xiàn)了一個(gè)Hook模塊,針對(duì)以上提到的接口進(jìn)行Hook,添加的操作主要位于上述接口之前。

針對(duì)涉及用戶隱私信息的各個(gè)接口的處理流程大致相同,具體過程如下。

1) 對(duì)于LocationManager類和Telephony Manager類,獲取類的所有接口名稱,對(duì)于ContentResolver類,獲取query方法的參數(shù)信息。

2) 根據(jù)接口的名稱或者接口的參數(shù)判斷通過該接口能否獲取隱私信息。

3) 若不能獲取隱私信息,結(jié)束處理流程;若可以,查詢應(yīng)用分類模塊中的惡意應(yīng)用數(shù)據(jù)庫(kù)是否存在調(diào)用該接口的應(yīng)用的名稱。

4) 若不存在,結(jié)束處理流程;若存在,生成與該接口返回?cái)?shù)據(jù)類型相同的虛假數(shù)據(jù),作為該接口的返回值。

針對(duì)所提供應(yīng)用間通信的各個(gè)接口的處理流程,可以根據(jù)處理數(shù)據(jù)的不同分為兩類,具體過程如下。

存儲(chǔ)數(shù)據(jù)的接口的處理流程如下。

1) 通過接口的參數(shù)獲取存儲(chǔ)位置,并通過Binder類的接口獲取調(diào)用該接口的應(yīng)用的名稱。

2) 查詢應(yīng)用分類模塊的惡意應(yīng)用數(shù)據(jù)庫(kù)中是否存在該應(yīng)用的名稱。

3) 若存在,結(jié)束處理流程,若不存在,將該應(yīng)用的名稱、存儲(chǔ)數(shù)據(jù)的位置和通信渠道類型寫入共謀攻擊數(shù)據(jù)庫(kù)中。

讀取數(shù)據(jù)的接口的處理流程如下。

1) 通過接口的參數(shù)獲取讀取位置,并通過Binder類的接口獲取調(diào)用該接口的應(yīng)用的名稱。

2) 查詢應(yīng)用分類模塊的惡意應(yīng)用數(shù)據(jù)庫(kù)中是否存在該應(yīng)用的名稱。

3) 若存在,結(jié)束處理流程;若不存在,查詢共謀攻擊數(shù)據(jù)庫(kù)中是否存在通信位置和通信類型相同但是應(yīng)用名稱不同的記錄。

4) 若不存在,結(jié)束處理流程;若存在,獲取兩個(gè)應(yīng)用的權(quán)限信息,并判斷是否符合權(quán)限規(guī)則。

5) 若不符合規(guī)則,結(jié)束處理流程;若符合,將2個(gè)應(yīng)用的名稱寫入惡意應(yīng)用數(shù)據(jù)庫(kù)中,并將空值作為接口的返回值。

3.3 共謀攻擊規(guī)則

為了隱蔽自己的行為,一些惡意應(yīng)用的作者將獲取隱私信息的行為和發(fā)送隱私信息的行為分割到2個(gè)應(yīng)用執(zhí)行,減少了每個(gè)應(yīng)用申請(qǐng)的權(quán)限,而一般的檢測(cè)工具都是針對(duì)單個(gè)應(yīng)用的,通常很難檢測(cè)到這種攻擊。系統(tǒng)針對(duì)數(shù)據(jù)挖掘分類不能很好檢測(cè)出共謀攻擊的問題,設(shè)計(jì)了一種針對(duì)共謀攻擊的檢測(cè)規(guī)則。

應(yīng)用獲取隱私信息和訪問外界都需要申請(qǐng)相應(yīng)的權(quán)限,因此可以針對(duì)應(yīng)用的權(quán)限進(jìn)行分析。文獻(xiàn)[15]中提出若一個(gè)申請(qǐng)了某種隱私權(quán)限的應(yīng)用通過Intent傳遞了信息,而接收Intent的應(yīng)用申請(qǐng)了某種外部訪問權(quán)限,那么它們之間可能存在共謀攻擊。而實(shí)際上有些正常應(yīng)用會(huì)相互調(diào)用,如在支付時(shí),可能會(huì)調(diào)用支付寶或者微信,而雙方可能滿足了這種權(quán)限規(guī)則,這種情況下進(jìn)行攔截就會(huì)造成交易異常。因此,本文在這種規(guī)則的基礎(chǔ)上,添加了一些限制,從而減小誤判的概率。

定義集合P為所有隱私權(quán)限的集合,集合T為所有外部訪問權(quán)限的集合,對(duì)于2個(gè)應(yīng)用A和B,定義它們的權(quán)限集合為A和B,若2個(gè)應(yīng)用同時(shí)滿足以下式子,則認(rèn)為雙方存在共謀攻擊。

其中,式(1)表示應(yīng)用A申請(qǐng)了隱私權(quán)限,式(3)應(yīng)用B申請(qǐng)了外部訪問權(quán)限,式(2)和式(4)是針對(duì)共謀攻擊的分割性,同時(shí)為了降低誤判而添加的條件,式(2)表示應(yīng)用A沒有申請(qǐng)外部訪問的權(quán)限,式(4)表示應(yīng)用B沒有申請(qǐng)隱私權(quán)限。

4 實(shí)驗(yàn)分析

4.1 實(shí)驗(yàn)工具及環(huán)境

本文所有實(shí)驗(yàn)在內(nèi)存為6 GB,處理器為Intel(R) Core i5-3210M 2.50 GHz的Windows7系統(tǒng)上完成,Android虛擬機(jī)系統(tǒng)版本為4.4。特征構(gòu)建部分和樣本收集部分使用Python語(yǔ)言,在Eclipse平臺(tái)上完成,其他部分使用Java語(yǔ)言,在Android Studio平臺(tái)上完成。

4.2 實(shí)驗(yàn)組成

1) 應(yīng)用分類模塊測(cè)試:包括對(duì)收集的樣本應(yīng)用集進(jìn)行特征構(gòu)建和分類測(cè)試。惡意應(yīng)用來自VirusShare網(wǎng)站,正常應(yīng)用使用Python腳本爬取應(yīng)用商店不同類別的應(yīng)用,經(jīng)過篩選,剔除部分無效應(yīng)用,最終選取了688個(gè)惡意應(yīng)用和594個(gè)正常應(yīng)用,測(cè)試分類的正確率。

2) 隱私信息管理模塊測(cè)試:包括對(duì)應(yīng)用獲取隱私信息的監(jiān)控以及對(duì)惡意應(yīng)用進(jìn)行攔截的測(cè)試,攔截以日志的形式存儲(chǔ)并展示。

3) 共謀攻擊管理模塊測(cè)試:包括對(duì)應(yīng)用間通信的監(jiān)控以及對(duì)存在共謀攻擊的應(yīng)用進(jìn)行攔截的測(cè)試,攔截以日志的形式存儲(chǔ)并展示。

4.3 實(shí)驗(yàn)評(píng)估

4.3.1 應(yīng)用分類模塊

本實(shí)驗(yàn)采用混淆矩陣對(duì)應(yīng)用分類性能進(jìn)行分析,它是分析分類器識(shí)別不同類元組情況的一種工具。本文將惡意應(yīng)用定義為正元組,將正常應(yīng)用定義為負(fù)元組,如表3所示。

表3 混淆矩陣

TP表示分類器將惡意應(yīng)用正確識(shí)別為惡意應(yīng)用的數(shù)量,F(xiàn)P表示分類器將正常應(yīng)用錯(cuò)誤識(shí)別為惡意應(yīng)用的數(shù)量,F(xiàn)N表示分類器將惡意應(yīng)用錯(cuò)誤識(shí)別為正常應(yīng)用的數(shù)量,TN表示分類器將正常應(yīng)用正確識(shí)別為正常應(yīng)用的數(shù)量。

由于隨機(jī)森林算法的思想簡(jiǎn)單,實(shí)現(xiàn)容易,計(jì)算開銷小,本文采用隨機(jī)森林算法通過十折交叉確認(rèn)對(duì)1 282個(gè)應(yīng)用進(jìn)行測(cè)試,得到的混淆矩陣如表4所示,并根據(jù)混淆矩陣可以計(jì)算出分類效果的評(píng)定指標(biāo)——準(zhǔn)確率、精確率、找回率以及精確率和召回率的調(diào)和平均值-Measure。

表4 應(yīng)用分類模塊的混淆矩陣

根據(jù)對(duì)機(jī)器學(xué)習(xí)的性能評(píng)定,精確率和召回率的結(jié)果越趨近于1,說明查準(zhǔn)率和查全率越高。而根據(jù)計(jì)算結(jié)果顯示,分類的準(zhǔn)確率達(dá)到90.7%,精確率達(dá)到90.7%,召回率達(dá)到92.2%,-Measure達(dá)到91.4%,證明了隨機(jī)森林算法對(duì)應(yīng)用進(jìn)行分類的準(zhǔn)確性。

為了進(jìn)一步說明隨機(jī)森林算法對(duì)應(yīng)用分類的分類效果,本文同時(shí)采用Native Bayes算法、SVM算法、J48算法和Bagging算法對(duì)1 282個(gè)應(yīng)用進(jìn)行分類測(cè)試,圖3為各個(gè)算法分類的準(zhǔn)確率對(duì)比。

圖3 各個(gè)算法分類的準(zhǔn)確率

從圖3可以看出,相比于單一分類算法,隨機(jī)森林算法的準(zhǔn)確率要高得多,而相比于同為集成學(xué)習(xí)算法的Bagging,隨機(jī)森林算法的準(zhǔn)確率也較高,充分證明了隨機(jī)森林算法對(duì)應(yīng)用分類模塊的有效性。

4.3.2 隱私信息管理模塊

本實(shí)驗(yàn)通過在Android虛擬機(jī)上運(yùn)行隱私信息管理模塊,來實(shí)時(shí)監(jiān)控惡意應(yīng)用以及攔截它們獲取隱私信息的行為,并將具體行為記錄下來,通過界面進(jìn)行展示,驗(yàn)證該模塊的有效性,部分結(jié)果如圖4所示。

圖4 隱私信息管理模塊攔截日志

圖4展示了2個(gè)惡意應(yīng)用試圖獲取的隱私信息,uid為10033是一個(gè)會(huì)計(jì)從業(yè)資格考的應(yīng)用,uid為10031是一個(gè)常用漢字識(shí)字卡的應(yīng)用,它們都是在提供一些正常功能的情況下額外獲取用戶的隱私信息。以常用漢字識(shí)字卡這個(gè)應(yīng)用為例,當(dāng)單擊圖標(biāo)進(jìn)入該應(yīng)用主界面時(shí),該應(yīng)用會(huì)嘗試獲取位置信息和電話標(biāo)識(shí),并且可以看出來,它試圖通過調(diào)用不同API來獲取位置信息,但都被攔截了下來。

通過隱私信息管理模塊的攔截日志,用戶可以清楚知道惡意應(yīng)用獲取的隱私信息種類、獲取時(shí)間、獲取方式和獲取次數(shù),證明了隱私信息管理模塊的有效性。

4.3.3 共謀攻擊管理模塊

本實(shí)驗(yàn)首先驗(yàn)證權(quán)限規(guī)則的準(zhǔn)確性,然后通過在Android虛擬機(jī)上運(yùn)行共謀攻擊管理模塊,來實(shí)時(shí)監(jiān)控存在共謀攻擊的應(yīng)用以及攔截它們之間的通信行為,并將具體行為記錄下來,通過界面進(jìn)行展示,驗(yàn)證該模塊的可靠性。

文獻(xiàn)[18]中設(shè)計(jì)了一個(gè)共謀攻擊應(yīng)用生成系統(tǒng),它能夠根據(jù)配置文件自動(dòng)生成相對(duì)應(yīng)的應(yīng)用對(duì),模擬惡意應(yīng)用進(jìn)行共謀攻擊,因此本實(shí)驗(yàn)選取文獻(xiàn)[18]中設(shè)計(jì)的系統(tǒng)生成的應(yīng)用對(duì)作為實(shí)驗(yàn)樣本。該實(shí)驗(yàn)樣本中,將Intent作為通信渠道的應(yīng)用對(duì)共有81對(duì),將SharedPreferences作為通信渠道的應(yīng)用對(duì)共有80對(duì),將External Storage作為通信渠道的應(yīng)用對(duì)共有80對(duì),共計(jì)241對(duì)應(yīng)用對(duì)。

首先,為了驗(yàn)證權(quán)限規(guī)則的準(zhǔn)確性,本實(shí)驗(yàn)通過Python腳本將每對(duì)應(yīng)用的權(quán)限信息提取出來,對(duì)這2個(gè)應(yīng)用進(jìn)行權(quán)限規(guī)則判斷,圖5展示了獲取各類隱私信息的應(yīng)用個(gè)數(shù)以及檢測(cè)出來的應(yīng)用個(gè)數(shù)。

由圖5可以看出,所有的共謀攻擊應(yīng)用對(duì)都被檢測(cè)了出來,即檢測(cè)率為100%,證明了權(quán)限規(guī)則的準(zhǔn)確性。

為了與機(jī)器學(xué)習(xí)算法的分類效果做比較,本文將這241對(duì)應(yīng)用的權(quán)限信息提取并轉(zhuǎn)換成特征向量,使用應(yīng)用分類模塊的訓(xùn)練模型對(duì)它們進(jìn)行分類,表5展示了每對(duì)應(yīng)用的檢測(cè)結(jié)果以及檢測(cè)個(gè)數(shù)。

表5 每對(duì)應(yīng)用的檢測(cè)結(jié)果及檢測(cè)個(gè)數(shù)

由表5可以計(jì)算出482個(gè)惡意應(yīng)用的檢測(cè)率。

考慮到共謀攻擊中,一旦其中一個(gè)惡意應(yīng)用被檢測(cè)出來,就無法完成隱私信息的竊取,因此可以計(jì)算出241對(duì)惡意應(yīng)用的檢測(cè)率。

由以上2個(gè)檢測(cè)率的結(jié)果可以看出,使用機(jī)器學(xué)習(xí)算法對(duì)共謀攻擊應(yīng)用的檢測(cè)率比使用權(quán)限規(guī)則低很多,充分證明了使用權(quán)限規(guī)則檢測(cè)共謀攻擊的有效性。

圖5 各類應(yīng)用個(gè)數(shù)以及檢測(cè)出的應(yīng)用個(gè)數(shù)

然后,為了證明本文設(shè)計(jì)的權(quán)限規(guī)則降低了誤報(bào)率,選取了5個(gè)存在互相調(diào)用的正常應(yīng)用,觸發(fā)它們之間調(diào)用的原因都是信息分享,表6展示了各個(gè)應(yīng)用是否存在互相調(diào)用的關(guān)系。

筆者使用QQ音樂、新浪新聞以及騰訊新聞的信息分享功能時(shí),觸發(fā)了新浪微博和微信的喚起,喚起過程中應(yīng)用運(yùn)行正常,并且沒有觸發(fā)模塊的攔截提示。而若采用文獻(xiàn)[17]的策略,喚起過程中會(huì)觸發(fā)策略8和策略11(如圖6所示),導(dǎo)致應(yīng)用運(yùn)行異常,證明了本文設(shè)計(jì)的權(quán)限規(guī)則降低了誤報(bào)率。

最后,為了驗(yàn)證該模塊攔截的有效性,分別選取了樣本中通過3種不同渠道竊取隱私的應(yīng)用對(duì),運(yùn)行于Android系統(tǒng)中,攔截的日志記錄如圖7所示。

表6 各個(gè)應(yīng)用互相調(diào)用的關(guān)系

Advanced rules (8)A third party application with permission ACCESS_FINE.LOCATION must not communicate to a third party application that has permission INTERNET (9)A third party application with permission READ_CONTACTS must not communicate to a third party application that has permission INTERNET (10)A third party application with permission READ_SMS must not communicate to a third party application that has permission INTERNET Strong rules (11)A third party application with permission RECORD_AUDIO and PHONE.STATE or PROCESS_OUTGOING_CALLS must not communicate to a third party application that has permission INTERNET

圖6 部分策略

由圖7可以看出,共謀攻擊管理模塊對(duì)3種通信渠道都實(shí)現(xiàn)了監(jiān)控并攔截了惡意應(yīng)用,同時(shí)獲取了通信雙方以及通信渠道的路徑或者標(biāo)識(shí),能夠一目了然地知道惡意應(yīng)用的具體行為,證明了該模塊攔截惡意應(yīng)用的有效性。

圖7 共謀攻擊攔截日志

5 結(jié)束語(yǔ)

本文提出一種基于Android平臺(tái)的隱私信息保護(hù)系統(tǒng),該系統(tǒng)結(jié)合數(shù)據(jù)挖掘分類技術(shù)和hook技術(shù),在不需要修改Android系統(tǒng)和應(yīng)用自身、占用內(nèi)存較小的情況下實(shí)現(xiàn)了動(dòng)態(tài)監(jiān)控和攔截惡意應(yīng)用獲取隱私信息的行為,同時(shí)針對(duì)隱蔽性較高的共謀攻擊,設(shè)計(jì)了基于權(quán)限的規(guī)則檢測(cè),在保證檢測(cè)共謀攻擊的情況下減少了誤報(bào)率。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)能夠準(zhǔn)確攔截隱私信息的獲取以及應(yīng)用間通信內(nèi)容,對(duì)保護(hù)隱私信息能夠起到較好的作用。下一步工作將繼續(xù)完善系統(tǒng),使用更精確的分類算法和權(quán)限規(guī)則,擴(kuò)展系統(tǒng)監(jiān)控的API范圍,更全面地保護(hù)Android系統(tǒng)中的隱私數(shù)據(jù)。

[1] Gartner. Market share: final PCs, ultramobiles and mobile phones, all countries, 4Q17[R]. Connecticut: Gartner, 2018.

[2] GIBLER C, CRUSSELL J, ERICKSON J, et al. AndroidLeaks: automatically detecting potential privacy leaks in android applications on a large scale[J]. Trust, 2012, 12: 291-307.

[3] YANG Z, YANG M. Leakminer: detect information leakage on android with static taint analysis[C]//2012 Third World Congress on Software Engineering (WCSE). 2012: 101-104.

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

[5] ENCK W, GILBERT P, CHUN B G, et al. Taintdroid: an information-flow tracking system for realtime privacy monitoring on smartphones[C]//The 9th USENIX Conference on Operating Systems Design and Implementation. USENIX Association, 2010.

[6] HORNYACK P, HAN S, JUNG J, et al. These aren't the droids you're looking for: Retrofitting Android to protect data from imperious applications[C]//The 18th ACM Conference on Computer and Communications Security. ACM, 2011: 639-652.

[7] Droidbox[EB/OL]. http://code.google.com/p/droidbox/.

[8] RASTOGI V, QU Z, MCCLURG J, et al. Uranine: real-time privacy leakage monitoring without system modification for Android[J]. Security and Privacy in Communication Networks, 2015: 256-276.

[9] YOU W, LIANG B, SHI W, et al. TaintMan: an ART-compatible dynamic taint analysis framework on unmodified and non-rooted Android devices[J]. IEEE Transactions on Dependable and Secure Computing, 2017.

[10] YANG Z, YANG M, ZHANG Y, et al. Appintent: Analyzing sensitive data transmission in Android for privacy leakage detection[C]//2013 ACM SIGSAC Conference on Computer & Communications Security. ACM, 2013: 1043-1054.

[11] XIA M, GONG L, LYU Y, et al. Effective real-time android application auditing[C]//2015 IEEE Symposium on Security and Privacy (SP). 2015: 899-914.

[12] 孫博文, 黃炎裔, 溫俏琨, 等. 基于靜態(tài)多特征融合的惡意軟件分類方法[J]. 網(wǎng)絡(luò)與信息安全學(xué)報(bào), 2017, 3(11): 68-76.

SUN B W, HUANG Y Y, WEN Q K, et al. Malware classification method based on static multiple-feature fusion[J]. Chinese Journal of Network and Information Security, 2017, 3(11): 68-76.

[13] 楊歡, 張玉清, 胡予濮, 等. 基于多類特征的 Android 應(yīng)用惡意行為檢測(cè)系統(tǒng)[J]. 計(jì)算機(jī)學(xué)報(bào), 2014, 37(1): 15-27.

YANG H, ZHANG Y Q, HU Y P, et al. A malware behavior detection system of Android applications based on multi-class features[J]. Chinese Journal of Computers, 2014, 37(1): 15-27.

[14] TALHA K A, ALPER D I, AYDIN C. APK auditor: permission-based Android malware detection system[J]. Digital Investigation, 2015, 13: 1-14.

[15] BHANDARI S, LAXMI V, ZEMMARI A, et al. Intersection automata based model for android application collusion[C]//2016 IEEE 30th International Conference on Advanced Information Networking and Applications (AINA). 2016: 901-908.

[16] BUGIEL S, DAVI L, DMITRIENKO A, et al. Xmandroid: a new android evolution to mitigate privilege escalation attacks[R]. Technical Report,2011.

[17] BUGIEL S, DAVI L, DMITRIENKO A, et al. Towards taming privilege-escalation attacks on Android[C]//NDSS. 2012: 19.

[18] BLASCO J, CHEN T M. Automated generation of colluding Apps for experimental research[J]. Journal of Computer Virology and Hacking Techniques, 2017: 1-12.

Privacy protection system based on Hook for Android

ZHU Xiaoyan1, ZHANG Hui1, MA Jianfeng2

1. School of Telecommunications Engineering, Xidian University, Xi’an 710071, China 2. School of Cyber Engineering, Xidian University, Xi’an 710071, China

A privacy protection system based on Hook technology was designed and implemented to address the problem of user privacy leakage caused by malicious applications in Android. The system consists of three modules: application classification module, privacy information management module and collusion attack management module. The application classification module constructs classification model by using permission feature vectors and then classifies mobile applications into malicious applications and normal applications. The privacy information management module hooks all privacy-related application programming interfaces (API) based on Hook technology and then intercepts malicious applications by returning false data or empty data. The collusion attack management module hooks all inter-application communication channels and then intercepts corresponding communication contents by using the permission rules of collusion attack. Finally, the proposed privacy protection scheme on Android virtual machine was implemented to prove and its feasibility and effectiveness were proved. In addition, the system can intercept application behaviors of breaching privacy in real time with less memory, which does not need to modify Android system and applications.

privacy protection, Android platform, Hook technology, collusion attack, permission management

TN91

A

10.11959/j.issn.2096-109x.2018033

2018-02-07;

2018-04-02

朱曉妍,xyzhu@mail.xidian.edu.cn

國(guó)家自然科學(xué)基金資助項(xiàng)目(No.61772406);NSFC-通用技術(shù)基礎(chǔ)研究聯(lián)合基金資助項(xiàng)目(No.U1636209);中央高校基本科研業(yè)務(wù)費(fèi)基金資助項(xiàng)目(No.JB180110)

朱曉妍(1979-),女,陜西西安人,博士,西安電子科技大學(xué)通信工程學(xué)院副教授,主要研究方向?yàn)榇髷?shù)據(jù)環(huán)境下移動(dòng)互聯(lián)網(wǎng)隱私保護(hù)與風(fēng)險(xiǎn)管控、通信與計(jì)算機(jī)網(wǎng)絡(luò)安全、應(yīng)用密碼學(xué)、大數(shù)據(jù)應(yīng)用。

章輝(1993-),男,福建三明人,西安電子科技大學(xué)碩士生,主要研究方向?yàn)橐苿?dòng)互聯(lián)網(wǎng)隱私保護(hù)。

馬建峰(1963-),男,陜西西安人,博士,西安電子科技大學(xué)教授、博士生導(dǎo)師,主要研究方向?yàn)閼?yīng)用密碼學(xué)、無線網(wǎng)絡(luò)安全、數(shù)據(jù)安全、移動(dòng)智能系統(tǒng)安全。

The National Nature Science Foundation of China (No.61772406), NSFC-General Technical Fundamental Research Joint Project (No.U1636209), Fundamental Research Funds for Central Universities (No.JB180110)

猜你喜歡
共謀規(guī)則分類
撐竿跳規(guī)則的制定
數(shù)獨(dú)的規(guī)則和演變
分類算一算
監(jiān)督中的共謀與縱容
因地制宜惠民生 共謀福祉穩(wěn)發(fā)展
分類討論求坐標(biāo)
數(shù)據(jù)分析中的分類討論
讓規(guī)則不規(guī)則
教你一招:數(shù)的分類
TPP反腐敗規(guī)則對(duì)我國(guó)的啟示