亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

面向安卓廣告庫的細(xì)粒度權(quán)限管理方法及系統(tǒng)與流程

文檔序號:11287202閱讀:304來源:國知局
面向安卓廣告庫的細(xì)粒度權(quán)限管理方法及系統(tǒng)與流程

本發(fā)明屬于安卓廣告庫安全領(lǐng)域和權(quán)限管理技術(shù)領(lǐng)域,更具體地,涉及一種面向安卓廣告庫的細(xì)粒度權(quán)限管理方法及系統(tǒng)。



背景技術(shù):

在安卓環(huán)境下,用戶隱私數(shù)據(jù)和系統(tǒng)權(quán)限關(guān)系密切,每一類隱私對應(yīng)一類權(quán)限。需要保證隱私數(shù)據(jù)只能由授權(quán)用戶訪問,非授權(quán)用戶不能獲取訪問,研究合適的權(quán)限管理策略正是實(shí)現(xiàn)這一目標(biāo)的重要手段。

由于安卓權(quán)限機(jī)制的特殊性,只能以應(yīng)用作為整體進(jìn)行權(quán)限管理,宿主應(yīng)用和其包含的廣告庫共享權(quán)限,就會引起許多現(xiàn)有的安全問題。首先用戶無法明確地知道權(quán)限的具體授予對象究竟是宿主應(yīng)用還是廣告庫,這會導(dǎo)致用戶信息在其不知情時(shí)被濫用,泄漏了用戶隱私。其次,廣告庫可能存在惡意行為或者安全漏洞,在與宿主應(yīng)用共享權(quán)限的情況下,它能訪問更多系統(tǒng)資源,惡意行為或漏洞的危害將會增加。并且,廣告庫作為第三方工具包被廣泛使用,如果不能對其使用的權(quán)限單獨(dú)管理,也增加了安全隱患。最后,在商業(yè)利益方面,區(qū)分宿主應(yīng)用與廣告庫的權(quán)限申請,會增加應(yīng)用的用戶友好度,有利于應(yīng)用的傳播,提升了應(yīng)用開發(fā)者的利益。綜上所述,如果能分別管理宿主應(yīng)用和廣告庫的權(quán)限,則能在安全問題和商業(yè)利益中獲取雙贏。

為解決安卓廣告庫的權(quán)限管理問題,目前有如下幾種方式:最初的思路的是將宿主應(yīng)用與廣告庫運(yùn)行在不同進(jìn)程中,安卓系統(tǒng)以進(jìn)程為權(quán)限管理單位,因此便可分開管理宿主應(yīng)用和廣告庫的進(jìn)程。但由于安卓系統(tǒng)在用戶界面上只能顯示一個(gè)應(yīng)用的界面,即使分離了進(jìn)程后的宿主應(yīng)用和廣告庫顯示在同一頁面上,則需要修改現(xiàn)有系統(tǒng)的ui機(jī)制,并且廣告庫的顯示方式多樣,此方法提出的ui機(jī)制還存在許多限制。這一研究沒有改變安卓的權(quán)限管理粒度,并且增加運(yùn)行應(yīng)用所需的系統(tǒng)開銷,故而實(shí)用性較低。隨后出現(xiàn)了在系統(tǒng)權(quán)限集中增加廣告庫權(quán)限的方案,即由系統(tǒng)sdk提供對廣告庫的支持,應(yīng)用在引入廣告之前必須向系統(tǒng)申請廣告庫權(quán)限。這種方案將廣告庫的安全性需由安卓系統(tǒng)保證,并且無法阻止開發(fā)者使用現(xiàn)有第三方的廣告庫,同時(shí)也損害了廣告商的商業(yè)利益。在技術(shù)層面上,由于廣告庫功能和安卓sdk綁定,會導(dǎo)致廣告庫無法及時(shí)更新。針對這些問題,出現(xiàn)了實(shí)用性更高的廣告庫權(quán)限管理方案,通過污點(diǎn)跟蹤技術(shù),標(biāo)記隱私數(shù)據(jù),在系統(tǒng)網(wǎng)絡(luò)出口處進(jìn)行監(jiān)視,根據(jù)網(wǎng)絡(luò)流向的目的地的域名來識別廣告庫,根據(jù)用戶對廣告庫的授權(quán)管理選擇允許或拒絕此次網(wǎng)絡(luò)傳輸。污點(diǎn)跟蹤是在系統(tǒng)運(yùn)行時(shí)隨時(shí)可能觸發(fā)的,因此將增加較大的系統(tǒng)開銷。同時(shí),此方案最大的問題是,系統(tǒng)需要維護(hù)一個(gè)廣告庫域名名單,對于名單以外的廣告庫將無法識別,某些運(yùn)行在云端的廣告庫服務(wù)器也無法識別,所以會大大降低此方案的有效性。以上研究都從安卓系統(tǒng)的角度來對廣告庫權(quán)限管理提供支持,不可避免地增加了系統(tǒng)開銷,缺少實(shí)用性,并且沒能解決識別廣告庫的準(zhǔn)確性問題。隨后從應(yīng)用的角度,利用代碼重寫的方法進(jìn)行權(quán)限管理,并引入機(jī)器學(xué)習(xí)的方法,對應(yīng)用中包含的廣告庫代碼進(jìn)行識別,能夠?qū)箓鹘y(tǒng)方法無法解決的代碼混淆技術(shù)。在識別出廣告庫代碼后,此方案掃描應(yīng)用代碼,定位廣告庫功能函數(shù)調(diào)用處,進(jìn)行代碼改寫,添加權(quán)限檢查代碼,判斷用戶是否授權(quán)。此方法沒有涉及系統(tǒng)修改,通過大量樣本訓(xùn)練出的分類器也能夠準(zhǔn)確地識別廣告庫,但是需要對應(yīng)用代碼進(jìn)行改寫,在復(fù)雜邏輯下,無法保證改寫后的應(yīng)用運(yùn)行正常,同時(shí)也會給應(yīng)用發(fā)布者增加很大的工作量,無法在現(xiàn)有環(huán)境中推廣。

綜上所述,當(dāng)前關(guān)于安卓廣告庫權(quán)限管理的研究,最大的問題是不能保證分離管理的有效性,且不能兼容當(dāng)前的安卓系統(tǒng)環(huán)境,不利于在商業(yè)環(huán)境中采用??傊?,目前并沒有一種方法實(shí)現(xiàn)有效、便于實(shí)施的安卓廣告庫細(xì)粒度權(quán)限管理。



技術(shù)實(shí)現(xiàn)要素:

針對現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明的目的在于提供了一種面向安卓廣告庫的細(xì)粒度權(quán)限管理方法及系統(tǒng),由此解決現(xiàn)有技術(shù)中不存在實(shí)現(xiàn)有效、便于實(shí)施的安卓廣告庫細(xì)粒度權(quán)限管理方法的技術(shù)問題。

為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提供了一種面向安卓廣告庫的細(xì)粒度權(quán)限管理方法,包括以下步驟:

s1、使用已訓(xùn)練的廣告庫分類器識別待發(fā)布應(yīng)用中的廣告庫;

s2、對所述待發(fā)布應(yīng)用進(jìn)行重打包,將所述待發(fā)布應(yīng)用中的廣告庫包名以及模塊的權(quán)限列表寫入所述待發(fā)布應(yīng)用的基本屬性清單文件,其中,所述模塊包括廣告庫和宿主應(yīng)用;

s3、修改安卓系統(tǒng)的應(yīng)用安裝機(jī)制,在所述待發(fā)布應(yīng)用安裝時(shí),解析所述基本屬性清單文件,記錄所述待發(fā)布應(yīng)用包含的廣告庫信息以及廣告庫權(quán)限和宿主應(yīng)用權(quán)限;

s4、基于安卓系統(tǒng)原有的權(quán)限檢查機(jī)制,在發(fā)生敏感api調(diào)用時(shí),通過回溯函數(shù)調(diào)用棧判斷權(quán)限檢查觸發(fā)點(diǎn)來自于廣告庫還是宿主應(yīng)用,根據(jù)所述模塊的權(quán)限列表,決定是否同意所述敏感api調(diào)用;

s5、接收用戶輸入的管理宿主應(yīng)用權(quán)限和廣告庫權(quán)限的指令,授予或拒絕宿主應(yīng)用權(quán)限和/或廣告庫權(quán)限。

優(yōu)選地,所述方法還包括:

收集m個(gè)現(xiàn)有廣告庫,提取各現(xiàn)有廣告庫特征生成特征向量,其中,m為預(yù)設(shè)值;

采用svm構(gòu)建廣告庫分類器,對所述廣告庫分類器參數(shù)進(jìn)行調(diào)整以增加識別準(zhǔn)確度。

優(yōu)選地,步驟s2具體包括以下子步驟:

s2.1、反編譯所述待發(fā)布應(yīng)用,獲取所述待發(fā)布應(yīng)用的基本屬性清單文件;

s2.2、以鍵值對的方式將所述待發(fā)布應(yīng)用中的廣告庫包名寫入所述基本屬性清單文件;

s2.3、通過靜態(tài)代碼分析判斷所述待發(fā)布應(yīng)用所申請權(quán)限的具體使用者,以<模塊,權(quán)限>的形式寫入所述基本屬性清單文件;

s2.4、將反編譯得到的源碼文件以及修改后的基本屬性清單文件作為項(xiàng)目源碼,編譯生成應(yīng)用安裝包,并對所述應(yīng)用安裝包進(jìn)行簽名;

s2.5、發(fā)布新簽名的應(yīng)用安裝包。

優(yōu)選地,步驟s3具體包括以下子步驟:

s3.1、基于安卓原有的應(yīng)用安裝機(jī)制,檢查所述待發(fā)布應(yīng)用的基本屬性清單文件中是否包含所使用的廣告庫包名的鍵值對,如果包含,轉(zhuǎn)至步驟s3.2,如果不包含,則轉(zhuǎn)至步驟s3.3;

s3.2、在系統(tǒng)文件中記錄所述待發(fā)布應(yīng)用所包含的廣告庫包名信息;

s3.3、根據(jù)所述待發(fā)布應(yīng)用的基本屬性清單文件中記錄的模塊和權(quán)限的對應(yīng)關(guān)系,向用戶分別申請授權(quán);

s3.4、將用戶授予宿主應(yīng)用和廣告庫的權(quán)限分別記錄在系統(tǒng)文件中。

優(yōu)選地,步驟s4具體包括以下子步驟:

s4.1、在安卓的權(quán)限檢查機(jī)制進(jìn)行權(quán)限檢查時(shí),通過java反射,獲取權(quán)限檢查函數(shù)的調(diào)用棧信息;

s4.2、對調(diào)用棧信息逐層回溯,將調(diào)用棧上的函數(shù)的全程限定名與所述待發(fā)布應(yīng)用包含的廣告庫包名進(jìn)行前綴匹配,如果其中任意一層函數(shù)能夠匹配,則轉(zhuǎn)至步驟s4.3,如果棧上所有函數(shù)都不能匹配,則轉(zhuǎn)至步驟s4.4;

s4.3、查詢用戶對所述待發(fā)布應(yīng)用中廣告庫所賦予的權(quán)限,判斷此次權(quán)限是否在合法權(quán)限清單內(nèi),如果合法,則此次權(quán)限檢查通過,否則此次權(quán)限檢查不通過,結(jié)束;

s4.4、查詢用戶對宿主應(yīng)用本身所賦予的權(quán)限,判斷此次權(quán)限是否在合法權(quán)限清單內(nèi),如果合法,則此次權(quán)限檢查通過,否則此次權(quán)限檢查不通過。

優(yōu)選地,步驟s5具體包括以下子步驟:

s5.1、添加系統(tǒng)應(yīng)用,將記錄的模塊和權(quán)限的對應(yīng)信息以圖形化的形式展示給用戶;

s5.2、接收用戶輸入的管理宿主應(yīng)用權(quán)限和廣告庫權(quán)限的指令,授予或拒絕宿主應(yīng)用權(quán)限和/或廣告庫權(quán)限。

按照本發(fā)明的另一方面,提供了一種面向安卓廣告庫的細(xì)粒度權(quán)限管理系統(tǒng),包括:

識別模塊,用于使用已訓(xùn)練的廣告庫分類器識別待發(fā)布應(yīng)用中的廣告庫;

重打包模塊,用于對所述待發(fā)布應(yīng)用進(jìn)行重打包,將所述待發(fā)布應(yīng)用中的廣告庫包名以及模塊的權(quán)限列表寫入所述待發(fā)布應(yīng)用的基本屬性清單文件,其中,所述模塊包括廣告庫和宿主應(yīng)用;

解析模塊,用于修改安卓系統(tǒng)的應(yīng)用安裝機(jī)制,在所述待發(fā)布應(yīng)用安裝時(shí),解析所述基本屬性清單文件,記錄所述待發(fā)布應(yīng)用包含的廣告庫信息以及廣告庫權(quán)限和宿主應(yīng)用權(quán)限;

api調(diào)用決策模塊,用于基于安卓系統(tǒng)原有的權(quán)限檢查機(jī)制,在發(fā)生敏感api調(diào)用時(shí),通過回溯函數(shù)調(diào)用棧判斷權(quán)限檢查觸發(fā)點(diǎn)來自于廣告庫還是宿主應(yīng)用,根據(jù)所述模塊的權(quán)限列表,決定是否同意所述敏感api調(diào)用;

權(quán)限管理模塊,用于接收用戶輸入的管理宿主應(yīng)用權(quán)限和廣告庫權(quán)限的指令,授予或拒絕宿主應(yīng)用權(quán)限和/或廣告庫權(quán)限。

總體而言,本發(fā)明方法與現(xiàn)有技術(shù)方案相比,能夠取得下列有益效果:

1、實(shí)現(xiàn)了更有效的廣告庫識別:識別廣告庫是通過大量樣本訓(xùn)練出的分類器,能夠?qū)勾a混淆,識別位置廣告庫代碼。

2、開銷小:本發(fā)明所做的系統(tǒng)修改均是基于系統(tǒng)原生機(jī)制,沒有引入復(fù)雜的動態(tài)分析技術(shù),在權(quán)限檢查點(diǎn)利用java反射技術(shù)獲取函數(shù)調(diào)用棧,然后根據(jù)識別的廣告庫包名進(jìn)行權(quán)限檢查。

3、符合移動用戶、應(yīng)用開發(fā)者和廣告主的多方利益:本發(fā)明能夠解決安全問題,減少應(yīng)用對權(quán)限的過多申請,保護(hù)了用戶隱私,有益于應(yīng)用的推廣。同時(shí)用戶能夠單獨(dú)管理廣告的權(quán)限申請,增加了用戶對廣告安全的了解,減少了用戶由于擔(dān)心安全問題而屏蔽廣告等情況的發(fā)生。

附圖說明

圖1為本發(fā)明實(shí)施例公開的一種面向安卓廣告庫的細(xì)粒度權(quán)限管理方法的流程示意圖;

圖2為本發(fā)明實(shí)施例公開的一種廣告庫分類器訓(xùn)練方法的流程示意圖;

圖3為本發(fā)明實(shí)施例公開的一種對待發(fā)布應(yīng)用進(jìn)行重打包的方法流程示意圖;

圖4為本發(fā)明實(shí)施例公開的一種權(quán)限檢查機(jī)制的流程示意圖;

圖5為本發(fā)明實(shí)施例公開的一種識別敏感api調(diào)用的方法流程示意圖;

圖6為本發(fā)明實(shí)施例公開的一種動態(tài)權(quán)限管理的流程示意圖。

具體實(shí)施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。

以下首先就本發(fā)明的技術(shù)術(shù)語進(jìn)行解釋和說明:

權(quán)限:安卓系統(tǒng)所提供的與隱私數(shù)據(jù)對應(yīng)的權(quán)限集合;

應(yīng)用開發(fā)者:指設(shè)計(jì)與制造應(yīng)用的工程人員,持有組成應(yīng)用工程的所有文件,需要聲明運(yùn)行應(yīng)用所需的系統(tǒng)權(quán)限;

應(yīng)用發(fā)布方:在應(yīng)用市場中對應(yīng)用進(jìn)行驗(yàn)證,發(fā)布;

移動用戶:安裝及使用應(yīng)用,并能修改系統(tǒng)設(shè)置,增加或刪除應(yīng)用所需的權(quán)限;

應(yīng)用基本屬性清單文件:包含于應(yīng)用工程中,描述了應(yīng)用的開發(fā)者信息,組件信息,運(yùn)行所需權(quán)限;

廣告庫:由第三方提供的工具包,應(yīng)用開發(fā)者將其導(dǎo)入應(yīng)用工程中,使應(yīng)用支持廣告的展示,廣告內(nèi)容的獲取,用戶數(shù)據(jù)的讀寫;

廣告庫包名:每個(gè)廣告庫都有唯一的包名;

廣告庫分類器:采集廣告庫樣本,提取廣告庫特征,利用svm方法,訓(xùn)練出的分類器。用以識別應(yīng)用中的廣告庫代碼,識別結(jié)果是廣告庫包名;

宿主應(yīng)用:應(yīng)用本身的邏輯代碼部分,即排除了廣告庫代碼的其余應(yīng)用代碼;

模塊:本發(fā)明中的權(quán)限管理粒度,單個(gè)應(yīng)用共有兩個(gè)模塊,即廣告庫和宿主應(yīng)用;

安卓安裝機(jī)制:在應(yīng)用安裝時(shí),對應(yīng)用屬性進(jìn)行解析并存儲在系統(tǒng)文件中;

安卓權(quán)限檢查機(jī)制:在應(yīng)用運(yùn)行時(shí),當(dāng)觸發(fā)權(quán)限檢查時(shí),判斷應(yīng)用是否申請了相應(yīng)權(quán)限,允許或拒絕此次與權(quán)限檢查相關(guān)的系統(tǒng)調(diào)用;

權(quán)限檢查觸發(fā)點(diǎn):應(yīng)用運(yùn)行時(shí)訪問隱私數(shù)據(jù)會觸發(fā)權(quán)限檢查;

權(quán)限檢查函數(shù)調(diào)用棧:當(dāng)在應(yīng)用代碼中觸發(fā)權(quán)限檢查后,會將此次請求傳遞到系統(tǒng)服務(wù),此時(shí)在系統(tǒng)服務(wù)利用java反射就能獲取權(quán)限檢查函數(shù)的調(diào)用棧;

權(quán)限管理應(yīng)用:此應(yīng)用為本發(fā)明的一部分,便于用戶通過圖形界面對應(yīng)用的權(quán)限進(jìn)行增刪。

以下結(jié)合實(shí)施例和附圖對本發(fā)明中的面向安卓廣告庫的細(xì)粒度權(quán)限管理方法做進(jìn)一步說明。

如圖1所示,本發(fā)明中的面向安卓廣告庫的細(xì)粒度權(quán)限管理方法是應(yīng)用在安卓應(yīng)用權(quán)限管理的系統(tǒng)中,該系統(tǒng)包括應(yīng)用發(fā)布者、移動用戶以及安卓系統(tǒng),在其它實(shí)施方式中,應(yīng)用發(fā)布者的工作也可以由應(yīng)用開發(fā)者完成。

在本實(shí)施方式中,假設(shè)應(yīng)用發(fā)布者為某安卓應(yīng)用市場(設(shè)為m市場),待發(fā)布的應(yīng)用為某新聞門戶應(yīng)用a,該應(yīng)用包括兩部分功能:第一部分功能為新聞瀏覽,是由該應(yīng)用的開發(fā)者自己設(shè)計(jì);第二部分功能為廣告投放與展示,是由第三方廣告庫提供支持。該應(yīng)用申請的權(quán)限有訪問網(wǎng)絡(luò)(記為p1),訪問位置(記為p2),訪問用戶數(shù)據(jù)(記為p3),訪問攝像頭和麥克風(fēng)(記為p4)。其中權(quán)限p1是宿主應(yīng)用和廣告庫都需要的,權(quán)限p2和權(quán)限p3是廣告庫所需要的,權(quán)限p4是宿主應(yīng)用需要的。

本發(fā)明面向安卓廣告庫的細(xì)粒度權(quán)限管理方法包括以下步驟:

s1、使用已訓(xùn)練的廣告庫分類器識別待發(fā)布應(yīng)用中的廣告庫;

其中,在步驟s1之前還包括廣告庫分類器訓(xùn)練,如圖2所示,包括以下步驟:

收集m個(gè)現(xiàn)有廣告庫,提取各現(xiàn)有廣告庫特征生成特征向量,其中,m為正整數(shù);

其中,廣告庫特征包括功能函數(shù)簽名、廣告關(guān)鍵詞、廣告相關(guān)組件、相關(guān)權(quán)限等特征。

例如,現(xiàn)已收集市場上傳播的廣告庫工具包數(shù)量為200個(gè),非廣告庫工具包(視頻播放工具包等)100個(gè),不包含廣告庫的應(yīng)用100個(gè),根據(jù)其中的功能函數(shù)簽名、廣告關(guān)鍵詞、廣告相關(guān)組件、相關(guān)權(quán)限等特征,進(jìn)行標(biāo)記,生成特征向量。

采用支持向量機(jī)(supportvectormachine,svm)構(gòu)建廣告庫分類器,對廣告庫集合進(jìn)行預(yù)處理以增加識別準(zhǔn)確度,例如,可以通過排除常用廣告庫等方式增加識別準(zhǔn)確度;

具體而言,將得到的特征向量作為輸入,通過svm算法,生成廣告庫分類器,記為c。分類器的構(gòu)建重點(diǎn)在于廣告庫樣本的采集,廣告庫特征的選取,特征提取的過程。

利用構(gòu)建的廣告庫分類器,識別待發(fā)布應(yīng)用中的廣告庫。

例如,應(yīng)用市場p現(xiàn)在要發(fā)布新聞應(yīng)用a,先將應(yīng)用a反編譯得到應(yīng)用a的字節(jié)碼x,字節(jié)碼按照包結(jié)構(gòu)劃分,分為包x1,包x2,包x3。將每個(gè)包作為分類器c的輸入,判斷該包是否是廣告庫。假設(shè)此處包x3被判斷為廣告庫。則記錄它的包名n。

本步驟的優(yōu)點(diǎn)在于能夠?qū)勾a混淆,識別未知的廣告庫代碼。

s2、對待發(fā)布應(yīng)用進(jìn)行重打包,將待發(fā)布應(yīng)用中的廣告庫包名以及模塊的權(quán)限列表寫入待發(fā)布應(yīng)用的基本屬性清單文件,其中,模塊包括廣告庫和宿主應(yīng)用;

如圖3所示為本發(fā)明實(shí)施例公開的一種對待發(fā)布應(yīng)用進(jìn)行重打包的方法流程示意圖,具體包括以下子步驟:

s2.1、反編譯待發(fā)布應(yīng)用,獲取待發(fā)布應(yīng)用的基本屬性清單文件;

舉例而言,應(yīng)用市場p將新聞應(yīng)用a反編譯,得到其中的基本屬性清單文件d。

s2.2、以鍵值對的方式將待發(fā)布應(yīng)用中的廣告庫包名寫入基本屬性清單文件;

例如,應(yīng)用市場p將廣告庫包名n寫入基本屬性清單文件d,形式如下:adlib_name:n。

s2.3、通過靜態(tài)代碼分析判斷待發(fā)布應(yīng)用所申請權(quán)限的具體使用者,以<模塊,權(quán)限>的形式寫入基本屬性清單文件;

例如,應(yīng)用市場p掃描反編譯出的字節(jié)碼x,根據(jù)隱私數(shù)據(jù)與權(quán)限的對應(yīng)關(guān)系以及系統(tǒng)調(diào)用接口名稱,識別該應(yīng)用共使用了四種權(quán)限:訪問網(wǎng)絡(luò)(記為p1),訪問位置(記為p2),訪問用戶數(shù)據(jù)(記為p3),訪問攝像頭和麥克風(fēng)(記為p4)。已知有三個(gè)包x1,x2,x3,其中x3為廣告庫,x1和x2為宿主應(yīng)用代碼。其中包x3使用了p1、p2、p3和p4,宿主應(yīng)用只使用了p1。應(yīng)用基本屬性清單文件d中增加以下內(nèi)容:

adlib_permission:android.permission.record_audio

adlib_permission:android.permission.access_fine_location

adlib_permission:android.permission.internet

adlib_permission:android.permission.read_owner_data

s2.4、將反編譯得到的源碼文件以及修改后的基本屬性清單文件作為項(xiàng)目源碼,編譯生成應(yīng)用安裝包,并對應(yīng)用安裝包進(jìn)行簽名;

例如,應(yīng)用市場p將反編譯得到的字節(jié)碼x以及修改后的基本屬性清單文件d重新打包編譯,并簽名生成應(yīng)用b;

s2.5、發(fā)布新簽名的應(yīng)用安裝包。

具體而言,應(yīng)用市場p發(fā)布應(yīng)用b;

s3、修改安卓系統(tǒng)的應(yīng)用安裝機(jī)制,在待發(fā)布應(yīng)用安裝時(shí),解析基本屬性清單文件,記錄待發(fā)布應(yīng)用包含的廣告庫信息以及廣告庫權(quán)限和宿主應(yīng)用權(quán)限;如圖4所示為本發(fā)明實(shí)施例公開的一種權(quán)限檢查機(jī)制的流程示意圖,具體包括以下子步驟:

s3.1、基于安卓原有的應(yīng)用安裝機(jī)制,檢查待發(fā)布應(yīng)用的基本屬性清單文件中是否包含所使用的廣告庫包名的鍵值對,如果包含,轉(zhuǎn)至步驟s3.2,如果不包含,則轉(zhuǎn)至步驟s3.3;

例如,當(dāng)用戶下載并安裝步驟應(yīng)用b時(shí),安卓系統(tǒng)的應(yīng)用安裝機(jī)制會解析應(yīng)用b中包含的基本屬性清單文件。本發(fā)明在此基礎(chǔ)上進(jìn)行了系統(tǒng)修改,使得系統(tǒng)能夠檢測并解析基本屬性清單文件中的廣告庫包名鍵值對。如果包含,則解析該鍵值對,并向系統(tǒng)文件中記錄,否則跳過步驟(s3.3)。

s3.2、在系統(tǒng)文件中記錄所述待發(fā)布應(yīng)用所包含的廣告庫包名信息;

具體而言,系統(tǒng)文件中將會產(chǎn)生如下記錄:

application_name:adlib_name1,adlib_name2,…

一個(gè)應(yīng)用可能導(dǎo)入了多個(gè)廣告庫,所以存在廣告庫包名列表。

s3.3、根據(jù)待發(fā)布應(yīng)用的基本屬性清單文件中記錄的模塊和權(quán)限的對應(yīng)關(guān)系,向用戶分別申請授權(quán);

s3.4、將用戶授予宿主應(yīng)用和廣告庫的權(quán)限分別記錄在系統(tǒng)文件中。

具體而言,安卓應(yīng)用安裝機(jī)制在解析基本屬性清單文件時(shí),會解析步驟(s2.3)中所記錄的權(quán)限信息,繼而系統(tǒng)文件中會產(chǎn)生如下記錄:

application_name:android.permission.internet

application_adlib:android.permission.record_audio

application_adlib:android.permission.read_owner_data

application_adlib:android.permission.internet

application_adlib:android.permission.access_fine_location

s4、基于安卓系統(tǒng)原有的權(quán)限檢查機(jī)制,在發(fā)生敏感api調(diào)用時(shí),通過回溯函數(shù)調(diào)用棧判斷權(quán)限檢查觸發(fā)點(diǎn)來自于廣告庫還是宿主應(yīng)用,根據(jù)所述模塊的權(quán)限列表,決定是否同意所述敏感api調(diào)用;如圖5所示為本發(fā)明實(shí)施例公開的一種識別敏感api調(diào)用的方法流程示意圖,具體包括以下子步驟:

s4.1、在安卓的權(quán)限檢查機(jī)制進(jìn)行權(quán)限檢查時(shí),通過java反射,獲取權(quán)限檢查函數(shù)的調(diào)用棧信息;

舉例而言,當(dāng)用戶運(yùn)行新聞應(yīng)用a瀏覽某一新聞時(shí),頁面中會出現(xiàn)廣告展示欄,此時(shí)廣告庫和宿主應(yīng)用都為了展示內(nèi)容而訪問網(wǎng)絡(luò),需要向申請網(wǎng)絡(luò)權(quán)限。經(jīng)過函數(shù)層層傳遞,最終在系統(tǒng)的權(quán)限檢查入口,利用java反射能得到兩個(gè)調(diào)用棧,如下:

廣告庫申請權(quán)限的調(diào)用棧:

com.adlib.showadvertisement()

com.adlib.getadcontent()

com.adlib.checkinternet()

安卓.system.checkpermission()

宿主應(yīng)用申請權(quán)限的調(diào)用棧:

com.news.shownews()

com.news.getnewscontent()

com.news.checkinternet()

安卓.system.checkpermission()

s4.2、對調(diào)用棧信息逐層回溯,將調(diào)用棧上的函數(shù)的全程限定名與待發(fā)布應(yīng)用包含的廣告庫包名進(jìn)行前綴匹配,如果其中任意一層函數(shù)能夠匹配,則轉(zhuǎn)至步驟s4.3,如果棧上所有函數(shù)都不能匹配,則轉(zhuǎn)至步驟s4.4;

舉例而言,對于步驟(s4.1)列出的兩個(gè)調(diào)用棧分別回溯,發(fā)現(xiàn)第一個(gè)調(diào)用棧在回溯到com.adlib.checkinternet()時(shí),前綴和廣告庫包名com.adlib匹配,故轉(zhuǎn)步驟(s4.3);而第二個(gè)調(diào)用?;厮莸綏m敽?,沒有任何一個(gè)函數(shù)的全程限定名的前綴能與廣告庫包名匹配,則轉(zhuǎn)步驟(s4.4)。

s4.3、查詢用戶對待發(fā)布應(yīng)用中廣告庫所賦予的權(quán)限,判斷此次權(quán)限是否在合法權(quán)限清單內(nèi),如果合法,則此次權(quán)限檢查通過,否則此次權(quán)限檢查不通過,結(jié)束;

舉例而言,訪問記錄了應(yīng)用和廣告庫權(quán)限列表的系統(tǒng)文件x,查詢其是否包含以下鍵值對:

com.news_com.adlib:android.permission.internet

如果包含,則允許此次權(quán)限申請;否則,拒絕此次權(quán)限申請;

s4.4、查詢用戶對宿主應(yīng)用本身所賦予的權(quán)限,判斷此次權(quán)限是否在合法權(quán)限清單內(nèi),如果合法,則此次權(quán)限檢查通過,否則此次權(quán)限檢查不通過。

權(quán)限檢查的技術(shù)重點(diǎn)在于對權(quán)限檢查觸發(fā)點(diǎn)函數(shù)調(diào)用棧的獲取,調(diào)用棧中函數(shù)的全程限定名與廣告庫包名的比對,對廣告庫和宿主應(yīng)用權(quán)限檢查分別進(jìn)行判斷。

s5、接收用戶輸入的管理宿主應(yīng)用權(quán)限和廣告庫權(quán)限的指令,授予或拒絕宿主應(yīng)用權(quán)限和/或廣告庫權(quán)限。如圖6所示為本發(fā)明實(shí)施例公開的一種動態(tài)權(quán)限管理的流程示意圖,具體包括以下子步驟:

s5.1、添加系統(tǒng)應(yīng)用,將記錄的模塊和權(quán)限的對應(yīng)信息以圖形化的形式展示給用戶;

舉例而言,權(quán)限管理應(yīng)用w讀取記錄了應(yīng)用和廣告庫權(quán)限列表的系統(tǒng)文件x,并在界面按照應(yīng)用、應(yīng)用所包含廣告庫的層次進(jìn)行展示。

s5.2、接收用戶輸入的管理宿主應(yīng)用權(quán)限和廣告庫權(quán)限的指令,授予或拒絕宿主應(yīng)用權(quán)限和/或廣告庫權(quán)限。

舉例而言,如果用戶想要刪除新聞應(yīng)用a中包含的廣告庫r的訪問位置的權(quán)限,則他需要新聞應(yīng)用a的條目,刪除其中廣告庫r的位置權(quán)限。完成這些操作后,權(quán)限管理應(yīng)用將結(jié)果重寫記錄在系統(tǒng)文件中。

用戶對授權(quán)管理的特點(diǎn)在于友好的控制方式,可隨時(shí)授予或拒絕權(quán)限申請。

本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1