呂 博,李永忠
當今社會,人們在工作、生活和娛樂等各個方面都越來越依賴智能終端。在這個大背景下,Android作為一個開源的系統(tǒng)平臺,備受關(guān)注。截止到2017年第一季度,國外的市場數(shù)據(jù)調(diào)研公司Kantar woroldpanel公布,在中國、英國、德國、西班牙、法國等國家,安卓的市場占有率穩(wěn)居第一,而且還有不斷上升的趨勢。然而,由于龐大的用戶群體,安卓本身存在的安全隱患逐漸顯現(xiàn)。
目前,Android平臺的安全形勢變得越來越復(fù)雜,而對Android的安全研究,其中重要的一點就是對權(quán)限控制的研究。Android粗粒度的安全機制,主要是“一次性的授權(quán)”,用戶只有看到某個應(yīng)用所要的權(quán)限,而不能自主進行選擇;如果用戶想要拒絕某個權(quán)限,只能放棄安裝此軟件[1]。這樣用戶的隱私信息就不能得到周全保護。本文主要是針對Android安全機制本身存在的漏洞,借鑒Android細粒度的權(quán)限管理機制,不僅可以對隱私權(quán)限進行分析與檢測,而且在進行授權(quán)時,用戶可以有自主選擇的權(quán)利,從而增加Android系統(tǒng)的安全性[2]。
Android是Google開發(fā)的基于Linux內(nèi)核的開源手機操作系統(tǒng)。系統(tǒng)架構(gòu)主要分為4層,從下而上分別為:Linux內(nèi)核層(Linux Kernel)、系統(tǒng)運行庫層(Libraries)、應(yīng)用框架層(Application Framework)和應(yīng)用層(Application)[3],如圖1所示。Linux內(nèi)核是Android系統(tǒng)的運行平臺,為其提供底層的驅(qū)動;系統(tǒng)運行庫層是Linux內(nèi)核和應(yīng)用程序框架層之間的溝通渠道[4];應(yīng)用框架層是Android開發(fā)的基礎(chǔ),并能提供編程接口(API),簡化了組件重用,極大方便了應(yīng)用程序的開發(fā);應(yīng)用層是Android中安裝所有應(yīng)用程序的所在層[5]。
圖1 Android系統(tǒng)架構(gòu)
Android本身建立在Linux內(nèi)核的基礎(chǔ)上,因此需在Linux系統(tǒng)的基礎(chǔ)上建立了一套屬于自己的安全機制[6]。它不僅繼承了Linux操作系統(tǒng)的安全機制,而且其系統(tǒng)架構(gòu)的各個層次都有獨特的安全特性。Android的安全體系框架主要包括:內(nèi)核級別的安全機制、系統(tǒng)級別的安全機制、基于應(yīng)用程序級別的安全機制和用戶級別的安全機制,本文將著重介紹權(quán)限控制機制[7]。Android的安全體系框架,如圖2所示。
圖2 Android系統(tǒng)安全框架
Android本身的安全機制簡單概括,即在默認情況下,應(yīng)用程序不能對整個系統(tǒng)、其他應(yīng)用或用戶進行不利的操作[8]。而Android系統(tǒng)的開源性,使得其對應(yīng)用程序的安全設(shè)計上采取的是粗粒度的安全機制。它主要提供的功能是用戶自己對自己負責的權(quán)限申請與授權(quán)機制[9]??梢源笾掳袮ndroid的權(quán)限管理機制分為3個部分:權(quán)限定義與申請層、權(quán)限解析與驗證層、權(quán)限訪問實現(xiàn)層,如圖3所示。
圖3 Android權(quán)限訪問框架
在用戶安裝APK時,Android系統(tǒng)規(guī)定每個應(yīng)用都要將自己所需要的權(quán)限告訴用戶,即在安裝的過程中,要詳細顯示其所要申請的權(quán)限。若用戶認為應(yīng)用程序所要申請的權(quán)限已經(jīng)超過其本身所需要的,那么用戶只有權(quán)利放棄安裝,而不能對權(quán)限進行分析與拒絕??梢姡珹ndroid系統(tǒng)的粗粒度安全機制,并不能保證用戶隱私信息的安全。此外,這種安全機制還存在其他缺陷。第一,權(quán)限一經(jīng)授予應(yīng)用程序,此權(quán)限在該應(yīng)用程序生命期間都將有效,用戶無法剝奪權(quán)限;第二,權(quán)限機制缺乏靈活性,要么全都批準應(yīng)用程序所要求的所有權(quán)限,要么拒絕應(yīng)用程序的安裝;第三,權(quán)限機制安全性不夠,不能阻止惡意軟件通過JNI技術(shù)直接調(diào)用C庫,從而獲取系統(tǒng)服務(wù)。
對Android安全機制的介紹可以看出,尤其是Android的權(quán)限控制機制,在粗粒度的安全機制下,將無法有效保證Android系統(tǒng)的安全。所以,本文針對粗粒度安全機制的缺陷,提出了細粒度的權(quán)限管理機制。不僅能分析隱私數(shù)據(jù)本身的提取,而且實現(xiàn)了對權(quán)限的分析,同時用戶可以根據(jù)應(yīng)用程序?qū)傩?,控制?yīng)用所要提取的權(quán)限,從而實現(xiàn)對隱私數(shù)據(jù)更加安全與全面的保護。
本系統(tǒng)是一個基于Android平臺的隱私保護技術(shù)系統(tǒng),主要針對用戶隱私數(shù)據(jù)保護,從而保證用戶的信息安全。
本文提出的Android細粒度的權(quán)限控制,主要分為三大模塊:權(quán)限數(shù)據(jù)庫存儲模塊、隱私權(quán)限控制模塊和權(quán)限設(shè)置管理模塊。此系統(tǒng)首先解決Android粗粒度下的缺陷,用戶可以通過權(quán)限設(shè)置管理模塊,自定義地設(shè)置應(yīng)用所需的有關(guān)權(quán)限。此外,當應(yīng)用要申請某項權(quán)限時,隱私權(quán)限控制模塊就會截獲應(yīng)用的請求,并查看是否具有此權(quán)限。若存在,則通過申請;若不存在,則對用戶做出警告提示,從而加強Android系統(tǒng)安全機制本身存在的安全問題。整個系統(tǒng)的框架設(shè)計,如圖4所示。
圖4 系統(tǒng)總體設(shè)計框架
權(quán)限設(shè)置管理模塊相當于用戶對應(yīng)用權(quán)限的總控制中心。該模塊主要先從Android系統(tǒng)中已經(jīng)安裝的應(yīng)用中提取權(quán)限列表,然后過濾所有和隱私相關(guān)的權(quán)限,并顯示在相應(yīng)的權(quán)限列表中。這樣用戶就可以根據(jù)自己的需要選擇每個應(yīng)用所需要的權(quán)限。簡單來說,就是通過獲取PackageManager對象,調(diào)用getInstalledAoolications()獲取應(yīng)用的list對象,最后通過獲取的對象得到應(yīng)用的權(quán)限列表。此外,此模塊維護了一個存儲著用戶在權(quán)限設(shè)置管理模塊手動設(shè)置的每個應(yīng)用的隱私權(quán)限的數(shù)據(jù)庫,這個數(shù)據(jù)庫是隱私權(quán)限控制模塊的基礎(chǔ)。具體設(shè)計如圖5所示。
隱私權(quán)限控制模塊是此系統(tǒng)的核心模塊。此流程中,如果某個應(yīng)用程序要讀取用戶的隱私數(shù)據(jù),隱私權(quán)限控制模塊就會截獲此信息,并與權(quán)限數(shù)據(jù)庫存儲模塊中的數(shù)據(jù)進行對比,查看是否存在。若存在,隱私權(quán)限控制模塊就會通過;若不存在,則會彈出警告窗口,建議用戶阻止該處理。具體設(shè)計如圖6所示。
圖5 權(quán)限設(shè)置管理模塊
圖6 隱私權(quán)限控制模塊
本系統(tǒng)主要設(shè)計了權(quán)限設(shè)置管理模塊、隱私權(quán)限控制模塊以及權(quán)限數(shù)據(jù)庫存儲模塊。系統(tǒng)的整體設(shè)計流程圖,如圖7所示。
圖7 系統(tǒng)的整體設(shè)計流程
系統(tǒng)開始運行后,在第三方應(yīng)用請求隱私數(shù)據(jù)權(quán)限時,隱私權(quán)限控制模塊會攔截應(yīng)用的請求信息,然后與權(quán)限設(shè)置管理模塊中的數(shù)據(jù)庫信息進行比對,接著查詢此應(yīng)用是否擁有此權(quán)限。若擁有此權(quán)限,則訪問權(quán)限對應(yīng)的數(shù)據(jù);若沒有通過查詢,則隱私權(quán)限控制模塊則會彈出一個警告提示框,建議用戶拒絕該權(quán)限。
本系統(tǒng)主要實現(xiàn)權(quán)限設(shè)置管理模塊和隱私權(quán)限控制模塊的功能。其中,權(quán)限設(shè)置管理模塊的功能主要是實現(xiàn)能夠獲取第三方應(yīng)用的權(quán)限,用戶能夠選擇要阻止的權(quán)限;隱私權(quán)限控制模塊主要是實現(xiàn)當應(yīng)用要提取用戶的隱私信息時,分析應(yīng)用所要提取的權(quán)限,并與權(quán)限數(shù)據(jù)庫存儲模塊中的數(shù)據(jù)進行對比,對用戶做出提醒,給出合理建議。這兩個模塊的結(jié)合,可實現(xiàn)對用戶隱私數(shù)據(jù)更全面的保護。它的測試圖如圖8、圖9所示。
圖8 權(quán)限管理器
圖9 隱私權(quán)限控制模塊與后臺啟動service
根據(jù)上述測試結(jié)果,當用戶需要安裝某一應(yīng)用程序時,權(quán)限數(shù)據(jù)庫存儲模塊將執(zhí)行提取第三方應(yīng)用權(quán)限的功能,且用戶可以根據(jù)自己的需要,選擇某項不需要的權(quán)限進行阻止;其次,當?shù)谌綉?yīng)用想要申請用戶隱私數(shù)據(jù)的授權(quán)時,隱私權(quán)限控制模塊也會給出相應(yīng)提示信息,給予用戶操作該申請的權(quán)利,從而改變以往用戶只有查看權(quán)限的權(quán)利。即若用戶出于隱私保護等方面考慮,要阻止某一權(quán)限時只能取消安裝,而現(xiàn)在用戶可以有權(quán)利阻止某項權(quán)限而不需要取消安裝,更加全面地保護了用戶隱私信息的安全。
[1] 符易陽,周丹平.Android安全機制分析[J].信息網(wǎng)絡(luò)安全,2011(09):23-25.FU Yi-yang,ZHOU Dan-ping.Android Aecurity Mechanism Analysis[J].Information Network Security,2011(09):23-25.
[2] 陳璟,陳平華,李文亮.Android內(nèi)核分析[J].現(xiàn)代計算機:專業(yè)版,2009(11):112-115.CHEN Jing,CHEN Ping-hua,LI Wen-liang.Android Kernel Analysis[J].Modern Computer(Professional Edition),2009(11):112-115.
[3] 公磊,周聰.基于Android的移動終端應(yīng)用程序開發(fā)與研究[J].計算機與現(xiàn)代化,2008(08):85-89.GONG Lei,ZHOU Cong.Development and Research of Mobile Terminal Application Based on Android[J].Computer and Modernization,2008(08):85-89.
[4] 趙楠,劉佳.移動APP隱私亂象[J].中國中小企業(yè),2013(10):56-57.ZHAO Nan,LIU Jia.Mobile APP Privacy Chaos[J].China SME,2013(10):56-57.
[5] 林佳華,任偉,賈磊雷.Android手機隱私保護系統(tǒng)的設(shè)計與實現(xiàn)[J].信息網(wǎng)絡(luò)安全,2013(07):16-19.LIN Jia-hua,REN Wei,JIA Lei-lei.Design and Implementation of Android Mobile Privacy Protection System[J].Information Network Security,2013(07):16-19.
[6] 李中平,邱健峰,李璐等.Android手機遠程控制關(guān)鍵技術(shù)分析[J].計算機應(yīng)用與軟件,2013(04):113-115.LI Zhong-ping,QIU Jian-feng,LI Lu,et al.Analysis of Key Technologies of Remote Control of Android Mobile Phone[J].Computer Applications and Software,2013(04):113-115.
[7] 姚一楠,于璐,何桂立.Android平臺的安全挑戰(zhàn)及應(yīng)對措施[J].現(xiàn)代電信科技,2012(09):16-21.YAO Yi-nan,YU Lu,HE Gui-li.Security Challenges of Android Platform and Countermeasures[J].New Technology,2012(09):16-21.
[8] 吳劍華,莫蘭芳,李湘.Android用戶隱私保護系統(tǒng)[J].信息網(wǎng)絡(luò)安全,2012(09):50-53.WU Jian-hua,MO Lan-fang,LI Xiang.Android User Privacy Protection System[J].Information Network Security,2012(09):50-53.
[9] 曾露.MVP模式在Android中的應(yīng)用研究[J].軟件,2016(06):75-78.ZENG Lu.Application Research of MVP Pattern in Android[J].Software,2016(06):75-78.