国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Android權(quán)限模型的研究和改進(jìn)

2013-07-03 02:35:20黃景全陳鐵民孔德智李倩
關(guān)鍵詞:開(kāi)發(fā)人員開(kāi)發(fā)者應(yīng)用程序

黃景全,陳鐵民,孔德智,李倩

(1.長(zhǎng)沙市賀龍?bào)w育運(yùn)動(dòng)學(xué)校,湖南 長(zhǎng)沙 410151;2.湖南移動(dòng)有限公司永州分公司,湖南 永州 425000;3.工業(yè)和信息化部電子第五研究所,廣東 廣州 510610)

0 引言

訪問(wèn)控制列表(ACL)和基于權(quán)限的安全模型讓管理員和操作系統(tǒng)可以對(duì)特定資源的訪問(wèn)進(jìn)行限制。在實(shí)踐中,設(shè)計(jì)和配置ACL(尤其是那些有大量的配置參數(shù)的列表)是一個(gè)復(fù)雜的任務(wù)。也就是說(shuō),須兼顧新手和專家的時(shí)候,要想達(dá)到詳細(xì)的權(quán)限和系統(tǒng)的可用性并不是一件簡(jiǎn)單的事情。

雖然有許多系統(tǒng)的使用權(quán)限模型,但我們注重的是Android OS的權(quán)限模型的分析。 Android使用ACL調(diào)解進(jìn)程間通信(IPC)來(lái)控制設(shè)備上的特殊功能的訪問(wèn)(例如:GPS、接收器、短信和振動(dòng)等)。Android開(kāi)發(fā)者必須在Androidmenifest.xml中請(qǐng)求許可使用這些特殊功能,在安裝時(shí)被解析。OS負(fù)責(zé)允許或拒絕特定的資源在運(yùn)行時(shí)使用。Android所使用的權(quán)限模型在Android中有許多優(yōu)點(diǎn),可以有效地防止惡意軟件,同時(shí)也告知用戶。

我們對(duì)Android權(quán)限模型進(jìn)行分析的主要目標(biāo)是:

1)研究基于權(quán)限模型在Android中的使用;

2)找出當(dāng)前可以實(shí)現(xiàn)的優(yōu)勢(shì)和局限性。

1 Android權(quán)限模型介紹

1.1 背景

Android是一個(gè)基于linux系統(tǒng)而建立的開(kāi)發(fā)平臺(tái),目前主要應(yīng)用于智能手機(jī)、平板電腦等終端設(shè)備中。Android有很強(qiáng)的安全性,并且致力于解決其它移動(dòng)操作系統(tǒng)所固有的缺點(diǎn)[1]。Android應(yīng)用程序使用JAVA語(yǔ)言進(jìn)行編寫,每個(gè)程序運(yùn)行在Dalvik虛擬機(jī)上,Dalvik是一個(gè)對(duì)標(biāo)準(zhǔn)JAVA虛擬機(jī)的輕量級(jí)的替代。由于Android是在一個(gè)虛擬機(jī)上運(yùn)行不同的程序,一個(gè)應(yīng)用程序中的漏洞就有可能影響整個(gè)操作系統(tǒng)的安全性能,因此,它所采用的進(jìn)程隔離機(jī)制可以阻止這些問(wèn)題的發(fā)生。

為Android平臺(tái)所編寫的應(yīng)用程序直接通過(guò)應(yīng)用商店或者開(kāi)發(fā)者自己的網(wǎng)站發(fā)布。用戶可以直接下載安裝這些應(yīng)用程序,而不需要經(jīng)過(guò)Google的任何審核。這種過(guò)程不同于蘋果iTunes App Store的機(jī)制,在蘋果iTunes App Store中,所有的應(yīng)用程序都必須在到達(dá)消費(fèi)者之前通過(guò)審批過(guò)程。正因?yàn)锳ndroid的應(yīng)用程序并不總是在提交時(shí)檢查,從而使惡意應(yīng)用程序的開(kāi)發(fā)人員能夠迅速地將他們的應(yīng)用程序傳到最終用戶的設(shè)備上。出于這個(gè)安全問(wèn)題的考慮,Android平臺(tái)設(shè)計(jì)了權(quán)限模型,以保護(hù)操作系統(tǒng)和用戶免受惡意應(yīng)用程序的攻擊。

1.2 Android權(quán)限模型概述

Android安全模型的核心是一個(gè)基于權(quán)限的系統(tǒng),該系統(tǒng)在默認(rèn)情況下拒絕訪問(wèn)功能,這樣可能會(huì)對(duì)用戶體驗(yàn)、整個(gè)系統(tǒng)、或者其它已經(jīng)導(dǎo)入設(shè)備的應(yīng)用產(chǎn)生負(fù)面的影響[2]。這些功能的例子有發(fā)送短信或者打電話,這會(huì)導(dǎo)致用戶進(jìn)行更多的消費(fèi);保持設(shè)備屏幕或者訪問(wèn)振動(dòng)器,這會(huì)非常耗費(fèi)電量;訪問(wèn)用戶地址會(huì)導(dǎo)致侵犯隱私。

為了使用這些限制功能,Android要求程序開(kāi)發(fā)者必須聲明哪些受限制的功能需要在應(yīng)用程序中被使用[3]。申明一個(gè)特定的權(quán)限失敗將會(huì)導(dǎo)致相關(guān)的系統(tǒng)調(diào)用或者進(jìn)程間的通信被操作系統(tǒng)拒絕。這些權(quán)限控制網(wǎng)絡(luò)的連接和GPS功能、個(gè)人信息、系統(tǒng)硬件和設(shè)置,以及一些其它的設(shè)備及功能。但是,Android可以讓任何第三方應(yīng)用程序定義新的功能(例如通過(guò)一個(gè)API),并將這些特定的權(quán)限提供給其它應(yīng)用程序使用。對(duì)于這些開(kāi)發(fā)者定義(也被稱為自定義)的權(quán)限,Android執(zhí)行調(diào)用和被調(diào)用的應(yīng)用程序來(lái)匹配這些權(quán)限 (被調(diào)用者在其清單中進(jìn)行權(quán)限標(biāo)簽的定義,調(diào)用者去申請(qǐng)并獲得這些權(quán)限的許可)以允許IPC的發(fā)生[4]。

權(quán)限在Android的運(yùn)行階段執(zhí)行,但是在安裝的時(shí)候必須被用戶所允許。當(dāng)用戶在Android中安裝一個(gè)新的應(yīng)用的時(shí)候,系統(tǒng)會(huì)提示他們接受或拒絕應(yīng)用程序請(qǐng)求的權(quán)限[5]。

2 Android權(quán)限模型分析

2.1 數(shù)據(jù)集

在我們的數(shù)據(jù)中獲得了應(yīng)用程序的標(biāo)準(zhǔn)ZIP或ZIP兼容的Android軟件包(APK)。我們用Android Asset Packaging Tool來(lái)提取manifest,閱讀所有XML實(shí)體類型的使用權(quán)限。

我們的數(shù)據(jù)集包含了來(lái)自廣泛的、不同類型開(kāi)發(fā)者所開(kāi)發(fā)的應(yīng)用(一千多個(gè)),當(dāng)我們期望這種數(shù)據(jù)集既有代表性而又有多樣性時(shí),選擇一個(gè)最佳的應(yīng)用軟件標(biāo)準(zhǔn)可能對(duì)濾除掉那些寫得不好的應(yīng)用軟件或者惡意軟件很有用。

雖然我們的分析是特定于訓(xùn)練集合中的一千多種Android應(yīng)用,但是,我們相信,使用來(lái)自每一個(gè)類中最流行的50種應(yīng)用提供了最具代表性的數(shù)據(jù)集,能夠構(gòu)建基于經(jīng)驗(yàn)的Android權(quán)限模型。

2.2 數(shù)據(jù)集概況

表1列出了Google Play商店22個(gè)類別的應(yīng)用中每種應(yīng)用程序所需要的權(quán)限的合計(jì)數(shù)目。第3列展示了在每種類別中權(quán)限的平均數(shù)目。Communication這種類別是迄今為止62種權(quán)限中使用最多的,當(dāng)然該類也是每個(gè)應(yīng)用程序需要權(quán)限數(shù)目最多的。Themes這種類別的權(quán)限是最少的。

表1 數(shù)據(jù)集中權(quán)限申請(qǐng)總數(shù)表

我們的數(shù)據(jù)中包含119種不同的、所需要的權(quán)限,其中31.93%是自定義的權(quán)限,剩下的都是android.permission.空間里面定義的權(quán)限。根據(jù)統(tǒng)計(jì),a.p.INTERNET權(quán)限為686種應(yīng)用所需(約占應(yīng)用的62.36%)。a.p.RECEIVE_BOOT_COMPLETED,該權(quán)限允許啟動(dòng)系統(tǒng),該權(quán)限為63種應(yīng)用所需(約占總數(shù)的5.72%)。

2.3 組件平面分析結(jié)論

理解復(fù)雜數(shù)據(jù)中的變量關(guān)系是一件很困難的任務(wù)。本論文按照組件平面分析方法對(duì)這些應(yīng)用的權(quán)限模型進(jìn)行了分析。

大部分(超過(guò)60%)的應(yīng)用程序都要請(qǐng)求a.p.INTERNET權(quán)限。然而不需要請(qǐng)求a.p.INTERNET權(quán)限的應(yīng)用則主要集中在主題等類型的應(yīng)用中。智能手機(jī)的追求是時(shí)時(shí)刻刻都能與互聯(lián)網(wǎng)相連接,實(shí)現(xiàn)途徑是通過(guò)不同的連接方式,3G、Wi-Fi和無(wú)線藍(lán)牙是運(yùn)行在Android OS(以及其它智能手機(jī))操作系統(tǒng)上的、并且可以連接到在線服務(wù)的3種方式。

我們的分析可以揭示權(quán)限間的相互關(guān)系。兩個(gè)特殊的權(quán)限也可能是相關(guān)的。比如同時(shí)需要a.p.ACCESS_COARSE_LOCATION和a.p.ACCESS_FINE_LOCATION。我們相信,被GOOGLE以這種方式劃分的位置權(quán)限希望開(kāi)發(fā)者對(duì)新聞或者天氣應(yīng)用使用不精確的服務(wù),好的位置經(jīng)常用于導(dǎo)航應(yīng)用。但是,我們經(jīng)常發(fā)現(xiàn)開(kāi)發(fā)者同時(shí)頻繁地需要粗糙和精確的位置服務(wù)。

除了定位的應(yīng)用程序,很多應(yīng)用程序比如工具和消息應(yīng)用程序大多都通常使用一對(duì)權(quán)限。例如:WRITE_SMS和READ_SMS權(quán)限都經(jīng)常被同時(shí)使用[6]。這意味著應(yīng)用程序請(qǐng)求短信權(quán)限的同時(shí)還要求類似權(quán)限的設(shè)定,即這些權(quán)限會(huì)在同一個(gè)應(yīng)用程序中使用。此外,我們也觀察著其它各種權(quán)限對(duì),例如從外部存儲(chǔ)器讀寫和安裝卸載快捷方式。應(yīng)用程序擁有發(fā)送和寫或者接受和寫短信的權(quán)限是危險(xiǎn)的,因?yàn)樗沟脩?yīng)用程序在用戶不知道的情況下能夠攔截或發(fā)送短信。

這意味著如果應(yīng)用程序有請(qǐng)求發(fā)送或接受短信息的功能,我們則認(rèn)為它們有相似的特點(diǎn)。如果僅基于這兩組權(quán)限而對(duì)惡意軟件進(jìn)行分類,就有可能導(dǎo)致誤報(bào)。

除了小部分的權(quán)限是大多數(shù)應(yīng)用程序都需要的,其它許多權(quán)限只有少數(shù)應(yīng)用程序有需求。我們相信,這些罕見(jiàn)的權(quán)限只是開(kāi)發(fā)人員定義來(lái)促進(jìn)與其它Android應(yīng)用程序的交互。另一方面,經(jīng)常被請(qǐng)求的權(quán)限,尤其是網(wǎng)絡(luò)權(quán)限其實(shí)并不支持頻繁的網(wǎng)絡(luò)權(quán)限申請(qǐng)。因此,我們認(rèn)為a.p.INTERNET未能為資源提供足夠精細(xì)的細(xì)粒度控制。與此相反,開(kāi)發(fā)人員自定義了一些權(quán)限,這些權(quán)限有效地充當(dāng)ACL,允許其它應(yīng)用程序的功能通過(guò)新定義的API接入。換句話說(shuō),他們提出其它應(yīng)用程序可以通過(guò)請(qǐng)求而非權(quán)限的方式與此應(yīng)用程序交互,也就是指定了應(yīng)用程序可以請(qǐng)求訪問(wèn)的資源。我們建議,目前的Android權(quán)限模型可以通過(guò)區(qū)分不同類別的互聯(lián)網(wǎng)接入來(lái)改善,同時(shí)為開(kāi)發(fā)人員提供了一種指定訪問(wèn)一個(gè)控制列表的機(jī)制,而無(wú)需使用自定義的權(quán)限。

基于權(quán)限的系統(tǒng)設(shè)計(jì)是一項(xiàng)具有挑戰(zhàn)性的任務(wù),因?yàn)橄到y(tǒng)設(shè)計(jì)人員必須預(yù)見(jiàn)到使用量的大小,才會(huì)在他們的系統(tǒng)中定義相應(yīng)的權(quán)限。本文基于真實(shí)的高級(jí)Android應(yīng)用程序數(shù)據(jù)集,分析并確定了開(kāi)發(fā)人員的使用模式;使系統(tǒng)在不同的使用情況下具有高度的可配置性,同時(shí)保持較低的復(fù)雜度,將是一個(gè)持續(xù)的工作。了解如何在實(shí)踐中使用權(quán)限模型可以幫助修改模型,以改進(jìn)當(dāng)前使用的權(quán)限系統(tǒng)。分析表明,在Android系統(tǒng)中,只有少數(shù)的權(quán)限使用非常頻繁,而大量的權(quán)限只是偶爾使用。此外,分析顯示了幾個(gè)不常使用的權(quán)限之間的相關(guān)性。

我們注意到,具有細(xì)致度權(quán)限的基礎(chǔ)權(quán)限系統(tǒng)將使用戶擁有更細(xì)微的控制,它將決定什么樣的操作被允許執(zhí)行。是否有利于提供更好的粒度,取決于許多因素。特定的環(huán)境將會(huì)增加其復(fù)雜性,例如設(shè)計(jì)師和最終用戶的可用性影響。在Android系統(tǒng)中,有太多的權(quán)限影響開(kāi)發(fā)人員和最終用戶。開(kāi)發(fā)人員需要了解哪些是必須執(zhí)行操作的權(quán)限,確定這些權(quán)限往往是不簡(jiǎn)單的,甚至需要 “專家”。雖然有些感興趣的開(kāi)發(fā)人員可能會(huì)學(xué)習(xí)110個(gè)或更多的權(quán)限,理解他們的應(yīng)用場(chǎng)合。其他開(kāi)發(fā)者可能會(huì)選擇簡(jiǎn)單、多請(qǐng)求的功能以確保他們的應(yīng)用程序正常工作。智能手機(jī)用戶本身(目前自己沒(méi)有選擇)也積極參與Android權(quán)限架構(gòu)。因此,基于提出的請(qǐng)求權(quán)限,他們將允許或拒絕安裝應(yīng)用程序。我們要思考如何以合理的要求讓非技術(shù)用戶配置這些復(fù)雜的系統(tǒng)。

3 可能的改進(jìn)

Android權(quán)限模型目前在名稱空間中不使用其隱含層次。例如:a.p.SEND_SMS和a.p.WRITE_SMS是兩個(gè)獨(dú)立的權(quán)限標(biāo)簽,而不被分組;在a.p.SMS.*.Android中,包含一個(gè)可選的邏輯權(quán)限分組用于顯示更容易理解的名稱的權(quán)限(例如,一個(gè)分組讀 “服務(wù)花銷”,而不是a.p.CALL_PHONE)。然而,這個(gè)分組,并不允許開(kāi)發(fā)人員層次結(jié)構(gòu)化的定義權(quán)限,因?yàn)檫@樣將會(huì)延長(zhǎng)目前的Android定義的權(quán)限用于表達(dá)更詳細(xì)的功能。

在Android系統(tǒng)的特殊情況下,權(quán)限的層次結(jié)構(gòu)允許一個(gè)可擴(kuò)展的命名約定,將幫助開(kāi)發(fā)人員更準(zhǔn)確地選擇(唯一)所需的功能。其中一個(gè)例子就是一個(gè)免費(fèi)的應(yīng)用程序,用于顯示屬于AdMob的廣告。目前,開(kāi)發(fā)人員將嵌入廣告片段代碼,要求獲得a.p.INTERNET的權(quán)限。此權(quán)限允許應(yīng)用程序通過(guò)任何網(wǎng)絡(luò)檢索在世界上的任何服務(wù)器的任何數(shù)據(jù)。一個(gè)更精細(xì)的分層權(quán)限架構(gòu)可以使開(kāi)發(fā)人員獲得 a.p.INTERNET.ADVERTISING(*.admob.com)的權(quán)限,這個(gè)權(quán)限可以限制網(wǎng)絡(luò)只在靜態(tài)的HTML中下載AdMob子域的廣告。層次性的權(quán)限結(jié)構(gòu)可以幫助用戶理解為什么一個(gè)應(yīng)用程序需要特定的權(quán)限,但更重要的是,可以幫助開(kāi)發(fā)者更好地使用最小特權(quán)原則。但這樣的修改是不能向后兼容目前所使用的Android操作系統(tǒng),因此它可能更適合于一種全新的模式來(lái)代替。

對(duì)Android系統(tǒng)的另一個(gè)可能的改進(jìn)是一些特殊權(quán)限,在使用時(shí)才給用戶以提示。一些普通權(quán)限可能會(huì)提前顯示以提示用戶(如目前所做),而對(duì)更高級(jí)的權(quán)限,在使用的時(shí)候才給予用戶提示。這可以顯著地減少呈現(xiàn)給用戶個(gè)人決定的數(shù)目。

4 結(jié)束語(yǔ)

我們對(duì)于Android的權(quán)限模型進(jìn)行了分析,研究它是如何在實(shí)踐中應(yīng)用以便確定它的長(zhǎng)處和缺點(diǎn)。我們已經(jīng)分析了一千多個(gè)應(yīng)用程序,這些應(yīng)用程序均為位于Android應(yīng)用商店的TOP50。結(jié)果表明,只有少量的權(quán)限使用得非常頻繁,大量的權(quán)限均很少被使用。我們建議對(duì)于頻繁使用的權(quán)限,尤其是a.p.INTERNET,劃分為子類別會(huì)更有利。相反,極少用的權(quán)限可以組合成一個(gè)通用的類,比如自定義和互補(bǔ)的權(quán)限(如安裝和卸載)。對(duì)于頻繁使用的權(quán)限提供良好的粒度性,整合不常用的權(quán)限,在不增加復(fù)雜度的情況下可以提高權(quán)限模型的可用性。

[1]符易陽(yáng),周丹平.Android安全機(jī)制分析 [C]//第26次全國(guó)計(jì)算機(jī)安全學(xué)術(shù)交流會(huì)論文集,2011.

[2]ENCK W,OCTEAU D,MCDANIEL P,et al.A study of android application security[C]//Proc of the 20th USENIX Security Symposium.Berkeley:USENIX Association,2011.

[3]ENCK W,ONGTANG M,MCDANIEL P.On lightweight mobile phone application certification [C]//Proc of the 16th ACM Conference on Computer and Communications Security.New York:ACM,2009:235-245.

[4]ZHOU Y,WANG Z,ZHOU W,et al.Hey,you,get off my market:detecting malicious apps in alternative android markets[C]//In Proceedings of the 16th Network and Distributed System Security Symposium,2012.

[5]SHIN W,KIYOMOTO S,F(xiàn)UKUSHIMA K,et al.A for-mal model to analyze the permission authorization and enforcement in the Android framework[C]//In Proceedings of the 2010 IEEE Second International Conference on Social Computing,SOCIALCOM'10,2010: 944-951.

[6]孟小華,陳傳凱.Android平臺(tái)手機(jī)來(lái)電及短信防火墻關(guān)鍵技術(shù)研究 [EB/OL].[2012].http://menku.baidu.com/view/04049e14767f5acfce49.html.

猜你喜歡
開(kāi)發(fā)人員開(kāi)發(fā)者應(yīng)用程序
刪除Win10中自帶的應(yīng)用程序
Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
16%游戲開(kāi)發(fā)者看好VR
CHIP新電腦(2016年3期)2016-03-10 13:06:42
iOS開(kāi)發(fā)者調(diào)查
電腦迷(2015年8期)2015-05-30 12:27:10
iOS開(kāi)發(fā)者調(diào)查
電腦迷(2015年4期)2015-05-30 05:24:09
讓W(xué)indows 10進(jìn)入開(kāi)發(fā)者模式
電腦迷(2015年12期)2015-04-29 23:22:51
后悔了?教你隱藏開(kāi)發(fā)人員選項(xiàng)
關(guān)閉應(yīng)用程序更新提醒
電腦迷(2012年15期)2012-04-29 17:09:47
安卓開(kāi)發(fā)者之煩惱
三星電子將開(kāi)設(shè)應(yīng)用程序下載商店
玉树县| 曲阜市| 拉萨市| 迭部县| 买车| 福泉市| 繁昌县| 古浪县| 商城县| 瓮安县| 平凉市| 清水河县| 洪湖市| 黎平县| 于田县| 池州市| 隆回县| 合川市| 绥德县| 霍城县| 平定县| 营口市| 拜泉县| 大余县| 宁波市| 高雄县| 隆林| 凤冈县| 偃师市| 游戏| 虞城县| 平陆县| 古丈县| 融水| 平湖市| 金塔县| 朝阳县| 嘉定区| 本溪市| 高邮市| 农安县|