一種Android應(yīng)用程序隱私數(shù)據(jù)泄露離線檢測(cè)方法
【專利摘要】本發(fā)明公開了一種Android應(yīng)用程序隱私數(shù)據(jù)泄露離線檢測(cè)方法,包括以下步驟,定義隱私數(shù)據(jù);定制基于動(dòng)態(tài)污點(diǎn)檢測(cè)的Android系統(tǒng),為不同類型的隱私數(shù)據(jù)添加相應(yīng)的污點(diǎn)標(biāo)簽;將用戶端設(shè)備中的待測(cè)APK導(dǎo)入計(jì)算機(jī);在模擬器上運(yùn)行系統(tǒng),安裝并運(yùn)行待測(cè)APK中的應(yīng)用程序;通過自動(dòng)化測(cè)試腳本自動(dòng)遍歷點(diǎn)擊應(yīng)用程序中的控件并觸發(fā)相應(yīng)的行為,記錄所測(cè)應(yīng)用程序的危險(xiǎn)行為;遍歷結(jié)束后生成所測(cè)APK的隱私數(shù)據(jù)泄露檢測(cè)報(bào)告。解決了只能進(jìn)行隱私數(shù)據(jù)泄露的實(shí)時(shí)提醒,并沒有記錄檢測(cè)結(jié)果,容易造成虛檢和漏檢的問題,同時(shí)解決了現(xiàn)有檢測(cè)方案測(cè)試效率低,實(shí)用性比較差,會(huì)造成真實(shí)隱私數(shù)據(jù)泄露,風(fēng)險(xiǎn)大的問題。
【專利說明】一種Android應(yīng)用程序隱私數(shù)據(jù)泄露離線檢測(cè)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種Android應(yīng)用程序隱私數(shù)據(jù)泄露離線檢測(cè)方法,屬于信息安全領(lǐng)域。
【背景技術(shù)】
[0002]Android是一種主流的移動(dòng)操作系統(tǒng)。隨著Android移動(dòng)智能終端的普及,越來越多的研究人員對(duì)Andro i d系統(tǒng)進(jìn)行研究,由于Andro i d平臺(tái)源碼的開放性,其安全問題成為信息安全領(lǐng)域研究的一個(gè)重要課題,諸多惡意行為對(duì)Android移動(dòng)智能終端構(gòu)成了嚴(yán)重的安全威脅,常見的惡意行為包括:耗費(fèi)行為、隱私竊取行為、破壞行為、廣告行為、后門行為等,其中隱私竊取行為是指未經(jīng)用戶許可泄露用戶敏感數(shù)據(jù),對(duì)用戶個(gè)人隱私造成了極大的威脅。
[0003]針對(duì)上述惡意行為的檢測(cè)方法分為兩種:靜態(tài)檢測(cè)和動(dòng)態(tài)檢測(cè);靜態(tài)檢測(cè)即將應(yīng)用程序的APK文件進(jìn)行反編譯,獲得反編譯后的代碼,進(jìn)而對(duì)源代碼進(jìn)行解析,判斷是否存在惡意行為,經(jīng)編譯、打包、簽名后生成的APK的源代碼已被混淆,混淆工具探測(cè)并刪除沒用使用的類、字段、方法和屬性,刪除注釋并使用字節(jié)碼得到最大優(yōu)化,而且使用無意義的字符串來重命名類、字段和方法。所以在反編譯時(shí)得到的源代碼具有較差的可讀性,大大加大了理解、分析代碼的難度,而且會(huì)存在誤報(bào)、漏報(bào)。
[0004]動(dòng)態(tài)檢測(cè)主要是指在Android應(yīng)用程序運(yùn)行過程中實(shí)時(shí)監(jiān)控應(yīng)用程序的運(yùn)行狀態(tài),并檢測(cè)是否觸發(fā)惡意行為;一旦發(fā)現(xiàn)應(yīng)用程序在運(yùn)行過程中存在惡意行為,則判定該軟件為惡意軟件。動(dòng)態(tài)檢測(cè)存在一個(gè)難題:如何觸發(fā)惡意行為,因?yàn)閻阂庑袨橐蕾囉谀撤N未知的特定觸發(fā)條件,所以在動(dòng)態(tài)檢測(cè)時(shí)需要手動(dòng)點(diǎn)擊所有的應(yīng)用程序的控件。但在大規(guī)模檢測(cè)APK時(shí)人工檢測(cè)效率低并且工作量非常大,因而迫切需求設(shè)計(jì)出一種自動(dòng)化檢測(cè)方法。
[0005]自動(dòng)化測(cè)試通過自動(dòng)化測(cè)試腳本遍歷應(yīng)用程序的控件,以達(dá)到觸發(fā)條件。目前很多自動(dòng)化測(cè)試方法是觸發(fā)應(yīng)用程序完成一系列隨機(jī)事件,然而用于行為檢測(cè)的自動(dòng)化測(cè)試,要求能夠盡可能地遍歷應(yīng)用程序所有界面和控件,從而完整地觸發(fā)行為。
[0006]現(xiàn)在,污點(diǎn)檢測(cè)技術(shù)是Android隱私數(shù)據(jù)泄露檢測(cè)的一個(gè)較新的方向。Taintdroid系統(tǒng)就是一款基于污點(diǎn)檢測(cè)的Android檢測(cè)系統(tǒng),其利用Android的虛擬化架構(gòu)整合了四個(gè)粒度級(jí)的污點(diǎn)傳播監(jiān)測(cè),污點(diǎn)檢測(cè)技術(shù)為隱私數(shù)據(jù)添加污點(diǎn)標(biāo)簽,污點(diǎn)會(huì)伴隨數(shù)據(jù)的處理傳播,從而能夠跟蹤數(shù)據(jù)的傳播流向,并在系統(tǒng)邊界處(短信、文件、網(wǎng)絡(luò))檢測(cè)污點(diǎn),記錄敏感數(shù)據(jù)泄露的途徑。
[0007]然而上述的污點(diǎn)檢測(cè)技術(shù)應(yīng)用于真實(shí)的Android智能終端上,只能進(jìn)行隱私數(shù)據(jù)泄露的實(shí)時(shí)提醒,并沒有記錄檢測(cè)結(jié)果,容易造成虛檢和漏檢,測(cè)試人員很難進(jìn)行進(jìn)一步分析;同時(shí),上述方案需要手工操作,測(cè)試效率低,實(shí)用性比較差;此外,在真機(jī)上進(jìn)行測(cè)試會(huì)造成真實(shí)隱私數(shù)據(jù)泄露,甚至感染手機(jī)病毒、木馬,具有很大的風(fēng)險(xiǎn)性。
【發(fā)明內(nèi)容】
[0008]發(fā)明目的:為了克服現(xiàn)有技術(shù)中存在的不足,本發(fā)明提供一種Android應(yīng)用程序隱私數(shù)據(jù)泄露離線檢測(cè)方法,解決了現(xiàn)有檢測(cè)方案只能進(jìn)行隱私數(shù)據(jù)泄露的實(shí)時(shí)提醒,并沒有記錄檢測(cè)結(jié)果,容易造成虛檢和漏檢的問題,同時(shí)解決了現(xiàn)有檢測(cè)方案測(cè)試效率低,實(shí)用性比較差,會(huì)造成真實(shí)隱私數(shù)據(jù)泄露,風(fēng)險(xiǎn)大的問題。
[0009]為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案是:
[0010]一種Android應(yīng)用程序隱私數(shù)據(jù)泄露離線檢測(cè)方法,包括以下步驟,
[0011](I)定義隱私數(shù)據(jù);
[0012](2)定制基于動(dòng)態(tài)污點(diǎn)檢測(cè)的Android系統(tǒng),為不同類型的隱私數(shù)據(jù)添加相應(yīng)的污點(diǎn)標(biāo)簽;
[0013](3)將用戶端設(shè)備中的待測(cè)APK導(dǎo)入裝有Android模擬器的計(jì)算機(jī);
[0014](4)在Android模擬器上運(yùn)行基于動(dòng)態(tài)污點(diǎn)檢測(cè)的Android系統(tǒng),安裝并運(yùn)行待測(cè)APK中的應(yīng)用程序;
[0015](5)通過自動(dòng)化測(cè)試腳本自動(dòng)遍歷點(diǎn)擊應(yīng)用程序中的控件并觸發(fā)相應(yīng)的行為;在遍歷過程中,如果觸發(fā)的應(yīng)用程序調(diào)用或操作隱私數(shù)據(jù),則跟蹤污點(diǎn)標(biāo)簽傳播,在系統(tǒng)邊界檢測(cè)所傳輸?shù)臄?shù)據(jù)是否帶有污點(diǎn)標(biāo)簽,記錄所測(cè)應(yīng)用程序的危險(xiǎn)行為;
[0016](6)遍歷結(jié)束后生成所測(cè)APK的隱私數(shù)據(jù)泄露檢測(cè)報(bào)告。
[0017]步驟(2)中定制基于動(dòng)態(tài)污點(diǎn)檢測(cè)的Android系統(tǒng)的方法為,修改Android系統(tǒng)源代碼中的隱私數(shù)據(jù)存儲(chǔ)機(jī)制,增加一位或多位空間用于存儲(chǔ)污點(diǎn)標(biāo)簽。
[0018]調(diào)用或操作隱私數(shù)據(jù)的過程中,由隱私數(shù)據(jù)生成的變量也被添加污點(diǎn)標(biāo)簽。
[0019]步驟(5)中記錄所測(cè)應(yīng)用程序的危險(xiǎn)行為包括記錄隱私數(shù)據(jù)泄露的內(nèi)容和途徑。
[0020]步驟(6)中隱私數(shù)據(jù)泄露檢測(cè)報(bào)告包括隱私數(shù)據(jù)泄露的內(nèi)容、隱私數(shù)據(jù)泄露途徑、所測(cè)APK的風(fēng)險(xiǎn)等級(jí)、計(jì)算機(jī)軟硬件環(huán)境和測(cè)試人員的基本信息。
[0021]發(fā)明的有益效果:1、本發(fā)明在遍歷結(jié)束后生成所測(cè)APK的隱私數(shù)據(jù)泄露檢測(cè)報(bào)告,不容易造成虛檢和漏檢,同時(shí)為測(cè)試人員進(jìn)行進(jìn)一步分析提供參考;2、本發(fā)明通過自動(dòng)化測(cè)試腳本自動(dòng)遍歷點(diǎn)擊應(yīng)用程序中的控件,不需要手工操作,測(cè)試效率高,實(shí)用性較好;
3、本發(fā)明是通過模擬器進(jìn)行檢測(cè),不是在真實(shí)的Android智能終端上,不會(huì)造成真實(shí)隱私數(shù)據(jù)泄露,也不會(huì)感染手機(jī)病毒、木馬,風(fēng)險(xiǎn)小。
【專利附圖】
【附圖說明】
[0022]圖1為本發(fā)明的流程圖。
【具體實(shí)施方式】
[0023]下面結(jié)合附圖對(duì)本發(fā)明作更進(jìn)一步的說明。
[0024]如圖1所示,一種Android應(yīng)用程序隱私數(shù)據(jù)泄露離線檢測(cè)方法,包括以下步驟,
[0025](I)定義隱私數(shù)據(jù);其中所述隱私數(shù)據(jù)包括定位數(shù)據(jù)、聯(lián)系人數(shù)據(jù)、短信彩信數(shù)據(jù)、通話記錄、Email數(shù)據(jù)、系統(tǒng)設(shè)置、ME1、IMSI, ICCID、設(shè)備號(hào)、SIM卡數(shù)據(jù)、SD卡數(shù)據(jù)、瀏覽器歷史記錄和書簽、錄音數(shù)據(jù)、拍照?qǐng)D片、手機(jī)號(hào)碼和傳感器數(shù)據(jù)等。
[0026](2)定制基于動(dòng)態(tài)污點(diǎn)檢測(cè)的Android系統(tǒng),為不同類型的隱私數(shù)據(jù)添加相應(yīng)的污點(diǎn)標(biāo)簽。[0027]定制基于動(dòng)態(tài)污點(diǎn)檢測(cè)的Android系統(tǒng)的方法為,修改Android系統(tǒng)源代碼中的隱私數(shù)據(jù)存儲(chǔ)機(jī)制,增加一位或多位空間用于存儲(chǔ)污點(diǎn)標(biāo)簽;所述的污點(diǎn)標(biāo)簽為一位或多位字符串。
[0028](3)將用戶端設(shè)備中的待測(cè)APK導(dǎo)入裝有Android模擬器的計(jì)算機(jī)?,F(xiàn)在只需要通過一根數(shù)據(jù)線(如USB連接線)直接將APK拷貝到計(jì)算機(jī)即可。
[0029](4)在Android模擬器上運(yùn)行基于動(dòng)態(tài)污點(diǎn)檢測(cè)的Android系統(tǒng),安裝并運(yùn)行待測(cè)APK中的應(yīng)用程序。
[0030](5)通過自動(dòng)化測(cè)試腳本自動(dòng)遍歷點(diǎn)擊應(yīng)用程序中的控件并觸發(fā)相應(yīng)的行為;在遍歷過程中,如果觸發(fā)的應(yīng)用程序調(diào)用或操作隱私數(shù)據(jù),則跟蹤污點(diǎn)標(biāo)簽傳播,在系統(tǒng)邊界(短信、文件、網(wǎng)絡(luò)的數(shù)據(jù)出口)檢測(cè)所傳輸?shù)臄?shù)據(jù)是否帶有污點(diǎn)標(biāo)簽,記錄所測(cè)應(yīng)用程序的危險(xiǎn)行為即記錄隱私數(shù)據(jù)泄露的內(nèi)容和途徑(如短信息、彩信、網(wǎng)絡(luò)數(shù)據(jù)發(fā)送以及文件寫入)。
[0031]在調(diào)用或操作隱私數(shù)據(jù)的過程中,由隱私數(shù)據(jù)生成的變量也被添加污點(diǎn)標(biāo)簽,因此被跟蹤污點(diǎn)標(biāo)簽不僅包括為原始的隱私數(shù)據(jù)添加的污點(diǎn)標(biāo)簽,同時(shí)還包括在調(diào)用或操作隱私數(shù)據(jù)的過程中,為隱私數(shù)據(jù)生成的變量添加的污點(diǎn)標(biāo)簽。
[0032](6)遍歷結(jié)束后生成所測(cè)APK的隱私數(shù)據(jù)泄露檢測(cè)報(bào)告;所述隱私數(shù)據(jù)泄露檢測(cè)報(bào)告包括隱私數(shù)據(jù)泄露的內(nèi)容、隱私數(shù)據(jù)泄露途徑、所測(cè)APK的風(fēng)險(xiǎn)等級(jí)、計(jì)算機(jī)軟硬件環(huán)境和測(cè)試人員的基本信息,生成的隱私數(shù)據(jù)泄露檢測(cè)報(bào)告不僅不容易造成虛檢和漏檢而且為測(cè)試人員進(jìn)一步分析提供參考。
[0033]以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出:對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種Android應(yīng)用程序隱私數(shù)據(jù)泄露離線檢測(cè)方法,其特征在于:包括以下步驟, (1)定義隱私數(shù)據(jù); (2)定制基于動(dòng)態(tài)污點(diǎn)檢測(cè)的Android系統(tǒng),為不同類型的隱私數(shù)據(jù)添加相應(yīng)的污點(diǎn)標(biāo)簽; (3)將用戶端設(shè)備中的待測(cè)APK導(dǎo)入裝有Android模擬器的計(jì)算機(jī); (4)在Android模擬器上運(yùn)行基于動(dòng)態(tài)污點(diǎn)檢測(cè)的Android系統(tǒng),安裝并運(yùn)行待測(cè)APK中的應(yīng)用程序; (5)通過自動(dòng)化測(cè)試腳本自動(dòng)遍歷點(diǎn)擊應(yīng)用程序中的控件并觸發(fā)相應(yīng)的行為;在遍歷過程中,如果觸發(fā)的應(yīng)用程序調(diào)用或操作隱私數(shù)據(jù),則跟蹤污點(diǎn)標(biāo)簽傳播,在系統(tǒng)邊界檢測(cè)所傳輸?shù)臄?shù)據(jù)是否帶有污點(diǎn)標(biāo)簽,記錄所測(cè)應(yīng)用程序的危險(xiǎn)行為; (6)遍歷結(jié)束后生成所測(cè)APK的隱私數(shù)據(jù)泄露檢測(cè)報(bào)告。
2.根據(jù)權(quán)利要求1所述的一種Android應(yīng)用程序隱私數(shù)據(jù)泄露離線檢測(cè)方法,其特征在于:步驟(2)中,定制基于動(dòng)態(tài)污點(diǎn)檢測(cè)的Android系統(tǒng)的方法為,修改Android系統(tǒng)源代碼中的隱私數(shù)據(jù)存儲(chǔ)機(jī)制,增加一位或多位空間用于存儲(chǔ)污點(diǎn)標(biāo)簽。
3.根據(jù)權(quán)利要求1所述的一種Android應(yīng)用程序隱私數(shù)據(jù)泄露離線檢測(cè)方法,其特征在于:步驟(5)中,調(diào)用或操作隱私數(shù)據(jù)的過程中,由隱私數(shù)據(jù)生成的變量也被添加污點(diǎn)標(biāo)簽。
4.根據(jù)權(quán)利要求1所述的一種Android應(yīng)用程序隱私數(shù)據(jù)泄露離線檢測(cè)方法,其特征在于:步驟(5)中,記錄所測(cè)應(yīng)用程序的危險(xiǎn)行為包括記錄隱私數(shù)據(jù)泄露的內(nèi)容和途徑。
5.根據(jù)權(quán)利要求1任意一項(xiàng)所述的一種Android應(yīng)用程序隱私數(shù)據(jù)泄露離線檢測(cè)方法,其特征在于:步驟(6)中,隱私數(shù)據(jù)泄露檢測(cè)報(bào)告包括隱私數(shù)據(jù)泄露的內(nèi)容、隱私數(shù)據(jù)泄露途徑、所測(cè)APK的風(fēng)險(xiǎn)等級(jí)、計(jì)算機(jī)軟硬件環(huán)境和測(cè)試人員的基本信息。
【文檔編號(hào)】G06F21/60GK103729595SQ201410001209
【公開日】2014年4月16日 申請(qǐng)日期:2014年1月2日 優(yōu)先權(quán)日:2014年1月2日
【發(fā)明者】胡愛群, 宋宇波, 高岳, 孟姍姍, 陳飛, 朱克龍 申請(qǐng)人:東南大學(xué)