《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > Android安全性分析
Android安全性分析
來源:微型機與應(yīng)用2013年第20期
初建朝, 鄭力明
(暨南大學 信息科學技術(shù)學院 電子工程系, 廣東 廣州 510632)
摘要: 從Android系統(tǒng)的系統(tǒng)框架入手,,全面深入地分析了Android系統(tǒng)的安全機制與組成部分,,進而得出Android面臨的安全隱患與攻擊行為。為增強Android的安全性,,針對應(yīng)用程序級攻擊與內(nèi)核級攻擊行為,研究了XManDroid框架與基于logcat模式的內(nèi)核行為分析框架,,檢測并阻止針對Android的惡意攻擊行為,,有效地保護了Android系統(tǒng)的安全。
Abstract:
Key words :

摘  要: 從Android系統(tǒng)的系統(tǒng)框架入手,,全面深入地分析了Android系統(tǒng)的安全機制與組成部分,,進而得出Android面臨的安全隱患與攻擊行為。為增強Android的安全性,,針對應(yīng)用程序級攻擊與內(nèi)核級攻擊行為,,研究了XManDroid框架與基于logcat模式的內(nèi)核行為分析框架,檢測并阻止針對Android的惡意攻擊行為,,有效地保護了Android系統(tǒng)的安全,。
關(guān)鍵詞:  Android OS; 安全機制,; 特權(quán)提升攻擊,; logcat

    Android是一種源碼開放的操作系統(tǒng),為應(yīng)用開發(fā)者提供了更多的功能接口,,任何人都可以書寫并發(fā)布自己的應(yīng)用程序,,因此,這為惡意應(yīng)用程序提供了便利,,增加了安全隱患,。
    鑒于目前Android系統(tǒng)的巨大發(fā)展?jié)摿Γ瑸樘岣咂浒踩捎眯?,針對Android的安全機制與安全缺陷進行研究,,具有重要意義。
1 Android系統(tǒng)架構(gòu)與組件模型
1.1 Android系統(tǒng)架構(gòu)

     Android平臺從架構(gòu)看,采用了分層的體系結(jié)構(gòu),,自上到下依次是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運行庫層和Linux內(nèi)核層,如圖1所示,。

    (1)應(yīng)用程序?qū)?。Android的應(yīng)用程序?qū)又饕怯脩艚缑妫ㄏ到y(tǒng)捆綁的各種資源文件,,如聯(lián)系人,、電話、瀏覽器和第三方應(yīng)用程序等,。
    (2)應(yīng)用程序框架層,。該層實際上是一個應(yīng)用程序的框架,為開發(fā)者提供API實現(xiàn)自己的程序,。
    (3)本地庫和Android運行環(huán)境,。本地庫是以系統(tǒng)中間件的形式提供的,包含C/C++庫,,供系統(tǒng)不同的組件調(diào)用,,并為上層提供服務(wù);Android運行環(huán)境包括Android運行時的核心組件Dalvik虛擬機和基礎(chǔ)的Java類庫,。
    (4)Linux內(nèi)核層,。Android使用Linux2.6作為操作系統(tǒng),Linux kernel提供包括存儲器管理,、程序管理、驅(qū)動程序模型,、能源管理等服務(wù),。
1.2 Android組件模型
    Android應(yīng)用程序由Java編寫,運行在Dalvik虛擬機,,使用單一的文件安裝,,其文件擴展名為.apk。所有的Android應(yīng)用程序在其APK中都需要包含一個程序配置文件AndroidManifest.xml,,告訴系統(tǒng)如何處理應(yīng)用程序中的頂層組件,包括Activities,、Services、Content Providers,、Broadcast Receivers,。Activities是指獨立的、以用戶為中心的任務(wù)代碼,,通常為用戶展示可視化界面,;Service是運行在后臺的功能模塊,沒有可視化用戶界面;Content Provider是Android平臺應(yīng)用程序間數(shù)據(jù)共享的一種標準接口,,將一些特定的應(yīng)用程序數(shù)據(jù)交給其他應(yīng)用程序使用,;Broadcast Receiver是一個專注于接收廣播通知信息并做出對應(yīng)處理的組件。 各組件之間的關(guān)系如圖2所示,。

2 Android安全機制
    Android安全機制中既有傳統(tǒng)的Linux安全機制,,又有Dalvik虛擬機的安全機制。同時,,Google還設(shè)計了Android特有的安全機制,。
    (1)沙箱:Android系統(tǒng)是一個權(quán)限分離的操作系統(tǒng),每一個應(yīng)用程序都運行在屬于自己的進程中,。一個應(yīng)用程序可以訪問它自己的文件或者明確地標注為可讀/可寫/可執(zhí)行的其他應(yīng)用程序文件,。這為每一個應(yīng)用程序提供一個沙箱,把它與其他應(yīng)用程序和系統(tǒng)隔離,,從而有效地阻止了應(yīng)用程序?qū)ζ渌麘?yīng)用程序或者系統(tǒng)其他部分施加惡意影響,。
    (2)應(yīng)用程序簽名:每個應(yīng)用程序都必須由它的開發(fā)者使用一個合適的私人密鑰作為數(shù)字證書。數(shù)字證書是用來區(qū)分應(yīng)用程序作者的,,不需要由數(shù)字證書權(quán)威機構(gòu)來發(fā)布,。該證書包含在其APK文件中,在安裝時由開發(fā)商驗證簽名,。
    (3)權(quán)限機制:Android應(yīng)用程序的安全核心機制是權(quán)限機制,,通過權(quán)限機制額外提供的細粒度安全功能,強制限制一個特定的進程可以執(zhí)行的具體操作,,每個URI權(quán)限授予訪問特定的數(shù)據(jù)塊,。要與其他應(yīng)用程序共享資源和數(shù)據(jù)時,應(yīng)用程序必須聲明它所需要的基本的沙箱所沒有提供的權(quán)限,,應(yīng)用程序要求的權(quán)限都必須在AndroidManifest.xml文件中聲明,。權(quán)限的申請只能在安裝時得到批準或拒絕,在運行過程中不能申請其他權(quán)限,。
    (4)組件的可訪問性:應(yīng)用程序組件可以被分為公共的和私有的,,一個公共的組件可以被其他的應(yīng)用程序訪問,然而它仍然要求檢查訪問的應(yīng)用程序是否具有要求的權(quán)限,,才可以被應(yīng)用程序訪問,。另一方面,一個私有的組件只能被包含它的應(yīng)用程序訪問[1],。
3 安全缺陷與威脅
    Android系統(tǒng)的安全機制實現(xiàn)了系統(tǒng)的安全,,但由于Android平臺的開源特性和本身存在的安全漏洞,針對Android系統(tǒng)的攻擊越來越多,, 其面臨的安全問題主要包括惡意軟件,、網(wǎng)絡(luò)攻擊和其他攻擊行為,。
3.1 惡意軟件
    針對Android平臺的惡意軟件主要包括病毒和木馬程序。Android平臺開源的特性和具有的安全漏洞使惡意軟件開發(fā)者通過植入惡意代碼等方式將目前市場上比較流行的App進行重新封裝,發(fā)布在第三方應(yīng)用市場,,騙取用戶授予下載安裝時所需的權(quán)限,,一旦成功便通過這些權(quán)限執(zhí)行一些特定行為[2],為攻擊者升級特權(quán),給用戶造成危害與損失,。
3.2 網(wǎng)絡(luò)攻擊
    這類攻擊主要是推出受攻擊的合法網(wǎng)站或者惡意網(wǎng)站,。攻擊者首先入侵合法網(wǎng)站,然后在其中植入惡意代碼,,從而生成指向惡意軟件服務(wù)器的鏈接,,當用戶訪問該網(wǎng)站時,瀏覽器就會在加載合法代碼的同時自動下載惡意軟件,,或者對用戶的隱私及敏感信息進行泄露,,從而對用戶造成損失[3]。
3.3 其他攻擊行為
    目前,,Android系統(tǒng)沒有提供內(nèi)置,、默認的加密功能,而是依賴隔離與權(quán)限模式來確保數(shù)據(jù)安全,。因此,,盜取手機SD卡就可能導致大量敏感數(shù)據(jù)丟失,或者是破壞和修改設(shè)備上的數(shù)據(jù)而不經(jīng)過所有者的許可,,給用戶造成損失,。
4 對Android安全問題的研究現(xiàn)狀
    目前,對Android平臺的安全性要求越來越高,,安全研究人員對其安全增強性的工作展開了多方面的研究,,并已有很多實現(xiàn)成果。下面針對應(yīng)用程序級攻擊與內(nèi)核級攻擊行為,,提出安全解決方案,。
4.1 針對特權(quán)提升攻擊解決方案
    近幾年,針對Android的一些安全框架已經(jīng)提出,Android應(yīng)用程序按所需的權(quán)限訪問系統(tǒng)資源或與其他應(yīng)用程序進行通信,,如果沒有正確的權(quán)限,應(yīng)用程序是不能訪問特權(quán)資源的,。在參考文獻[4]中提出了一個針對惡意應(yīng)用程序的Android平臺特權(quán)提升攻擊的解決方案XManDroid的設(shè)計與實施,,擴展了Android的監(jiān)控機制。通過XManDroid維護系統(tǒng)狀態(tài),,包含安裝的應(yīng)用程序及它們之間的通信鏈路,,默認的Android參考監(jiān)視器授予一個ICC調(diào)用時,XManDroid被調(diào)用,,并驗證是否要求的ICC調(diào)用可能會被利用為提升攻擊,,其體系結(jié)構(gòu)如圖3所示,。

 

 

    XManDroid的結(jié)構(gòu)擴展了Android應(yīng)用程序框架,同時加強了內(nèi)核級模塊,,并由運行監(jiān)控,、安裝申請、系統(tǒng)策略安裝3個模塊組成,。運行監(jiān)控提供了XManDroid的核心功能,,涉及組件的參考監(jiān)視器、DecisionEngine,、系統(tǒng)視圖,、系統(tǒng)策略與決定。安裝申請?zhí)岣逜ndroid應(yīng)用程序的安裝標準,,它涉及標準的Android組件PackageManager和新的SystemView組件,。安裝之后,改變系統(tǒng)狀態(tài),,擴展到PackageManager組件與SystemView的溝通,。系統(tǒng)策略安裝提供了一種機制來更新到Android中間件以及涉及的PolicyInstaller、SystemPolicy和SystemView組件,。此框架架構(gòu)與組件相互作用:IPC呼叫處理(步驟1-11),,應(yīng)用程序安裝與否(步驟a-b),文件/套接口創(chuàng)建(步驟),,文件/套接口讀/寫訪問(步驟i-iv),,策略安裝(步驟I-III)。在測試中,,利用惡意軟件通過傳遞的權(quán)限方法執(zhí)行對用戶隱私的攻擊,,或獲得未經(jīng)授權(quán)的訪問受保護的系統(tǒng)接口,特意選取了近期出現(xiàn)的特權(quán)提升攻擊,,所有的測試均在Nexus One開發(fā)平臺上測試運行,,經(jīng)測試,所有的攻擊均被XManDroid偵破和阻止,。
4.2 內(nèi)核行為分析解決方案
    在參考文獻[5]中,,提出一個基于內(nèi)核行為分析的Android惡意軟件檢測系統(tǒng),系統(tǒng)包括Android設(shè)備上的日志收集器和PC上的日志分析器,。日志收集器記錄了應(yīng)用程序內(nèi)核層的活動,,日志分析器匹配正則表達式描述的簽名活動,以檢測惡意活動,。系統(tǒng)結(jié)構(gòu)如圖4所示,,其中內(nèi)核水平的日志由操作系統(tǒng)產(chǎn)生,收集了發(fā)生在操作系統(tǒng)上的所有活動數(shù)據(jù),。這些數(shù)據(jù)大部分與惡意活動無關(guān),,因此,,本文只收集惡意軟件攻擊相關(guān)的感興趣的系統(tǒng)調(diào)用日志數(shù)據(jù)。采取附加的方法,,從收集的日志數(shù)據(jù)中移除不感興趣的進程日志數(shù)據(jù),。為達到要求,首先要實現(xiàn)獲取感興趣進程的進程樹,,這里用Android日志系統(tǒng)提供的收集系統(tǒng)調(diào)試輸出機制logcat來達到,,產(chǎn)生的日志信息可以由命名為Android調(diào)試橋的調(diào)試支持工具通過logcat命令查看,找到感興趣應(yīng)用程序進程PID,,同時使用輔助的關(guān)鍵字和有規(guī)則的表達式的方法產(chǎn)生簽名來進行惡意檢測,,一個輔助的關(guān)鍵字是執(zhí)行程序系統(tǒng)調(diào)用名或系統(tǒng)文件路徑名。

    這種方法適用于系統(tǒng)通過執(zhí)行目標應(yīng)用程序檢測威脅,,通過系統(tǒng)收集運行應(yīng)用程序時產(chǎn)生的系統(tǒng)調(diào)用事件并分析,,生成感興趣的標簽來檢測廣泛種類的威脅。實驗證明,基于內(nèi)核行為分析可以應(yīng)用于Android應(yīng)用程序的安全檢測,。
4.3 其他解決方案
    在參考文獻[6]中,,Enck等提出一個安全框架TaintDroid,它可以檢測未經(jīng)授權(quán)的敏感數(shù)據(jù)的泄露,。TaintDroid利用動態(tài)污點分析對污染數(shù)據(jù)跟蹤審查,,通過此系統(tǒng)傳播并提醒用戶。TaintDroid主要解決數(shù)據(jù)流,,利用隱蔽通道檢測泄露敏感信息的攻擊,。參考文獻[7]介紹了細粒度的訪問控制模型,允許應(yīng)用程序保護自己不被濫用,。它要求應(yīng)用程序開發(fā)人員添加安全特性到其應(yīng)用中并擴展基本的Android許可制度,,通過允許系統(tǒng)執(zhí)行基于簽名、配置和上下文的安全決策擴展基本的Android許可制度,而安全決定無論是在安裝時還是在運行時均執(zhí)行,。
    Android系統(tǒng)為移動設(shè)備提供了一個開源應(yīng)用環(huán)境,,隨著Android系統(tǒng)的日益推廣,越來越多的開發(fā)商開始關(guān)注其安全性能,,對Android系統(tǒng)的安全性要求越來越高,。在未來工作中,將通過具體案例分析和攻擊分類,,對Android的安全機制進行設(shè)計改進,,加強Android的安全架構(gòu)。相信隨著時間的推移和技術(shù)的進步,,針對Android的安全威脅會越來越少。
參考文獻
[1] CHAN P P F,,HUI L C K,,YIU S M. A privilege escalation vulnerability checking system for Android applications[C].IEEE 13th International Conference on Commnication Technology,,2011:681-684.
[2] 丁麗萍. Android操作系統(tǒng)的安全性分析[J].信息網(wǎng)絡(luò)安全,2012,12(3):28-29.
[3] 美麗安卓設(shè)備遭網(wǎng)絡(luò)攻擊比例超普通PC[OL].[2012-12-05](2013-05-15).http://news.itxinwen.com/it_industry/business_software/2012/1205/463481.html
[4] BUGIEL S,,DAVI L,,DMITRIENKO A,et al.XManDroid: a new Android evolution to mitigate privilege escalation attacks[C]. Technische Universat Darmstadt Center for Advanced Security Research Darmstadt,,2011:4-6.
[5] ISOHARA T,,TAKEMORI K, KUBOTA A. Kernel-based behavior analysis for Android malware detection[C]. IEEE International Conference on Computational Intelligence and Security,,2011:1012-1014.
[6] ENCK W,,GILBERT P,CHUN B,,et al. TaintD roid:An information-flow tracking system for realtime privacy monitoring on Smartphones[C]. Proceedings of the 9th USENIX Conference on Operating Systems Design and Implementation,,2010:1-5.
[7] ONGTANG M,MCLAUGHLIN S,,ENCK W,,et al.Semantically rich application-centric security in Android[C].IEEE Annual Computer Security Applications Conference,2009:344-348.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。