Android應(yīng)用程序安全性測(cè)試的通用方法及系統(tǒng)的制作方法
【專利摘要】一種Android應(yīng)用程序安全性測(cè)試的通用方法及系統(tǒng),通過對(duì)待測(cè)試程序解包并進(jìn)行反編譯,得到XML源代碼;然后通過靜態(tài)分析待測(cè)試程序的配置文件和代碼,進(jìn)行包括:組件暴露漏洞、密碼學(xué)誤用、webview代碼執(zhí)行漏洞、代碼保護(hù)方面的漏洞檢測(cè)和安全測(cè)試;再將待測(cè)試程序進(jìn)行實(shí)際運(yùn)行并配置網(wǎng)絡(luò)檢測(cè)環(huán)境;最后進(jìn)行動(dòng)態(tài)分析,對(duì)信息泄漏、數(shù)據(jù)傳輸安全和數(shù)據(jù)存儲(chǔ)安全三個(gè)方面的動(dòng)態(tài)漏洞檢測(cè)和安全測(cè)試并得出漏洞檢測(cè)和安全測(cè)試報(bào)告。本發(fā)明能夠?qū)θ我籄ndroid應(yīng)用程序通過靜態(tài)和動(dòng)態(tài)分析相結(jié)合的方式,可以通過一系列步驟的檢測(cè)和評(píng)估,能夠最終給出應(yīng)用程序本身設(shè)計(jì)和實(shí)現(xiàn)上存在的安全缺陷和隱患。
【專利說明】And ro i d應(yīng)用程序安全性測(cè)試的通用方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及的是一種信息安全領(lǐng)域的技術(shù),涉及一種對(duì)Android應(yīng)用程序進(jìn)行安全性測(cè)試的方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展和智能設(shè)備普及,基于Android系統(tǒng)的各類應(yīng)用程序爆發(fā)性增長。隨之而來的是Android應(yīng)用程序本身的安全性問題的增多。由于Android應(yīng)用程序開發(fā)者水平參差不齊,開發(fā)者并沒有統(tǒng)一的編碼規(guī)范要求,開發(fā)者本身的安全意識(shí)相對(duì)薄弱,以及Android平臺(tái)本身層不出窮的Oday漏洞,都會(huì)導(dǎo)致Android應(yīng)用程序出現(xiàn)各種漏洞并容易遭受各類攻擊。
[0003]一方面,Android應(yīng)用程序需要處理來自用戶的各類數(shù)據(jù),如銀行類應(yīng)用程序需要處理用戶電子銀行相關(guān)敏感信息,通信類應(yīng)用程序需要處理用戶隱私相關(guān)的敏感數(shù)據(jù)等,如果無法正確和安全地使用和處理這些數(shù)據(jù)將導(dǎo)致用戶的利益遭受損失。另一方面,各個(gè)應(yīng)用程序本身也遭受來自外界的威脅,Android平臺(tái)惡意程序?qū)映霾桓F,逆向和破解也相對(duì)容易,如果應(yīng)用程序存在任何細(xì)小的安全性紕漏和差錯(cuò),都有可能被利用,導(dǎo)致開發(fā)者本身利益受損,如版權(quán)被侵犯,算法被破解等。
[0004]目前缺乏一套通用的針對(duì)Android應(yīng)用程序安全性測(cè)試的整體方法和流程,即能夠?qū)Ω黝悜?yīng)用程序使用通用的方法,覆蓋各個(gè)方面的安全性檢測(cè),使發(fā)行的應(yīng)用程序免遭各類漏洞和攻擊的侵害,導(dǎo)致開發(fā)者和用戶的利益受損。
[0005]經(jīng)過對(duì)現(xiàn)有技術(shù)的檢索發(fā)現(xiàn),中國專利文獻(xiàn)號(hào)CN101393521公開(公告)日2009.03.25,公開了一種軟件分析和信息安全【技術(shù)領(lǐng)域】的Windows應(yīng)用程序內(nèi)部固化數(shù)據(jù)的提取系統(tǒng),可執(zhí)行文件類型信息識(shí)別模塊對(duì)可執(zhí)行文件的格式、開發(fā)語言種類、保護(hù)類型進(jìn)行識(shí)別;可執(zhí)行文件反保護(hù)模塊負(fù)責(zé)對(duì)受保護(hù)代碼加殼保護(hù)的可執(zhí)行文件進(jìn)行反保護(hù);可執(zhí)行文件代碼分析模塊對(duì)可執(zhí)行文件進(jìn)行反匯編、反編譯,得到匯編和高級(jí)語言代碼,并得到結(jié)構(gòu)和邏輯信息;密碼學(xué)分析模塊負(fù)責(zé)在可執(zhí)行文件中有加密存儲(chǔ)的固定的數(shù)據(jù)信息時(shí),對(duì)可執(zhí)行文件中采用的密碼學(xué)算法進(jìn)行識(shí)別;可執(zhí)行文件調(diào)試與信息提取模塊在其運(yùn)行的中間過程中查看運(yùn)行期間程序內(nèi)部狀態(tài),從而提取信息。該技術(shù)能有效地提取和分析固定在程序中的數(shù)據(jù)信息,給出其產(chǎn)生方法和原始信息。但該技術(shù)只能處理Windows平臺(tái)的應(yīng)用程序,并且該技術(shù)主要針對(duì)包括應(yīng)用程序內(nèi)部結(jié)構(gòu)、邏輯、密碼學(xué)算法等程序內(nèi)部信息提取,并無法給出應(yīng)用程序在實(shí)現(xiàn)上的安全隱患以及應(yīng)用程序安全漏洞等程序安全性相關(guān)的測(cè)試結(jié)果。
[0006]中國專利文獻(xiàn)號(hào)CN103746992A公開(公告)日2014.04.23,公開了一種基于逆向的入侵檢測(cè)系統(tǒng)及其方法,該技術(shù)系統(tǒng)包括數(shù)據(jù)提取模塊、逆向分析模塊、入侵規(guī)則模塊、響應(yīng)模塊和數(shù)據(jù)管理模塊。該技術(shù)方法包括:①數(shù)據(jù)提取模塊捕獲所有經(jīng)過安卓手機(jī)的網(wǎng)絡(luò)數(shù)據(jù)包,發(fā)送給逆向分析引擎,數(shù)據(jù)提取模塊獲取網(wǎng)絡(luò)進(jìn)程以及用戶行為,生成系統(tǒng)日志和網(wǎng)絡(luò)日志發(fā)送給數(shù)據(jù)管理模塊;②逆向分析引擎通過TCP/IP協(xié)議分析技術(shù)和apk反編譯逆向技術(shù),結(jié)合系統(tǒng)日志和網(wǎng)絡(luò)日志識(shí)別入侵行為響應(yīng)模塊對(duì)逆向分析引擎識(shí)別出來的入侵行為進(jìn)行警告和記錄;④用戶所有的信息都會(huì)存放在數(shù)據(jù)管理模塊中,方便以后取證查找。該技術(shù)具有安全性、時(shí)效性、可擴(kuò)展性和超前性。但該系統(tǒng)主要通過分析網(wǎng)絡(luò)流量和程序代碼做程序和設(shè)備入侵行為檢測(cè),無法進(jìn)行對(duì)應(yīng)用程序本身的脆弱性和安全漏洞做出評(píng)估和檢測(cè)的結(jié)果。
[0007]中國專利文獻(xiàn)號(hào)CN102831342A公開(公告)日2012.12.19,公開了一種提高安卓系統(tǒng)中應(yīng)用程序保護(hù)強(qiáng)度的方法,包括如下步驟:創(chuàng)建安全虛擬機(jī),其安全虛擬機(jī)用于執(zhí)行對(duì)應(yīng)于其應(yīng)用程序中第一程序代碼指令的第二程序代碼指令;創(chuàng)建由Dalvik虛擬機(jī)執(zhí)行的第一程序代碼指令與由其安全虛擬機(jī)執(zhí)行的其第二程序代碼指令的映射表;根據(jù)其映射表將其應(yīng)用程序中的其第一程序代碼指令轉(zhuǎn)換為其第二程序代碼指令;將其第一程序代碼指令從其應(yīng)用程序中刪除,并將其應(yīng)用程序中調(diào)用其已刪除的第一程序代碼指令的調(diào)用方式更改為本地調(diào)用方式;創(chuàng)建本地調(diào)用接口 ;當(dāng)需要執(zhí)行其應(yīng)用程序中第一程序代碼指令時(shí),其Dalvik虛擬機(jī)執(zhí)行其本地調(diào)用接口 ;其本地調(diào)用接口調(diào)用其安全虛擬機(jī),由其安全虛擬機(jī)執(zhí)行其第二程序代碼指令。但該技術(shù)將技術(shù)對(duì)原有的代碼實(shí)施強(qiáng)保護(hù)來加大程序被破解和逆向難度,但并沒有本質(zhì)上對(duì)程序的安全漏洞和脆弱性進(jìn)行測(cè)試和評(píng)估,只是讓可能存在的潛在漏洞被發(fā)現(xiàn)和利用的難度加大。
【發(fā)明內(nèi)容】
[0008]本發(fā)明針對(duì)現(xiàn)有技術(shù)存在的上述不足,提出一種Android應(yīng)用程序安全性測(cè)試的通用方法及系統(tǒng),能夠?qū)λ蠥ndroid應(yīng)用程序通過靜態(tài)和動(dòng)態(tài)分析相結(jié)合的方式,可以通過一系列步驟的檢測(cè)和評(píng)估,能夠最終給出應(yīng)用程序本身設(shè)計(jì)和實(shí)現(xiàn)上存在的安全缺陷和隱患。
[0009]本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的:
[0010]本發(fā)明涉及一種Android應(yīng)用程序安全性測(cè)試的通用方法,包括以下步驟:
[0011]I)對(duì)待測(cè)試程序解包并進(jìn)行反編譯,得到XML源代碼,具體步驟包括:
[0012]1.1解壓apk程序包,得到其中的可執(zhí)行文件,Android主清單文件,以及資源文件等。
[0013]1.2反編譯dex可執(zhí)行文件,得到smali代碼或Java代碼。
[0014]1.3解碼主清單文件Manifest, xml以及其他資源文件,得到xml明文源代碼。
[0015]2)通過靜態(tài)分析待測(cè)試程序的配置文件和代碼,進(jìn)行包括:組件暴露漏洞、密碼學(xué)誤用、webview代碼執(zhí)行漏洞、代碼保護(hù)方面的靜態(tài)漏洞檢測(cè)和安全測(cè)試,具體步驟包括:
[0016]2.1掃描第一步得到的manifest文件,通過對(duì)組件屬性值的分析進(jìn)行組件暴露漏洞的檢測(cè)。
[0017]2.2掃描第一步得到的dex可執(zhí)行文件的反編譯代碼,通過分析加密函數(shù)的加密消息、加密算法、加密密鑰等參數(shù)進(jìn)行密碼學(xué)誤用的檢測(cè)。
[0018]2.3掃描第一步得到的dex可執(zhí)行文件的反編譯代碼,通過分析webview使用到的具體有漏洞存在的函數(shù)調(diào)用接口,來檢測(cè)是否存在webview代碼執(zhí)行漏洞。
[0019]2.4對(duì)應(yīng)用程序進(jìn)行重打包嘗試,來判斷應(yīng)用程序是否做了防止二次重打包保護(hù);掃描第一步得到的dex可執(zhí)行文件的反編譯代碼,來判斷應(yīng)用程序是否做了代碼混淆保護(hù)。
[0020]3)將待測(cè)試程序進(jìn)行實(shí)際運(yùn)行并配置網(wǎng)絡(luò)檢測(cè)環(huán)境,具體步驟包括:
[0021]3.1將待測(cè)試程序安裝于實(shí)際設(shè)備中進(jìn)行運(yùn)行;
[0022]3.2將實(shí)際設(shè)備通過USB連接至分析主機(jī),并打開設(shè)備上的USB調(diào)試選項(xiàng);
[0023]3.3配置網(wǎng)絡(luò)使分析主機(jī)可以捕捉待測(cè)試程序的網(wǎng)絡(luò)通信流量。
[0024]所述的捕捉采用但不僅限于:
[0025]a)使實(shí)際設(shè)備連接分析主機(jī)設(shè)置的無線接入點(diǎn),設(shè)置設(shè)備上的WIFI接入點(diǎn)的代理服務(wù)器為分析主機(jī),并在分析主機(jī)上開啟代理服務(wù)功能;或者是
[0026]b)在分析主機(jī)上打開網(wǎng)絡(luò)監(jiān)控軟件監(jiān)控待測(cè)試程序的網(wǎng)絡(luò)發(fā)送和接收的數(shù)據(jù)。
[0027]4)進(jìn)行動(dòng)態(tài)分析,對(duì)信息泄漏、數(shù)據(jù)傳輸安全和數(shù)據(jù)存儲(chǔ)安全三個(gè)方面的動(dòng)態(tài)漏洞檢測(cè)和安全測(cè)試,具體步驟包括:
[0028]4.1正常使用待測(cè)試程序,并在運(yùn)行過程中,通過USB與分析主機(jī)相連并檢測(cè)待測(cè)試程序在設(shè)備上打印的日志信息判斷是否有諸如加密算法密鑰、本該加密的通信數(shù)據(jù)包的明文、涉及用戶隱私如聯(lián)系人短信等敏感信息的泄漏;
[0029]4.2正常使用待測(cè)試程序,并利用分析主機(jī)上的網(wǎng)絡(luò)監(jiān)控來捕捉待測(cè)試程序的網(wǎng)絡(luò)通信數(shù)據(jù),在運(yùn)行過程中,分析其網(wǎng)絡(luò)通信傳輸是否為明文以及傳輸密文是否被破解的安全問題。
[0030]4.3正常使用待測(cè)試程序,并在運(yùn)行過程中,分析待測(cè)試程序存儲(chǔ)的數(shù)據(jù)和文件是否能被讀寫或者執(zhí)行以判斷其數(shù)據(jù)存儲(chǔ)的安全性。
[0031]上述這些漏洞都可能導(dǎo)致應(yīng)用程序敏感和機(jī)密數(shù)據(jù)和信息的竊取、泄漏、解密等,另外還可能導(dǎo)致權(quán)限和功能泄漏和濫用、版權(quán)竊取以及加密協(xié)議被破解等風(fēng)險(xiǎn)。
[0032]5)得出漏洞檢測(cè)和安全測(cè)試報(bào)告,內(nèi)容包括:被暴露的應(yīng)用程序組件列表;應(yīng)用程序存在密碼學(xué)誤用情況的代碼片段列表;應(yīng)用程序中存在webview代碼執(zhí)行漏洞的代碼片段列表;是否做了重打包保護(hù)和是否做了代碼混淆的判斷結(jié)果;被泄露的敏感信息列表;通信數(shù)據(jù)是否加密,若加密使用SSL則是否實(shí)現(xiàn)證書綁定,是否實(shí)現(xiàn)證書正確驗(yàn)證;存儲(chǔ)的數(shù)據(jù)是否可被第三方非授權(quán)獲取。
技術(shù)效果
[0033]與現(xiàn)有技術(shù)相比,本發(fā)明通過靜態(tài)分析和動(dòng)態(tài)分析結(jié)合的方式,能夠更加準(zhǔn)確全面的對(duì)應(yīng)用程序可能的遭受的各個(gè)方面的攻擊和風(fēng)險(xiǎn)進(jìn)行測(cè)試和檢測(cè)。由于目前尚沒有一套完整的對(duì)任一 Android應(yīng)用程序安全性的通用檢測(cè)流程和方法,使用本發(fā)明可以完整地對(duì)任一 Android應(yīng)用程序在實(shí)現(xiàn)和設(shè)計(jì)的安全缺陷和漏洞做出評(píng)估,包含代碼中的組件漏洞,密碼學(xué)誤用,webview漏洞,數(shù)據(jù)傳輸,數(shù)據(jù)存儲(chǔ),信息泄漏,程序保護(hù)等各個(gè)方面。使用本發(fā)明的方法檢測(cè)數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)傳輸、信息泄漏方面能夠更加準(zhǔn)確,有效減少誤報(bào)率。而檢測(cè)組件漏洞,webview代碼執(zhí)行漏洞,密碼學(xué)誤用則能夠減小漏報(bào)率,發(fā)現(xiàn)潛在的安全隱串
■/Q1、O
【專利附圖】
【附圖說明】
[0034]圖1為實(shí)施例測(cè)試示意圖。
【具體實(shí)施方式】
[0035]下面對(duì)本發(fā)明的實(shí)施例作詳細(xì)說明,本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。
實(shí)施例1
[0036]如圖1所示,本實(shí)施例包括以下步驟:
[0037]I)對(duì)待測(cè)程序解包,并進(jìn)行反編譯:使用apktool或jeb等Android平臺(tái)的逆向工具反編譯dex代碼和解碼Android的manifest, xml配置文件后,
[0038]2)對(duì)反編譯獲得的代碼和解碼得到的配置文件,使用靜態(tài)分析方法進(jìn)行四個(gè)方面的安全性檢測(cè):
[0039]2.1)組件暴露:掃描manifest文件里的組件,exported屬性設(shè)置為true、不設(shè)置exported 并有 intent - filtered 的、不設(shè)置 exported 且 sdkvers1n 設(shè)置為小于等于 16的provider,均表示該組件暴露。
[0040]2.2)密碼學(xué)誤用:定義一套密碼學(xué)使用標(biāo)準(zhǔn),如CBC加密模式的IV必須隨機(jī),不應(yīng)使用ECB加密模式等,并通過掃描靜態(tài)反編譯后的源代碼,查找Java中一系列的加密函數(shù),如Cipher.doFinal,KeySpec初始化函數(shù)等,通過檢查這些函數(shù)的參數(shù)值,來判斷代碼中是否有違反該標(biāo)準(zhǔn)的。
[0041]2.3) Webview代碼執(zhí)行漏洞:檢測(cè)靜態(tài)反編譯的代碼中如使用addjavascriptInterface 方法并且 manifest, xml 中定義 targetSdkVers1n 小于等于 16,則存在該漏洞。
[0042]2.4)代碼保護(hù):使用apktool以及signapk工具重打包應(yīng)用程序再運(yùn)行若成功,則表示應(yīng)用程序未做重打包保護(hù),失敗則表示程序做了重打包防護(hù)。如果反編譯出的關(guān)鍵代碼的變量名、方法名、類名等沒有變?yōu)闊o意義的如abed等替代,則表示未進(jìn)行代碼混淆。
[0043]3)將待測(cè)試程序?qū)嶋H運(yùn)行并配置動(dòng)態(tài)檢測(cè)環(huán)境。將應(yīng)用程序安裝至終端設(shè)備并運(yùn)行,正常使用應(yīng)用程序的一切功能,進(jìn)行動(dòng)態(tài)測(cè)試,配置動(dòng)態(tài)測(cè)試環(huán)境,設(shè)備使用USB連接至分析主機(jī),并打開設(shè)備上的USB調(diào)試選項(xiàng);配置網(wǎng)絡(luò)測(cè)試環(huán)境使分析主機(jī)可以捕捉應(yīng)用程序的網(wǎng)絡(luò)通信流量,方法包括但不僅限于使設(shè)備連接分析主機(jī)設(shè)置的無線接入點(diǎn);設(shè)置設(shè)備上的WIFI接入點(diǎn)的代理服務(wù)器為分析主機(jī),并在分析主機(jī)上開啟代理服務(wù)功能等;在分析主機(jī)上打開網(wǎng)絡(luò)監(jiān)控軟件監(jiān)控應(yīng)用程序的網(wǎng)絡(luò)發(fā)送和接收的數(shù)據(jù)。
[0044]4)在測(cè)試環(huán)境下,進(jìn)行三個(gè)方面的動(dòng)態(tài)安全性檢測(cè)。
[0045]4.1)信息泄漏:在分析主機(jī)上使用adb 1gcat功能,過濾被測(cè)試的應(yīng)用程序日志信息,查看是否有敏感信息輸出,敏感信息包括使用到的密碼學(xué)函數(shù)關(guān)鍵參數(shù)如對(duì)稱加密算法的密鑰,本該加密的內(nèi)容的明文形式,用戶的隱私數(shù)據(jù)等。若有則存在信息泄漏風(fēng)險(xiǎn)。
[0046]4.2)數(shù)據(jù)傳輸安全:使用網(wǎng)絡(luò)代理工具查看應(yīng)用程序網(wǎng)絡(luò)通信流量,使用http則表示通信數(shù)據(jù)未加密,實(shí)施中間人攻擊嘗試,如替換證書后能夠解密https流量則證明SSL證書未驗(yàn)證,在手機(jī)上安裝簽發(fā)自定義證書的CA根證書后能夠解密https流量則證明SSL證書未綁定,三種情況都會(huì)導(dǎo)致機(jī)密數(shù)據(jù)不安全傳輸。
[0047]4.3)數(shù)據(jù)存儲(chǔ)安全:查看/data/data下該應(yīng)用程序目錄下若存在文件權(quán)限設(shè)置為其他用戶可讀、可寫或可執(zhí)行,或該應(yīng)用程序會(huì)在SD卡上存放敏感機(jī)密數(shù)據(jù),則表示該應(yīng)用程序數(shù)據(jù)存儲(chǔ)存在安全性問題。
[0048]5)總結(jié)以上7個(gè)方面的安全性檢測(cè)結(jié)果,形成報(bào)告。內(nèi)容包括:
[0049]a)暴露的應(yīng)用程序組件名稱列表。
[0050]b)應(yīng)用程序中的密碼學(xué)誤用的代碼片段。
[0051]c)應(yīng)用程序中使用到的webview漏洞代碼片段列表,即使用了addjavascriptInterface這個(gè)函數(shù)的類的列表。
[0052]d)應(yīng)用程序是否進(jìn)行了二次重打包保護(hù),是否進(jìn)行了代碼混淆。
[0053]e)應(yīng)用程序泄漏的敏感信息列表,即1gcat中有敏感信息的日志片段。
[0054]f)應(yīng)用程序在網(wǎng)絡(luò)通信中使用明文連接的地址列表,如果使用了 SSL連接,則是否實(shí)現(xiàn)證書正確驗(yàn)證,是否實(shí)現(xiàn)證書綁定。
[0055]g)應(yīng)用程序的可被其他應(yīng)用程序無授權(quán)訪問的文件列表。
【權(quán)利要求】
1.一種Android應(yīng)用程序安全性測(cè)試的通用方法,其特征在于,包括以下步驟: 1)對(duì)待測(cè)試程序解包并進(jìn)行反編譯,得到XML源代碼; 2)通過靜態(tài)分析待測(cè)試程序的配置文件和代碼,進(jìn)行包括:組件暴露漏洞、密碼學(xué)誤用、webview代碼執(zhí)行漏洞、代碼保護(hù)方面的靜態(tài)漏洞檢測(cè)和安全測(cè)試; 3)將待測(cè)試程序進(jìn)行實(shí)際運(yùn)行并配置網(wǎng)絡(luò)檢測(cè)環(huán)境; 4)進(jìn)行動(dòng)態(tài)分析,對(duì)信息泄漏、數(shù)據(jù)傳輸安全和數(shù)據(jù)存儲(chǔ)安全三個(gè)方面的動(dòng)態(tài)漏洞檢測(cè)和安全測(cè)試; 5)得出漏洞檢測(cè)和安全測(cè)試報(bào)告。
2.根據(jù)權(quán)利要求1所述的Android應(yīng)用程序安全性測(cè)試的通用方法,其特征是,所述的步驟I)具體包括:1.1解壓apk程序包,得到其中的可執(zhí)行文件、Android主清單文件以及資源文件; 1.2反編譯dex可執(zhí)行文件,得到smali代碼或Java代碼; 1.3解碼主清單文件Manifest, xml以及其他資源文件,得到xml明文源代碼。
3.根據(jù)權(quán)利要求1所述的Android應(yīng)用程序安全性測(cè)試的通用方法,其特征是,所述的步驟2)具體包括: 2.1掃描第一步得到的manifest文件,通過對(duì)組件屬性值的分析進(jìn)行組件暴露漏洞的檢測(cè); 2.2掃描第一步得到的dex可執(zhí)行文件的反編譯代碼,通過分析加密函數(shù)的加密消息、加密算法、加密密鑰等參數(shù)進(jìn)行密碼學(xué)誤用的檢測(cè); 2.3掃描第一步得到的dex可執(zhí)行文件的反編譯代碼,通過分析webview使用到的具體有漏洞存在的函數(shù)調(diào)用接口,來檢測(cè)是否存在webview代碼執(zhí)行漏洞; 2.4對(duì)應(yīng)用程序進(jìn)行重打包嘗試,來判斷應(yīng)用程序是否做了防止二次重打包保護(hù);掃描第一步得到的dex可執(zhí)行文件的反編譯代碼,來判斷應(yīng)用程序是否做了代碼混淆保護(hù)。
4.根據(jù)權(quán)利要求1所述的Android應(yīng)用程序安全性測(cè)試的通用方法,其特征是,所述的步驟3)具體包括: 3.1將待測(cè)試程序安裝于實(shí)際設(shè)備中進(jìn)行運(yùn)行; 3.2將實(shí)際設(shè)備通過USB連接至分析主機(jī),并打開設(shè)備上的USB調(diào)試選項(xiàng); 3.3配置網(wǎng)絡(luò)使分析主機(jī)可以捕捉待測(cè)試程序的網(wǎng)絡(luò)通信流量。
5.根據(jù)權(quán)利要求4所述的Android應(yīng)用程序安全性測(cè)試的通用方法,其特征是,所述的捕捉采用: a)使實(shí)際設(shè)備連接分析主機(jī)設(shè)置的無線接入點(diǎn),設(shè)置設(shè)備上的WIFI接入點(diǎn)的代理服務(wù)器為分析主機(jī),并在分析主機(jī)上開啟代理服務(wù)功能;或者是 b)在分析主機(jī)上打開網(wǎng)絡(luò)監(jiān)控軟件監(jiān)控待測(cè)試程序的網(wǎng)絡(luò)發(fā)送和接收的數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的Android應(yīng)用程序安全性測(cè)試的通用方法,其特征是,所述的步驟4)具體包括: 4.1正常使用待測(cè)試程序,并在運(yùn)行過程中,通過USB與分析主機(jī)相連并檢測(cè)待測(cè)試程序在設(shè)備上打印的日志信息判斷是否有敏感信息的泄漏; 4.2正常使用待測(cè)試程序,并利用分析主機(jī)上的網(wǎng)絡(luò)監(jiān)控來捕捉待測(cè)試程序的網(wǎng)絡(luò)通信數(shù)據(jù),在運(yùn)行過程中,分析其網(wǎng)絡(luò)通信傳輸是否為明文以及傳輸密文是否被破解的安全冋題; 4.3正常使用待測(cè)試程序,并在運(yùn)行過程中,分析待測(cè)試程序存儲(chǔ)的數(shù)據(jù)和文件是否能被讀寫或者執(zhí)行以判斷其數(shù)據(jù)存儲(chǔ)的安全性。
7.根據(jù)權(quán)利要求6所述的Android應(yīng)用程序安全性測(cè)試的通用方法,其特征是,所述的敏感信息包括:加密算法密鑰、本該加密的通信數(shù)據(jù)包的明文、第三方無法讀取的文件內(nèi)容、涉及用戶隱私如聯(lián)系人短信。
8.根據(jù)權(quán)利要求6所述的Android應(yīng)用程序安全性測(cè)試的通用方法,其特征是,所述的漏洞檢測(cè)和安全測(cè)試報(bào)告包括:被暴露的應(yīng)用程序組件列表、應(yīng)用程序存在密碼學(xué)誤用情況的代碼片段列表、應(yīng)用程序中存在webview代碼執(zhí)行漏洞的代碼片段列表、是否做了重打包保護(hù)和是否做了代碼混淆的判斷結(jié)果、被泄露的敏感信息列表、通信數(shù)據(jù)是否加密,若加密使用SSL則是否實(shí)現(xiàn)證書綁定,是否實(shí)現(xiàn)證書正確驗(yàn)證、存儲(chǔ)的數(shù)據(jù)是否可被第三方非授權(quán)獲取。
【文檔編號(hào)】G06F21/57GK104484607SQ201410781145
【公開日】2015年4月1日 申請(qǐng)日期:2014年12月16日 優(yōu)先權(quán)日:2014年12月16日
【發(fā)明者】張媛媛, 楊文博, 束駿亮, 李卷孺, 谷大武 申請(qǐng)人:上海交通大學(xué), 上海交通大學(xué)中原研究院