一種應用程序中泄露隱私數據的漏洞檢測方法及裝置制造方法
【專利摘要】本發(fā)明實施例公開了一種應用程序中泄露隱私數據的漏洞檢測方法,包括:獲取待檢測應用程序中Content?provider組件的共享標志位和安全級別;若所述共享標志位為預設值,且所述安全級別為預設的安全級別,指示代理應用程序訪問第一通用資源標識符URI所指向的共享文件,以使所述代理應用程序訪問第二通用資源標識符URI所指向的非共享文件;獲取所述代理應用程序訪問所述非共享文件的訪問結果,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。本發(fā)明實施例還公開了一種應用程序中泄露隱私數據的漏洞檢測裝置。采用本發(fā)明實施例,可自動檢測待檢測應用程序是否存在泄露隱私數據的漏洞。
【專利說明】一種應用程序中泄露隱私數據的漏洞檢測方法及裝置
【技術領域】
[0001]本發(fā)明涉及信息安全【技術領域】,尤其涉及一種應用程序中泄露隱私數據的漏洞檢測方法及裝置。
【背景技術】
[0002]通常,應用程序的私有文件是不允許除應用程序本身外的其它任何文件或其它任何應用程序進行訪問的,因此,當應用程序需要將某個私有文件共享給其它應用程序時,常采用的方法是給應用程序的文件添加Content provider組件,然后通過配置Contentprovider組件的共享標志位和安全級別,給其它應用程序或文件設置不同的訪問權限。
[0003]例如,若Content provider組件配置成共享數據的情況,則安全級別為“signatureOrSystem”時,說明只有系統(tǒng)應用程序和與本應用程序具有相同的數字簽名的應用程序才可以訪問該共享文件;若安全級別為“signature”,說明只有與本應用程序具有相同的數字簽名的應用程序才可以訪問該共享文件;若安全級別為“dangeixms”,說明系統(tǒng)將要求用戶輸入相關信息后,才會授予訪問該共享文件的權限;若安全級別為“normal”,說明其它任何應用程序都可以訪問該共享文件。
[0004]然而,越來越多的應用程序在使用Content provider組件時存在問題,這些問題會泄漏用戶的非共享數據,即非共享數據也可以被其它應用程序所訪問,從而導致用戶的隱私數據被泄露。因此,檢測設置有Content provider組件的應用程序中是否存在泄露隱私數據的漏洞顯得尤為重要。目前,常采用的解決方法是對待檢測應用程序的安裝文件進行反編譯,然后在反編譯后的原文件中逐個分析待檢測應用程序的共享數據是否設置了權限,以及確認所設置的訪問權限是否恰當。然而,該方法沒有檢測待檢測應用程序中是否因設置了共享數據而存在泄露隱私數據的漏洞。
【發(fā)明內容】
[0005]本發(fā)明實施例提供一種應用程序中泄露隱私數據的漏洞檢測方法及裝置,可自動檢測待檢測應用程序是否存在泄露隱私數據的漏洞,給開發(fā)者提供指導作用。
[0006]本發(fā)明實施例提供一種應用程序中泄露隱私數據的漏洞檢測方法,包括:
[0007]獲取待檢測應用程序中Content provider組件的共享標志位和安全級別;
[0008]若所述共享標志位為預設值,且所述安全級別為預設的安全級別,指示代理應用程序訪問第一通用資源標識符URI所指向的共享文件,所述共享文件是指所述待檢測應用程序共享給所述代理應用程序的文件,以使所述代理應用程序訪問第二通用資源標識符URI所指向的非共享文件,所述非共享文件是指所述待檢測應用程序未進行共享的文件;
[0009]獲取所述代理應用程序訪問所述非共享文件的訪問結果,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。
[0010]相應地,本發(fā)明實施例還提供了一種應用程序中泄露隱私數據的漏洞檢測裝置,包括:[0011]獲取模塊,用于獲取待檢測應用程序中Content provider組件的共享標志位和安全級別;
[0012]指示模塊,用于若所述共享標志位為預設值,且所述安全級別為預設的安全級別,指示代理應用程序訪問第一通用資源標識符URI所指向的共享文件,所述共享文件是指所述待檢測應用程序共享給所述代理應用程序的文件,以使所述代理應用程序訪問第二通用資源標識符URI所指向的非共享文件,所述非共享文件是指所述待檢測應用程序未進行共享的文件;
[0013]第一確定模塊,用于獲取所述代理應用程序訪問所述非共享文件的訪問結果,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。
[0014]實施本發(fā)明實施例,具有如下有益效果:
[0015]通過獲取待檢測應用程序中Content provider組件的共享標志位和安全級別,若共享標志位為預設值,且安全級別為預設的安全級別,構造第一通用資源標識符,并指示代理應用程序訪問第一通用資源標識符所指向的共享文件,同時,代理應用程序根據第一通用資源標識符構造第二通用資源標識符,并去訪問第二通用資源標識符所指向的非共享文件,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。采用本發(fā)明實施例,可以自動檢測待檢測應用程序是否存在泄露隱私數據的漏洞。
【專利附圖】
【附圖說明】
[0016]為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0017]圖1是本發(fā)明實施例提供的一種應用程序中泄露隱私數據的漏洞檢測方法的流程不意圖;
[0018]圖2是本發(fā)明實施例提供的一種應用程序中泄露隱私數據的漏洞檢測方法的另一流程示意圖;
[0019]圖3是本發(fā)明實施例提供的一種應用程序中泄露隱私數據的漏洞檢測方法的又一流程示意圖;
[0020]圖4是本發(fā)明實施例提供的一種應用程序中泄露隱私數據的漏洞檢測裝置的結構示意圖;
[0021]圖5是本發(fā)明實施例提供的一種應用程序中泄露隱私數據的漏洞檢測裝置的另一結構示意圖;
[0022]圖6是圖5中提供的其中一種指示模塊的結構示意圖;
[0023]圖7是本發(fā)明實施例提供的一種應用程序中泄露隱私數據的漏洞檢測裝置的又一結構示意圖。
【具體實施方式】
[0024]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅是本發(fā)明的一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0025]在本發(fā)明實施例中,待檢測應用程序可以是基于Android、塞班或蘋果1S等手機操作系統(tǒng)的應用程序,也可以是基于計算機操作系統(tǒng)的應用程序,本發(fā)明實施例對此不作限制。為方便說明,本發(fā)明實施例以基于Android手機操作系統(tǒng)的應用程序為例。
[0026]請參見圖1,圖1是本發(fā)明實施例提供的一種應用程序中泄露隱私數據的漏洞檢測方法的流程示意圖,在本發(fā)明實施例中,該方法包括以下步驟。
[0027]SlOl:獲取待檢測應用程序中Content provider組件的共享標志位和安全級別。
[0028]在本發(fā)明實施例中,檢測待檢測應用程序是否存在泄露隱私數據的漏洞,需借助一個代理應用程序來完成,其中,代理應用程序是預先編寫好的一個應用程序,該代理應用程序可以通過訪問待檢測應用程序共享給它的共享文件后,根據該共享文件來獲取待檢測應用程序中的非共享數據的保存路徑,并自動去訪問這些非共享數據,若訪問成功,將訪問記錄保存在log日志信息中。
[0029]Content provider組件為存儲和查詢數據提供統(tǒng)一的接口,實現應用程序間的數據共享。Android系統(tǒng)內一些常見的數據,如音樂、視頻、圖像等都內置了一系列的Contentprovider ο每一個Content provider為其管理的多個數據集分配一個URI (UniformResource Identifier,通用資源標識符),這個URI對外提供了一個能夠唯一標識自己數據集的字符串。這樣別的應用程序就可以通過這個URI來訪問這個數據集。開發(fā)者在所開發(fā)的應用程序中聲明Content provider組件時,可以通過配置Content provider組件中的export參數值來設定該組件所對應的數據是不是要進行共享。一般情況下,聲明Contentprovider組件時,Content provider組件中的export參數值默認設置為True,即默認情況下聲明Content provider組件時說明該組件所對應的數據要進行共享,若不想共享該數據,可以將export參數值修改為False。可以理解的,在實際操作過程中,可以用I表示共享,用O表示不共享,為方便說明,本發(fā)明實施例以export參數值用True和False來分別表示共享和不共享為例。若export參數值為True,說明要共享數據,因此,開發(fā)者會進一步配置Content provider組件的安全級別(Protect1n Level)來設置訪問權限,該安全級別可以設置為 “signatureOrSystem”、“signature'“dangerous” 和 “normal” 中的其中一個屬性。若安全級別配置為“signatureOrSystem”,說明只有系統(tǒng)應用程序和與本應用程序具有相同的數字簽名的應用程序才可以訪問該共享文件;若安全級別配置為“signature”,說明只有與本應用程序具有相同的數字簽名的應用程序才可以訪問該共享文件;若安全級別配置為“dangerous”,說明系統(tǒng)將要求用戶輸入相關信息后,才會授予訪問該共享文件的權限;若安全級別配置為“normal”,說明其它任何應用程序都可以訪問該共享文件,其中,“signatureOrSystem” 和 “signature” 的安全級別高。默認情況下,Content provider 組件會自動配置該安全級別為“normal”,即其它任何應用程序都可以訪問該共享文件。因此,開發(fā)者會根據實際需要來對該安全級別進行重新設置,合理保護應用程序的隱私數據??梢岳斫獾模诒景l(fā)明實施例中,所述共享標志位即為Content provider組件中的export參數值,用于標記Content provider組件所對應的數據是否進行共享。
[0030]作為一種優(yōu)選的實施方式,在計算機中安裝手機模擬器,其中,手機模擬器基于手機的操作系統(tǒng)可以分為基于Android系統(tǒng)的手機模擬器、基于塞班系統(tǒng)的手機模擬器和基于蘋果系統(tǒng)的手機模擬器等,在本發(fā)明實施例中,手機模擬器的具體安裝類型應根據待檢測應用程序的類別來選擇,本發(fā)明實施例對此不作任何限制。例如:若待檢測應用程序的安裝包為apk文件,則在計算機中安裝基于Android系統(tǒng)的手機模擬器。將待檢測應用程序和代理應用程序的安裝包文件導入裝有手機模擬器的計算機中,同時,在手機模擬器中安裝待檢測應用程序和代理應用程序,這樣,對檢測待檢測應用程序是否存在泄露隱私數據的漏洞的準備工作已做好。
[0031]具體的,對待檢測應用程序的安裝包進行解包處理,其中,解包即壓包的反過程,將壓包文件還原成原來的初始文件,掃描待檢測應用程序包括的所有文件,獲取待檢測應用程序的配置文件,其中,所述配置文件中記錄有待檢測應用程序的Content provider組件,進一步的,獲取待檢測應用程序中Content provider組件的共享標志位和安全級別。
[0032]S102:若所述共享標志位為預設值,且所述安全級別為預設的安全級別,指示代理應用程序訪問第一通用資源標識符URI所指向的共享文件,所述共享文件是指所述待檢測應用程序共享給所述代理應用程序的文件,以使所述代理應用程序訪問第二通用資源標識符URI所指向的非共享文件,所述非共享文件是指所述待檢測應用程序未進行共享的文件。
[0033]為方便說明,本發(fā)明實施例以export參數值用True和False來分別表示共享和不共享為例,因此設置預設值為True,同時,設置預設的安全級別為“dangerous”和“normal”,因為“dangerous”和“normal”的安全級別低,其它任何應用程序都有可能訪問到待檢測應用程序的共享數據。
[0034]具體的,若獲取到的共享標志位為預設值,且獲取到的安全級別為預設的安全級另IJ,即共享標志位為True,安全級別為“dangeixms”或“normal”的情況,則說明待檢測應用程序可能存在泄露隱私數據的風險。因此,根據Content provider組件構造第一通用資源標識符URI,該第一通用資源標識符指向待檢測應用程序共享給代理應用程序的共享文件,通過adb調試工具給代理應用程序發(fā)送包括訪問所述第一通用資源標識符所指向的共享文件的操作指令,指示代理應用程序訪問第一通用資源標識符所指向的共享文件。與此同時,代理應用程序接收到訪問所述第一通用資源標識符所指向的共享文件的操作指令后,代理應用程序根據所述第一通用資源標識符構造第二通用資源標識符,其中,第二通用資源標識符指向待檢測應用程序未進行共享的文件,并自動去訪問第二通用資源標識符URI所指向的非共享文件。
[0035]相應的,若獲取到的共享標志位為預設值,且獲取到的安全級別不是預設的安全級另II,即共享標志位為True,安全級別為“signatureOrSystem”或“signature”的情況,貝丨J可直接確定待檢測應用程序不存在泄露隱私數據的漏洞。同樣的,若獲取到的共享標志位不是預設值,即共享標志位為False,說明雖然聲明了 Content provider組件但并不對待檢測應用程序的數據進行共享,因此,也可直接確定待檢測應用程序不存在泄露隱私數據的漏洞。
[0036]S103:獲取所述代理應用程序訪問所述非共享文件的訪問結果,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。
[0037]由于代理應用程序在訪問文件時,若訪問成功會打印log日志信息,因此,根據該日志信息獲取代理應用程序訪問非共享文件的訪問結果,若訪問成功,則說明該代理應用程序可以訪問待檢測應用程序未進行共享的隱私數據,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。
[0038]在本發(fā)明實施例所描述的應用程序中泄露隱私數據的漏洞檢測方法中,獲取待檢測應用程序中Content provider組件的共享標志位和安全級別,若共享標志位為預設值,且安全級別為預設的安全級別,構造第一通用資源標識符,并指示代理應用程序訪問第一通用資源標識符所指向的共享文件,同時,代理應用程序根據第一通用資源標識符構造第二通用資源標識符,并去訪問第二通用資源標識符所指向的非共享文件,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。采用本發(fā)明實施例,可以自動檢測待檢測應用程序是否存在泄露隱私數據的漏洞,給開發(fā)者提供指導作用。
[0039]請參見圖2,圖2是本發(fā)明實施例提供的一種應用程序中泄露隱私數據的漏洞檢測方法的另一流程示意圖,在本發(fā)明實施例中,該方法包括以下步驟。
[0040]S201:將待檢測應用程序的安裝包文件導入裝有手機模擬器的計算機中。
[0041]S202:在所述手機模擬器中安裝所述待檢測應用程序和代理應用程序。
[0042]S203:獲取待檢測應用程序中Content provider組件的共享標志位和安全級別。
[0043]若獲取到的共享標志位為預設值,且獲取到的安全級別不是預設的安全級別,或獲取到的共享標志位不是預設值,則直接確定待檢測應用程序不存在泄露隱私數據的漏洞。若獲取到的共享標志位為預設值,且獲取到的安全級別為預設的安全級別,執(zhí)行S204。
[0044]S204:檢測所述待檢測應用程序是否具有訪問文件的功能。
[0045]具體的,對所述待檢測應用程序進行解包處理,從解包處理后的原始文件中獲取所述待檢測應用程序的配置文件,所述配置文件中記錄有所述待檢測應用程序是否具有訪問文件的功能。若是,執(zhí)行S206 ;若否,執(zhí)行S205。
[0046]S205:確定所述待檢測應用程序不存在泄露隱私數據的漏洞。
[0047]S206:指示代理應用程序訪問第一通用資源標識符URI所指向的共享文件,所述共享文件是指所述待檢測應用程序共享給所述代理應用程序的文件,以使所述代理應用程序訪問第二通用資源標識符URI所指向的非共享文件,所述非共享文件是指所述待檢測應用程序未進行共享的文件。
[0048]具體的,根據Content provider組件構造第一通用資源標識符URI,該第一通用資源標識符指向待檢測應用程序共享給代理應用程序的共享文件。通過adb調試工具給代理應用程序發(fā)送包括訪問所述第一通用資源標識符所指向的共享文件的adb命令,指示代理應用程序訪問第一通用資源標識符所指向的共享文件。與此同時,代理應用程序接收到訪問所述第一通用資源標識符所指向的共享文件的操作指令后,代理應用程序根據所述第一通用資源標識符構造第二通用資源標識符,其中,第二通用資源標識符指向待檢測應用程序未進行共享的文件,并自動去訪問第二通用資源標識符URI所指向的非共享文件,若訪問成功,將訪問記錄保存在log日志信息中。
[0049]S207:獲取所述代理應用程序訪問所述非共享文件的訪問結果,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。
[0050]具體的,獲取代理應用程序記錄訪問文件的日志信息,根據該日志信息獲取代理應用程序訪問非共享文件的訪問結果,若訪問成功,則說明該代理應用程序可以訪問待檢測應用程序未進行共享的隱私數據,則確定所述待檢測應用程序存在泄露隱私數據的漏洞;若日志信息中沒有記錄訪問非共享文件的相關數據,則訪問失敗,確定所述待檢測應用程序不存在泄露隱私數據的漏洞。
[0051]S208:輸出所述待檢測應用程序的檢測信息,所述檢測信息包括檢測結果和檢測時間。
[0052]具體的,待確定完待檢測應用程序是否存在泄露隱私數據的漏洞后,將檢測信息進行輸出,所述檢測信息包括檢測結果和檢測時間。例如:假設檢測時間為2000年I月I日13:27,若待檢測應用程序不存在泄露隱私數據的漏洞,可輸出:該應用程序不存在泄露隱私數據的漏洞,檢測時間為2000年I月I日13:27 ;若待檢測應用程序存在泄露隱私數據的漏洞,可輸出:該應用程序存在泄露隱私數據的漏洞,檢測時間為2000年I月I日13:27。
[0053]優(yōu)選的,待確定完待檢測應用程序是否存在泄露隱私數據的漏洞后,保存該待檢測應用程序的檢測信息,并標記該待檢測應用程序已檢測,方便下次檢測時直接根據已保存的信息獲取該應用程序的檢測信息,減少重復操作。具體的,在系統(tǒng)中給待檢測應用程序創(chuàng)建一個標記文件,其中,用“ I ”標識所述待檢測應用程序已完成泄露隱私數據的漏洞的檢測,用“O”標識所述待檢測應用程序未進行泄露隱私數據的漏洞的檢測,將該狀態(tài)標志位默認置為“0”,當確定完待檢測應用程序是否存在泄露隱私數據的漏洞后,再將該狀態(tài)標志位置為“ I ”,并將檢測結果保存在指定的保存路徑中。當下一次對該待檢測應用程序進行泄露隱私數據的漏洞的檢測時,首先去獲取系統(tǒng)中是否有該待檢測應用程序的標記文件,若有,查看狀態(tài)標志位是否為1,若狀態(tài)標志位為“1”,直接去指定的存儲單元中獲取該待檢測應用程序的檢測結果;若系統(tǒng)中沒有該待檢測應用程序的標記文件,為該待檢測應用程序創(chuàng)建一個標記文件,將狀態(tài)標志位默認置為“0”,執(zhí)行S201,待確定完待檢測應用程序是否存在泄露隱私數據的漏洞后,將狀態(tài)標志位更新為I并保存檢測結果;若系統(tǒng)中有該待檢測應用程序的標記文件,但狀態(tài)標志位為“0”,執(zhí)行S201,待確定完待檢測應用程序是否存在泄露隱私數據的漏洞后,將狀態(tài)標志位更新為I并保存檢測結果。
[0054]在本發(fā)明實施例所描述的應用程序中泄露隱私數據的漏洞檢測方法中,獲取待檢測應用程序中Content provider組件的共享標志位和安全級別,若共享標志位為預設值,且安全級別為預設的安全級別,構造第一通用資源標識符,并指示代理應用程序訪問第一通用資源標識符所指向的共享文件,同時,代理應用程序根據第一通用資源標識符構造第二通用資源標識符,并去訪問第二通用資源標識符所指向的非共享文件,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。采用本發(fā)明實施例,可以自動檢測待檢測應用程序是否存在泄露隱私數據的漏洞,給開發(fā)者提供指導作用。
[0055]請參見圖3,圖3是本發(fā)明實施例提供的一種應用程序中泄露隱私數據的漏洞檢測方法的又一流程示意圖,在本發(fā)明實施例中,該方法包括以下步驟。
[0056]S301:獲取待檢測應用程序中Content provider組件的共享標志位和安全級別。
[0057]S302:若所述共享標志位為預設值,且所述安全級別為預設的安全級別,指示代理應用程序訪問第一通用資源標識符URI所指向的共享文件,所述共享文件是指所述待檢測應用程序共享給所述代理應用程序的文件,以使所述代理應用程序訪問第二通用資源標識符URI所指向的非共享文件,所述非共享文件是指所述待檢測應用程序未進行共享的文件。
[0058]S303:獲取所述代理應用程序訪問所述非共享文件的訪問結果,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。
[0059]S304:記錄所述待檢測應用程序的特征信息,并將所述特征信息和所述檢測結果上傳至服務器。
[0060]優(yōu)選的,所述特征信息為待檢測應用程序的包名和/或MD5值。
[0061]具體的,終端在使用該待檢測應用程序的過程中,通過具體的檢測軟件獲取到該應用程序存在泄露隱私數據的漏洞,該終端可以獲取該應用程序的特征信息,例如:應用程序的包名和/或MD5值,將特征信息和檢測結果上傳至服務器,以使服務器獲知該特征信息所指定的應用程序存在泄露隱私數據的漏洞后,提示開發(fā)人員針對該漏洞對應用程序進行修改。開發(fā)人員對該應用程序的泄露隱私數據的漏洞進行修復后,可重新發(fā)布升級包文件,服務器可基于消息推送的機制使終端下載該升級包文件,將下載過來的升級包文件替換掉應用程序中對應的原始文件,從而使終端對存在泄露隱私數據的漏洞的應用程序進行升級,修復該漏洞。
[0062]S305:提示用戶所述待檢測應用程序存在所述泄露隱私數據的漏洞。
[0063]S306:修復所述待檢測應用程序中存在的泄露隱私數據的漏洞。
[0064]優(yōu)選的,若接收到修復該泄露隱私數據的漏洞的確認請求,所在終端可以下載修復所述待檢測應用程序中的泄露隱私數據的漏洞的升級包文件,將所述升級包文件替換掉所述待檢測應用程序中對應的原始文件,完成漏洞修復。
[0065]在本發(fā)明實施例所描述的應用程序中泄露隱私數據的漏洞檢測方法中,獲取待檢測應用程序中Content provider組件的共享標志位和安全級別,若共享標志位為預設值,且安全級別為預設的安全級別,構造第一通用資源標識符,并指示代理應用程序訪問第一通用資源標識符所指向的共享文件,同時,代理應用程序根據第一通用資源標識符構造第二通用資源標識符,并去訪問第二通用資源標識符所指向的非共享文件,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。采用本發(fā)明實施例,可以自動檢測待檢測應用程序是否存在泄露隱私數據的漏洞,給開發(fā)者提供指導作用。
[0066]請參見圖4,圖4是本發(fā)明實施例提供的一種應用程序中泄露隱私數據的漏洞檢測裝置的結構示意圖,在本發(fā)明實施例中,該裝置包括:獲取模塊401、指示模塊402和第一確定模塊403。
[0067]獲取模塊401,用于獲取待檢測應用程序中Content provider組件的共享標志位和安全級別。
[0068]指示模塊402,用于若所述共享標志位為預設值,且所述安全級別為預設的安全級另|J,指示代理應用程序訪問第一通用資源標識符URI所指向的共享文件,所述共享文件是指所述待檢測應用程序共享給所述代理應用程序的文件,以使所述代理應用程序訪問第二通用資源標識符URI所指向的非共享文件,所述非共享文件是指所述待檢測應用程序未進行共享的文件。
[0069]第一確定模塊403,用于獲取所述代理應用程序訪問所述非共享文件的訪問結果,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。
[0070]在本發(fā)明實施例所描述的應用程序中泄露隱私數據的漏洞檢測裝置中,獲取待檢測應用程序中Content provider組件的共享標志位和安全級別,若共享標志位為預設值,且安全級別為預設的安全級別,構造第一通用資源標識符,并指示代理應用程序訪問第一通用資源標識符所指向的共享文件,同時,代理應用程序根據第一通用資源標識符構造第二通用資源標識符,并去訪問第二通用資源標識符所指向的非共享文件,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。采用本發(fā)明實施例,可以自動檢測待檢測應用程序是否存在泄露隱私數據的漏洞,給開發(fā)者提供指導作用。
[0071]請參見圖5,圖5是本發(fā)明實施例提供的一種應用程序中泄露隱私數據的漏洞檢測裝置的另一結構示意圖,在本發(fā)明實施例中,該裝置包括:獲取模塊501、指示模塊502、第一確定模塊503、程序導入模塊504、程序安裝模塊505、第二確定模塊506和輸出模塊507。
[0072]獲取模塊501,用于獲取待檢測應用程序中Content provider組件的共享標志位和安全級別。
[0073]指示模塊502,用于若所述共享標志位為預設值,且所述安全級別為預設的安全級另|J,指示代理應用程序訪問第一通用資源標識符URI所指向的共享文件,所述共享文件是指所述待檢測應用程序共享給所述代理應用程序的文件,以使所述代理應用程序訪問第二通用資源標識符URI所指向的非共享文件,所述非共享文件是指所述待檢測應用程序未進行共享的文件。
[0074]第一確定模塊503,用于獲取所述代理應用程序訪問所述非共享文件的訪問結果,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。
[0075]程序導入模塊504,用于將所述待檢測應用程序的安裝包文件導入裝有手機模擬器的計算機中。
[0076]程序安裝模塊505,用于在所述手機模擬器中安裝所述待檢測應用程序和所述代
理應用程序。
[0077]第二確定模塊506,用于若所述共享標志位為所述預設值,且所述安全級別不是所述預設的安全級別,或所述共享標志位不是所述預設值,則確定所述待檢測應用程序不存在泄露隱私數據的漏洞。
[0078]輸出模塊507,用于輸出所述待檢測應用程序的檢測信息,所述檢測信息包括檢測結果和檢測時間。
[0079]作為一種優(yōu)選的實施方式,指示模塊502包括:檢測單元5021、執(zhí)行單元5022、確定單元5023、構造單元5024和發(fā)送單元5025。如圖6所示,圖6是圖5中提供的其中一種指示模塊的結構示意圖。
[0080]檢測單元5021,用于若所述共享標志位為預設值,且所述安全級別為預設的安全級別,檢測所述待檢測應用程序是否具有訪問文件的功能。
[0081]執(zhí)行單元5022,用于若是,執(zhí)行所述指示代理應用程序訪問第一通用資源標識符所指向的共享文件的步驟。
[0082]確定單元5023,用于若否,則確定所述待檢測應用程序不存在泄露隱私數據的漏洞。
[0083]構造單元5024,用于根據Content provider組件構造第一通用資源標識符URI,所述第一通用資源標識符URI指向所述待檢測應用程序共享給所述代理應用程序的文件。
[0084]發(fā)送單元5025,用于向所述代理應用程序發(fā)送包括訪問所述第一通用資源標識符所指向的共享文件的操作指令。[0085]作為另一種優(yōu)選的實施方式,檢測單元5021還用于對所述待檢測應用程序進行解包處理,獲取所述待檢測應用程序的配置文件,所述配置文件記錄有所述待檢測應用程序是否具有訪問文件的功能。發(fā)送單元5025還用于通過adb調試工具向所述代理應用程序發(fā)送包括訪問所述第一通用資源標識符所指向的共享文件的adb命令。
[0086]在本發(fā)明實施例所描述的應用程序中泄露隱私數據的漏洞檢測裝置中,獲取待檢測應用程序中Content provider組件的共享標志位和安全級別,若共享標志位為預設值,且安全級別為預設的安全級別,構造第一通用資源標識符,并指示代理應用程序訪問第一通用資源標識符所指向的共享文件,同時,代理應用程序根據第一通用資源標識符構造第二通用資源標識符,并去訪問第二通用資源標識符所指向的非共享文件,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。采用本發(fā)明實施例,可以自動檢測待檢測應用程序是否存在泄露隱私數據的漏洞,給開發(fā)者提供指導作用。
[0087]請參見圖7,圖7是本發(fā)明實施例提供的一種應用程序中泄露隱私數據的漏洞檢測裝置的又一結構示意圖,在本發(fā)明實施例中,該裝置包括:獲取模塊701、指示模塊702、第一確定模塊703、上傳模塊704、提示模塊705和修復模塊706。
[0088]獲取模塊701,用于獲取待檢測應用程序中Content provider組件的共享標志位和安全級別。
[0089]指示模塊702,用于若所述共享標志位為預設值,且所述安全級別為預設的安全級另|J,指示代理應用程序訪問第一通用資源標識符URI所指向的共享文件,所述共享文件是指所述待檢測應用程序共享給所述代理應用程序的文件,以使所述代理應用程序訪問第二通用資源標識符URI所指向的非共享文件,所述非共享文件是指所述待檢測應用程序未進行共享的文件。
[0090]第一確定模塊703,用于獲取所述代理應用程序訪問所述非共享文件的訪問結果,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。
[0091]上傳模塊704,用于記錄所述待檢測應用程序的特征信息,并將所述特征信息和所述檢測結果上傳至服務器。
[0092]優(yōu)選的,所述特征信息為待檢測應用程序的包名和/或MD5值。
[0093]提示模塊705,用于提示用戶所述待檢測應用程序存在所述泄露隱私數據的漏洞。
[0094]修復模塊706,用于修復所述待檢測應用程序中存在的泄露隱私數據的漏洞。優(yōu)選的,修復模塊706還用于下載所述待檢測應用程序的升級包文件,將所述升級包文件替換掉所述待檢測應用程序中對應的原始文件。
[0095]在本發(fā)明實施例所描述的應用程序中泄露隱私數據的漏洞檢測裝置中,獲取待檢測應用程序中Content provider組件的共享標志位和安全級別,若共享標志位為預設值,且安全級別為預設的安全級別,構造第一通用資源標識符,并指示代理應用程序訪問第一通用資源標識符所指向的共享文件,同時,代理應用程序根據第一通用資源標識符構造第二通用資源標識符,并去訪問第二通用資源標識符所指向的非共享文件,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。采用本發(fā)明實施例,可以自動檢測待檢測應用程序是否存在泄露隱私數據的漏洞,給開發(fā)者提供指導作用。
[0096]本發(fā)明實施例方法中的步驟可以根據實際需要進行順序調整、合并和刪減。
[0097]本發(fā)明實施例裝置中的模塊或單元可以根據實際需要進行合并、劃分和刪減。[0098]本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(RandomAccessMemory, RAM)等。
[0099]以上所揭露的僅為本發(fā)明一種較佳實施例而已,當然不能以此來限定本發(fā)明之權利范圍,本領域普通技術人員可以理解實現上述實施例的全部或部分流程,并依本發(fā)明權利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。
【權利要求】
1.一種應用程序中泄露隱私數據的漏洞檢測方法,其特征在于,包括: 獲取待檢測應用程序中Content provider組件的共享標志位和安全級別; 若所述共享標志位為預設值,且所述安全級別為預設的安全級別,指示代理應用程序訪問第一通用資源標識符URI所指向的共享文件,所述共享文件是指所述待檢測應用程序共享給所述代理應用程序的文件,以使所述代理應用程序訪問第二通用資源標識符URI所指向的非共享文件,所述非共享文件是指所述待檢測應用程序未進行共享的文件; 獲取所述代理應用程序訪問所述非共享文件的訪問結果,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。
2.如權利要求1所述的方法,其特征在于,所述獲取待檢測應用程序中Contentprovider組件的共享標志位和安全級別之前,所述方法還包括: 將所述待檢測應用程序的安裝包文件導入裝有手機模擬器的計算機中; 在所述手機模擬器中安裝所述待檢測應用程序和所述代理應用程序。
3.如權利要求2所述的方法,其特征在于,所述方法還包括: 若所述共享標志位為所述預設值,且所述安全級別不是所述預設的安全級別,或所述共享標志位不是所述預設值,則確定所述待檢測應用程序不存在泄露隱私數據的漏洞。
4.如權利要求3所述的方法,其特征在于,所述若所述共享標志位為預設值,且所述安全級別為預設的安全級別 ,指示代理應用程序訪問第一通用資源標識符URI所指向的共享文件,包括: 若所述共享標志位為預設值,且所述安全級別為預設的安全級別,檢測所述待檢測應用程序是否具有訪問文件的功能; 若是,執(zhí)行所述指示代理應用程序訪問第一通用資源標識符所指向的共享文件的步驟; 若否,則確定所述待檢測應用程序不存在泄露隱私數據的漏洞。
5.如權利要求4所述的方法,其特征在于,所述檢測所述待檢測應用程序是否具有訪問文件的功能,包括: 對所述待檢測應用程序進行解包處理,獲取所述待檢測應用程序的配置文件,所述配置文件記錄有所述待檢測應用程序是否具有訪問文件的功能。
6.如權利要求1-5任一項所述的方法,其特征在于,所述指示代理應用程序訪問第一通用資源標識符URI所指向的共享文件,包括: 根據Content provider組件構造第一通用資源標識符URI,所述第一通用資源標識符URI指向所述待檢測應用程序共享給所述代理應用程序的文件; 向所述代理應用程序發(fā)送包括訪問所述第一通用資源標識符所指向的共享文件的操作指令。
7.如權利要求6所述的方法,其特征在于,所述向所述代理應用程序發(fā)送包括訪問所述第一通用資源標識符所指向的共享文件的操作指令,包括: 通過adb調試工具向所述代理應用程序發(fā)送包括訪問所述第一通用資源標識符所指向的共享文件的adb命令。
8.如權利要求7所述的方法,其特征在于,所述方法還包括: 輸出所述待檢測應用程序的檢測信息,所述檢測信息包括檢測結果和檢測時間。
9.如權利要求1所述的方法,其特征在于,所述方法還包括: 記錄所述待檢測應用程序的特征信息,并將所述特征信息和所述檢測結果上傳至服務器。
10.如權利要求9所述的方法,其特征在于,所述特征信息為所述待檢測應用程序的包名和/或MD5值。
11.如權利要求1所述的方法,其特征在于,所述方法還包括: 提示用戶所述待檢測應用程序存在所述泄露隱私數據的漏洞。
12.如權利要求1或11所述的方法,其特征在于,所述方法還包括: 修復所述待檢測應用程序中存在的泄露隱私數據的漏洞。
13.如權利要求12所述的方法,其特征在于,所述修復所述待檢測應用程序中存在的泄露隱私數據的漏洞,包括: 下載所述待檢測應用程序的升級包文件,將所述升級包文件替換掉所述待檢測應用程序中對應的原始文件。
14.一種應用程序中泄露隱私數據的漏洞檢測裝置,其特征在于,包括: 獲取模塊,用于獲取待檢測應用程序中Content provider組件的共享標志位和安全級別; 指示模塊,用于若所述共享標志位為預設值,且所述安全級別為預設的安全級別,指示代理應用程序訪問第一通用資源標識符URI所指向的共享文件,所述共享文件是指所述待檢測應用程序共享給所述代理應用程序的文件,以使所述代理應用程序訪問第二通用資源標識符URI所指向的非共享文件,所述非共享文件是指所述待檢測應用程序未進行共享的文件; 第一確定模塊,用于獲取所述代理應用程序訪問所述非共享文件的訪問結果,若訪問成功,則確定所述待檢測應用程序存在泄露隱私數據的漏洞。
15.如權利要求14所述的裝置,其特征在于,所述裝置還包括: 程序導入模塊,用于將所述待檢測應用程序的安裝包文件導入裝有手機模擬器的計算機中; 程序安裝模塊,用于在所述手機模擬器中安裝所述待檢測應用程序和所述代理應用程序。
16.如權利要求15所述的裝置,其特征在于,所述裝置還包括: 第二確定模塊,用于若所述共享標志位為所述預設值,且所述安全級別不是所述預設的安全級別,或所述共享標志位不是所述預設值,則確定所述待檢測應用程序不存在泄露隱私數據的漏洞。
17.如權利要求16所述的裝置,其特征在于,所述指示模塊包括: 檢測單元,用于若所述共享標志位為預設值,且所述安全級別為預設的安全級別,檢測所述待檢測應用程序是否具有訪問文件的功能; 執(zhí)行單元,用于若是,執(zhí)行所述指示代理應用程序訪問第一通用資源標識符所指向的共享文件的步驟; 確定單元,用于若否,則確定所述待檢測應用程序不存在泄露隱私數據的漏洞。
18.如權利要求17所述的裝置,其特征在于,所述檢測單元還用于對所述待檢測應用程序進行解包處理,獲取所述待檢測應用程序的配置文件,所述配置文件記錄有所述待檢測應用程序是否具有訪問文件的功能。
19.如權利要求1-18任一項所述的裝置,其特征在于,所述指示模塊還包括: 構造單元,用于根據Content provider組件構造第一通用資源標識符URI,所述第一通用資源標識符URI指向所述待檢測應用程序共享給所述代理應用程序的文件; 發(fā)送單元,用于向所述代理應用程序發(fā)送包括訪問所述第一通用資源標識符所指向的共享文件的操作指令。
20.如權利要求19所述的裝置,其特征在于,所述發(fā)送單元還用于 通過adb調試工具向所述代理應用程序發(fā)送包括訪問所述第一通用資源標識符所指向的共享文件的adb命令。
21.如權利要求20所述的裝置,其特征在于,所述裝置還包括: 輸出模塊,用于輸出所述待檢測應用程序的檢測信息,所述檢測信息包括檢測結果和檢測時間。
22.如權利要求14所述的裝置,其特征在于,所述裝置還包括: 上傳模塊,用于記錄所述待檢測應用程序的特征信息,并將所述特征信息和所述檢測結果上傳至服務 器。
23.如權利要求22所述的裝置,其特征在于,所述特征信息為所述待檢測應用程序的包名和/或MD5值。
24.如權利要求14所述的裝置,其特征在于,所述裝置還包括: 提示模塊,用于提示用戶所述待檢測應用程序存在所述泄露隱私數據的漏洞。
25.如權利要求14或24所述的裝置,其特征在于,所述裝置還包括: 修復模塊,用于修復所述待檢測應用程序中存在的泄露隱私數據的漏洞。
26.如權利要求25所述的裝置,其特征在于,所述修復模塊還用于下載所述待檢測應用程序的升級包文件,將所述升級包文件替換掉所述待檢測應用程序中對應的原始文件。
【文檔編號】G06F21/57GK104036194SQ201410210311
【公開日】2014年9月10日 申請日期:2014年5月16日 優(yōu)先權日:2014年5月16日
【發(fā)明者】劉文柱, 沈江波, 張楠, 徐鳴 申請人:北京金山安全軟件有限公司