法的步驟示意圖。在該方法中,描述應(yīng)用程序的運(yùn)行中動(dòng)態(tài)分析。如圖3所示,該方法包括以下步驟:
步驟201:記錄應(yīng)用程序在運(yùn)行時(shí)的動(dòng)態(tài)數(shù)據(jù),
步驟202:分析動(dòng)態(tài)數(shù)據(jù)的行為,識(shí)別涉及隱私泄露的行為。
[0028]這里,動(dòng)態(tài)數(shù)據(jù)的行為是指與該動(dòng)態(tài)數(shù)據(jù)相關(guān)的操作。通過分析動(dòng)態(tài)數(shù)據(jù)能夠?qū)?yīng)用程序運(yùn)行中的一切操作進(jìn)行監(jiān)控和判斷,從而識(shí)別應(yīng)用程序在運(yùn)行期間是否進(jìn)行了泄漏隱私數(shù)據(jù)的操作。
[0029]在一個(gè)示例中,可以主動(dòng)觸發(fā)應(yīng)用程序的行為,從而記錄盡可能完全的運(yùn)行時(shí)的動(dòng)態(tài)數(shù)據(jù)。
[0030]在一個(gè)示例中,可以根據(jù)動(dòng)態(tài)數(shù)據(jù)獲取例如運(yùn)行中應(yīng)用程序的Class、Method、0pCOde、String等信息,并從中識(shí)別出可能存在的泄漏隱私數(shù)據(jù)的行為。例如,可以配置策略來進(jìn)行不同類型的行為分析。
[0031]在一個(gè)實(shí)施例中,將上述的運(yùn)行前靜態(tài)分析和運(yùn)行中動(dòng)態(tài)分析相結(jié)合。此時(shí),對(duì)于上述實(shí)施例中的步驟202來說,分析動(dòng)態(tài)數(shù)據(jù)的行為的步驟可以包括:分析動(dòng)態(tài)數(shù)據(jù)中的與通過靜態(tài)分析識(shí)別的可能涉及隱私泄露的指令相關(guān)的部分,以及根據(jù)預(yù)定的分析算法識(shí)別涉及隱私泄露的行為。
[0032]該實(shí)施例通過綜合分析提高了識(shí)別隱私泄露的行為的效率。在一個(gè)示例中,還生成隱私泄露安全分析報(bào)告。
[0033]圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的分析Android應(yīng)用程序的系統(tǒng)的結(jié)構(gòu)示意圖。如圖所示,該系統(tǒng)包括運(yùn)行前靜態(tài)分析裝置,該裝置包括:提取單元,用于提取應(yīng)用程序文件中的涉及邏輯流程的二進(jìn)制文件,反編譯單元,用于對(duì)該二進(jìn)制文件進(jìn)行反編譯得到反編譯代碼,第一分析單元,用于對(duì)該反編譯代碼進(jìn)行隱私泄露分析,識(shí)別可能涉及隱私泄露的指令。
[0034]在一個(gè)實(shí)施例中,第一分析單元被配置成:
在反編譯代碼中查找涉及隱私數(shù)據(jù)的關(guān)鍵指令,
判斷關(guān)鍵指令和與該關(guān)鍵指令相關(guān)的其它指令是否執(zhí)行與外界進(jìn)行數(shù)據(jù)交換的操作,將關(guān)鍵指令和與該關(guān)鍵指令相關(guān)的其它指令中的執(zhí)行與外界進(jìn)行數(shù)據(jù)交換的操作的指令標(biāo)記為可能涉及隱私泄露的指令。
[0035]再如圖所示,該系統(tǒng)還可以包括運(yùn)行中動(dòng)態(tài)分析裝置,該裝置包括:
監(jiān)控單元,用于記錄應(yīng)用程序在運(yùn)行時(shí)的動(dòng)態(tài)數(shù)據(jù),
第二分析單元,用于分析動(dòng)態(tài)數(shù)據(jù)的行為,識(shí)別涉及隱私泄露的行為。
[0036]這里,監(jiān)控單元可以被部署在Android系統(tǒng)底層從而避免給系統(tǒng)帶來過多的負(fù)載。被加載到Android系統(tǒng)的監(jiān)控單元將記錄的動(dòng)態(tài)數(shù)據(jù)發(fā)送到第二分析單元以供進(jìn)一步分析。
[0037]在一個(gè)實(shí)施例中,所述第二分析單元被配置成:
分析動(dòng)態(tài)數(shù)據(jù)中的與通過靜態(tài)分析識(shí)別的可能涉及隱私泄露的指令相關(guān)的部分, 根據(jù)預(yù)定的分析算法識(shí)別涉及隱私泄露的行為。
[0038]這里,第二分析單元還從第一分析單元接收可能涉及隱私泄露的指令。
[0039]通過以上實(shí)施方式的描述,本領(lǐng)域中的普通技術(shù)人員能夠理解,在不偏離本發(fā)明的精神和范圍的情況下,還可以對(duì)本發(fā)明的【具體實(shí)施方式】作各種變更和替換。這些變更和替換都落在本發(fā)明權(quán)利要求書所限定的范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種分析Android應(yīng)用程序的方法,其特征在于,包括以下步驟: 運(yùn)行前靜態(tài)分析,該步驟包括: 提取應(yīng)用程序文件中的涉及邏輯流程的二進(jìn)制文件, 對(duì)該二進(jìn)制文件進(jìn)行反編譯得到反編譯代碼, 對(duì)該反編譯代碼進(jìn)行隱私泄露分析,識(shí)別可能涉及隱私泄露的指令。
2.如權(quán)利要求1所述的方法,其特征在于, 上述隱私泄露分析步驟包括: 在反編譯代碼中查找涉及隱私數(shù)據(jù)的關(guān)鍵指令, 判斷關(guān)鍵指令和與該關(guān)鍵指令相關(guān)的其它指令是否執(zhí)行與外界進(jìn)行數(shù)據(jù)交換的操作,將關(guān)鍵指令和與該關(guān)鍵指令相關(guān)的其它指令中的執(zhí)行與外界進(jìn)行數(shù)據(jù)交換的操作的指令標(biāo)記為可能涉及隱私泄露的指令。
3.如權(quán)利要求1或2所述的方法,其特征在于,該方法還包括以下步驟: 運(yùn)行中動(dòng)態(tài)分析,該步驟包括: 記錄應(yīng)用程序在運(yùn)行時(shí)的動(dòng)態(tài)數(shù)據(jù), 分析動(dòng)態(tài)數(shù)據(jù)的行為,識(shí)別涉及隱私泄露的行為。
4.如權(quán)利要求3所述的方法,其特征在于, 分析動(dòng)態(tài)數(shù)據(jù)的行為的步驟包括: 分析動(dòng)態(tài)數(shù)據(jù)中的與通過靜態(tài)分析識(shí)別的可能涉及隱私泄露的指令相關(guān)的部分, 根據(jù)預(yù)定的分析算法識(shí)別涉及隱私泄露的行為。
5.如權(quán)利要求4所述的方法,其特征在于, 上述隱私泄露分析步驟還包括: 生成靜態(tài)分析報(bào)告。
6.如權(quán)利要求5所述的方法,其特征在于, 運(yùn)行中動(dòng)態(tài)分析的步驟還包括: 生成隱私泄露安全分析報(bào)告。
7.—種分析Android應(yīng)用程序的系統(tǒng),其特征在于,包括: 運(yùn)行前靜態(tài)分析裝置,該裝置包括: 提取單元,用于提取應(yīng)用程序文件中的涉及邏輯流程的二進(jìn)制文件, 反編譯單元,用于對(duì)該二進(jìn)制文件進(jìn)行反編譯得到反編譯代碼, 第一分析單元,用于對(duì)該反編譯代碼進(jìn)行隱私泄露分析,識(shí)別可能涉及隱私泄露的指令。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于, 所述第一分析單元被配置成: 在反編譯代碼中查找涉及隱私數(shù)據(jù)的關(guān)鍵指令, 判斷關(guān)鍵指令和與該關(guān)鍵指令相關(guān)的其它指令是否執(zhí)行與外界進(jìn)行數(shù)據(jù)交換的操作,將關(guān)鍵指令和與該關(guān)鍵指令相關(guān)的其它指令中的執(zhí)行與外界進(jìn)行數(shù)據(jù)交換的操作的指令標(biāo)記為可能涉及隱私泄露的指令。
9.如權(quán)利要求7或8所述的系統(tǒng),其特征在于,該系統(tǒng)還包括: 運(yùn)行中動(dòng)態(tài)分析裝置,該裝置包括:監(jiān)控單元,用于記錄應(yīng)用程序在運(yùn)行時(shí)的動(dòng)態(tài)數(shù)據(jù),第二分析單元,用于分析動(dòng)態(tài)數(shù)據(jù)的行為,識(shí)別涉及隱私泄露的行為。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述第二分析單元被配置成:分析動(dòng)態(tài)數(shù)據(jù)中的與通過靜態(tài)分析識(shí)別的可能涉及隱私泄露的指令相關(guān)的部分,根據(jù)預(yù)定的分析算法識(shí)別涉及隱私泄露的行為。
11.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述第一分析單元還被配置成:生成靜態(tài)分析報(bào)告。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述第二分析單元還被配置成:生成隱私泄露安全分析報(bào)告。
【專利摘要】本發(fā)明公開一種分析Android應(yīng)用程序的方法和系統(tǒng)。該方法包括以下步驟:運(yùn)行前靜態(tài)分析,該步驟包括:提取應(yīng)用程序文件中的涉及邏輯流程的二進(jìn)制文件,對(duì)該二進(jìn)制文件進(jìn)行反編譯得到反編譯代碼,對(duì)該反編譯代碼進(jìn)行隱私泄露分析,識(shí)別可能涉及隱私泄露的指令。
【IPC分類】G06F21-52
【公開號(hào)】CN104636661
【申請(qǐng)?zhí)枴緾N201310542708
【發(fā)明人】柴洪峰, 束駿亮, 魯志軍, 李卷孺, 劉發(fā)章, 林培勝
【申請(qǐng)人】中國銀聯(lián)股份有限公司
【公開日】2015年5月20日
【申請(qǐng)日】2013年11月6日
【公告號(hào)】WO2015067170A1