李琳 李青巖
集美大學 福建 361021
智能手機的普及和大量增長的應用程序正使得移動設備成為人民生活中的一部分,根據(jù)Gartner公布的數(shù)據(jù)僅2012年第四季度全球總共銷售智能手機就超過 2億部,并預計2013年將超過10億部。開放源碼手機平臺,特別是Android的出現(xiàn),是智能手機大量增長的主要原因。市場報告顯示2012年末 Android的市場占有率高達 69.7%,大量基于Android的手機應用和服務也被開發(fā)出來供用戶使用。然而當智能手機不再是單純提供通話功能的設備,而是要面對很多應用服務時,就不可避免遇到越來越多的安全問題。為了享受一些定制服務,智能手機必須提供一些個人隱私信息,比如位置信息、社交網(wǎng)絡信息和通信信息等等,而這往往是惡意程序的攻擊重點。另一方面,源碼的開放性也是吸引惡意程序開發(fā)者的重要原因。總的來說,智能手機安全問題正成為用戶關注的重點。本文首先介紹Android系統(tǒng)的安全機制并列出其固有缺陷,然后提出一些關于Android安全模型的設計準則以達到實際使用的安全需要。
Android已成為移動設備中最普及的開源平臺,其體系架構可以分為4層 (圖1)。最底層為Linux內(nèi)核,主要包括硬件驅(qū)動,內(nèi)存、進程和電源管理等。再上一層由各種功能庫,核心庫及Dalvik虛擬機組成,再往上一層是應用程序框架層主要提供各種API接口,最頂層是應用程序?qū)?,包含了一系列預置的程序和用戶安裝程序。
圖1 Android系統(tǒng)架構圖
(1) 沙箱機制
Android使用沙箱機制來實現(xiàn)應用程序之間的分離和權限控制,從而允許或拒絕應用程序訪問設備的資源,比如說文件和目錄、網(wǎng)絡、傳感器和API。為此,Android基于Linux內(nèi)核,通過進程級別的安全性、與應用程序相關的用戶和組ID以及權限,實現(xiàn)應用程序被允許執(zhí)行的操作。在Android上,一個用戶 ID識別一個應用程序,應用程序在安裝時被分配用戶ID,應用程序在設備上的存續(xù)期間內(nèi),用戶ID保持不變。
Android用沙箱來分離每個應用程序,因此要求應用程序必須明確定義要共享的資源和數(shù)據(jù)。應用程序通過聲明來獲取它們所需要但基本沙箱所不具備的額外能力。Android沒有運行時授權機制,所以應用程序必須靜態(tài)地聲明它們所需要的權限,并且Android系統(tǒng)會在安裝應用程序時,提示用戶是否同意賦予權限。
(2) 應用程序簽名
每個Android應用程序都必須被簽名。通過私有密鑰以數(shù)字證書的形式簽署一個即將發(fā)布的應用程序,從而識別代碼的作者;檢測應用程序是否被修改;在應用程序之間建立信任。通過信任關系,應用程序可以安全地共享代碼和數(shù)據(jù),使用相同數(shù)字簽名簽署的兩個應用程序可以相互授予權限來訪問基于簽名的API,如果它們共享用戶ID,那么也可以運行在同一進程中,從而允許訪問對方的代碼和數(shù)據(jù)。
(3) 使用權限
權限作為Android平臺的一種安全機制,旨在允許或限制應用程序訪問受限的 API 和資源。默認情況下,Android應用程序沒有被授予權限,通過不允許它們訪問設備上的受保護API或資源,確保了數(shù)據(jù)的安全。權限在安裝期間通過manifest文件由應用程序請求,由用戶授予或不授予。
Android是開放源碼的,這導致其沒有 CA根證書的支持,每個開發(fā)者都可以用自己生成的數(shù)字證書給應用程序簽名后然后發(fā)布到應用商店。這使得很難排除不可信的應用程序,從而讓用戶容易受到安全威脅。目前國內(nèi)眾多應用商店缺乏安全審核以及監(jiān)管機制,已經(jīng)成為Android安全隱患的重災區(qū)。
一些程序特別是社交網(wǎng)絡應用往往會聲明對一些私密信息的訪問,比如聯(lián)系人、短信、位置以及音視頻信息,但Android目前的安全機制很難保證應用程序不會濫用這些信息,并且一旦應用程序安裝時被授權,就能在用戶毫不知情的情況下無限制地訪問這些信息。
Android平臺的開源使得開發(fā)者能深度修改并發(fā)布定制的ROM,并在這些ROM中包含惡意程序,比如植入扣費軟件,或反編譯流行的軟件和游戲,加入惡意代碼然后重新封裝發(fā)布。
機密性,完整性和可靠性是智能手機中最迫切的三個安全特性,而智能手機的大規(guī)模使用以及企業(yè)級應用程序的部署,更使得人們對手機的安全性要求日益提高。下面我們針對當前智能手機架構,提出四點提升安全性能的必要措施和建議。
目前智能手機最大的安全問題是缺乏一種讓用戶為應用程序指定細粒度訪問權限的機制。應用程序框架應當能夠指定詳細的運行權限,從而限制應用程序?qū)γ舾行畔⒌脑L問,比如應當允許用戶不必卸載程序也能限制應用程序訪問某些特定信息,這就要求應用程序框架提供接口使得除了在安裝程序時授予權限之外,在程序運行時也能通過某些機制(如類似UCON)授予權限。
由于安全機制的先天不足使得針對Android惡意軟件層出不窮。當將來對Android應用程序框架修改時,研究人員應當重點考慮防范惡意程序繞過安全機制而被安裝到用戶的系統(tǒng)中。應用程序框架要做到能驗證應用程序是否被篡改,同時能在合法程序被一個相似但包含木馬的惡意程序取代時保護信息不被竊取。這個安全機制可以通過引入硬件芯片如可信任安全平臺模組TPM或者移動信任模塊MTM來實現(xiàn),從而驗證應用程序提供商的合法性。
智能手機的應用程序框架應當能分離出機密和非機密信息,并使得用戶能方便地設置某些信息為機密。由于機密信息往往成為惡意軟件和手機木馬的目標,同時考慮到移動設備的運算能力和續(xù)航能力,以及對外置存儲卡的保密要求,采用快速加密的方式是保護機密信息的一種有效方法。另外,隔離機密和非機密信息也有利于商務需求,用戶可以將企業(yè)信息設置為機密信息并設置較高的安全級別。
盡管Android存在上述的安全隱患,但使用Android智能手機的用戶仍大量增長,這使得當考慮提升Android的安全性能時,為了獲得更廣泛的支持,必須盡量減少兼容成本。否則當新的安全機制推出時,用戶會因為太復雜而拒絕使用,從而依然處于安全隱患中。同時由于Android的開發(fā)源碼策略,這些提升安全性能的相關修改也必須確保是開源的,才能有利新安全機制的推廣。
由于存在巨大經(jīng)濟利益的誘惑,針對智能手機的惡意軟件數(shù)量不斷增長,攻擊技術和隱蔽手段也在不斷發(fā)展。攻擊者利用 Android安全機制的缺陷進行惡意軟件的開發(fā)和封裝,使得用戶受到越來越多的安全威脅。本文先分析了Android系統(tǒng)的安全機制,然后指出這種安全模型,特別是在應用程序權限分配機制的不足之處。最后為了促進可擴展并能被廣泛接收的智能手機安全模型的設計和發(fā)展,我們提出了四項作為必需條件的措施和建議。
[1]Gartner.“Gartner Says Worldwide Mobile Phone Sales Declined 1.7 Percent in 2012”.http://www.gartner.com/newsroom/id/2335616.
[2]Brahler S.Analysis of the Android Architecture[J].Karlsruhe institute for technology.2010.
[3]Park J, Sandhu R.The UCON ABC usage control model[J].ACM Transactions on Information and System Security (TISSEC).2004.
[4]Bugiel S, Davi L, Dmitrienko A, et al.Towards taming privilege-escalation attacks on Android[C]//19th Annual Network& Distributed System Security Symposium (NDSS).2012.
[5]Ekberg J E.Mobile trusted module (MTM)--an introduction[J].2007.