許艷萍,馬兆豐,王中華,鈕心忻,楊義先
?
Android智能終端安全綜述
許艷萍1,馬兆豐1,王中華2,鈕心忻1,楊義先1
(1. 北京郵電大學(xué)信息安全中心,北京 100876;2. 國家計算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心,北京 100029)
針對Android智能終端安全問題,構(gòu)建Android智能終端安全分層體系。首先從遠(yuǎn)程防盜、生物身份驗證和硬件安全模塊方面闡述了Android設(shè)備安全的安全威脅及保護(hù)措施,然后從無線安全網(wǎng)絡(luò)、病毒傳播查殺和防釣魚攻擊說明了Android網(wǎng)絡(luò)安全的隱患及防范,之后從內(nèi)核安全、本地庫運(yùn)行時環(huán)境安全和應(yīng)用框架安全角度介紹了Android操作系統(tǒng)安全的研究內(nèi)容,接著從靜態(tài)檢測和應(yīng)用行為動態(tài)檢測、應(yīng)用加固和應(yīng)用評估方面展示了Android應(yīng)用安全的研究成果,接下來著眼于數(shù)據(jù)本身總結(jié)了Android數(shù)據(jù)的追蹤、加密和備份等安全保護(hù)技術(shù),最后結(jié)合實(shí)際需求展望了Android安全未來在安全增強(qiáng)框架、智能應(yīng)用行為分析等方向的發(fā)展。
Android;設(shè)備安全;網(wǎng)絡(luò)安全;系統(tǒng)安全;應(yīng)用安全;數(shù)據(jù)安全
Android系統(tǒng)是2007年Google公司發(fā)布的基于Linux內(nèi)核的開源操作系統(tǒng),主要應(yīng)用于智能手機(jī)、平板Pad、智能手表等智能終端。自發(fā)布以來,系統(tǒng)的開源特性廣受智能設(shè)備廠商及開發(fā)人員的推崇,廣泛應(yīng)用于金融、政府、交通、教育、軍事、汽車、家居、能源等重要領(lǐng)域。IDC調(diào)研顯示,2015年Android智能手機(jī)的出貨量達(dá)到14.3億部,占全球智能手機(jī)市場份額的82%。
360互聯(lián)網(wǎng)安全中心發(fā)布《2015年手機(jī)安全狀況報告》[1]顯示,2015全年截獲的Android平臺新增惡意程序樣本為1 874萬個,較2013年,2014年分別增加了27.9倍和5.7倍,累計約3.7億人次Android用戶感染到惡意程。根據(jù)危害結(jié)果將Android病毒分5大類:移動支付(60%)、資費(fèi)消耗(14%)、隱私竊取(20%)、遠(yuǎn)程控制(2%)、黑客工具(4%)[2]。Android病毒最常做出的前3位惡意行為是資費(fèi)泄露隱私、權(quán)限提升、流量消耗[3,4],智能終端安全正面臨著嚴(yán)峻的考驗。
由于Android平臺開放的生態(tài),每一個Android設(shè)備中安裝的軟件可能來自于Google、手機(jī)開發(fā)商、芯片廠商和不同應(yīng)用開發(fā)者等,軟件組件很難遵從統(tǒng)一的開發(fā)、測試、審計標(biāo)準(zhǔn),因而質(zhì)量參差不齊。對惡意攻擊者和安全研究者來說,卻是一個很好的研究目標(biāo)。
參照信息安全技術(shù)體系設(shè)計原則[5],將Android智能終端安全層次劃分為設(shè)備安全層、網(wǎng)絡(luò)安全層、系統(tǒng)安全層、應(yīng)用安全層和數(shù)據(jù)安全層,每層針對受到的威脅采取相應(yīng)的安全防護(hù)措施[6~9],從而達(dá)到5個安全目標(biāo):保密性、完整性、可用性、可控性和不可否認(rèn)性。Android智能終端安全分層體系如圖1所示。
設(shè)備安全層。Android終端設(shè)備是應(yīng)用和數(shù)據(jù)的載體,主要研究設(shè)備丟失情況下的遠(yuǎn)程防盜、基于生物特征的身份驗證和硬件安全模塊內(nèi)容。Android設(shè)備中存儲了大量的個人隱私數(shù)據(jù),如短信、通訊錄、照片等[3],如果在設(shè)備丟失或者繞過身份驗證被非法人員操作的情況下,隱私數(shù)據(jù)很容易被竊取?;赬MPP的協(xié)議遠(yuǎn)程對終端設(shè)備下發(fā)指令控制設(shè)備[10];基于指紋、人臉、虹膜等人體生物特征的身份驗證拒絕非法終端用戶登錄,打造安全的設(shè)備環(huán)境;采用硬件安全模塊,基于硬件實(shí)現(xiàn)高性能安全加密和身份驗證等功能。
網(wǎng)絡(luò)安全層。Android智能終端互聯(lián)互通,形成無線通信網(wǎng)絡(luò),主要研究無線安全網(wǎng)絡(luò)、病毒傳播查殺和防釣魚攻擊等。Android智能設(shè)備通過采用安全無線路由器、加密VPN服務(wù)[11]等方式,構(gòu)建安全網(wǎng)絡(luò)接入環(huán)境,保障數(shù)據(jù)安全傳輸;Android病毒以短信、彩信、二維碼、偽裝應(yīng)用安裝等方式傳播擴(kuò)散,通過特征識別,利用云計算、大數(shù)據(jù)技術(shù)智能化地檢測病毒是阻斷病毒傳播擴(kuò)散的有效方式[12,13];釣魚攻擊是移動互聯(lián)網(wǎng)面臨的重大威脅,檢測方式包括黑名單、異常檢測和機(jī)器學(xué)習(xí)智能檢測等。
系統(tǒng)安全層。針對Android智能終端操作系統(tǒng),按照系統(tǒng)層次研究內(nèi)核安全、本地庫和運(yùn)行時環(huán)境安全、應(yīng)用程序框架安全。通過內(nèi)核增強(qiáng)[14]、漏洞挖掘[15]、內(nèi)存防泄漏、系統(tǒng)防ROOT方式保護(hù)內(nèi)核安全;通過安全沙箱機(jī)制、ART機(jī)制、組件間安全通信保障本地庫和運(yùn)行時環(huán)境安全;通過權(quán)限機(jī)制和簽名機(jī)制保障應(yīng)用程序框架安全。
應(yīng)用安全層。針對運(yùn)行在Android智能終端上的應(yīng)用安全,主要研究惡意應(yīng)用靜態(tài)檢測、惡意應(yīng)用動態(tài)檢測、應(yīng)用安全加固和應(yīng)用安全評估。靜態(tài)檢測研究應(yīng)用逆向工程、特征提取、機(jī)器學(xué)習(xí)智能檢測、重打包檢測等內(nèi)容;動態(tài)檢測主要研究動態(tài)行為獲取;應(yīng)用安全加固可采用代碼混淆、應(yīng)用加殼、防反編譯[16]等方式。通過建立評估體系和評估標(biāo)準(zhǔn),評估惡意應(yīng)用給系統(tǒng)和數(shù)據(jù)帶來的風(fēng)險[4,17]。
數(shù)據(jù)安全層。保護(hù)Android終端設(shè)備存儲上的數(shù)據(jù)安全,研究數(shù)據(jù)偽造及跟蹤[18,19]、加密[20]、云備份、數(shù)字版權(quán)保護(hù)、安全支付等內(nèi)容。隱私數(shù)據(jù)是Android終端設(shè)備上最具有核心價值的部分,保護(hù)設(shè)備、網(wǎng)絡(luò)、系統(tǒng)、應(yīng)用的安全,終極目的是保護(hù)數(shù)據(jù)的機(jī)密性、完整性和可用性,通過偽造及跟蹤、加密、云備份、數(shù)字版權(quán)保護(hù)、安全支付等保護(hù)方式,直接保護(hù)隱私數(shù)據(jù)的安全性。
鑒于Android廣泛的市場應(yīng)用,學(xué)術(shù)界的專家學(xué)者對其安全機(jī)制進(jìn)行了諸多研究,主要圍繞權(quán)限增強(qiáng)管理、應(yīng)用安全分析、隱私數(shù)據(jù)防泄露等方面,并取得顯著成果。本文在廣泛閱讀文獻(xiàn)的基礎(chǔ)上,總結(jié)了Android平臺在設(shè)備安全、網(wǎng)絡(luò)安全、系統(tǒng)安全、應(yīng)用安全和數(shù)據(jù)安全方面的研究成果,并根據(jù)當(dāng)前研究工作的不足展望了幾點(diǎn)未來的研究方向。
2.1 遠(yuǎn)程防盜
實(shí)現(xiàn)Android智能終端遠(yuǎn)程控制的方式有基于HTTP協(xié)議的遠(yuǎn)程數(shù)據(jù)傳輸、基于RDP協(xié)議的遠(yuǎn)程桌面控制[21]、基于XMPP的即時消息推送[10]等。
基于XMPP協(xié)議的遠(yuǎn)程防盜是當(dāng)前比較流行的終端設(shè)備保護(hù)方式,XMPP協(xié)議具有超強(qiáng)的可擴(kuò)展特性,服務(wù)端和智能終端可約定通信指令[22]。應(yīng)用時,首先將用戶信息和設(shè)備信息注冊到控制端,制定保護(hù)策略,如數(shù)據(jù)備份和刪除、遠(yuǎn)程鎖定、遠(yuǎn)程定位等。一旦終端設(shè)備丟失,通過控制端下發(fā)指令對終端設(shè)備定位、對屏幕遠(yuǎn)程鎖定、更換SIM卡鎖定設(shè)備、刪除短信和通訊錄等隱私數(shù)據(jù)等,減少因設(shè)備丟失造成的損失。目前,主流的智能終端廠商都提供對終端遠(yuǎn)程防盜的服務(wù)。
遠(yuǎn)程防盜已經(jīng)成為終端安全的標(biāo)配功能之一,其優(yōu)點(diǎn)是即使終端不在身邊,只要確定身份合法也能夠方便地實(shí)施操作,尤其是在設(shè)備丟失的情況下,遠(yuǎn)程定位、遠(yuǎn)程刪除和鎖定對于找回手機(jī)、保護(hù)隱私有重大意義,但對于網(wǎng)絡(luò)的要求很高,一旦設(shè)備離線,便不能發(fā)送控制指令,而通過短信發(fā)送指令是另一種有效的途徑。
2.2 生物身份驗證
人體的生物特征往往具有唯一性,如指紋、掌紋、聲音、虹膜、人臉、步態(tài)、脈搏、運(yùn)動特征等,科技界已經(jīng)逐漸將這些特征作為身份識別和驗證的重要手段[23]。Android SDK從1.0版本中就已經(jīng)集成了簡單的人臉識別功能,而OpenCV開發(fā)包集成了更專業(yè)、快速、高級的人臉識別算法。自2013年7月芬蘭 Uniqul公司首次推出基于臉部識別系統(tǒng)的支付平臺,目前互聯(lián)網(wǎng)金融企業(yè)正在研究將人臉支付運(yùn)用于Android支付系統(tǒng)。
目前有很多Android終端設(shè)備搭載了指紋識別技術(shù),利用指紋識別傳感器及指紋模式支持指紋鎖,作為安全工具、硬件平臺和操作系統(tǒng)三方支持的安全模式,不僅簡便了解鎖的過程,還把非法用戶阻擋在外。但是這種防護(hù)手段已被黑客攻陷,他們發(fā)現(xiàn)了指紋識別框架下的漏洞,輕松地繞過指紋識別器,從而執(zhí)行任何操作,而且還能夠直接拷貝用戶的指紋信息,在更大范圍內(nèi)威脅用戶的個人信息安全和隱私內(nèi)容。在此情況下催生出了更高級、更安全的身份驗證方式——眼球識別技術(shù)。目前這種技術(shù)的安全性還沒被突破,眼球樣本信息不能被復(fù)制,但在識別范圍和識別準(zhǔn)確率方面還需要進(jìn)一步改進(jìn)。另外,Google正在測試?yán)糜脩舻膭幼髡饎踊蛘呷我饣顒邮謾C(jī),將動作幅度或者頻率作為鎖屏和解鎖的方式,從進(jìn)展來看,這是項極具挑戰(zhàn)性的工作。
從發(fā)展趨勢上看,利用人體生物特征作為唯一的識別標(biāo)識,是Android智能終端領(lǐng)域經(jīng)久不衰的應(yīng)用研究,在識別校準(zhǔn)和準(zhǔn)確率方面還需要提高,而其性能在大數(shù)據(jù)方面也在不斷探索。
2.3 硬件安全模塊
出于對移動終端中隱私數(shù)據(jù)提供集中的安全保護(hù)考慮,智能終端廠商設(shè)計并實(shí)施了硬件安全模塊(HSM, hardware security modules),直接連接到系統(tǒng)總線上,基于硬件實(shí)現(xiàn)高性能密碼和密鑰管理功能,提供的服務(wù)包括安全存儲、安全加密、身份驗證等。嵌入式安全技術(shù)供應(yīng)商Discretix公司研發(fā)的CryptoCell安全模塊具備PKI引擎、對稱引擎、散列引擎、隨機(jī)數(shù)發(fā)生器、安全密鑰和完整性驗證等6個可配置的功能模塊,加速執(zhí)行各種驗證和加密功能,對整個智能終端設(shè)備的發(fā)展將產(chǎn)生積極的影響。在國內(nèi),華為作為手機(jī)終端的領(lǐng)跑者,通過硬件安全模塊與麒麟操作系統(tǒng)協(xié)作,徹底杜絕刷機(jī)解密等操作的可能性。
硬件安全模塊在保證數(shù)據(jù)保護(hù)、安全支付等方面更專業(yè),效果更明顯,隨著智能終端對安全愈加重視,必將成為重要的保護(hù)方式。
3.1 無線安全網(wǎng)絡(luò)
Android智能終端通過GPRS、無線Wi-Fi接入網(wǎng)絡(luò)可滿足用戶隨時隨地上網(wǎng)的需求。無論使用哪種方式,開放的網(wǎng)絡(luò)環(huán)境中,用戶執(zhí)行登錄賬號、支付等敏感操作時,易遭到黑客攻擊導(dǎo)致隱私泄露,常用的攻擊方式有嗅探、釣魚攻擊、中間人攻擊、惡意DNS篡改、遠(yuǎn)程執(zhí)行、XSS跨站腳本、電磁信號干擾等[24]。
Ma等[25]針對商業(yè)Wi-Fi網(wǎng)絡(luò)提出混合式的惡意網(wǎng)絡(luò)接入點(diǎn)檢測方案,主要采用無線掃描和集中流量監(jiān)控方式發(fā)現(xiàn)惡意AP,并且保護(hù)網(wǎng)絡(luò)免受惡意AP的侵害,優(yōu)點(diǎn)是不需要專門的硬件并且適用于任何網(wǎng)絡(luò)標(biāo)準(zhǔn)。
無線路由器通常采用WPA/WPA2加密的方式保障密碼的安全性,但是通過多次逆運(yùn)算之后,這種加密能夠被破解,需要探索另外的方式保證無線口令的安全性。現(xiàn)在的手機(jī)安全防護(hù)軟件也集成了安全監(jiān)測功能,防范DNS、ARP、虛假Wi-Fi、加密及釣魚等攻擊。
Wang等[26]針對Wi-Fi驅(qū)動的Fuzzing測試框架,通過構(gòu)建數(shù)據(jù)分組實(shí)施針對Wi-Fi通信的攻擊,這種框架不僅能發(fā)現(xiàn)已知攻擊,在發(fā)現(xiàn)未知攻擊方面也效果顯著。
針對Wi-Fi竊聽問題,可采用加密的VPN服務(wù),將所有傳輸流量都進(jìn)行加密,無論通信鏈路是否安全,都能保證數(shù)據(jù)的安全[11]。
3.2 病毒傳播查殺
自2010年來,每年都爆發(fā)多次手機(jī)病毒危機(jī),在移動互聯(lián)網(wǎng)絡(luò)上迅速傳播,波及范圍廣泛,十分具有破壞性。每個季度網(wǎng)絡(luò)安全公司都會發(fā)布Android手機(jī)安全報告,通報當(dāng)前手機(jī)病毒及手機(jī)感染病毒的情況等。將Android病毒按照危害特征劃分為多個家族:AnserverBot、BaseBridge、DroidKungFu、DroidDream、FakePlayer、Geinimi、GoldDream、GingerMaster、Zsone、SndApps等[3,27]。Android病毒按照危害行為劃分為木馬類、后門類、蠕蟲類、僵尸網(wǎng)絡(luò)類、間諜竊取類、欺騙類等[3]。手機(jī)病毒利用通訊錄群發(fā)短信、彩信、電子郵件和掃描驗證碼、二維碼方式擴(kuò)散傳播,造成隱私數(shù)據(jù)泄露、資費(fèi)消耗、破壞系統(tǒng)等后果。
病毒具有逐利性,發(fā)展技術(shù)和種類總是層出不窮,但是反病毒技術(shù)的發(fā)展只能僅僅追逐于病毒更新的速度,往往反病毒技術(shù)只能應(yīng)對已知的病毒,對于未知的病毒,專家正著眼于利用云計算、大數(shù)據(jù)資源基于機(jī)器學(xué)習(xí)、深度學(xué)習(xí)算法等方式,自動化、智能化地根據(jù)行為特征對其進(jìn)行查殺,并按照其執(zhí)行的操作將其劃分到不同的種類[27,28]。
3.3 防釣魚攻擊
手機(jī)終端綁定銀行、支付和社交等賬戶,容易遭受不法分子的覬覦,他們往往通過網(wǎng)頁釣魚、短信釣魚、應(yīng)用釣魚、郵件釣魚等誘惑用戶[29],2015全年360手機(jī)安全防護(hù)軟件共攔截各類釣魚網(wǎng)站攻擊48億次[1]。
釣魚網(wǎng)站攻擊檢測和防范成為當(dāng)務(wù)之急,常用的方法有黑名單、異常檢測和機(jī)器學(xué)習(xí)智能檢測等。Bottazzi等[30]提出釣魚檢測框架MP-Shield,分析URL鏈接,集成了基于公共黑名單的瀏覽器檢測插件,同時實(shí)現(xiàn)了機(jī)器學(xué)習(xí)檢測引擎,包含J48、SMO、BayesNet、IBK和SGD算法,確保手機(jī)終端免受0Day釣魚攻擊。
Wu等[31]提出輕量級檢測工具M(jìn)obiFish,檢測手機(jī)Web網(wǎng)頁、應(yīng)用和登錄賬戶上遭遇的釣魚攻擊。MobiFish應(yīng)用OCR技術(shù)提取截屏中的文本信息,通過文本中聲稱的身份信息與網(wǎng)頁URL和APP中實(shí)際的身份信息比較,給出釣魚警示,而不像其他方法那樣,分析HTML源碼、IP地址、搜索引擎[32],或者采用機(jī)器學(xué)習(xí)算法[33]證明該方法能有效檢測和防范釣魚攻擊。
受到利益的驅(qū)使,釣魚網(wǎng)站層出不窮,廣大終端用戶應(yīng)當(dāng)使用主流的安全防護(hù)軟件,它們基本涵蓋了已知的釣魚網(wǎng)站黑名單,能夠很好地攔截非法釣魚鏈接。同時,用戶應(yīng)提高警惕,不受誘惑,不點(diǎn)擊未知鏈接,并且不泄露身份信息和財產(chǎn)賬戶信息等。
4.1 Android系統(tǒng)內(nèi)核安全
4.1.1 內(nèi)核增強(qiáng)
Android系統(tǒng)內(nèi)核的安全威脅一方面繼承自Linux系統(tǒng)漏洞,另一方面源于Android平臺本身不完善。在Android系統(tǒng)內(nèi)核訪問控制增強(qiáng)研究方面,Shabtai等[34]提出將強(qiáng)制訪問控制子系統(tǒng)SELinux植入到Android平臺中,以限制應(yīng)用對系統(tǒng)資源的訪問,增強(qiáng)Android系統(tǒng)安全,是首次提出的高效低耗的系統(tǒng)增強(qiáng)方案。Smalley等[35]實(shí)現(xiàn)了基于SELinux內(nèi)核開發(fā)一套MAC中間件擴(kuò)展Android權(quán)限模型,隔離應(yīng)用間的數(shù)據(jù)交互。
實(shí)際應(yīng)用上,從Android 4.3以來,正式引入基于MAC的SELinux安全機(jī)制,稱為SEAndroid,用來強(qiáng)化操作系統(tǒng)對應(yīng)用的訪問控制,起到類似沙箱的執(zhí)行隔離效果,阻止惡意應(yīng)用對系統(tǒng)或其他應(yīng)用的攻擊,還有效地減弱內(nèi)核層出現(xiàn)漏洞時產(chǎn)生的威脅。
4.1.2 漏洞挖掘
任何系統(tǒng)在邏輯設(shè)計和實(shí)現(xiàn)上都存在缺陷或者錯誤,Android系統(tǒng)亦不例外,2015年,Google成立了Android Security Rewards項目,用于獎勵A(yù)ndroid系統(tǒng)漏洞發(fā)現(xiàn)者。歷年共公布600多條系統(tǒng)漏洞,覆蓋到內(nèi)核層、Native層、框架層及應(yīng)用層,包括內(nèi)存溢出、權(quán)限提升、組件交互、硬件資源調(diào)配等各個方面[36]。
傳統(tǒng)的漏洞挖掘方式分為主動方式和被動方式,主動挖掘方式分為人工挖掘、靜態(tài)挖掘和動態(tài)挖掘,被動挖掘方式分為攻擊分析和補(bǔ)丁分析[37]。Android平臺的漏洞主要分為常規(guī)漏洞和權(quán)限提升漏洞,通過分析邏輯規(guī)則的合理性,編寫Fuzz測試用例,構(gòu)建漏洞知識庫是一種有效的漏洞發(fā)掘方式。
Zhang等[37]提出Android平臺漏洞挖掘4層模型,針對攻擊樣本、攻擊方法、修復(fù)補(bǔ)丁,分析漏洞存在的可能性,利用Fuzz測試方法和攻擊挖掘方法,有效地挖掘出系統(tǒng)漏洞、應(yīng)用漏洞、權(quán)限提升漏洞等。
比較嚴(yán)重的Android系統(tǒng)漏洞執(zhí)行方便、涉及范圍廣、無需主動觸發(fā)、隱蔽性強(qiáng),一旦被黑客利用,造成的損失不可估量。對于Android系統(tǒng)本身來說,漏洞挖掘是個持續(xù)的過程,漏洞挖掘得越徹底,系統(tǒng)將修補(bǔ)得越完善。
4.1.3 內(nèi)存防泄漏
Android系統(tǒng)每個版本中都存在內(nèi)存泄漏問題,即應(yīng)用進(jìn)程中一些對象沒有使用價值了,但還占據(jù)著內(nèi)存空間,拒絕被GC回收,導(dǎo)致實(shí)際可使用內(nèi)存變小,系統(tǒng)運(yùn)行越來越慢,用戶體驗越來越差。內(nèi)存泄漏產(chǎn)生的原因有類的靜態(tài)變量持有大數(shù)據(jù)對象、資源對象使用后未關(guān)閉、注冊對象未反注冊、集合中不用的對象沒清理、Handler臨時性等[38]。使用DDMS、MAT工具可查看內(nèi)存使用情況。
Shahriar等[39]在研究資源對象導(dǎo)致內(nèi)存泄漏的情況時,編寫Fuzz測試用例,研究應(yīng)用bitmap and imageview、event listener、animation activity、static object、AdView object等對象時是否產(chǎn)生內(nèi)存泄漏。而針對context、內(nèi)部類、數(shù)據(jù)庫操作等其他行為是防內(nèi)存泄漏需要進(jìn)行的進(jìn)一步深入研究。
4.1.4 系統(tǒng)防ROOT
Android系統(tǒng)刷機(jī)是將刷機(jī)包中的系統(tǒng)文件寫入ROM存儲區(qū),替換原生系統(tǒng)文件,再次啟動時,從ROM中載入最新替換過的系統(tǒng)文件。本質(zhì)就是系統(tǒng)文件的覆蓋和替換操作,會破壞原有系統(tǒng)的權(quán)限機(jī)制,而來源各異的刷機(jī)包中可能集成了大量的惡意軟件或病毒,留下隱患,因而刷機(jī)要謹(jǐn)慎[40]。
另一種破壞終端安全機(jī)制的方式是對終端ROOT,利用操作系統(tǒng)漏洞獲取最高的ROOT管理權(quán)限,任意訪問和修改所有的文件。這種方式的優(yōu)點(diǎn)是用戶可以完全控制終端,缺點(diǎn)是黑客也能夠利用病毒輕而易舉獲得ROOT權(quán)限,導(dǎo)致終端完全暴露出來,可能產(chǎn)生嚴(yán)重后果。Android 5.0版本采用增強(qiáng)SELinux后,常用的ROOT方案已行不通,必須通過刷內(nèi)核的方式,這需要解鎖bootloader,而一旦鎖定bootloader,能夠?qū)崿F(xiàn)防ROOT破解。
4.2 本地庫和運(yùn)行時環(huán)境安全
4.2.1 安全沙箱機(jī)制
Android 4.4以前的運(yùn)行時環(huán)境為應(yīng)用程序的正常運(yùn)行提供了核心鏈接庫和Dalvik虛擬環(huán)境,采用沙箱機(jī)制隔離各應(yīng)用程序之間的運(yùn)行環(huán)境。每個應(yīng)用作為一個Dalvik虛擬機(jī)實(shí)例獨(dú)立地運(yùn)行在一個進(jìn)程內(nèi),Android系統(tǒng)為每個應(yīng)用分配一個UID,保證應(yīng)用的文件、數(shù)據(jù)相互獨(dú)立存儲。通過設(shè)置sharedUserID,使多個應(yīng)用程序具備相同的UID,從而共享數(shù)據(jù)和權(quán)限。
這方面的安全問題主要集中在應(yīng)用之間利用IPC突破沙箱隔離,導(dǎo)致權(quán)限提升、信息泄露、惡意攻擊等。權(quán)限提升是一種很嚴(yán)重的威脅,使未申請權(quán)限的應(yīng)用執(zhí)行授權(quán)操作[41,42],破壞了程序安全運(yùn)行環(huán)境,因而對Android應(yīng)用沙箱的安全防護(hù)一定程度上體現(xiàn)在對權(quán)限提升漏洞的檢測和修復(fù),對權(quán)限提升攻擊的檢測和防護(hù)將在4.3.1節(jié)進(jìn)行詳細(xì)介紹。
4.2.2 ART機(jī)制
Android 5.0運(yùn)行時環(huán)境采用ART機(jī)制,只在應(yīng)用安裝時進(jìn)行一次預(yù)編譯,將程序語言轉(zhuǎn)化為機(jī)器語言代碼存儲在本地,而Dalvik虛擬機(jī)機(jī)制在應(yīng)用每次編譯時都要編譯,每次程序運(yùn)行時都將程序語言轉(zhuǎn)換為機(jī)器語言。因此ART機(jī)制使應(yīng)用的啟動和執(zhí)行更加迅速,效率也更高,但是在應(yīng)用安裝時耗費(fèi)更多時間預(yù)編譯,運(yùn)行時占有更多內(nèi)存。如何優(yōu)化ART機(jī)制產(chǎn)生的內(nèi)存問題需要不斷深入研究。
Demertzis等[43]提出SAME,在ART虛擬機(jī)中分析應(yīng)用程序的類,采用基于BBO的多層感知器,并行運(yùn)行粒子群優(yōu)化(PSO)、蟻群優(yōu)化(ACO)和遺傳算法(GA)等算法,以區(qū)分應(yīng)用是否是惡意。
4.2.3 組件間安全通信
Android應(yīng)用由Activity、Service、Broadcast Receiver和Content Provider 4類組件組成,組件之間通過Intent進(jìn)行交互,隱式Intent容易引發(fā)惡意調(diào)用、惡意發(fā)送廣播、activity劫持、惡意service啟動等[44]問題。這方面的研究方案主要集中在基于上下文感知環(huán)境構(gòu)建組件調(diào)用圖檢測數(shù)據(jù)泄露的路徑。
Enck等[45]指出組件間通信缺少對信息流的監(jiān)控,存在信息泄露的風(fēng)險。傅建明等[46]針對國內(nèi)流行的應(yīng)用程序研究采用靜態(tài)分析方法構(gòu)建其CFG(控制流程圖)、FCG (函數(shù)調(diào)用圖)和CCG(組件調(diào)用圖)主要檢測隱式Intent可能引發(fā)組件劫持、信息泄露和組件的權(quán)限泄露問題。
確保組件間安全通信可采取的措施有最小化組件暴露、設(shè)置組件訪問權(quán)限、檢查暴露組件的代碼等。
4.3 應(yīng)用程序框架安全
4.3.1 權(quán)限機(jī)制
1) 保護(hù)ROOT權(quán)限
ROOT是Android平臺中唯一的超級用戶,管控所有系統(tǒng)資源,據(jù)iiMedia Research統(tǒng)計,近30%的用戶對自己的手機(jī)終端ROOT,利用獲取的ROOT權(quán)限卸載預(yù)裝的應(yīng)用程序,再安裝第三方軟件管理權(quán)限、系統(tǒng)文件等,這無疑為病毒非法入侵打開了方便之門。
Android 4.4之前,用戶無法自主管理應(yīng)用程序的使用權(quán)限,除非使用第三方軟件,而Android 4.4之后,Android原生系統(tǒng)集成了SuperUser權(quán)限管理程序,這對Android權(quán)限管理具有里程碑式的意義。
ROOT權(quán)限對于系統(tǒng)資源的安全保護(hù)具有很重要的作用,輕易不要對終端設(shè)備ROOT,而在未破解ROOT的情況下,如何更深層次地調(diào)配系統(tǒng)資源并保護(hù)系統(tǒng)安全穩(wěn)定地運(yùn)行是需要考慮的。
2) 應(yīng)用程序權(quán)限增強(qiáng)管理
Android 4.3以前的原生系統(tǒng)對權(quán)限的管理是粗粒度的,即應(yīng)用在安裝時,權(quán)限之間的關(guān)聯(lián)關(guān)系沒有明確告知用戶,用戶設(shè)置全接受或全否定應(yīng)用申請的權(quán)限;在應(yīng)用運(yùn)行過程中對權(quán)限的使用零監(jiān)控。Google開發(fā)文檔提供了詳細(xì)的開發(fā)資料,卻對權(quán)限的使用說明涉及較少[47],這導(dǎo)致開發(fā)者對權(quán)限申請過度。權(quán)限的使用貫穿應(yīng)用程序的全生命周期,在應(yīng)用的開發(fā)、安裝和應(yīng)用過程中都占據(jù)重要地位,Android權(quán)限機(jī)制實(shí)現(xiàn)如圖2所示。
①權(quán)限提升監(jiān)測和防護(hù)
應(yīng)用運(yùn)行時,一些應(yīng)用在自身沒有申請權(quán)限的情況下,通過其他應(yīng)用獲取權(quán)限進(jìn)而獲得訪問資源的資格,這種行為稱為權(quán)限提升。Schlegel等[48]提出一種手機(jī)木馬Soundcomber,本身不具有操作音頻的權(quán)限,卻通過其他應(yīng)用的權(quán)限獲取音頻數(shù)據(jù),這是利用Android系統(tǒng)隱蔽通道的典型例子。Davi等[41]展示了在沒有短信權(quán)限的情況下如何發(fā)送短信。Grace等[49]提出權(quán)限提升檢測工具Woodpecker,檢測出有些軟件不遵守權(quán)限機(jī)制,將保護(hù)隱私數(shù)據(jù)的權(quán)限暴露給其他應(yīng)用。
在權(quán)限提升防護(hù)方面,研究成果包括Saint[50]、XMAndroid[51]、Quire[52]、IPC Inspection[47]、CHEX[53]、DroidAlarm[54]等。權(quán)限管理增強(qiáng)框架Saint[51],對應(yīng)用APK文件增加權(quán)限和策略信息,安裝時規(guī)定具體權(quán)限被授予給其他應(yīng)用的情況,運(yùn)行時檢查組件間的通信,一旦應(yīng)用之間權(quán)限驗證失敗,就無法交互。安全監(jiān)控框架XMAndroid[52],利用Android系統(tǒng)的隱蔽通信通道,構(gòu)建無向圖,動態(tài)監(jiān)視應(yīng)用之間的權(quán)限使用情況,通過設(shè)置安全策略,阻斷應(yīng)用之間利用間接獲得的權(quán)限執(zhí)行未經(jīng)授權(quán)的操作。各方案比較如表1所示。
表1 權(quán)限提升監(jiān)測和防護(hù)方案比較
抗混淆副攻擊系統(tǒng)Quire[53],跟蹤IPC和RPC的調(diào)用鏈,每個應(yīng)用向被調(diào)用者傳播其調(diào)用鏈的上下文以驗證權(quán)限是否符合,并驗證接收到的數(shù)據(jù)是否可信,如果不符合則拒絕。防跨應(yīng)用越權(quán)操作的IPC Inspection機(jī)制[47],通過分析IPC傳遞事件信息和權(quán)限信息,將被調(diào)用應(yīng)用的有效權(quán)限減少為調(diào)用與被調(diào)用應(yīng)用權(quán)限的交集,防止應(yīng)用發(fā)起混淆代理人攻擊導(dǎo)致惡意入侵。同Quire一樣,IPC Inspection也無法檢測所有的通過隱蔽通道傳輸?shù)男畔⒘鳌?/p>
組件漏洞檢測方式CHEX[54],靜態(tài)分析應(yīng)用的數(shù)據(jù)流檢測應(yīng)用是否存在權(quán)限泄露、未授權(quán)數(shù)據(jù)訪問、Intent欺騙等問題,檢測應(yīng)用是否存在組件劫持漏洞,對Android系統(tǒng)開銷低。
權(quán)限提升發(fā)現(xiàn)工具DroidAlarm[55],靜態(tài)提取惡意應(yīng)用的所有公開接口及聲明敏感權(quán)限信息,采用數(shù)據(jù)流跟蹤算法發(fā)現(xiàn)權(quán)限提升問題。
權(quán)限提升攻擊檢測的方式有多種,主要都是通過監(jiān)控應(yīng)用間的權(quán)限使用情況,發(fā)現(xiàn)越權(quán)非法訪問資源的威脅。就靜態(tài)檢測方式而言,如果應(yīng)用受加殼、混淆保護(hù)等,將無法有效檢測;而動態(tài)檢測能夠?qū)崟r檢測應(yīng)用進(jìn)程間的通信,是比較有效的檢測方式。
②權(quán)限模型擴(kuò)展和增強(qiáng)
對原生Android權(quán)限框架進(jìn)行擴(kuò)展,應(yīng)用安裝時,設(shè)置策略檢測權(quán)限并修改權(quán)限申請,應(yīng)用運(yùn)行時,跟蹤并操作權(quán)限使用情況,從各方面增強(qiáng)權(quán)限機(jī)制,從根本上改善權(quán)限管理。
Enck等[55]提出輕量級應(yīng)用檢驗工具Kirin安全規(guī)則,設(shè)置靜態(tài)權(quán)限組合策略,應(yīng)用安裝時,對申請的權(quán)限進(jìn)行檢測,若違反策略則認(rèn)定應(yīng)用為惡意應(yīng)用并拒絕安裝,以防止隱私泄露。這在業(yè)界是首次提出的權(quán)限增強(qiáng)方案。
Nauman等[56]提出權(quán)限策略擴(kuò)展框架Apex,在應(yīng)用安裝時,檢測應(yīng)用權(quán)限,允許用戶有選擇地授予權(quán)限,并且還能夠自定義限制資源的使用情況。
Felt等[57]提出權(quán)限靜態(tài)檢測工具Stowaway,根據(jù)API與權(quán)限的映射關(guān)系,得到應(yīng)用申請的最小權(quán)限集,并用其檢查應(yīng)用過度申請權(quán)限的情況。之后,有很多學(xué)者基于此方案進(jìn)行了擴(kuò)展和深入的研究。Geneiatakis等[58]結(jié)合運(yùn)行時的信息和靜態(tài)分析的數(shù)據(jù)判斷應(yīng)用是否過度申請權(quán)限,是否遵從了最小權(quán)限集原則,這種方式不用修改應(yīng)用的源碼也不用修改Android系統(tǒng)的底層代碼,最大程度上減少對系統(tǒng)運(yùn)行的影響。
Holavanalli等[59]提出權(quán)限擴(kuò)展機(jī)制Flow Permissions,根據(jù)數(shù)據(jù)與敏感API的對應(yīng)關(guān)系,利用工具Blue Seal靜態(tài)分析應(yīng)用,顯示應(yīng)用的權(quán)限關(guān)聯(lián)信息及與其他應(yīng)用間暗含的權(quán)限關(guān)聯(lián)信息,提醒用戶可能存在的威脅。
Barrera等[60]用自組織映射方法分析應(yīng)用程序,研究權(quán)限的設(shè)置粒度是否合理及權(quán)限間的關(guān)系,并提出權(quán)限增強(qiáng)安全模型以識別頻繁使用的權(quán)限。
以上這些權(quán)限管理方案都能從某個角度發(fā)現(xiàn)問題并起到保護(hù)作用,但又都各有局限性,如果將XMAndroid、Kirin、Saint、Quire等方案結(jié)合,將更全面地保護(hù)Android系統(tǒng)的安全。
隨著Android原生系統(tǒng)的不斷改進(jìn)及安全防護(hù)軟件的升級,權(quán)限管理的粒度越來越細(xì)化,支持用戶自主管理應(yīng)用的權(quán)限,根據(jù)需要主動打開或禁用具體應(yīng)用的指定權(quán)限,如用戶可禁用聊天軟件開啟攝像頭的權(quán)限或者禁用網(wǎng)銀軟件讀取通訊錄的權(quán)限等。
4.3.2 簽名機(jī)制
應(yīng)用的簽名信息表明APK安裝程序的來源。在Android平臺上,所有的程序都必須有簽名,否則不允許安裝。簽名是保護(hù)應(yīng)用的第一道防線,比較簽名信息可判斷應(yīng)用是否重打包。
2013年先后爆出3個MasterKey簽名漏洞,惡意應(yīng)用能夠繞過數(shù)字簽名校驗過程,在不被用戶察覺的情況下進(jìn)入Android系統(tǒng),達(dá)到惡意目的。漏洞爆出之后,百度安全實(shí)驗室很快提出DroidSploit解決方案,保護(hù)Android免受此漏洞的威脅。
實(shí)際上,Android應(yīng)用的簽名機(jī)制還不夠完善,簽名的時間戳和文件路徑能夠被隨意修改,這致使攻擊者能夠繞過驗簽過程,存在惡意應(yīng)用能夠輕易安裝的隱患。
Android平臺上的應(yīng)用安全研究主要集中在通過靜態(tài)分析和動態(tài)分析的方式[61]提取應(yīng)用的特征,判斷是否是惡意應(yīng)用,確保應(yīng)用的安全運(yùn)行。Android惡意應(yīng)用的研究方法和理論主要借鑒PC上的經(jīng)驗,困難之處在于Android平臺硬件資源相對匱乏,對性能消耗過大?,F(xiàn)在正逐漸針對Android平臺的特性,借助云計算等計算優(yōu)勢檢測安全。
5.1 惡意應(yīng)用靜態(tài)檢測
靜態(tài)檢測就是使用反編譯等逆向工程手段,分析代碼文件,提取應(yīng)用程序的特征,如簽名、權(quán)限、敏感API調(diào)用等,再通過樣本比對或機(jī)器學(xué)習(xí)的方式,判定是否惡意。靜態(tài)檢測方式簡單且效率高,但是無法分析混淆、加密等惡意代碼。
5.1.1 逆向工程
靜態(tài)分析的第一步就是逆向工程。一種方式是采用dex2jar工具將DEX反編譯成Java源碼,采用AXMLPrinter2工具處理AndroidManifest.xml文件,采用jd-gui工具查看Java源碼,提取表征應(yīng)用的特征信息。另一種方式是使用APKtool和Smali,將APK文件逆向成Smali文件[62]。其他反編譯工具還包括Dexdump、Dedexer、androguard、IDA PRO等。
Enck等[63]提出Dalvik反編譯器Ded,將DEX文件反編譯成Java文件,再對應(yīng)用進(jìn)行控制流、數(shù)據(jù)流、數(shù)據(jù)結(jié)構(gòu)和語義分析,發(fā)現(xiàn)其漏洞和威脅。
5.1.2 應(yīng)用特征提取和分析
逆向工程之后得到可讀的Java或者Smali代碼文件,再基于語義從文件中提取能代表應(yīng)用的特征,如Intent、簽名、API函數(shù)、類、常量、權(quán)限、組件等,通過分析這些特征,判斷是否是惡意應(yīng)用[64]。
Shabtai等[65]直接從APK文件中提取應(yīng)用的APK、XML和DEX文件信息,再使用機(jī)器學(xué)習(xí)算法自動化區(qū)分應(yīng)用的類別。
AndroidManifest.xml中是APK文件中最重要的一個文件,描述了應(yīng)用實(shí)現(xiàn)的類、權(quán)限、組件、簽名、各種被處理的數(shù)據(jù)和啟動信息等。解析該文件中的信息標(biāo)簽,可以在一定程度上判定是否是惡意應(yīng)用。這方面的研究成果來自Sarma[66]、Sato[67]、Wu[68]、Weichselbaum[69]等。
以權(quán)限為判斷特征,分析申請的權(quán)限組合,或者設(shè)置Kirin安全規(guī)則[55],或者將權(quán)限與API調(diào)用合并起來作為特征構(gòu)建高維特征向量[13],或者基于權(quán)限的行為路徑[70],都可以對應(yīng)用進(jìn)行安全檢測。
函數(shù)調(diào)用能夠反映應(yīng)用的行為,Strace是Android平臺上的系統(tǒng)調(diào)用跟蹤器,顯示其他進(jìn)程的系統(tǒng)調(diào)用信息,包括參數(shù)及返回值;Androguard是Google 提供的靜態(tài)分析工具,將APK文件中的DEX文件、類、方法等都映射為python對象,用于惡意軟件檢測和惡意評估,分析過程可視化;使用PScout工具[71],分析API函數(shù)調(diào)用與權(quán)限檢查的情況,構(gòu)建函數(shù)調(diào)用圖,形成各個API函數(shù)的權(quán)限映射關(guān)系;Aurasium[72]在應(yīng)用程序中嵌入跟蹤代碼,截獲程序的系統(tǒng)調(diào)用實(shí)現(xiàn)對短信、終端信息、網(wǎng)絡(luò)等資源使用的監(jiān)測;基于語義學(xué)的DroidSIFT原型系統(tǒng)[73],提取應(yīng)用的API,構(gòu)建基于加權(quán)上下文的API調(diào)用依賴圖,并引入應(yīng)用的相似性來判定變種惡意應(yīng)用或0Day應(yīng)用。
利用Intent傳遞消息可以被嗅探、篡改或竊取,惡意程序借助Intent偽造、注入惡意消息使得用戶數(shù)據(jù)被污染。Chin提出[44]Comdroid,根據(jù)Intent分析應(yīng)用,警告存在的漏洞。Arzt等[74]提出污點(diǎn)分析系統(tǒng)FlowDroid,實(shí)現(xiàn)對應(yīng)用信息流的管理。
簽名能夠判斷應(yīng)用,Hu等[75]提出使用命令從DEX文件中提取簽名信息作為訓(xùn)練集,再采用字符串相近算法提取簽名信息以檢測惡意應(yīng)用,有較高的檢測效率和準(zhǔn)確度。
使用單一特征分析應(yīng)用存在漏檢和誤檢的情況,可考慮采用多類特征綜合分析的方式。通過動態(tài)和靜態(tài)分析應(yīng)用,提取權(quán)限、組件、敏感API、行為調(diào)用序列等特征,對各類特征分別選取最優(yōu)的基礎(chǔ)分類算法,得到惡意應(yīng)用綜合判定結(jié)果。
5.1.3 機(jī)器學(xué)習(xí)智能檢測
機(jī)器學(xué)習(xí)具有大規(guī)模數(shù)據(jù)處理能力,能在相似的數(shù)據(jù)結(jié)構(gòu)中做出對目標(biāo)的判斷。在對大量Android應(yīng)用進(jìn)行惡意判定時,引入機(jī)器學(xué)習(xí)算法對應(yīng)用進(jìn)行智能分析是非常合適的,常用機(jī)器學(xué)習(xí)算法包括樸素貝葉斯(NB, naive Bayes)、決策樹(DT, decision tree)、-最近鄰(KNN,-nearest neighbor)、支持向量機(jī)(SVM, support vector machine)、-means等。早在20年前,就有專家學(xué)者基于機(jī)器學(xué)習(xí)的各種算法對惡意代碼和惡意應(yīng)用進(jìn)行檢測,而在Android應(yīng)用檢測方面,也已經(jīng)有很多嘗試。Android機(jī)器學(xué)習(xí)惡意應(yīng)用檢測結(jié)構(gòu)如圖3所示。
Schmidt等[76]采用CART、prim和KNN算法通過靜態(tài)分析對DEX文件中的調(diào)用函數(shù)進(jìn)行機(jī)器學(xué)習(xí);Wu等[68]提出DroidMat,以權(quán)限、Intent、API為特征,使用-means和EM聚類算法對惡意應(yīng)用行為建模再采用KNN和NB分類算法判定惡意應(yīng)用,有較高的執(zhí)行效率和可擴(kuò)展性;以API調(diào)用和權(quán)限為特征,Peiravian等[13]使用SVM、CART和Bagging 3種機(jī)器學(xué)習(xí)方法,Gates等[77]采用基于正則邏輯回歸的概率判別模型,檢測應(yīng)用分類;而Yerima[27]等運(yùn)用NB方法對Android惡意軟件進(jìn)行分類。
在對上述機(jī)器學(xué)習(xí)算法綜述的基礎(chǔ)上,進(jìn)一步總結(jié)出各主要算法的特點(diǎn)和優(yōu)缺點(diǎn),如表2所示。
利用機(jī)器學(xué)習(xí)歸納出已知應(yīng)用的類別,有效預(yù)測未知的惡意代碼。目前,基于機(jī)器學(xué)習(xí)的檢測技術(shù)可以去人工化,提高應(yīng)用分析的效率,有很廣的應(yīng)用前景,但是這種方式嚴(yán)重依賴于提取的應(yīng)用特征和應(yīng)用樣本的質(zhì)量,工業(yè)應(yīng)用時,往往根據(jù)不同的應(yīng)用場景,調(diào)用不同的機(jī)器學(xué)習(xí)算法,而且其復(fù)雜度和準(zhǔn)確率都待改善,這將成為未來惡意檢測研究的重點(diǎn)。
表2 機(jī)器學(xué)習(xí)算法的特點(diǎn)和優(yōu)缺點(diǎn)
5.1.4 重打包檢測
對應(yīng)用逆向工程之后,若繼續(xù)將應(yīng)用安裝到智能終端上,就需要對其重打包,重打包的應(yīng)用很可能攜帶惡意代碼,對此,檢測應(yīng)用是否重打包意義非凡。先后有專家學(xué)者提出檢測工具DroidMOSS[78]、DNADroid[79]、Juxtapp[80]和SCSdroid[81],分別采用模糊散列算法、構(gòu)造應(yīng)用程序類中的方法構(gòu)造程序依賴圖、特征散列算法,計算軟件市場上的應(yīng)用軟件與官方市場中的軟件的相似性,當(dāng)相似性大于一個閾值時,則判定為重打包軟件,用戶安裝需謹(jǐn)慎。
Zhou等[78]提出DroidMoss,比較官方應(yīng)用與第三方應(yīng)用市場上應(yīng)用的開發(fā)者信息和代碼指令的散列值,判斷應(yīng)用是否被二次打包。缺點(diǎn)是難以獲得所有的官方原始應(yīng)用,因而檢測覆蓋面較小。Lin等[81]提出SCSdroid,提取線程的公共系統(tǒng)調(diào)用序列,根據(jù)公共調(diào)用序列可以檢測應(yīng)用,而不用獲取原始應(yīng)用,實(shí)驗證明這種方式的正確率高達(dá)95%。
5.2 惡意應(yīng)用動態(tài)檢測
對惡意應(yīng)用動態(tài)檢測,提取應(yīng)用運(yùn)行中的關(guān)鍵數(shù)據(jù)為特征,通過異常檢測或機(jī)器學(xué)習(xí)的方式,實(shí)現(xiàn)智能化的檢測分析。動態(tài)檢測繞過了靜態(tài)方法遇到的代碼混淆和加密等問題,對于新出現(xiàn)的未知惡意軟件也能保持較好的檢測準(zhǔn)確率。但是實(shí)時性不高,提取特征耗費(fèi)時間較長,消耗較多系統(tǒng)資源,而且很難覆蓋到應(yīng)用的全部執(zhí)行路線,比較難發(fā)現(xiàn)特定條件下發(fā)生的惡意行為。
隨著云計算技術(shù)的不斷發(fā)展,通過云計算對惡意樣本進(jìn)行維護(hù),有效解決樣本庫內(nèi)容不斷增加的難題,突破了樣本庫維護(hù)的局限,還把應(yīng)用智能分類的核心計算部分移到了云端,降低了終端上的開銷。
基于云計算的Android應(yīng)用動態(tài)檢測,首先在手機(jī)終端捕獲應(yīng)用行為,提取特征,傳輸?shù)皆贫?,再在云端對?yīng)用行為進(jìn)行異常檢測,再將檢測結(jié)果返回到Android終端,由終端對異常行為做成阻塞或者中斷處理[82,83],Android動態(tài)行為檢測架構(gòu)如圖4所示。
應(yīng)用動態(tài)分析可監(jiān)控軟件安裝和卸載、聯(lián)網(wǎng)、收發(fā)短信息、后臺撥打和接聽電話、操作數(shù)據(jù)庫、權(quán)限檢查、文件接收和發(fā)送、攝像頭操作等行為??刹捎?種方式獲取行為信息:第1種是靜態(tài)注入技術(shù),對應(yīng)用程序反編譯嵌入監(jiān)控API調(diào)用的源碼,再編譯和重打包,將修改后的應(yīng)用安裝到Android平臺,應(yīng)用運(yùn)行時,監(jiān)控代碼便能實(shí)現(xiàn)對行為的跟蹤;第2種是API Hook技術(shù),在Android平臺上對敏感API進(jìn)行Hook,一旦系統(tǒng)或應(yīng)用對特定的API調(diào)用時,可截獲調(diào)用函數(shù),將其重定向到代理函數(shù),在代理函數(shù)中獲取該API調(diào)用的詳細(xì)信息,即可獲取行為信息;第3種是進(jìn)程捕獲,提取關(guān)鍵行為的特征。如何實(shí)現(xiàn)應(yīng)用行為監(jiān)控,如何提取行為特征,研究者們開展了廣泛而深入的研究。
Xu等[72]提出Aurasium,在應(yīng)用程序中嵌入跟蹤程序,截獲應(yīng)用程序的系統(tǒng)調(diào)用,檢測短信、設(shè)備信息、網(wǎng)絡(luò)等資源的使用情況。
Bl?sing等[84]提出應(yīng)用沙箱AASandbox,在隔離的環(huán)境中對應(yīng)用進(jìn)行靜態(tài)和動態(tài)分析,檢測惡意應(yīng)用;Shabtai等[14]提出基于行為的惡意軟件檢測系統(tǒng)Andromaly,收集Android平臺運(yùn)行各種特征,通過-means、DT、NB、LR等機(jī)器學(xué)習(xí)算法對收集到的數(shù)據(jù)分類,并比較了各種算法的準(zhǔn)確性。
Burguera等[83]提出Crowdroid,在Android端使用strace追蹤器采集行為數(shù)據(jù),傳到分析服務(wù)端,利用分類器訓(xùn)練這些行為樣本,使用KNN算法判斷應(yīng)用是否含有惡意行。
另外,還有其他幾種應(yīng)用動態(tài)分析工具,如Droidbox、SandDroid等。它們都能夠捕獲網(wǎng)絡(luò)數(shù)據(jù),包括監(jiān)控網(wǎng)絡(luò)、文件、短信泄露的信息等,是具有一定成熟度的動態(tài)分析工具。
5.3 應(yīng)用安全加固
隨著Android應(yīng)用逆向工程的快速發(fā)展,對應(yīng)用破解變得輕而易舉,對應(yīng)用開發(fā)者來說,辛苦開發(fā)出的成果可能被惡意者植入病毒、篡改、劫持等非法利用,把良性應(yīng)用變成惡意應(yīng)用被用戶拋棄,對用戶來說,安裝被反編譯過的應(yīng)用存在很大風(fēng)險。鑒于此,應(yīng)用的安全加固必不可少。
應(yīng)用安全加固主要采用的技術(shù)是防反編譯,禁止調(diào)用gdb、gcore從內(nèi)存中截取DEX文件以防內(nèi)存竊取,禁止向進(jìn)程中動態(tài)注入代碼以防動態(tài)跟蹤,校驗APK完整性以防惡意篡改等,且加固后的程序不影響其運(yùn)行效率和用戶體驗。
比較流行的應(yīng)用防反編譯的方式有代碼混淆、加殼等,但最有效的是NDK開發(fā)應(yīng)用,編寫Native代碼,即使應(yīng)用被反編譯,也無法得到C/C++代碼,導(dǎo)致無法閱讀和修改全部應(yīng)用代碼。另外,還可以通過代碼加密技術(shù)對NDK應(yīng)用加殼,使程序破解難上加難,但這也對開發(fā)人員的技能要求很高。
總之,對Android應(yīng)用程序的保護(hù)方式有很多種,而真正保證安全,還是要尋求更可靠的加密方式,希望在這方面引起學(xué)者足夠的重視及更多的投入。
5.4 應(yīng)用安全評估
惡意應(yīng)用產(chǎn)生的威脅程度需要通過建立評估體系和評估標(biāo)準(zhǔn),從多個角度進(jìn)行評價,最后綜合得到一個結(jié)果,反映出應(yīng)用的脆弱性和風(fēng)險。
Grace等[61]將惡意應(yīng)用的風(fēng)險等級分為3級:高級、中級和低級。根據(jù)利用系統(tǒng)漏洞跳過合法權(quán)限破壞系統(tǒng)判定為高級風(fēng)險,根據(jù)造成用戶隱私泄露和經(jīng)濟(jì)損失判定為中級風(fēng)險,根據(jù)收集設(shè)備信息和用戶信息判定為低級風(fēng)險。通過這3種風(fēng)險判別,發(fā)現(xiàn)了大量0Day漏洞。MWR InfoSecurity提出應(yīng)用安全評估框架Drozer,通過分析應(yīng)用程序與Dalvik、其他應(yīng)用及底層操作系統(tǒng)的交互數(shù)據(jù),發(fā)現(xiàn)漏洞。
Wang等[17]提出基于權(quán)限的安全風(fēng)險評估框架DroidRisk,將應(yīng)用的風(fēng)險量化,并且能夠提示潛在的惡意行為,但是一旦應(yīng)用申請的權(quán)限過度,需要考慮其他因素使用其他方式來評估風(fēng)險。
對Android應(yīng)用風(fēng)險評估,幫助用戶了解惡意軟件可能存在的攻擊路徑,指導(dǎo)使用者更好地保護(hù)他們的隱私數(shù)據(jù),以規(guī)避可能受到的攻擊。
6.1 隱私數(shù)據(jù)偽造和跟蹤
隱私數(shù)據(jù)偽造是保護(hù)數(shù)據(jù)的一種方式,當(dāng)應(yīng)用被惡意訪問時,為了保護(hù)自己的隱私數(shù)據(jù)不被泄露,提供虛假的數(shù)據(jù)。在這方面的研究成果主要有TISSA[85]、MockDroid[18]和AppFence[86]等。他們都能夠?qū)ν馓峁﹤卧斓臄?shù)據(jù),包括位置信息、設(shè)備ID、聯(lián)系人信息等。
對敏感數(shù)據(jù)做污點(diǎn)標(biāo)記是隱私數(shù)據(jù)保護(hù)的另一種方式,跟蹤數(shù)據(jù)的流向,記錄到日志,為數(shù)據(jù)溯源提供依據(jù)。在這方面第一個研究成果是Enck等[19]提出的污點(diǎn)標(biāo)記系統(tǒng)TaintDroid,此后,有多名學(xué)者在此基礎(chǔ)上進(jìn)一步研究,提出了各種污點(diǎn)數(shù)據(jù)跟蹤系統(tǒng),如AndroidLeaks[87]、Kynoid[88]等,都能夠跟蹤數(shù)據(jù)去向,分析應(yīng)用程序當(dāng)中是否存在隱私泄露行為。
6.2 數(shù)據(jù)加密
加密是對數(shù)據(jù)保護(hù)最直接的一種保護(hù)方式,Android平臺上的數(shù)據(jù)加密主要體現(xiàn)在對短信、通訊錄、通話記錄等SQLite數(shù)據(jù)庫中的數(shù)據(jù)加密,以及對圖片、音頻、視頻等文件數(shù)據(jù)加密。通常采用透明加解密方式,即加解密過程都在后臺進(jìn)行,用戶感知不到,且不改變用戶對數(shù)據(jù)的使用習(xí)慣,這就對加解密在效率、安全性、開發(fā)難度、移植性上達(dá)到平衡有較高要求。
對SQLite數(shù)據(jù)庫數(shù)據(jù)加密的方式一般有2種,一種是在數(shù)據(jù)入庫、出庫時進(jìn)行加解密操作,但是不利于加密信息的檢索;另一種是對整個數(shù)據(jù)庫文件加解密,普遍采用這種方式,通常采用AES或DES等加密算法。
Wang等[89]實(shí)現(xiàn)基于FUSE的文件透明加密系統(tǒng)EncFS,用戶創(chuàng)建目錄作為文件系統(tǒng),所有寫入該系統(tǒng)的文件都會被加密。該系統(tǒng)支持AES和Blowfish加密算法,經(jīng)過不斷優(yōu)化,加密文件系統(tǒng)對原系統(tǒng)的性能影響不大。
Android 5.0采用全盤加密來提升安全性能,所有寫入硬盤的數(shù)據(jù)均需要先加密,所有讀取的數(shù)據(jù)都需要先解密。不足之處在于,大多數(shù)硬件設(shè)備上的閃存并沒有自帶加密標(biāo)準(zhǔn),在開啟全盤加密后,使機(jī)器性能大幅下降。然而,可通過采用更快的閃存芯片和更快的文件系統(tǒng)如F2FS、優(yōu)化SoC等方式進(jìn)行改進(jìn)。
6.3 數(shù)據(jù)云備份
云服務(wù)已經(jīng)成為智能終端的另一標(biāo)配,基于云計算將智能終端上的數(shù)據(jù)遠(yuǎn)程備份到云端,包括通訊錄、短信、圖片等個人隱私數(shù)據(jù)。日常時將終端設(shè)備上的數(shù)據(jù)同步到云端,當(dāng)終端數(shù)據(jù)遭受損失時通過網(wǎng)絡(luò)恢復(fù)數(shù)據(jù)到本地,或者實(shí)現(xiàn)多個設(shè)備間的數(shù)據(jù)統(tǒng)一。同時,云備份還具備定時增量備份、加密存儲、數(shù)據(jù)管理和恢復(fù)等功能。
為了保證數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中不被竊聽、非法攔截,智能終端與云端備份服務(wù)器通信主要是基于SSL協(xié)議,提供雙向認(rèn)證、數(shù)據(jù)加密、數(shù)據(jù)完整性驗證等服務(wù)。Android對SSL協(xié)議有很好的支持,用到的相關(guān)類在javax.net.ssl、java.security及javax.crypto包中。
6.4 數(shù)字版權(quán)保護(hù)
數(shù)字版權(quán)保護(hù)(DRM, digital right management)從技術(shù)上防止數(shù)字內(nèi)容被非法復(fù)制、篡改,只有授權(quán)后才能合法使用,達(dá)到數(shù)字內(nèi)容版權(quán)保護(hù)的目的。Android平臺集成了OMA DRM 2.0的部分功能,提供了一個可擴(kuò)展的數(shù)字版權(quán)管理框架,Marlin DRM也是廣受認(rèn)可的內(nèi)容保護(hù)及內(nèi)容管理的開放標(biāo)準(zhǔn),不同的DRM解決方案可通過Plugin方式集成到Android系統(tǒng)中,允許應(yīng)用程序管理和保護(hù)自己的數(shù)據(jù)。
隨著研究的發(fā)展,PC上成熟的DRM技術(shù),如基于時間/空間約束的DRM授權(quán)模型、添加水印的音視頻DRM技術(shù)、構(gòu)建智能終端共享域并設(shè)計域內(nèi)DRM安全授權(quán)模式、基于角色的可信數(shù)字版權(quán)安全許可授權(quán)模型等,在Android平臺上的擴(kuò)展使用是DRM發(fā)展的又一重要方向。
6.5 安全支付
隨著移動互聯(lián)網(wǎng)的發(fā)展,移動支付在生活中扮演越來越重要的角色,而基于NFC技術(shù)的Android支付平臺,更加即時、安全和快捷地實(shí)現(xiàn)近場付款及遠(yuǎn)程支付[90,91]。
由于支付與用戶的經(jīng)濟(jì)利益切實(shí)相關(guān),其安全不容忽視,對于移動支付安全來說,隱患主要來自3個方面:一是外部釣魚網(wǎng)站和惡意入侵,二是不安全無線網(wǎng)絡(luò)接入環(huán)境,三是終端安裝了惡意的應(yīng)用。采取的安全防護(hù)類型包括以下5種:病毒掃描,保證手機(jī)不被感染;運(yùn)行環(huán)境監(jiān)測,監(jiān)視應(yīng)用的正常運(yùn)行;無線Wi-Fi網(wǎng)絡(luò)掃描,阻止惡意攻擊;短信驗證和密碼保護(hù)保障支付安全;分辨釣魚網(wǎng)站,避免賬戶信息泄露。
Android智能終端安全保護(hù)相關(guān)技術(shù)經(jīng)過專家學(xué)者的不懈付出,已經(jīng)取得了顯著的成績,而全能有效地解決實(shí)際應(yīng)用的成果還亟待出現(xiàn),因此,針對Android安全的研究還將會是一項持久艱巨的任務(wù),主要可能圍繞以下幾個方面展開。
1) 構(gòu)建通用的Android內(nèi)核安全增強(qiáng)框架,及時發(fā)掘系統(tǒng)漏洞,增強(qiáng)對系統(tǒng)的監(jiān)控能力;隔離系統(tǒng)內(nèi)核層和應(yīng)用程序框架層,減少病毒對系統(tǒng)內(nèi)核的侵害;細(xì)粒度應(yīng)用權(quán)限設(shè)置,增強(qiáng)用戶對權(quán)限管理的參與性。
2) 構(gòu)建輕量級的Android動態(tài)惡意應(yīng)用檢測模型,建立行為模式,針對應(yīng)用當(dāng)前運(yùn)行狀態(tài),檢測出潛在的威脅,并實(shí)現(xiàn)對應(yīng)用進(jìn)行安全風(fēng)險評估,實(shí)時展示評估結(jié)果,及時給出安全預(yù)警,增強(qiáng)用戶使用各種應(yīng)用軟件的安全性。
3) 構(gòu)建高效的大規(guī)模惡意應(yīng)用檢測系統(tǒng),針對層出不窮、數(shù)量龐大的惡意應(yīng)用,提取應(yīng)用特征,并進(jìn)行特征優(yōu)化選擇,再基于機(jī)器學(xué)習(xí)算法,智能化地對惡意應(yīng)用檢測,不斷改進(jìn)檢測算法,提高檢測的準(zhǔn)度、精度和效率,杜絕惡意應(yīng)用的傳播擴(kuò)散。
4) 構(gòu)建全面的Android移動終端隱私數(shù)據(jù)保護(hù)系統(tǒng),針對短信、通訊錄等數(shù)據(jù)庫數(shù)據(jù)及圖片、音視頻等文件數(shù)據(jù),加密保護(hù)隱私數(shù)據(jù)的內(nèi)容,驗證隱私數(shù)據(jù)訪問的身份,限制隱私數(shù)據(jù)使用的方式,跟蹤記錄隱私數(shù)據(jù)的流向,通過多種手段,全面有效地保護(hù)隱私數(shù)據(jù)的安全。
5) 構(gòu)建基于云計算和大數(shù)據(jù)的Android智能終端防護(hù)體系,整合云計算、大數(shù)據(jù)資源在數(shù)據(jù)處理和存儲方面的優(yōu)勢,彌補(bǔ)Android計算資源的不足,通過大數(shù)據(jù)挖掘及時檢測Android病毒,通過云服務(wù)實(shí)時維護(hù)Android終端信息和數(shù)據(jù)、查殺病毒、防盜防騙等,拓寬智能終端安全防護(hù)的體系。
Android的開放性和流行性吸引了眾多攻擊者和安全研究者的關(guān)注,攻擊者利用系統(tǒng)漏洞、入侵應(yīng)用軟件、病毒植入等各種可能的手段試圖獲取隱私數(shù)據(jù)以謀求非法利益。安全防護(hù)者針對各種威脅,從終端設(shè)備本身的硬件安全、所處網(wǎng)絡(luò)環(huán)境的安全到Android系統(tǒng)的內(nèi)核增強(qiáng)、權(quán)限細(xì)粒度增強(qiáng)管理,到應(yīng)用靜態(tài)提取特征、應(yīng)用簽名、動態(tài)行為智能分析,再到隱私數(shù)據(jù)加密、備份、版權(quán)保護(hù)、支付安全等各個方面提出防范措施,讓破壞分子無處遁形。本文主要對Android的設(shè)備安全、網(wǎng)絡(luò)安全、系統(tǒng)安全、應(yīng)用安全和數(shù)據(jù)安全進(jìn)行了分析研究,并展望了未來的發(fā)展方向,希望對后續(xù)的研究有所幫助。
[1] 360互聯(lián)網(wǎng)安全中心.2015年手機(jī)安全狀況報告[R]. 2015. 360 Internet Security Center. 2015 mobile security status report [R]. 2015.
[2] 騰訊移動安全實(shí)驗室. 2015年上半年手機(jī)安全報告[R]. 2015. Tencent Mobile Security Laboratory. Mobile security report in the first half of 2015 [R]. 2015.
[3] FAUKI P, BHAMAL A, LAXMI V, et al. Android security: a survey of issues, malware penetration, and defenses[J]. Communications Surveys & Tutorials, 2015, 17(2): 998-1022.
[4] SEO S H, GUPTA A, MOHAMED S A, et al. Detecting mobile malware threats to homeland security through static analysis[J]. Journal of Network and Computer Applications, 2014, 38(2): 43-53.
[5] 馮登國, 孫悅, 張陽. 信息安全體系結(jié)構(gòu)[M]. 北京: 清華大學(xué)出版社, 2008: 1-14. FENG D G, SUN Y, ZHANG Y. Information security architecture[M]. Beijing: Tsinghua University Press, 2008: 1-14.
[6] JANG J, W J Y, MOHAISEN A, et al. Andro-AutoPsy: anti-malware system based on similarity matching of malware and malware creator-centric information[J]. Digital Investigation, 2015, 14(6): 17-35.
[7] NIKOLAY E. Android security internals: an in-depth guide to android's security architecture[M]. No Starch Press, 2014.
[8] STEFFEN L, MATTHIAS L. Android security, pitfalls and lessons learned[C]//The 28th International Symposium on Computer and Information Sciences. Berlin, Germany, c2013: 409-417.
[9] KARI K, ELENA R, JAN ERIK E, et al. Old, new, borrowed, blue: a perspective on the evolution of mobile platform security architectures[C]//The First ACM Conference on Data and Application Security and Privacy. New York, USA, c2011: 13-24.
[10] LUBKE R, SCHUSTER D, SCHILL A. A framework for the development of mobile social software on Android[C]//Third International Conference, MobiCASE 2011. Los Angeles, CA, USA, c2011: 207-225.
[11] HONG Y R, DONGSOO K. Security enhancement of smart phones for enterprises by applying mobile VPN technologies[C]//Computational Science and Its Applications(ICCSA). Santander, Spain, c2011: 506-517.
[12] KORKMAZ I, METIN S K , GUREK A, et al. A cloud based and Android supported scalable home automation system[J]. Computers & Electrical Engineering, 2015, 43(5): 112-128.
[13] PEIRAVIAN, N. ZHU X Q. Machine learning for Android malware detection using permission and API calls[C]//IEEE 25th International Conference on Tools with Artificial Intelligence (ICTAI). Herndon, VA, c2013: 300-305.
[14] SHABTAI A, KANONOY U, ELOVICI Y, et al. Andromaly: a behavioral malware detection framework for android devices[J]. Journal of Intelligent Information Systems, 2012, 38(1): 161-190.
[15] SCHREUDERS Z C, MCGILL T, PAYNE C. The state of the art of application restrictions and sandboxes: a survey of application- oriented access controls and their shortfalls[J]. Computers & Security, 2013, 32(2): 219-241
[16] JUNFENG X, LI Z , DONG L, et al. Recommendable schemes of anti-decompilation for android applications[C]//2015 Ninth International Conference on Frontier of Computer Science and Technology (FCST). Dalian, c2015: 84-90.
[17] WANG Y, ZHENG J, SUN C, et al. Quantitative security risk assessment of Android permissions and applications[C]//27th Annual IFIP WG 11.3 Conference. Newark, NJ, USA, c2013:226-241.
[18] BERESFORS A R, RICE A, SKEHIN N, et al. MockDroid:trading privacy for application functionality on smartphones[C]//The 12th Workshop on Mobile Computing Systems and Applications. New York, USA, c2011: 49-54.
[19] ENCK W, GILBERT P, CHUN, et al. Taintdroid: an information-flow tracking system for realtime privacy monitoring on smartphones[C]// The 9th USENIX Conference on Operating Systems Design and Implementation. Berkeley, CA, USA, c2010: 1-6.
[20] TEUFL P, THOMAS Z, CHRISTOF S. Mobile device encryption systems[C]//8th IFIP TC 11 International Conference. Auckland, New Zealand, c2013: 203-216.
[21] HUANG T Y, WANG H, PENG C L, et al. A new remote desktop approach with mobile devices: design and implementation[M]//Ubiquitous Computing Application and Wireless Sensor, 2015, 331: 305-321.
[22] NAKAO K. NAKAMOTO Y. Toward remote service invocation in Android[C]//Ubiquitous Intelligence & Computing and 9th International Conference on Autonomic & Trusted Computing (UIC/ATC). Fukuoka, c2012: 612-617.
[23] BELKEDE M, GULHANE V, BAJAI P. Biometric mechanism for enhanced security of online transaction on Android system: a design approach[C]//Advanced Communication Technology (ICACT). Pyeong Chang, c2012: 1193-1197.
[24] KHANDELWAL A, MOHAPTRA A K. An insight into the security issues and their solutions for android phones[C]//Computing for Sustainable Global Development (INDIACom). New Delhi, c2015: 106-109.
[25] MA L, TEYMORIAN A Y, CHENG X. A hybrid access point protection framework for commodity Wi-Fi networks[C]//The 27th Conference on Computer Communications. Phoenix, AZ, c2008: 1894-1902.
[26] WANG D, ZHOU M. A framework to test reliability and security of Wi-Fi device[C]//Electronic Packaging Technology (ICEPT). Chengdu, c2014: 953-958.
[27] YERIMA S Y, SEZER S, MCWILLIAN G. Analysis of Bayesian classification-based approaches for Android malware detection[J]. Information Security, IET, 2013, 8(1): 121-129.
[28] SHINA S, ANITHA R, NATARAJAN V. Android based malware detection using a multifeature collaborative decision fusion approach[J]. Neurocomputing, 2015, 151(3): 905-912.
[29] FELT A P, WAGNER D. Phishing on mobile devices[M]. NA, 2011.
[30] BOTTAZZI G, CASALICCHIO E, CINGOLANI D, et al. MP-Shield: a framework for phishing detection in mobile devices[C]//2015 IEEE International Conference on Computer and Information Technology, Ubiquitous Computing and Communications; Dependable, Autonomic and Secure Computing, Pervasive Intelligence and Computing (CIT/IUCC/DASC/PICOM). IEEE, c2015: 1977-1983.
[31] WU L, DU X, WU J. MobiFish: a lightweight anti-phishing scheme for mobile phones[C]//2014 23rd International Conference on Computer Communication and Networks. IEEE, c2014: 1-8.
[32] HE M, HORNG S J, FAN P, et al. An efficient phishing webpage detector[J]. Expert Systems with Applications, 2011, 38(10): 12018- 12027.
[33] BASNET R, MUKKAMALA S, SUNG A H. Detection of phishing attacks: a machine learning approach[M]//Soft Computing Applications in Industry. Springer Berlin Heidelberg, 2008: 373-383.
[34] SHABTAI A, FLEDEL Y, ELOVICI Y. Securing Android-powered mobile devices using SELinux[J]. Security & Privacy, 2010, 8(3): 36-44.
[35] SMANEY S, CRAIG R. Security enhanced (SE) android: bringing flexible MAC to Android[C]//The 20th Annual Network and Distributed System Security Symposium. Switzerland, c2013: 20-38.
[36] AVD Android漏洞庫[EB/OL]. http://android.scap.org.cn/avdview.html. AVD Android vulnerability database[EB/OL]. http://android.scap.org.cn/avdview.html
[37] ZHANG W, CAO C, LIU W, et al. Vulnerability mining techniques in Android platform[J]. CCIS-13, 2013, 52(1391):535-540.
[38] STIRPARO P, FOVINO I N. KOUNELIS I. Data-in-use leakages from Android memory-test and analysis[C]//Wireless and Mobile Computing. Networking and Communications (WiMob). Lyon, c2013: 701-708.
[39] SHAHRIAR H, NORTH S, MAWANGI E. Testing of memory leak in Android applications[C]//High-Assurance Systems Engineering (HASE). Miami Beach, FL, c2014: 176-183.
[40] ALESSANDRO A, ALESSIO M, MAURO M, et al. Breaking and fixing the android launching flow[J]. Computers & Security, 2013, 39: 104-115.
[41] DAVI L, DMITRIENKO A, SADEGHI A. Privilege escalation attacks on Android[M]//Information Security. Springer Berlin Heidelberg, 2010: 346-360.
[42] BUGIEL S, DAVI L, DMITRIENKO A, et al. Poster: the quest for security against privilege escalation attacks on Android[C]//The 18th ACM Conference on Computer and Communications Security. ACM, c2011: 741-744.
[43] DEMERTZIS K, ILIADIS L. SAME: an intelligent anti-malware extension for android ART virtual machine[C]//Computational Collective Intelligence 7th International Conference, ICCCI 2015. Madrid, Spain, c2015: 235-245.
[44] CHIN E, FELT A P, GREENWOOD K, et al. Analyzing inter-application communication in android[C]//The 9th International Conference on Mobile Systems, Applications, and Services. New York, USA, c2011: 239-252.
[45] ENCK W, ONGTANG M, MCDANIEL P. Understanding Android security[J]. IEEE Security & Privacy, 2009, 7(1): 50-57.
[46] 傅建明, 李鵬偉, 易喬. Android組件間通信的安全缺陷靜態(tài)檢測方法[J]. 華中科技大學(xué)學(xué)報(自然科學(xué)版), 2013, 41: 259-264. FU J M, LI P W, YI Q. A static detection of security detects between inter-components’ communication [J]. Journal of Huazhong University of Science and Technology (Natural Science Edition), 2013, 41: 259-264.
[47] FANG Z R, HAN W L, LI Y J. Permission based Android security: issues and countermeasures[J]. Computers & Security, 2014, 43(6): 205-218.
[48] SCHLEGEL R, ZHANG K, ZHOU X, et al. Soundcomber: a stealthy and context-aware sound trojan for smartphones[C]//NDSS. San Diego, California, USA, c2011: 17-33.
[49] GARCE M, ZHOU Y, WANG Z, et al. Systematic detection of capability leaks in stock Android smartphones[C]//The 19th Network and Distributed System Security Symposium (NDSS 2012). San Diego, CA, c2012.
[50] ONGTANG M, MCLAUGHLIN S, ENCK W, et al. Semantically rich application-centric security in Android[C]//In ACSAC '09. Computer Security Applications Conference. Honolulu, HI, c2009:340-349.
[51] BUGIEL S, DAVI L, DMITRIENKO A, et al. XManDroid: a new Android evolution to mitigate privilege escalation attacks[R]. Technical Report TR-2011-04, Technische Universitat Darmstadt. Germany, c2011: 1-17.
[52] DIETZ M, SHEKHAR S, PISETSKY Y, et al. QUIRE: lightweight provenance for smart phone operating systems[C]//The 20th USENIX Conference on Security. USENIX Association Berkeley, CA, USA, c2011:23.
[53] LU L, LI Z C, WU Z Y, et al. CHEX: statically vetting android apps for component hijacking vulnerability[C]//ACM Conference on Computer and Communications Security. New York, USA, c2012: 229-240.
[54] ZHONG Y, XIN Z, MAO B, et al. DroidAlarm: an all-sided static analysis tool for android privilege-escalation malware[C]//The 8th ACM SIGSAC Symposium on Information, Computer and Communications Security. New York, USA, c2013:353-358.
[55] ENCK W, ONGTANG M, MCDANIEL P. On lightweight mobile phone application certification[C]//ACM Conference on Computer and Communications Security. Chicago, USA, c2009:235-245.
[56] NAUMAN M, KHAN S, ZHANG X. Apex: extending Android permission model and enforcement with user-defined runtime constraints[C]//The 5th ACM Symposium on Information, Computer and Communications Security. New York, USA, c2010: 328-332.
[57] FELT A, CHIN E, HANNA S, et al. Android permissions demystified[C]//The 18th ACM Conference on Computer and Communications Security. New York, USA, c2011:627-637.
[58] GENEIATAKIS D, FOVINO I N, KOUNELIS I, et al. A permission verification approach for android mobile applications[J]. Computers & Security, 2015, 49(3): 192-205.
[59] HOLAVANALLI S, MANUEL D, NANJUNDASWAMY V, et al. Flow permissions for Android[C]//2013 IEEE/ACM 28th International Conference on Automated Software Engineering (ASE). Silicon Valley, CA, c2013:652-657.
[60] BARRERA D, KAYACIK H G, OORSCHOT P C, et al. A methodology for empirical analysis of permission-based security models and its application to Android[C]//The 17th ACM Conference on Computer and Communications Security.New York, NY, USA, c2010:627-637.
[61] GRACE M, ZHOU Y J, ZHANG Q, et al. RiskRanker: scalable and accurate zero-day Android malware detection[C]//The 10th International Conference on Mobile Systems, Applications, and Services (MobiSys). ACM, Lake District, UK, c2012: 281-294.
[62] ZHENG M, SUN M, LUI J. Droid analytics: a signature based analytic system to collect, extract, analyze and associate Android malware[C]//The 12th IEEE International Conference on Trust Security and Privacy in Computing and Communications. c2013: 163-271.
[63] ENCK W, OCTEAU D, MCDANIEL P, et al. A study of Android application security[C]//The 20th USENIX Conference on Security. USENIX Association Berkeley, CA, USA, c2011:1175.
[64] FEIZOLLAH A, ANUAR N B, SALLEH R, et al. A review on feature selection in mobile malware detection review article[J]. Digital Investigation, 2015, 13(6): 22-37.
[65] SHABTAI A, FLEDEL Y, ELOVICI Y. Automated static code analysis for classifying Android applications using machine learning[C]//The 2010 International Conference on Computational Intelligence and Security(CIS). Nanning, China, c2010:329-333.
[66] SARMA B P, LI N, GATES C, et al. Android permissions: a perspective combining risks and benefits[C]//The 17th ACM Symposium on Access Control Models and Technologies. New York, USA, c2012:13-22.
[67] SATO R, CHIBA D, GOTO S. Detecting Android malware by analyzing manifest files[C]//The Asia-Pacific Advanced Network.Tokyo, c2013: 23-31.
[68] WU D J, MAO C H, WEI T E, et al. DroidMat: Android malware detection through manifest and API calls tracing[C]//Seventh Asia Joint Conference on Information Security (Asia JCIS). Tokyo, c2012:62-69.
[69] WEICHSELBAUM L, NEUGSCHWANDTNER M, LINDORFOR M,et al. Andrubis: Android malware under the magnifying glass[R]. Vienna University of Technology, 2014. TRI-SECLAB- 0414-001 .
[70] HOU Y, WANG Z, ZHOU W, et al. Hey, you, get off of my market: detecting malicious apps in official and alternative android markets[C]//The 19th Annual Network and Distributed System Security Symposium(NDSS). San Diego, c2012.
[71] AU K W Y, ZHOU Y F,HUAGN Z, et al. Pscout: analyzing the android permission specification[C]//The 2012 ACM Conference on Computer and Communications Security. New York, USA, c2012: 217-228.
[72] XU R, SAIDI H, ANDERSON R. Aurasium: practical policy enforcement for Android application[C]//The 21st USENIX Conference on Security Symposium. USENIX Association Berkeley, CA, USA, c2012:27.
[73] ZHANG M, DUAN Y, YIN H, et al. Semantics-aware Android malware classi?cation using weighted contextual API dependency graphs[C]//The 2014 ACM SIGSAC Conference on Computer and Communications Security. New York, USA, c2014:1105-1116.
[74] ARZT S, RASTHOFER S, FRITZ C, et al. FlowDroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for Android apps[C]//The 35th ACM SIGPLAN Conference on Programming Language Design and Implementation. c2014: 259-269.
[75] HU G, LI T, DONG H, et al. Malicious code detection for Android using instruction signatures[C]//IEEE 8th International Symposium on Service Oriented System Engineering. Oxford, c2014:332-337.
[76] SCHMIDT A D, BYE R, SCHMIDT H G, et al. Static analysis of executables for collaborative malware detection on Android[C]// IEEE International Conference on Communications. Dresden, c2009: 1-5.
[77] CEN L,GATES C, et al. A probabilistic discriminative model for Android malware detection with decompiled source code[C]//IEEE Transactions on Dependable and Secure Computing. c2013:1-14.
[78] ZHOU W, ZHOU Y, JIANG X, et al. Detecting repackaged smartphone applications in third-party android marketplaces[C]//The Second ACM Conference on Data and Application Security and Privacy. New York, USA, c2012: 317-326.
[79] CRUSSELL J, GIBLER C, CHEN H. Attack of the clones: detecting cloned applications on Android markets[C]//Proceedings of ESORICS. Berlin, Germany, c2012:37-54.
[80] HANNA S, HUANG L, WU E, et a1. Juxtapp: a scalable system for detecting code reuse among Android applications[C]//The 9th International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment. Berlin, Germany, c2013:62-81.
[81] LIN Y D, LAI Y C, CHEN C H, et al. Identifying Android malicious repackaged applications by thread-grained system call sequences[J]. Computers & Security, 2013, 39(12): 340-350.
[82] 文偉平, 梅瑞, 寧戈, 等. Android惡意軟件檢測技術(shù)分析和應(yīng)用研究[J]. 通信學(xué)報, 2014, 35(8): 79-85. WEN W P, MEI R, NING G, et al. Malware detection technology analysis and applied research of android platform[J]. Journal on Communications, 2014, 35(8): 79-85.
[83] BURGUERA I, ZURATUZA U, et al. Crowdroid: behavior-based malware detection system for Android[C]//The 1st ACM Workshop on Security and Privacy in Smartphones and Mobile Devices. New York, USA, c2011: 15-26.
[84] BLASING T, BATYUK L, SCHMIDT A D, et al. An Android application sandbox system for suspicious software detection[C]//5th International Conference on Malicious and Unwanted Software (MALWARE). Nancy, Lorraine, c2010: 55-62.
[85] ZHOU Y J, ZHANG X W,et al. Taming information-stealing smartphone applications(on Android)[C]//The 4th International Conference on Trust and Trustworthy Computing. Berlin, Germany, c2011:93-107.
[86] HORNYACK P, HAN S, JUNG J, et al. These aren’t the droids you’re looking for: retro?tting android to protect data from imperious applications[C]//The 18th ACM Conference on Computer and Communications Security. New York, USA, c2011: 639-652.
[87] GIBLER C,CRUSSELL J, ERICKSON J, et al.AndroidLeaks: automatically detecting potential privacy leaks in Android applications on a large scale[C]//The 5th International Conference on Trust and Trustworthy Computing. Berlin, Germany, c2012:291-307.
[88] SCHRECKLING D, POSEGGA J, et al. Kynoid: real-time enforcement of fine-grained, user-defined, and data-centric security policies for Android[C]//WISTP'12 The 6th IFIP WG 11.2 International Conference on Information Security Theory and Practice. Berlin, Germany, c2012:208-223.
[89] WANG Z H, MURMURIA R, STAVROU A. Implementing and optimizing an encryption filesystem on Android[C]//The 2012 IEEE 13th International Conference on Mobile Data Management. Washington, DC, USA, c2012: 52-62.
[90] TAN G W, OOI K B, CHONG S C, et al. NFC mobile credit card: the next frontier of mobile payment[J]. Telematics and Informatics, 2014, 31(2): 292-307.
[91] 王志強(qiáng), 劉奇旭, 張玉清. Android平臺NFC應(yīng)用漏洞挖掘技術(shù)研究[J]. 通信學(xué)報, 2014, 35(z2): 118-123. WANG Z Q, LIU Q X, ZHANG Y Q. Research of discovering vulnerabilities of NFC applications on Android platform[J]. Journal on Communications, 2014, 35(z2): 118-123.
Survey of security for Android smart terminal
XU Yan-ping1, MA Zhao-feng1, WANG Zhong-hua2, NIU Xin-xin1, YANG Yi-xian1
(1.Information Security Center, Beijing University of Posts and Telecommunications, Beijing 100876, China; 2. National Computer Network Emergency Response Technical Team/Coordination Center of China (CNCERT/CC), Beijing 100029, China)
Aiming at the security, the layered security system was constructed. Firstly, the devices safety protection based on remote anti-theft, biometric identity verification and hardware security module was expounded. Secondly, network security referring to the wireless security network, virus propagation killing and anti-phishing was illustrated. Thirdly, the OS safety was introduced from the perspective of system kernel, runtime environment and application framework. Fourthly, application security was showed containing the reverse engineering static analysis, behavior dynamic analysis, safety reinforcement and safety assessment. Fifthly, the privacy data protection was summarized including tracking, encryption and backup. Finally, the future development direction was prospected on the security framework and intelligent behavior analysis.
Android, device security, network security, system security, application security, data security
TP309
A
10.11959/j.issn.1000-436x.2016127
2015-10-19;
2016-02-19
國家自然科學(xué)基金資助項目(No.61272519);“十二五”國家科技支撐計劃基金資助項目(No.2012BAH23F00);國家科技支撐計劃基金資助項目(No.2012BAH45B00)
The National Natural Science Foundation of China (No.61272519 ), The Twelfth-five National Science and Technology Support Program (No.2012BAH23F00), The National Science and Technology Support Program (No.2012BAH45B00)
許艷萍(1986-),女,安徽亳州人,北京郵電大學(xué)博士生,主要研究方向為移動互聯(lián)網(wǎng)安全、Android智能終端應(yīng)用安全。
馬兆豐(1974-),男,甘肅鎮(zhèn)原人,博士,北京郵電大學(xué)講師,主要研究方向為移動互聯(lián)網(wǎng)安全技術(shù)、云計算安全技術(shù)、數(shù)字版權(quán)管理。
王中華(1986-),男,山東聊城人,國家計算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心工程師,主要研究方向為移動互聯(lián)網(wǎng)安全、網(wǎng)絡(luò)安全攻防演練。
鈕心忻(1963-),女,浙江湖州人,北京郵電大學(xué)教授、博士生導(dǎo)師,主要研究方向為數(shù)字水印、信息隱藏、隱寫分析。
楊義先(1961-),男,四川鹽廳人,北京郵電大學(xué)教授、博士生導(dǎo)師,主要研究方向為密碼學(xué)、計算機(jī)網(wǎng)絡(luò)與信息安全。