謝佳筠,伏 曉,駱 斌
(南京大學(xué) 軟件學(xué)院,南京 210093)
在移動(dòng)互聯(lián)網(wǎng)高速發(fā)展的今天,企業(yè)和個(gè)人正在將越來越多的計(jì)算通過移動(dòng)平臺(tái)來實(shí)現(xiàn),同時(shí)也將越來越多的數(shù)據(jù)存儲(chǔ)到移動(dòng)設(shè)備上。根據(jù)互聯(lián)網(wǎng)數(shù)據(jù)中心(IDC)2015年第二季度的報(bào)道,Android在移動(dòng)市場占有82.8%的市場占有率,擁有著絕對(duì)的領(lǐng)先地位。工信部2014年發(fā)布的《移動(dòng)互聯(lián)網(wǎng)白皮書》顯示,移動(dòng)互聯(lián)網(wǎng)催生了全新的應(yīng)用服務(wù)體系,在交通、餐飲、旅游、支付等領(lǐng)域已經(jīng)產(chǎn)生了深遠(yuǎn)影響,為用戶提供了便利。
但是,Android設(shè)備在提供便利的同時(shí),安全問題也日益凸顯。由于Android平臺(tái)開源的特性,針對(duì)Android平臺(tái)的攻擊屢見不鮮。根據(jù)McAfee報(bào)告顯示,從2014年第4季度-2015年第3季度短短兩年時(shí)間,惡意軟件的規(guī)模從300萬上升至接近1 000萬。除此之外,惡意軟件攻擊的范圍很廣,從硬件設(shè)備、內(nèi)核層、系統(tǒng)層到應(yīng)用層,每一層都可能成為惡意攻擊的目標(biāo)。Android平臺(tái)上的惡意攻擊呈現(xiàn)出數(shù)量巨大、范圍很廣和后果嚴(yán)重的特點(diǎn)。
為了保證Android平臺(tái)健康穩(wěn)定的發(fā)展,各個(gè)層面的安全問題必須得到有效的解決,這就催生了針對(duì)Android各個(gè)層面上的安全防護(hù)。安全防護(hù)的目的是在應(yīng)用安裝至移動(dòng)設(shè)備之前對(duì)其進(jìn)行全方位的安全性驗(yàn)證,最大程度上過濾掉惡意應(yīng)用;對(duì)于在安裝前不能夠過濾的惡意應(yīng)用,需要在應(yīng)用運(yùn)行的時(shí)刻實(shí)時(shí)進(jìn)行防護(hù),保證應(yīng)用不被利用從事惡意攻擊。學(xué)術(shù)界和工業(yè)界也一直致力于提出更安全的防護(hù)機(jī)制和框架來應(yīng)對(duì)惡意威脅。Android防護(hù)技術(shù)作為實(shí)現(xiàn)安全的重要手段,發(fā)展至今已經(jīng)存在很成熟的方案,但是仍然存在很多重要的問題有待解決。為此,本文整理近年來有關(guān)Android防護(hù)領(lǐng)域方面的文章,并加以綜述,希望通過總結(jié)歸納提供一個(gè)全面的認(rèn)識(shí),促進(jìn)該領(lǐng)域的更加深入的研究。
本文闡述Android安全問題的理論研究情況,包括可能存在的安全缺陷和面臨的威脅,介紹針對(duì)各個(gè)層面的Android防護(hù)技術(shù)的研究進(jìn)展,對(duì)Android安全防護(hù)領(lǐng)域現(xiàn)有的工作進(jìn)行分析比較和總結(jié)歸納,并指出Android防護(hù)領(lǐng)域的機(jī)遇與挑戰(zhàn)。
目前,Android安全問題得到學(xué)術(shù)界的廣泛關(guān)注,針對(duì)Android安全方面的研究文獻(xiàn)[1-3]對(duì)Android各個(gè)層面上的Android安全機(jī)制進(jìn)行歸納和總結(jié),總結(jié)了當(dāng)前研究領(lǐng)域的相關(guān)工作與發(fā)展的趨勢。針對(duì)Android中的安全缺陷進(jìn)行研究有助于更好的了解惡意攻擊實(shí)施的攻擊面,能夠更好地了解其所面臨的威脅。本文將對(duì)這些文章中所涉及的Android安全問題加以概括和總結(jié),歸納了目前Android的安全缺陷以及安全所面臨的威脅。
Android安全缺陷如下所示。
1)不同設(shè)備廠商的設(shè)備固件、操作系統(tǒng)和預(yù)裝的應(yīng)用都有可能被用來發(fā)動(dòng)攻擊。在全球存在多種不同的移動(dòng)設(shè)備供應(yīng)商,例如三星、華為、HTC和小米等。他們所使用的操作系統(tǒng)都是經(jīng)過深度定制的,擁有不一樣的安全特性。往往存在一些特定的安全漏洞,一旦被利用將會(huì)引發(fā)安全問題。
2)應(yīng)用開發(fā)者安全意識(shí)薄弱。即使專業(yè)的應(yīng)用開發(fā)者,也會(huì)不經(jīng)意地暴露一些接口。應(yīng)用開發(fā)者對(duì)于權(quán)限認(rèn)知不夠,經(jīng)常會(huì)不經(jīng)意地聲明無關(guān)的權(quán)限。某些應(yīng)用會(huì)暴露應(yīng)用內(nèi)部的接口,給惡意攻擊者提供了攻擊的途徑。
3)應(yīng)用市場魚龍混雜,不同應(yīng)用市場的審查機(jī)制不一。Google官方的應(yīng)用市場Google Play,用戶可以從上面下載應(yīng)用安裝至自己的移動(dòng)設(shè)備上。此外,其他應(yīng)用市場也提供類似功能,例如小米應(yīng)用商店、豌豆莢和91助手等。由于各個(gè)市場的安全審查機(jī)制不同,惡意應(yīng)用能夠在特定市場上傳播,嚴(yán)重危害了用戶的安全。
4)應(yīng)用安裝途徑多樣。一般而言,直接從應(yīng)用市場下載并安裝程序是最直接的方式。但是,也存在直接通過USB連接將Android應(yīng)用安裝到設(shè)備上,使用ADB的install命令可將應(yīng)用安裝至目標(biāo)設(shè)備上。由于無法驗(yàn)證應(yīng)用程序是否存在惡意行為,通過ADB安裝是十分危險(xiǎn)的。
5)Android權(quán)限模型粒度較粗。用戶需要在安裝應(yīng)用的時(shí)候?qū)?yīng)用的權(quán)限進(jìn)行授權(quán),但是用戶并不能夠準(zhǔn)確的知道權(quán)限被用在了哪些地方。不僅如此,權(quán)限較粗的粒度也會(huì)帶來相應(yīng)的安全性風(fēng)險(xiǎn)。盡管在Android 6.0中提出運(yùn)行時(shí)權(quán)限的概念,但是這個(gè)權(quán)限缺陷對(duì)于6.0之前的Android設(shè)備仍然存在。
6)相較于Windows和Unix的可執(zhí)行文件,Android應(yīng)用很容易反編譯。經(jīng)過反編譯之后的代碼往往是脆弱的,非常容易添加新的代碼,重新打包成一個(gè)新的應(yīng)用。很大一部分惡意軟件是通過重新打包來實(shí)現(xiàn)的[4]。
7)Android組件間通信。應(yīng)用間通信方式存在安全隱患,容易發(fā)生多個(gè)應(yīng)用之間合謀的情況。多個(gè)應(yīng)用合謀通道存在多樣性,包括顯示通道和隱蔽通道,對(duì)于隱蔽通道的監(jiān)控與防范仍然不完善。
8)Android設(shè)備包含很多可以唯一確定該設(shè)備的信息,包括IMEI、設(shè)備序列號(hào)等。如果這些信息泄露了出去,那么很容易就能對(duì)該設(shè)備進(jìn)行跟蹤定位。
9)Linux內(nèi)核層漏洞也會(huì)成為攻擊者攻擊的對(duì)象。Android設(shè)備使用Linux內(nèi)核進(jìn)行實(shí)現(xiàn),既繼承了Linux十分可靠的安全隔離機(jī)制,同時(shí)也帶來了Linux內(nèi)核方面的漏洞。
現(xiàn)有的主要威脅來源于Android各層次的安全缺陷。攻擊者可以通過挖掘平臺(tái)的漏洞,竊取敏感用戶信息,利用電話服務(wù)來獲取金錢利益,或者創(chuàng)造僵尸網(wǎng)絡(luò)來獲取智能手機(jī)的控制權(quán)。其可以使用竊取、動(dòng)態(tài)執(zhí)行、代碼混淆,重新打包和加密等技術(shù),去繞過現(xiàn)有的Android平臺(tái)和反病毒軟件提供的安全檢測。本節(jié)對(duì)Android面臨的主要威脅進(jìn)行了歸納。
1)重新打包攻擊。惡意作者可以對(duì)原始應(yīng)用進(jìn)行反編譯,加入惡意負(fù)載,重新打包成一個(gè)新的應(yīng)用。新的應(yīng)用往往偽裝成原始應(yīng)用,在提供一些基礎(chǔ)功能的同時(shí)執(zhí)行惡意攻擊。
2)越權(quán)攻擊。沒有權(quán)限的應(yīng)用,通過其他具備權(quán)限的應(yīng)用或者設(shè)置功能,可以獲取需要權(quán)限才能夠訪問到的資源,執(zhí)行相應(yīng)的操作。這類攻擊可以發(fā)生在應(yīng)用內(nèi)部,例如獲得root權(quán)限;可以發(fā)生在應(yīng)用之間,執(zhí)行越權(quán)行為;也可以發(fā)生在不同的操作系統(tǒng)版本升級(jí)的時(shí)候。
3)隱私泄露和個(gè)人信息竊取。移動(dòng)設(shè)備包括很多隱私數(shù)據(jù),例如移動(dòng)設(shè)備號(hào)碼、聯(lián)系人信息和地理位置等信息。惡相同意應(yīng)用通過短信、互聯(lián)網(wǎng)等通信方式,可以將敏感信息傳送出去。
4)合謀攻擊。在同一個(gè)設(shè)備上,擁有的證書簽名的應(yīng)用集合可以相互合作。他們擁有相同的UID,能夠互相共享彼此的權(quán)限。單個(gè)應(yīng)用運(yùn)行的時(shí)候表現(xiàn)的十分正常,但是當(dāng)多個(gè)應(yīng)用并存的時(shí)候,它們可以一起合作完成攻擊。
5)拒絕服務(wù)攻擊。此類攻擊可以發(fā)生在移動(dòng)設(shè)備資源耗盡的時(shí)候,移動(dòng)設(shè)備的資源一般包含CPU計(jì)算資源、內(nèi)存資源、電池資源、寬帶資源等,而這些資源一旦耗盡,移動(dòng)設(shè)備將不能夠正常提供服務(wù)。
6)遠(yuǎn)程控制。惡意應(yīng)用通過遠(yuǎn)程命令控制整個(gè)設(shè)備,執(zhí)行惡意操作。能夠監(jiān)控用戶的操作,包括電話、短信、銀行和音頻和視頻等。
針對(duì)Android平臺(tái)的弱點(diǎn)和可能存在的威脅,不少研究者提出了他們的安全防護(hù)措施。本節(jié)首先介紹Android各個(gè)版本的安全增強(qiáng)機(jī)制。隨后從一個(gè)Android應(yīng)用程序的開發(fā)、發(fā)布、安裝、運(yùn)行和更新5個(gè)步驟出發(fā),列出在各個(gè)階段已有的防護(hù)策略。
為了應(yīng)對(duì)來自各方面的威脅,Android對(duì)其自身的操作系統(tǒng)也在不斷地改良和完善。本節(jié)總結(jié)了Android各個(gè)版本的改進(jìn)內(nèi)容。
Android尋求為移動(dòng)平臺(tái)提供一個(gè)安全可用的操作系統(tǒng),用來保護(hù)用戶的數(shù)據(jù),保護(hù)系統(tǒng)的資源和提供應(yīng)用隔離。為了實(shí)現(xiàn)這些目標(biāo),Android提供了以下的安全特性:Linux內(nèi)核層的魯棒性,強(qiáng)制為所有應(yīng)用提供應(yīng)用沙箱,保護(hù)進(jìn)程間通信,應(yīng)用簽名,應(yīng)用定義權(quán)限,并由用戶授權(quán)。Android各個(gè)版本分別對(duì)平臺(tái)進(jìn)行了各方面的安全增強(qiáng)。
Android1.5中提出了防止堆緩沖區(qū)溢出的安全增強(qiáng)。Android2.3提出了格式化字符串的防范,提出了基于硬件不執(zhí)行來防止堆棧代碼執(zhí)行。Android4.0提出內(nèi)存地址空間布局隨機(jī)化(ASLR)的功能來防止對(duì)內(nèi)存的攻擊。Android4.2修改了權(quán)限描述。Android4.3增強(qiáng)了SELinux,取消了setuid和setgid函數(shù)。Android5.0將WebView設(shè)置為獨(dú)立模塊,更改了加密機(jī)制,防止在丟失設(shè)備情況下的數(shù)據(jù)丟失。在Android6.0中,提出了運(yùn)行時(shí)權(quán)限的問題。不同于在安裝的時(shí)候提供粗粒度的授權(quán)機(jī)制,用戶可以在運(yùn)行時(shí)動(dòng)態(tài)設(shè)置權(quán)限。
由于Android應(yīng)用可以被反編譯,所以很容易被惡意作者篡改并加入惡意代碼。從開發(fā)者的角度來看,在開發(fā)階段對(duì)應(yīng)用進(jìn)行加固能夠有效防止惡意操作。
重新打包成為各類惡意攻擊的主要形式,文獻(xiàn)[4]指出,在其收集的1 260個(gè)惡意程序中,通過重新打包生成的比例是86%。為了防止重新打包,文獻(xiàn)[5]提出了一種基于路徑的水印模式,它以應(yīng)用程序代碼和一組隨機(jī)的字符串或者數(shù)字作為輸入,生成一款全新的內(nèi)嵌水印的應(yīng)用。在之后的運(yùn)行中它可以對(duì)掛鉤的代碼進(jìn)行驗(yàn)證,同時(shí)恢復(fù)之前的水印,對(duì)開發(fā)者的代碼做防護(hù)。
在應(yīng)用程序中,針對(duì)可能存在的安全漏洞打補(bǔ)丁也是一種方法。例如,組件劫持漏洞將會(huì)暴露應(yīng)用中的公開接口,方便惡意程序調(diào)用。為了應(yīng)對(duì)此類漏洞,文獻(xiàn)[6]事先對(duì)應(yīng)用進(jìn)行分析,在每個(gè)應(yīng)用上面的沉淀點(diǎn)添加防護(hù)策略,提供更加全面的、以數(shù)據(jù)為中心的系統(tǒng)級(jí)防護(hù),構(gòu)建更加安全的應(yīng)用。文章中提出的Droidforce工具基于時(shí)間序列,能夠在運(yùn)行過程中動(dòng)態(tài)更新,方便提供精細(xì)化的策略。
應(yīng)用開發(fā)者完成應(yīng)用,需要將應(yīng)用發(fā)布到應(yīng)用市場。應(yīng)用市場作為連接用戶手機(jī)和應(yīng)用的平臺(tái),在Android安全中有著舉足輕重的地位。2011年Google官方的Android市場上DroidDream惡意應(yīng)用肆虐,大量手機(jī)被感染。為了防止惡意軟件大范圍傳播,Google推出了一款叫做Bouncer的應(yīng)用審查工具,用來對(duì)應(yīng)用進(jìn)行審查和分析。它將應(yīng)用安裝至模擬的環(huán)境中動(dòng)態(tài)的運(yùn)行,分析出其中可能存在的問題。即便如此,一些惡意軟件依然能夠繞過該檢測機(jī)制,成功地發(fā)布到應(yīng)用市場中,所以在應(yīng)用市場中實(shí)現(xiàn)更加安全的防護(hù)機(jī)制是十分必要的。值得注意的是,目前相互獨(dú)立的Android應(yīng)用市場很多,它們各自的審查機(jī)制又存在很大的差別,所以攻擊者更容易挖掘特定應(yīng)用市場的漏洞并傳播惡意應(yīng)用。
在應(yīng)用市場進(jìn)行審查,能夠有效過濾出惡意應(yīng)用,在源頭上減少惡意應(yīng)用的數(shù)量。應(yīng)用市場可以利用其豐富的計(jì)算資源,對(duì)應(yīng)用進(jìn)行更加全面的安全分析。在應(yīng)用市場中可以針對(duì)性地對(duì)應(yīng)用進(jìn)行漏洞挖掘、權(quán)限映射分析、數(shù)據(jù)流分析、組件間通信分析和重新打包的檢測。
2.3.1 相似度計(jì)算
針對(duì)應(yīng)用市場上良莠不齊的應(yīng)用,查找重新打包應(yīng)用具有十分重要的意義。在檢測重新打包的應(yīng)用的方法中,計(jì)算相似度成為經(jīng)常使用的方法。相似度計(jì)算往往需要定義不同的特征,通過匹配這些特征的相似度來進(jìn)行檢測。文獻(xiàn)[7]使用了基于模糊哈希的方法,對(duì)應(yīng)用市場內(nèi)的所有應(yīng)用,通過應(yīng)用程序的操作碼生成應(yīng)用程序的指紋。對(duì)比兩個(gè)應(yīng)用的指紋距離,判斷2個(gè)應(yīng)用是否存在重新打包的可能性,進(jìn)而識(shí)別重新打包的應(yīng)用。文獻(xiàn)[8]通過比較兩個(gè)不同應(yīng)用的程序依賴圖來判定是否存在重新打包的操作。利用WALA工具可以生成一個(gè)應(yīng)用的程序依賴圖,每個(gè)點(diǎn)代表一個(gè)語句,每條邊代表兩條語句之間的關(guān)系。在獲取兩個(gè)應(yīng)用的程序依賴圖后,構(gòu)造出其子圖,進(jìn)而計(jì)算出其相似度。
2.3.2 權(quán)限映射計(jì)算
Android通過權(quán)限來限制應(yīng)用對(duì)敏感資源的訪問和操作。Android應(yīng)用權(quán)限和API調(diào)用存在著映射關(guān)系,這些映射關(guān)系能夠?yàn)檫M(jìn)一步的安全分析提供基礎(chǔ)。
文獻(xiàn)[9]用來研究一個(gè)應(yīng)用是否滿足其所聲明的最小使用權(quán)限,確定一個(gè)應(yīng)用程序使用到了哪些權(quán)限。本文提出的Stowaway通過結(jié)合基于模糊測試、生成專用的測試用例和手動(dòng)驗(yàn)證的技術(shù),經(jīng)驗(yàn)性地得出權(quán)限和API之間的映射關(guān)系。由于Stowaway所提出的方法需要耗費(fèi)大量的人工進(jìn)行手動(dòng)驗(yàn)證,導(dǎo)致了其無法應(yīng)對(duì)Android多個(gè)版本變更的現(xiàn)實(shí)。文獻(xiàn)[10]提出了一種自動(dòng)化的工具,對(duì)Android各個(gè)版本源碼進(jìn)行分析,進(jìn)而得到更加全面的映射關(guān)系。在Android2.2中,PScout分析出了17 218個(gè)映射關(guān)系,而Stowaway僅僅分析出1 259個(gè)。
2.3.3 數(shù)據(jù)流分析
通過對(duì)應(yīng)用進(jìn)行數(shù)據(jù)流分析,可以很好地知道一些敏感數(shù)據(jù)的流向,進(jìn)而有效地防范出可能存在的信息泄漏問題。文獻(xiàn)[11]考慮到了與回調(diào)函數(shù)相關(guān)的控制流不連續(xù)的情況,從而判斷應(yīng)用能否通過公共接口訪問到危險(xiǎn)權(quán)限,用來判定應(yīng)用是否存在能力泄露漏洞。文獻(xiàn)[12]提出一款靜態(tài)分析工具,用來分析組件劫持漏洞。它使用數(shù)據(jù)依賴圖來進(jìn)行可達(dá)性分析,進(jìn)而識(shí)別出未授權(quán)的應(yīng)用對(duì)被攻擊的應(yīng)用進(jìn)行的惡意操作,如讀取敏感數(shù)據(jù)操作或者將數(shù)據(jù)寫入敏感位置的操作。文獻(xiàn)[13]對(duì)一個(gè)應(yīng)用進(jìn)行兩步分析,首先發(fā)現(xiàn)調(diào)用root、非法花銷和隱私泄露的路徑,然后對(duì)應(yīng)用進(jìn)行啟發(fā)式搜索來發(fā)現(xiàn)可能的惡意行為。
Android應(yīng)用包含了生命周期回調(diào)函數(shù)。對(duì)于數(shù)據(jù)生命周期的分析能夠更準(zhǔn)確的發(fā)現(xiàn)數(shù)據(jù)的流向。文獻(xiàn)[14]提出的FlowDroid就是一款包含了流、上下文、對(duì)象和域等特性的靜態(tài)分析工具。FlowDroid定義數(shù)據(jù)流源頭和數(shù)據(jù)流沉淀點(diǎn),使用向前分析和向后分析技術(shù),分析出從數(shù)據(jù)流源頭到數(shù)據(jù)流沉淀點(diǎn)的路徑,用于識(shí)別敏感信息的泄露。
并不是所有發(fā)送敏感信息的行為都可以稱為隱私泄露,只有用戶不知情的情況下才屬于隱私泄露。文獻(xiàn)[15]提出AppIntent,將信息傳輸分為在用戶知情的和用戶不知情的,用來提取出用戶不知情的數(shù)據(jù)傳輸。它采用符號(hào)執(zhí)行的方法,計(jì)算出一系列會(huì)導(dǎo)致數(shù)據(jù)傳輸?shù)慕缑娼换ズ蛿?shù)據(jù)輸入行為。在符號(hào)執(zhí)行的過程中,AppIntent為了避免路徑爆炸的問題,采用靜態(tài)分析方法生成事件空間約束圖。事件空間約束圖包含了所有能夠產(chǎn)生數(shù)據(jù)傳輸?shù)慕缑娼换ァ⑸芷诨卣{(diào)方法和系統(tǒng)事件。結(jié)合生成的時(shí)間和數(shù)據(jù),事件空間約束圖可以確定數(shù)據(jù)傳輸是否是用戶知情的。
2.3.4 組件間通信分析
在Android安全中,需要對(duì)應(yīng)用內(nèi)部和應(yīng)用間的通信通道進(jìn)行防護(hù)。組件間通信作為應(yīng)用內(nèi)部和應(yīng)用之間相互通信的主要方式,被大量研究者進(jìn)行研究和分析。
文獻(xiàn)[16]主要用來檢測應(yīng)用之間通信是否存在相應(yīng)的漏洞,并提出了ComDroid工具,采用靜態(tài)分析的方法來對(duì)應(yīng)用進(jìn)行分析檢測。首先將不同的權(quán)限映射到不同的危險(xiǎn)等級(jí),隨后分析反編譯出來的文件,追蹤其中的Intents、IntentFilters、寄存器、污點(diǎn)槽和組件,最后通過檢測Manifest文件和反編譯得到的源代碼文件來得到組件的相關(guān)信息,判斷一個(gè)組件是否是具有風(fēng)險(xiǎn)的。
對(duì)于組件間通信,首先需要找到所有存在的組件,并將其關(guān)聯(lián)起來。文獻(xiàn)[17]開發(fā)出了一款工具Epicc,將組件間通信的分析轉(zhuǎn)換為IDE的問題。它將所有的應(yīng)用間通信組件連接在一起,利用Soot解決IDE問題。實(shí)驗(yàn)表明,Epicc相較于ComDroid而言擁有更少的誤報(bào)率。然而,Epicc也存在不足之處,它僅做了簡單的字符串分析并且對(duì)Content Provider缺乏相應(yīng)的分析。僅僅分析組件間的關(guān)聯(lián)并不能夠準(zhǔn)確地對(duì)應(yīng)用內(nèi)部和應(yīng)用間通信進(jìn)行區(qū)別。
文獻(xiàn)[18]提出了基于組件間通信的污點(diǎn)分析的工具ICCTA,主要用來分析不同組件和不同應(yīng)用之間的隱私泄露問題。它利用ApkCombiner將2個(gè)應(yīng)用合稱為一個(gè)應(yīng)用,進(jìn)而將應(yīng)用間通信的分析轉(zhuǎn)換為應(yīng)用內(nèi)通信分析。文獻(xiàn)[19]對(duì)整個(gè)應(yīng)用進(jìn)行數(shù)據(jù)流分析,得到組件間通信的數(shù)據(jù)流圖。在數(shù)據(jù)流圖的基礎(chǔ)上,針對(duì)顯示的信息流,構(gòu)造出數(shù)據(jù)依賴圖。使用生成的數(shù)據(jù)流圖和數(shù)據(jù)依賴圖進(jìn)行安全分析,檢測應(yīng)用中是否存在數(shù)據(jù)泄露、數(shù)據(jù)注入或者API濫用的情況。
特色是旅游解說系統(tǒng)構(gòu)建的關(guān)鍵。特色的旅游解說系統(tǒng)不僅能夠發(fā)揮保護(hù)水資源,維護(hù)水生態(tài)的作用,還能夠吸引游客。歷史和大自然恩賜了蕉城區(qū)豐富而寶貴的旅游資源,特別是水利風(fēng)景資源更是得天獨(dú)厚,霍童洞天、菩薩道場、瀛洲擊水、國師故里、軍地文化……,美麗的濱水資源孕育了這些豐富分旅游資源。在旅游解說系統(tǒng)自導(dǎo)式解說的設(shè)計(jì)上,可以添加特色資源優(yōu)勢,例如在導(dǎo)引牌,指示牌的設(shè)計(jì)上能夠添加特色資源元素。
一個(gè)應(yīng)用可以通過多種方式安裝到Android設(shè)備上,例如從應(yīng)用市場下載或者直接通過USB連接安裝。針對(duì)USB安裝的情況,Android4.3提出了ADB驗(yàn)證的功能,對(duì)于沒有經(jīng)過RSA密鑰對(duì)驗(yàn)證的應(yīng)用程序?qū)⒉荒馨惭b在設(shè)備上。
通過對(duì)安裝時(shí)候的檢查,判斷其是否滿足設(shè)備上的安全策略,進(jìn)而對(duì)其進(jìn)行防護(hù)。文獻(xiàn)[20]在安裝應(yīng)用的時(shí)候?qū)崿F(xiàn)了一組基于權(quán)限的策略,通過特定的權(quán)限組合定義應(yīng)用的安全規(guī)則。如果應(yīng)用不符合相應(yīng)的安全規(guī)則,將會(huì)提醒用戶是否需要拒絕安裝。
在安裝應(yīng)用的時(shí)候通常提供兩種信息,一種是權(quán)限信息,另一種是文字信息。為了使終端用戶能夠意識(shí)到安全威脅,現(xiàn)在的這種描述還存在很大的不足。文獻(xiàn)[21]開發(fā)了DescribeMe。該工具通過使用自然語言處理技術(shù)生成應(yīng)用描述,從用戶的角度來幫助用戶判別應(yīng)用是否存在惡意。它的做法是首先從應(yīng)用中提取所有的行為圖,對(duì)其進(jìn)行子圖挖掘和壓縮,最終形成用戶可以理解的基于安全的描述,從而更好地在安裝階段進(jìn)行防護(hù)。
雖然前幾個(gè)步驟的防護(hù)能夠有效過濾惡意應(yīng)用,但是對(duì)于一些運(yùn)行時(shí)才能觸發(fā)的惡意行為缺乏有效監(jiān)控??紤]到前幾個(gè)步驟的防護(hù)策略存在的不足之處,對(duì)運(yùn)行時(shí)態(tài)的應(yīng)用進(jìn)行持續(xù)性的監(jiān)控,捕獲運(yùn)行操作是十分必要的。運(yùn)行時(shí)防護(hù)主要包含訪問控制、安全策略、污點(diǎn)分析、權(quán)限監(jiān)控和沙盒控制等多個(gè)防護(hù)方案。
2.5.1 訪問控制
SEAndroid是一款安全增強(qiáng)版本的Android系統(tǒng),采用MAC機(jī)制,將SELinux應(yīng)用到Android系統(tǒng)中。SEAndroid分別實(shí)現(xiàn)了系統(tǒng)核心層面的支持、用戶空間層面的支持以及策略配置。SEAndroid推出時(shí)間不長,沒有得到太多的關(guān)注,還需要進(jìn)一步的完善。
文獻(xiàn)[22]利用了機(jī)器學(xué)習(xí)的方法來分析審查日志,捕獲審查日志中包含的良性或者惡意接口,從而提供更好的SELinux策略。
2.5.2 安全策略
文獻(xiàn)[23]繼承了Android的監(jiān)控機(jī)制,并對(duì)其進(jìn)行了擴(kuò)展。它基于以系統(tǒng)為中心的策略,在運(yùn)行時(shí)檢測和阻止應(yīng)用程序?qū)哟蔚臋?quán)限提升攻擊。同時(shí)添加了與組件間通信相關(guān)的機(jī)制來防止勾結(jié)攻擊。在SEAndroid和文獻(xiàn)[23]的基礎(chǔ)上,文獻(xiàn)[24]提出了一個(gè)基于內(nèi)核層和中間件層MAC架構(gòu)的FlaskDroid,從而提供細(xì)粒度的策略控制。
文獻(xiàn)[25]在Android上提出了分級(jí)的策略,將應(yīng)用分為3種:系統(tǒng)的,可信的和不可信的。在這個(gè)框架下面,可信的應(yīng)用和不可信的應(yīng)用之間是不能夠相互通信的。通過分級(jí)的方式來限制不可信應(yīng)用的功能,進(jìn)而提供更加安全的運(yùn)行環(huán)境。
當(dāng)前移動(dòng)設(shè)備的操作系統(tǒng)并沒有一個(gè)合適的保護(hù)機(jī)制來控制應(yīng)用之間、應(yīng)用和網(wǎng)絡(luò)之間的相互交流時(shí),跨源攻擊便很容易出現(xiàn)。文獻(xiàn)[26]針對(duì)Android跨源攻擊在操作系統(tǒng)的層面上進(jìn)行了更改。類似于傳統(tǒng)的Web程序保護(hù)機(jī)制,它為應(yīng)用提供針對(duì)跨源攻擊的保護(hù)。首先告訴開發(fā)者他們所接收信息的真正源頭,讓開發(fā)者可以根據(jù)這些信息進(jìn)行相應(yīng)的保護(hù)工作。隨后提供一個(gè)白名單給開發(fā)者,記錄他們可以發(fā)送或接收信息的源的信息,并且在操作系統(tǒng)中透明且強(qiáng)制地執(zhí)行策略。這2個(gè)步驟可以有效地對(duì)源頭進(jìn)行保護(hù)。
2.5.3 污點(diǎn)跟蹤
文獻(xiàn)[27]通過構(gòu)建一款高效的動(dòng)態(tài)污點(diǎn)跟蹤和分析系統(tǒng)TaintDroid來對(duì)敏感數(shù)據(jù)進(jìn)行監(jiān)控,從而識(shí)別敏感數(shù)據(jù)和隱私數(shù)據(jù)的使用方式。通過利用變量級(jí)別、消息級(jí)別、方法級(jí)別和文件級(jí)別這4個(gè)粒度的污點(diǎn)傳播,Android用戶可以方便地了解應(yīng)用程序如何使用它們的隱私數(shù)據(jù)。后續(xù)的一些動(dòng)態(tài)污點(diǎn)分析工具也都使用了TaintDroid作為基礎(chǔ)進(jìn)行相應(yīng)的分析,并做了一些加強(qiáng)。
2.5.4 權(quán)限監(jiān)控
困惑代理攻擊是越權(quán)攻擊的一種,在各個(gè)版本的Android系統(tǒng)中都較為常見。文獻(xiàn)[28]在中間層提出了一種權(quán)限裁剪的思路。對(duì)于被調(diào)用者,將其運(yùn)行時(shí)程序權(quán)限裁剪至其與調(diào)用者權(quán)限的交集,從而有效防范越權(quán)攻擊。
文獻(xiàn)[29]對(duì)設(shè)備上的進(jìn)程間通信進(jìn)行跟蹤,并記錄其調(diào)用鏈。它允許被調(diào)用的進(jìn)程縮減調(diào)用者權(quán)限。同時(shí),它提出了一種輕量級(jí)的簽名機(jī)制,允許運(yùn)行在同一設(shè)備上的各個(gè)應(yīng)用進(jìn)行驗(yàn)證。這些特性使得它可以被用來防范困惑代理攻擊。
文獻(xiàn)[30]提出了VetDroid來對(duì)一個(gè)應(yīng)用的權(quán)限使用和敏感資源訪問進(jìn)行分析。VetDroid會(huì)自動(dòng)在沙盒中執(zhí)行應(yīng)用,通過權(quán)限使用分析模塊識(shí)別出所有的權(quán)限使用點(diǎn)和它們的關(guān)系,并記錄到日志文件中。然后根據(jù)得到的日志文件,自動(dòng)生成行為報(bào)告。
2.5.5 沙盒控制
文獻(xiàn)[31]提出的Aurasium對(duì)應(yīng)用進(jìn)行重新打包,提供了用戶級(jí)沙盒,進(jìn)而對(duì)底層的系統(tǒng)調(diào)用進(jìn)行監(jiān)控。它可以對(duì)底層的關(guān)鍵系統(tǒng)調(diào)用進(jìn)行攔截,判斷其具體行為,并向用戶給出安全建議。
文獻(xiàn)[32]提出了一款自動(dòng)化代碼重寫的應(yīng)用,能夠?qū)ava方法層面的調(diào)用進(jìn)行監(jiān)控。它主要對(duì)虛擬機(jī)的虛擬方法表進(jìn)行重寫,進(jìn)而能夠控制所有的方法。
文獻(xiàn)[33]提供了一種安全沙盒用于讀取和運(yùn)行不受信任的應(yīng)用。不受信任的軟件運(yùn)行在Boxify虛擬運(yùn)行環(huán)境,不會(huì)對(duì)系統(tǒng)和用戶造成危害。該沙盒的實(shí)現(xiàn)主要利用了android中獨(dú)立進(jìn)程的特性,不用對(duì)OS級(jí)別或者應(yīng)用級(jí)別的代碼進(jìn)行重寫和設(shè)計(jì),也不需要root權(quán)限,提供了對(duì)不受信的程序的隔離運(yùn)行。
更新階段可以分為2種,一種是應(yīng)用更新,另一種是操作系統(tǒng)更新。應(yīng)用更新的時(shí)候主要還是需要應(yīng)用市場對(duì)其進(jìn)行甄別和篩選。操作系統(tǒng)更新的時(shí)候,需要對(duì)所有的應(yīng)用進(jìn)行校驗(yàn),判斷其是否滿足新的操作系統(tǒng)的安全策略。應(yīng)用更新的時(shí)候,需要判斷該應(yīng)用是否修改了安全策略。
文獻(xiàn)[34]針對(duì)操作系統(tǒng)更新時(shí)可能產(chǎn)生的越權(quán)攻擊進(jìn)行了闡述和防護(hù)。這類攻擊發(fā)生的主要原因是在低版本系統(tǒng)中的應(yīng)用聲明了高版本系統(tǒng)新增的權(quán)限,一旦更新至高版本,應(yīng)用的權(quán)限就會(huì)提升,用來進(jìn)行攻擊。
在Android安全防護(hù)領(lǐng)域已經(jīng)出現(xiàn)了許多十分有價(jià)值的安全防護(hù)方案。但是,可以想象的是,未來出現(xiàn)的惡意應(yīng)用的數(shù)量會(huì)越來越多,惡意應(yīng)用種類和攻擊方式也會(huì)越來越多、越來越有針對(duì)性。Android安全防護(hù)的工作將會(huì)變得更加艱巨,需要更深入的研究。
在現(xiàn)有的移動(dòng)平臺(tái)的安全防護(hù)領(lǐng)域中,學(xué)術(shù)界和工業(yè)界已經(jīng)出現(xiàn)了許多有價(jià)值的工作。其中,防護(hù)的層面涉及到Android應(yīng)用發(fā)布的各個(gè)環(huán)節(jié),包括Android自身系統(tǒng)的增強(qiáng)、開發(fā)時(shí)的防護(hù)、應(yīng)用市場的分析與防護(hù)、安裝應(yīng)用時(shí)候的防護(hù)、運(yùn)行應(yīng)用防護(hù)和更新時(shí)的防護(hù)。當(dāng)前研究重點(diǎn)集中在應(yīng)用市場階段和運(yùn)行階段,如果能夠在這2個(gè)階段進(jìn)行有效分析監(jiān)控,將對(duì)Android防護(hù)起到至關(guān)重要的作用。本文的概述章節(jié)總結(jié)了Android防護(hù)需要面對(duì)的問題和各類惡意威脅,本節(jié)將分析現(xiàn)有的應(yīng)用市場階段和運(yùn)行階段的技術(shù)應(yīng)對(duì)這些挑戰(zhàn)所取得的進(jìn)展。
3.1.1 應(yīng)用市場分析階段
在應(yīng)用市場階段,由于具備了大量的計(jì)算能力,所以可以對(duì)應(yīng)用進(jìn)行深入的分析。在此階段借助相似度匹配技術(shù)、權(quán)限映射技術(shù)、數(shù)據(jù)流分析技術(shù)和組件間通信技術(shù)等技術(shù),對(duì)應(yīng)用進(jìn)行全面的分析。
表1展示了在應(yīng)用部署的各個(gè)階段的使用技術(shù)和Android面臨威脅的映射關(guān)系,其中×為不能解決,-為部分解決,√為完全解決。
表1 現(xiàn)有Android應(yīng)用市場防護(hù)技術(shù)解決面臨威脅的情況
相似度計(jì)算技術(shù)可以有效針對(duì)重新打包問題進(jìn)行解決。計(jì)算應(yīng)用的相似度主要通過提取應(yīng)用的一些特征,對(duì)這些特征進(jìn)行抽象化,通過抽象出來的模型計(jì)算其相似度。應(yīng)用的一些特征主要包含其應(yīng)用簽名文件、應(yīng)用配置文件、應(yīng)用資源文件和應(yīng)用代碼,這些都可以用來進(jìn)行相似度分析。相似度高的代表2個(gè)應(yīng)用存在大量的類似的實(shí)現(xiàn),兩個(gè)應(yīng)用存在重新打包的關(guān)系。由于需要計(jì)算兩個(gè)應(yīng)用的相似度,只需對(duì)2個(gè)應(yīng)用的某些關(guān)鍵特征進(jìn)行分析就行,所以開銷較小。
由于Android操作系統(tǒng)實(shí)現(xiàn)的API調(diào)用較多,其官方文檔都有可能存在遺漏。同時(shí),應(yīng)用開發(fā)者對(duì)各類API調(diào)用所對(duì)應(yīng)的權(quán)限也存在一定的誤區(qū),這就導(dǎo)致經(jīng)常會(huì)發(fā)生濫用權(quán)限的問題。針對(duì)這些問題,提供一個(gè)權(quán)限-API調(diào)用映射關(guān)系就十分有必要了。通過精確地分析應(yīng)用代碼里的API調(diào)用,就可以獲取其實(shí)際使用的權(quán)限,為有效防范越權(quán)攻擊提供了基礎(chǔ)的支持。由于權(quán)限映射計(jì)算需要對(duì)Android整個(gè)系統(tǒng)的源碼進(jìn)行分析,因此其所消耗的代價(jià)較大。
數(shù)據(jù)流分析技術(shù)主要通過構(gòu)造出應(yīng)用內(nèi)部的一些數(shù)據(jù)流向路徑,對(duì)應(yīng)用的敏感信息的流向進(jìn)行分析。在數(shù)據(jù)流分析中使用較為頻繁的就是構(gòu)造數(shù)據(jù)流圖和使用靜態(tài)污點(diǎn)分析的技術(shù)進(jìn)行分析。由于這類技術(shù)能夠有效跟蹤細(xì)粒度的數(shù)據(jù)流向,因此能夠很好地解決隱私泄露問題。由于在分析的過程中需要將應(yīng)用構(gòu)造成抽象的數(shù)據(jù)結(jié)構(gòu),然后再根據(jù)所形成的數(shù)據(jù)結(jié)構(gòu)進(jìn)行進(jìn)一步分析,因此其所消耗的代價(jià)中等。對(duì)于數(shù)據(jù)流分析,現(xiàn)有的較多的技術(shù)存在路徑爆炸、誤報(bào)率較高等缺點(diǎn),所以,需要今后更加全面的研究,努力減少這些問題所帶來的影響。
組件間通信技術(shù)主要針對(duì)組件間通信的數(shù)據(jù)流進(jìn)行有效分析,能夠較為有效地應(yīng)對(duì)越權(quán)攻擊、隱私泄露,針對(duì)合謀攻擊的話,其能夠有效地針對(duì)基于組件間通信的合謀攻擊,但是針對(duì)于系統(tǒng)層級(jí)的攻擊并不能有效甄別。現(xiàn)有的大部份組件間通信使用對(duì)組件的流向進(jìn)行分析,組件的源和目標(biāo)進(jìn)行鏈接等手段進(jìn)行研究的,開銷較大并且還存在一定的局限性。作為Android最主要的通信機(jī)制,今后需要將對(duì)組件間通信進(jìn)行更加深入的研究,提出更多創(chuàng)新的思路。
3.1.2 運(yùn)行監(jiān)控階段
在運(yùn)行防護(hù)階段,包括了一系列從內(nèi)核層、中間層和應(yīng)用層的防護(hù)手段,能夠提供全面的防護(hù)機(jī)制,抵御各類攻擊。在運(yùn)行防護(hù)階段主要可以借助訪問控制、安全策略、污點(diǎn)跟蹤、權(quán)限監(jiān)控和沙盒控制等技術(shù),對(duì)應(yīng)用運(yùn)行時(shí)提供防護(hù)。
表2展示了在應(yīng)用部署的各個(gè)階段的使用技術(shù)和Android面臨威脅的映射關(guān)系。
表2 現(xiàn)有Android運(yùn)行時(shí)防護(hù)技術(shù)解決面臨威脅的情況
訪問控制技術(shù)主要將Linux系統(tǒng)中的SELinux技術(shù)引入Android平臺(tái),在中間層和內(nèi)核層提供訪問控制策略,開銷較小。能夠?qū)τ谠綑?quán)攻擊、隱私泄露進(jìn)行相應(yīng)的訪問控制,但對(duì)合謀攻擊并不能夠很好地進(jìn)行防護(hù)。而且在提供訪問控制策略的時(shí)候,一般都需要對(duì)整個(gè)系統(tǒng)進(jìn)行刷新,并不能夠提供較為有效的配置手段。對(duì)于訪問控制技術(shù)還需要進(jìn)行加強(qiáng),今后在此方面的研究也需要更加深入。
安全策略技術(shù)主要在中間層定義相應(yīng)的策略,在運(yùn)行時(shí)對(duì)一些操作進(jìn)行監(jiān)控,進(jìn)而實(shí)現(xiàn)更有針對(duì)性的防護(hù)。例如通過在中間層的實(shí)現(xiàn)了一個(gè)策略庫,對(duì)運(yùn)行時(shí)的各項(xiàng)操作定義了相對(duì)應(yīng)的策略。由于需要對(duì)內(nèi)核層和中間層某些關(guān)鍵的數(shù)據(jù)結(jié)構(gòu)進(jìn)行監(jiān)控,因此在運(yùn)行時(shí)也需要?jiǎng)討B(tài)的去匹配相對(duì)應(yīng)的策略,整體開銷較小,但誤報(bào)率較高。如何定義更加良好的安全策略,能夠?qū)崿F(xiàn)更高的防護(hù)率值得研究者進(jìn)行更加深入的研究。
動(dòng)態(tài)污點(diǎn)跟蹤技術(shù)作為一種從計(jì)算機(jī)系統(tǒng)移植過來的技術(shù),擁有廣大的理論基礎(chǔ)。動(dòng)態(tài)污點(diǎn)技術(shù)針對(duì)應(yīng)用內(nèi)部的可疑的數(shù)據(jù)進(jìn)行污點(diǎn)跟蹤,首先標(biāo)記出需要監(jiān)控的污點(diǎn),然后針對(duì)可能發(fā)生泄露的沉淀點(diǎn)進(jìn)行監(jiān)控,觀察是否存在污點(diǎn)通過沉淀點(diǎn)流出?,F(xiàn)有的技術(shù)主要從中間層進(jìn)行修改,在Dalvik虛擬機(jī)內(nèi)部添加標(biāo)記污點(diǎn)的數(shù)據(jù)結(jié)構(gòu),對(duì)其進(jìn)行跟蹤。整個(gè)修改在中間層進(jìn)行修改,在運(yùn)行時(shí)需要實(shí)時(shí)計(jì)算被污染的代碼片段和數(shù)據(jù)結(jié)構(gòu),所以,整個(gè)系統(tǒng)的開銷較中等。在后續(xù)的研究中研究者針對(duì)其中存在的不足提出了相應(yīng)的補(bǔ)充,但是如何利用該技術(shù)去防范其他攻擊也值得研究,需要研究者們投入更多的精力。
權(quán)限監(jiān)控作為一個(gè)較為重要的技術(shù),目標(biāo)是對(duì)Android系統(tǒng)權(quán)限相關(guān)的問題進(jìn)行防護(hù),能夠有效防護(hù)越權(quán)攻擊和信息泄露。Android系統(tǒng)提供了一個(gè)較為重要的機(jī)制就是權(quán)限,用戶只有申請了相應(yīng)的權(quán)限才有能力去訪問相應(yīng)的資源,執(zhí)行對(duì)應(yīng)的操作?,F(xiàn)有的權(quán)限監(jiān)控機(jī)制主要在中間件層進(jìn)行相應(yīng)的修改,在運(yùn)行時(shí)對(duì)發(fā)生權(quán)限操作的行為進(jìn)行監(jiān)控,進(jìn)而能夠有效地防范各類權(quán)限相關(guān)的攻擊,開銷較小。
沙盒技術(shù)主要為隔離惡意應(yīng)用提供了方便,任何與外層的通信都可以使用沙盒機(jī)制進(jìn)行有效的防護(hù)。該技術(shù)能夠有效防范越權(quán)攻擊、信息泄露和合謀攻擊,只需要將惡意應(yīng)用放入沙盒中執(zhí)行,一旦發(fā)生惡意行為,立即對(duì)其進(jìn)行相應(yīng)的防護(hù)即可。應(yīng)用在沙盒內(nèi)執(zhí)行的過程中,需要對(duì)沙盒內(nèi)的應(yīng)用提供持續(xù)不斷的監(jiān)控,所以其性能開銷較大。提供一個(gè)完整而且有效的沙盒,對(duì)于運(yùn)行時(shí)的防護(hù)能夠起到較好的作用。沙盒機(jī)制雖然能夠有效防護(hù)一些攻擊,但是對(duì)于較為底層的操作還存在一定的局限性。所以在未來的研究中,還需對(duì)上述局限性做更深入的研究。
3.2.1 應(yīng)用領(lǐng)域
現(xiàn)在的Android設(shè)備廣泛應(yīng)用于各個(gè)領(lǐng)域,手表、電視、汽車和醫(yī)療設(shè)備等產(chǎn)品上面都可以搭載Android操作系統(tǒng),這就需要對(duì)各類設(shè)備進(jìn)行針對(duì)性的防護(hù)。尤其是涉及到用戶的生命財(cái)產(chǎn)安全方面的,需要更為嚴(yán)格的安全策略來確保萬無一失。
3.2.2 計(jì)算和存儲(chǔ)能力
隨著Android手機(jī)不斷發(fā)展,將擁有更為強(qiáng)大的移動(dòng)計(jì)算能力和存儲(chǔ)能力。由于計(jì)算能力已經(jīng)得到了顯著的提升,今后甚至可以將一部分在應(yīng)用市場才能完成的任務(wù)放到移動(dòng)設(shè)備上進(jìn)行處理,進(jìn)而實(shí)現(xiàn)更加全面的防護(hù)。而存儲(chǔ)能力的加強(qiáng)意味著可以存儲(chǔ)更多隱私數(shù)據(jù),如何針對(duì)這些數(shù)據(jù)進(jìn)行保護(hù)也是一個(gè)挑戰(zhàn)。
3.2.3 攻擊種類
從Android提出到現(xiàn)在應(yīng)用,攻擊的方式以及類型在不斷進(jìn)化,繞過現(xiàn)有的安全機(jī)制,來實(shí)現(xiàn)惡意目的,防護(hù)難度增強(qiáng)。由于攻擊者不斷更新其攻擊方式,因此很難實(shí)現(xiàn)一個(gè)完善的系統(tǒng)能夠抵御所有的攻擊。雖然現(xiàn)在存在很多的安全防護(hù)機(jī)制,但是很多都是針對(duì)特定類型的攻擊的,不具備普適性。
3.2.4 歷史版本遺留問題
歷史版本迭代更新頻繁,遺留問題增多。雖然現(xiàn)在Android系統(tǒng)已經(jīng)更新到6.0了,但是還存在很多用戶在使用4.0~5.0的版本。每個(gè)版本都有新的安全特性加入。舊版本不具備這些新的安全特性,將面臨著更大的安全風(fēng)險(xiǎn)。
3.2.5 合謀應(yīng)用
合謀攻擊一直是研究者重點(diǎn)關(guān)注的問題,很多安全防護(hù)機(jī)制不能夠完全覆蓋其多樣性的通信通道。一般說來,合謀攻擊存在顯示通道和隱式通道2種通道。顯示通道一般會(huì)包括Intent、套接字、內(nèi)部存儲(chǔ)、共享引用和系統(tǒng)日志,而隱式通道則可能為多樣化設(shè)置、處理器狀態(tài)、處理器頻率和文件系統(tǒng)的空余空間等。
一般而言,數(shù)據(jù)流分析和動(dòng)態(tài)監(jiān)控能夠有效地防護(hù)顯示通道所產(chǎn)生的攻擊。但是對(duì)于隱式通道,目前還沒有較好的方式對(duì)其進(jìn)行處理。對(duì)于合謀攻擊中隱式通道的防護(hù)值得研究者更深層次的研究。
本文介紹Android平臺(tái)存在的一些安全缺陷和威脅,從應(yīng)用開發(fā)、發(fā)布、安裝、運(yùn)行和更新等部署階段的現(xiàn)有研究出發(fā),分別總結(jié)歸納和分析了各個(gè)階段的安全防護(hù)措施。在此基礎(chǔ)上,通過對(duì)比已有工作的優(yōu)缺點(diǎn),分析了Android安全防護(hù)的機(jī)遇與挑戰(zhàn),并展望了未來Android安全領(lǐng)域的前景。
[1] 卿斯?jié)h.Android 安全研究進(jìn)展[J].軟件學(xué)報(bào),2016,27(1):45-71.
[2] 張玉清,王 凱,楊 歡,等.Android 安全綜述[J].計(jì)算機(jī)研究與發(fā)展,2014,51(7):1385-1396.
[3] TAN D J J,CHUA T W,THING V L L.Securing Android:A Survey,Taxonomy,and Challenges[J].ACM Computing Surveys,2015,47(4):58-99.
[4] ZHOU Yajin,JIANG Xuxian.Dissecting Android Malware:Characterization and Evolution[C]//Proceedings of IEEE Symposium on Security and Privacy.IEEE Computer Society.Washington D.C.,USA:IEEE Press,2012:95-109.
[5] ZHOU Wu,ZHANG Xinwen,JIANG Xuxian.AppInk:Water-marking Android Apps for Repackaging Deterrence[C]//Proceedings of the 8th ACM SIGSAC Symposium on Information,Computer and Communications Security.New York,USA:ACM Press,2013:1-12.
[6] RASTHOFER S,ARZT S,LOVAT E,et al.Droidforce:Enforcing Complex,Data-centric,System-wide Policies in Android[C]//Proceedings of Ninth International Conference on Availability,Reliability and Security.Washington D.C.,USA:IEEE Press,2014:40-49.
[7] ZHOU Wu,ZHOU Yajin,JIANG Xuxian,et al.Detecting Repackaged Smartphone Applications in Third-party Android Marketplaces[C]//Proceedings of the 2nd ACM Conference on Data and Application Security and Privacy.New York,USA:ACM Press,2012:317-326.
[8] CRUSSELL J,GIBLER C,CHEN Hao.Attack of the Clones:Detecting Cloned Applications on Android Markets[C]//Proceedings of European Symposium on Research in Computer Security.Berlin,Germany:Springer-Verlag,2012:37-54.
[9] FELT A P,CHIN E,HANNA S,et al.Android Permissions Demystified[C]//Proceedings of the 18th ACM Conference on Computer and Communications Security.New York,USA:ACM Press,2011:627-638.
[10] AU K W Y,ZHOU Yifan,HUANG Zhen,et al.Pscout:Analyzing the Android Permission Specification[C]//Proceedings of the 2012 ACM Conference on Computer and Communications Security.New York,USA:ACM Press,2012:217-228.
[11] GRACE M C,ZHOU Yajin,WANG Zhi,et al.Systematic Detection of Capability Leaks in Stock Android Smartphones[C]//Proceedings of the 19th Network and Distributed System Security Symposium.Washington D.C.,USA:IEEE Press,2012:19.
[12] LU Long,LI Zhichun,WU Zhenyu,et al.Chex:Statically Vetting Android Apps for Component Hijacking Vulner-abilities[C]//Proceedings of 2012 ACM Conference on Computer and Communications Security.New York,USA:ACM Press,2012:229-240.
[13] GRACE M,ZHOU Yajin,ZHANG Qiang,et al.Riskranker:Scalable and Accurate Zero-day Android Malware Detec-tion[C]//Proceedings of the 10th International Conference on Mobile Systems,Applications,and Services.New York,USA:ACM Press,2012:281-294.
[14] ARZT S,RASTHOFER S,FRITZ C,et al.Flowdroid:Precise Context,Flow,Field,Object-sensitive and Lifecycle-aware Taint Analysis for Android Apps[C]//Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation.New York,USA:ACM Press,259-269.
[15] YANG Zhemin,YANG Min,ZHANG Yuan,et al.Appintent:Analyzing Sensitive Data Transmission in Android for Privacy Leakage Detection[C]//Proceedings of ACM SIGSAC Conference on Computer & Com-munications Security.New York,USA:ACM Press,2013:1043-1054.
[16] CHIN E,FELT A P,GREENWOOD K,et al.Analyzing Inter-application Communication in Android[C]//Proceedings of the 9th International Conference on Mobile Systems,Applications,and Services.New York,USA:ACM Press,2011:239-252.
[17] OCTEAU D,MCDANIEL P,JHA S,et al.Effective Inter-component Communication Mapping in Android with Epicc:An Essential Step Towards Holistic Security Analysis[C]//Proceedings of the 22nd USENIX Conference on Security.USENIX Association.Washington D.C.,USA:[s.n.],2013:543-558.
[18] LI Li,BARTEL A,BISSYANDE T F,et al.IccTA:Detecting Inter-component Privacy Leaks in Android Apps[C]//Proceedings of the 37th International Conference on Software Engineering-Volume 1.Washington D.C.,USA:IEEE Press,2015:280-291.
[19] WEI Fengguo,ROY S,OU Xinming.Amandroid:A Precise and General Inter-component Data Flow Analysis Framework for Security Vetting of Android Apps[C]//Proceedings of 2014 ACM SIGSAC Conference on Computer and Communications Security.New York,USA:ACM Press,2014:1329-1341.
[20] ENCK W,ONGTANG M,MCDANIEL P.Understanding Android Security[J].IEEE Security & Privacy,2009(1):50-57.
[21] ZHANG Mu,DUAN Yue,FENG Qian,et al.Towards Automatic Generation of Security-centric Descriptions for Android Apps[C]//Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security.New York,USA:ACM Press,2015:518-529.
[22] WANG Ruowen,ENCK W,REEVES D,et al.Easeandroid:Automatic Policy Analysis and Refinement for Security Enhanced Android via Large-scale Semi-supervised Learn-ing[C]//Proceedings of the 24th USENIX Security Symposium.USENIX Association.Washington,D.C.:[s.n.],2015:351-366.
[23] BUGIEL S,DAVI L,DMITRIENKO A,et al.Towards Taming Privilege-escalation Attacks on Android[J].Proceedings of Annual Network & Distributed System Security Symposium,2013,130(130):346-360.
[24] BUGIEL S,HEUSER S,SADEGHI A R.Flexible and Fine-grained Mandatory Access Control on Android for Diverse Security and Privacy Policies[C]//Proceedings of the 22nd USENIX Conference on Security.Washington D.C.,USA:USENIX Association,2013:131-146.
[25] ZHAO Zhibo,OSONO F C C.“TrustDroidTM”:Preventing the Use of SmartPhones for Information Leaking in Corporate Networks Through the Use of Static Analysis Taint Tracking[C]//Proceedings of International Conference on Malicious and Unwanted Software.Washington D.C.,USA:IEEE Press,2012:135-143.
[26] WANG Rui,XING Luyi,WANG Xiaofeng,et al.Unauthorized Origin Crossing on Mobile Platforms:Threats and Mitiga-tion[C]//Proceedings of ACM SIGSAC Conference on Computer & Communications Security.New York,USA:ACM Press,2013:635-646.
[27] ENCK W,GILBERT P,CHUN B G,et al.TaintDroid:An Information-flow Tracking System for Realtime Privacy Monitoring on Smartphones[J].ACM Tran-sactions on Computer Systems,2014,32(2):1-29.
[28] FELT A P,WANG H J,MOSHCHUK A,et al.Permission Re-delegation:Attacks and Defenses[C]//Proceedings of Usenix Conference on Security.New York,USA:USENIX Association,2011:22.
[29] DIETZ M,SHEKHAR S,PISETSKY Y,et al.QUIRE:Lightweight Provenance for Smart Phone Operating Systems[C]//Proceedings of USENIX Conference on Security.San Francisco,USA:USENIX Association,2011:23.
[30] ZHANG Yuan,YANG Min,XU Bingquan,et al.Vetting Undesirable Behaviors in Android Apps with Permission Use Analysis[C]//Proceedings of 2013 ACM SIGSAC Conference on Computer & Communications Security.New York,USA:ACM Press,2013:611-622.
[31] XU Rubin,SAIDI H,ANDERSON R.Aurasium:Practical Policy Enforcement for Android Applications[C]//Proceedings of USENIX Conference on Security Symposium.Bellevue,USA:USENIX Association,2012:27.
[32] BACKES M,GERLING S,HAMMER C,et al.AppGuard-Enforcing User Requirements on Android Apps[C]//Proceedings of Tools and Algorithms for the Construction and Analysis of Systems.Berlin,Germany:Springer-Verlag,2013:543-548.
[33] BACKES M,BUGIEL S,HAMMER C,et al.Boxify:Full-fledged App Sandboxing for Stock Android[C]//Pro-ceedings of USENIX Conference on Security Symposium.Washington D.C.,USA:USENIX Association,2015:691-706.
[34] XING Luyi,PAN Xiaorui,WANG Rui,et al.Upgrading Your Android,Elevating My malware:Privilege Escalation Through Mobile OS Updating[C]//Proceedings of IEEE Symposium on Security and Privacy.Washington D.C.,USA:IEEE Press,2014:393-408.