呂 博,李永忠
當今社會,人們在工作、生活和娛樂等各個方面都越來越依賴智能終端。在這個大背景下,Android作為一個開源的系統平臺,備受關注。截止到2017年第一季度,國外的市場數據調研公司Kantar woroldpanel公布,在中國、英國、德國、西班牙、法國等國家,安卓的市場占有率穩居第一,而且還有不斷上升的趨勢。然而,由于龐大的用戶群體,安卓本身存在的安全隱患逐漸顯現。
目前,Android平臺的安全形勢變得越來越復雜,而對Android的安全研究,其中重要的一點就是對權限控制的研究。Android粗粒度的安全機制,主要是“一次性的授權”,用戶只有看到某個應用所要的權限,而不能自主進行選擇;如果用戶想要拒絕某個權限,只能放棄安裝此軟件[1]。這樣用戶的隱私信息就不能得到周全保護。本文主要是針對Android安全機制本身存在的漏洞,借鑒Android細粒度的權限管理機制,不僅可以對隱私權限進行分析與檢測,而且在進行授權時,用戶可以有自主選擇的權利,從而增加Android系統的安全性[2]。
Android是Google開發的基于Linux內核的開源手機操作系統。系統架構主要分為4層,從下而上分別為:Linux內核層(Linux Kernel)、系統運行庫層(Libraries)、應用框架層(Application Framework)和應用層(Application)[3],如圖1所示。Linux內核是Android系統的運行平臺,為其提供底層的驅動;系統運行庫層是Linux內核和應用程序框架層之間的溝通渠道[4];應用框架層是Android開發的基礎,并能提供編程接口(API),簡化了組件重用,極大方便了應用程序的開發;應用層是Android中安裝所有應用程序的所在層[5]。

圖1 Android系統架構
Android本身建立在Linux內核的基礎上,因此需在Linux系統的基礎上建立了一套屬于自己的安全機制[6]。它不僅繼承了Linux操作系統的安全機制,而且其系統架構的各個層次都有獨特的安全特性。Android的安全體系框架主要包括:內核級別的安全機制、系統級別的安全機制、基于應用程序級別的安全機制和用戶級別的安全機制,本文將著重介紹權限控制機制[7]。Android的安全體系框架,如圖2所示。

圖2 Android系統安全框架
Android本身的安全機制簡單概括,即在默認情況下,應用程序不能對整個系統、其他應用或用戶進行不利的操作[8]。而Android系統的開源性,使得其對應用程序的安全設計上采取的是粗粒度的安全機制。它主要提供的功能是用戶自己對自己負責的權限申請與授權機制[9]。可以大致把Android的權限管理機制分為3個部分:權限定義與申請層、權限解析與驗證層、權限訪問實現層,如圖3所示。

圖3 Android權限訪問框架
在用戶安裝APK時,Android系統規定每個應用都要將自己所需要的權限告訴用戶,即在安裝的過程中,要詳細顯示其所要申請的權限。若用戶認為應用程序所要申請的權限已經超過其本身所需要的,那么用戶只有權利放棄安裝,而不能對權限進行分析與拒絕。可見,Android系統的粗粒度安全機制,并不能保證用戶隱私信息的安全。此外,這種安全機制還存在其他缺陷。第一,權限一經授予應用程序,此權限在該應用程序生命期間都將有效,用戶無法剝奪權限;第二,權限機制缺乏靈活性,要么全都批準應用程序所要求的所有權限,要么拒絕應用程序的安裝;第三,權限機制安全性不夠,不能阻止惡意軟件通過JNI技術直接調用C庫,從而獲取系統服務。
對Android安全機制的介紹可以看出,尤其是Android的權限控制機制,在粗粒度的安全機制下,將無法有效保證Android系統的安全。所以,本文針對粗粒度安全機制的缺陷,提出了細粒度的權限管理機制。不僅能分析隱私數據本身的提取,而且實現了對權限的分析,同時用戶可以根據應用程序屬性,控制應用所要提取的權限,從而實現對隱私數據更加安全與全面的保護。
本系統是一個基于Android平臺的隱私保護技術系統,主要針對用戶隱私數據保護,從而保證用戶的信息安全。
本文提出的Android細粒度的權限控制,主要分為三大模塊:權限數據庫存儲模塊、隱私權限控制模塊和權限設置管理模塊。此系統首先解決Android粗粒度下的缺陷,用戶可以通過權限設置管理模塊,自定義地設置應用所需的有關權限。此外,當應用要申請某項權限時,隱私權限控制模塊就會截獲應用的請求,并查看是否具有此權限。若存在,則通過申請;若不存在,則對用戶做出警告提示,從而加強Android系統安全機制本身存在的安全問題。整個系統的框架設計,如圖4所示。

圖4 系統總體設計框架
權限設置管理模塊相當于用戶對應用權限的總控制中心。該模塊主要先從Android系統中已經安裝的應用中提取權限列表,然后過濾所有和隱私相關的權限,并顯示在相應的權限列表中。這樣用戶就可以根據自己的需要選擇每個應用所需要的權限。簡單來說,就是通過獲取PackageManager對象,調用getInstalledAoolications()獲取應用的list對象,最后通過獲取的對象得到應用的權限列表。此外,此模塊維護了一個存儲著用戶在權限設置管理模塊手動設置的每個應用的隱私權限的數據庫,這個數據庫是隱私權限控制模塊的基礎。具體設計如圖5所示。
隱私權限控制模塊是此系統的核心模塊。此流程中,如果某個應用程序要讀取用戶的隱私數據,隱私權限控制模塊就會截獲此信息,并與權限數據庫存儲模塊中的數據進行對比,查看是否存在。若存在,隱私權限控制模塊就會通過;若不存在,則會彈出警告窗口,建議用戶阻止該處理。具體設計如圖6所示。

圖5 權限設置管理模塊

圖6 隱私權限控制模塊
本系統主要設計了權限設置管理模塊、隱私權限控制模塊以及權限數據庫存儲模塊。系統的整體設計流程圖,如圖7所示。

圖7 系統的整體設計流程
系統開始運行后,在第三方應用請求隱私數據權限時,隱私權限控制模塊會攔截應用的請求信息,然后與權限設置管理模塊中的數據庫信息進行比對,接著查詢此應用是否擁有此權限。若擁有此權限,則訪問權限對應的數據;若沒有通過查詢,則隱私權限控制模塊則會彈出一個警告提示框,建議用戶拒絕該權限。
本系統主要實現權限設置管理模塊和隱私權限控制模塊的功能。其中,權限設置管理模塊的功能主要是實現能夠獲取第三方應用的權限,用戶能夠選擇要阻止的權限;隱私權限控制模塊主要是實現當應用要提取用戶的隱私信息時,分析應用所要提取的權限,并與權限數據庫存儲模塊中的數據進行對比,對用戶做出提醒,給出合理建議。這兩個模塊的結合,可實現對用戶隱私數據更全面的保護。它的測試圖如圖8、圖9所示。

圖8 權限管理器

圖9 隱私權限控制模塊與后臺啟動service
根據上述測試結果,當用戶需要安裝某一應用程序時,權限數據庫存儲模塊將執行提取第三方應用權限的功能,且用戶可以根據自己的需要,選擇某項不需要的權限進行阻止;其次,當第三方應用想要申請用戶隱私數據的授權時,隱私權限控制模塊也會給出相應提示信息,給予用戶操作該申請的權利,從而改變以往用戶只有查看權限的權利。即若用戶出于隱私保護等方面考慮,要阻止某一權限時只能取消安裝,而現在用戶可以有權利阻止某項權限而不需要取消安裝,更加全面地保護了用戶隱私信息的安全。
[1] 符易陽,周丹平.Android安全機制分析[J].信息網絡安全,2011(09):23-25.FU Yi-yang,ZHOU Dan-ping.Android Aecurity Mechanism Analysis[J].Information Network Security,2011(09):23-25.
[2] 陳璟,陳平華,李文亮.Android內核分析[J].現代計算機:專業版,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的移動終端應用程序開發與研究[J].計算機與現代化,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].中國中小企業,2013(10):56-57.ZHAO Nan,LIU Jia.Mobile APP Privacy Chaos[J].China SME,2013(10):56-57.
[5] 林佳華,任偉,賈磊雷.Android手機隱私保護系統的設計與實現[J].信息網絡安全,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手機遠程控制關鍵技術分析[J].計算機應用與軟件,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平臺的安全挑戰及應對措施[J].現代電信科技,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用戶隱私保護系統[J].信息網絡安全,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中的應用研究[J].軟件,2016(06):75-78.ZENG Lu.Application Research of MVP Pattern in Android[J].Software,2016(06):75-78.