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

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

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

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

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

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

 

 

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

    這種方法適用于系統(tǒng)通過(guò)執(zhí)行目標(biāo)應(yīng)用程序檢測(cè)威脅,,通過(guò)系統(tǒng)收集運(yùn)行應(yīng)用程序時(shí)產(chǎn)生的系統(tǒng)調(diào)用事件并分析,生成感興趣的標(biāo)簽來(lái)檢測(cè)廣泛種類(lèi)的威脅,。實(shí)驗(yàn)證明,基于內(nèi)核行為分析可以應(yīng)用于Android應(yīng)用程序的安全檢測(cè),。
4.3 其他解決方案
    在參考文獻(xiàn)[6]中,,Enck等提出一個(gè)安全框架TaintDroid,它可以檢測(cè)未經(jīng)授權(quán)的敏感數(shù)據(jù)的泄露,。TaintDroid利用動(dòng)態(tài)污點(diǎn)分析對(duì)污染數(shù)據(jù)跟蹤審查,,通過(guò)此系統(tǒng)傳播并提醒用戶(hù)。TaintDroid主要解決數(shù)據(jù)流,,利用隱蔽通道檢測(cè)泄露敏感信息的攻擊,。參考文獻(xiàn)[7]介紹了細(xì)粒度的訪問(wèn)控制模型,允許應(yīng)用程序保護(hù)自己不被濫用,。它要求應(yīng)用程序開(kāi)發(fā)人員添加安全特性到其應(yīng)用中并擴(kuò)展基本的Android許可制度,,通過(guò)允許系統(tǒng)執(zhí)行基于簽名、配置和上下文的安全決策擴(kuò)展基本的Android許可制度,而安全決定無(wú)論是在安裝時(shí)還是在運(yùn)行時(shí)均執(zhí)行,。
    Android系統(tǒng)為移動(dòng)設(shè)備提供了一個(gè)開(kāi)源應(yīng)用環(huán)境,,隨著Android系統(tǒng)的日益推廣,越來(lái)越多的開(kāi)發(fā)商開(kāi)始關(guān)注其安全性能,,對(duì)Android系統(tǒng)的安全性要求越來(lái)越高,。在未來(lái)工作中,將通過(guò)具體案例分析和攻擊分類(lèi),,對(duì)Android的安全機(jī)制進(jìn)行設(shè)計(jì)改進(jìn),,加強(qiáng)Android的安全架構(gòu)。相信隨著時(shí)間的推移和技術(shù)的進(jìn)步,,針對(duì)Android的安全威脅會(huì)越來(lái)越少,。
參考文獻(xiàn)
[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)載,。