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

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

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

     Android平臺從架構看,采用了分層的體系結構,自上到下依次是應用程序層、應用程序框架層、系統(tǒng)運行庫層和Linux內核層,如圖1所示。

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

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

 

 

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

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

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