史福田,毛劍,劉建偉
?
Android移動設(shè)備邊信道隱私推測研究綜述
史福田,毛劍,劉建偉
(北京航空航天大學(xué)電子信息工程學(xué)院,北京 100191)
針對存在敏感信息泄露的Android邊信道,基于隱私信息關(guān)聯(lián)對象進行分類分析;對主要攻擊模型進行了分析總結(jié),包括推測隱私信息的核心方法及各個推測攻擊的應(yīng)用場景;對針對邊信道攻擊的檢測和抑制方法進行了總結(jié),分析了現(xiàn)有防御機制存在的問題。最后,展望了邊信道隱私推測攻擊的發(fā)展和研究方向。
Android;邊信道攻擊;隱私推測;移動安全
邊信道隱私推測是指利用計算設(shè)備、軟件實現(xiàn)、信息傳輸?shù)拳h(huán)節(jié)中無意間泄露的敏感信息,推測用戶隱私的攻擊行為?;谠撛?,Kocher[1]于1996年提出了第一個攻擊智能卡加密算法實現(xiàn)的邊信道隱私推測攻擊,之后出現(xiàn)了眾多通過時間、耗電量、電磁輻射等邊信道信息攻擊智能卡的研究工作[2~4]。直至云計算時代,邊信道信息泄露一直威脅著用戶的信息安全。
隨著智能手機、智能穿戴設(shè)備的普及,智能移動設(shè)備存儲、處理著大量隱私信息,如用戶密碼、身份、位置等。在所有智能移動設(shè)備中,運行Android操作系統(tǒng)的設(shè)備占比超過了72%[5]。然而,Android系統(tǒng)的開放性使Android移動設(shè)備成為惡意應(yīng)用攻擊的主要對象。近年來,機器學(xué)習(xí)進一步為邊信道攻擊的隱私推測能力提供了支持,使基于邊信道隱私推測的攻擊愈發(fā)嚴重。因此,深入研究Android移動設(shè)備的邊信道隱私推測攻擊對保護用戶的信息安全具有重要意義。
目前,針對Android移動設(shè)備邊信道隱私推測的研究可以分為3個方面:邊信道攻擊研究、邊信道檢測研究和邊信道抑制研究。邊信道攻擊研究嘗試發(fā)現(xiàn)潛在的邊信道,通過構(gòu)建隱私推測場景判斷潛在信道是否能夠被實際利用以及如何利用。邊信道檢測研究嘗試分析應(yīng)用程序的代碼和行為,發(fā)現(xiàn)實施邊信道攻擊的惡意應(yīng)用。邊信道抑制研究嘗試通過限制邊信道泄露敏感信息的能力,破壞邊信道攻擊的有效性。
用戶隱私信息是指可以用來識別、聯(lián)系、定位、區(qū)分一個人的敏感信息[6]。用戶在使用Android移動設(shè)備的同時,也將隱私信息暴露給了Android移動設(shè)備。其中包括直接靜態(tài)存儲在設(shè)備上的信息,如賬號、相冊等;此外,還有諸如應(yīng)用運行狀態(tài)、傳感器狀態(tài)等隱私敏感(privacy sensitive)信息。對于直接存儲在設(shè)備上的信息,Android系統(tǒng)通過沙箱機制和權(quán)限機制進行了嚴格的訪問控制。但對于隱私敏感信息(如應(yīng)用程序運行狀態(tài)等),Android系統(tǒng)尚未進行細致的保護。應(yīng)用程序通??梢栽L問這些隱私敏感信息,且無需申請?zhí)囟?quán)限或只需要申請少量常規(guī)權(quán)限。攻擊者利用這類未受保護的隱私敏感信息推斷用戶隱私,即Android移動設(shè)備邊信道隱私推測攻擊。
在Android移動設(shè)備中,用戶隱私的關(guān)聯(lián)對象有兩種:應(yīng)用狀態(tài)和設(shè)備狀態(tài)。用戶隱私與應(yīng)用狀態(tài)關(guān)聯(lián)體現(xiàn)為:用戶個人(隱私)行為直接影響應(yīng)用程序的某些運行狀態(tài)。例如,用戶拍攝小視頻時,相關(guān)程序的CPU使用時間、占用內(nèi)存大小等狀態(tài)會顯著增加等。用戶隱私與設(shè)備狀態(tài)關(guān)聯(lián)體現(xiàn)為:用戶的個人(隱私)行為直接影響硬件設(shè)備的狀態(tài),如用戶跑步時引起加速度傳感器的狀態(tài)數(shù)據(jù)變化。邊信道隱私推測則是利用應(yīng)用狀態(tài)和設(shè)備狀態(tài)等與用戶隱私有關(guān)聯(lián)的敏感信息推測用戶的隱私。如圖1所示,邊信道隱私推測攻擊流程可以分為兩步:1) 收集應(yīng)用狀態(tài)、設(shè)備狀態(tài)等邊信道泄露的敏感信息,2) 利用邊信道泄露的敏感信息推測用戶隱私。
圖1 邊信道隱私推測攻擊流程
本文將Android移動設(shè)備中泄露隱私敏感信息的邊信道按隱私關(guān)聯(lián)對象分為應(yīng)用狀態(tài)邊信道和設(shè)備狀態(tài)邊信道。
Android是基于Linux內(nèi)核開發(fā)的移動操作系統(tǒng),它的安全模型也是建立在Linux內(nèi)核安全模型的基礎(chǔ)上[7]。Android系統(tǒng)對應(yīng)用程序運行狀態(tài)的記錄既有Linux內(nèi)核提供的proc文件系統(tǒng)(procfs,proc file system)和sys文件系統(tǒng)(sysfs,sys file system),也有Andorid系統(tǒng)提供的應(yīng)用程序接口(API,application programming interface)。本文按應(yīng)用狀態(tài)信息的來源將應(yīng)用狀態(tài)邊信道信息來源分為Linux層公共文件資源邊信道(簡稱Linux層邊信道)和Android層應(yīng)用程序接口邊信道(簡稱Android層邊信道)。
2.1.1 Linux層公共文件資源邊信道攻擊研究
Linux層邊信道主要來自Linux內(nèi)核的公共文件資源,包括procfs和sysfs。它們是Android繼承Linux的虛擬文件系統(tǒng),用來記錄系統(tǒng)和應(yīng)用的運行狀態(tài)。procfs包含了應(yīng)用進程和系統(tǒng)進程的運行時狀態(tài)統(tǒng)計信息,如進程的CPU使用時間、內(nèi)存占用大小、網(wǎng)絡(luò)使用統(tǒng)計等。sysfs包含了內(nèi)核子系統(tǒng)信息、設(shè)備信息、網(wǎng)絡(luò)環(huán)境信息等。Android 應(yīng)用程序接口沒有提供應(yīng)用程序的運行狀態(tài)信息,Android系統(tǒng)保留Linux內(nèi)核的procfs和sysfs的初衷是支持應(yīng)用程序開發(fā)者了解應(yīng)用程序的運行狀態(tài)。然而,這些應(yīng)用狀態(tài)信息在提供有用信息的同時,也成為邊信道隱私推測攻擊收集利用的對象,給用戶隱私帶來了安全隱患。
利用procfs提供的應(yīng)用內(nèi)存使用情況推測用戶的瀏覽記錄是一種典型的邊信道隱私推測攻擊。用戶瀏覽記錄被認為是一種用戶隱私(利用瀏覽記錄,攻擊者可以了解用戶的喜好、行為特點等信息),因此瀏覽記錄通常受到嚴密保護[8]。應(yīng)用進程的內(nèi)存使用信息保存在proc文件系統(tǒng)的/proc/
利用sysfs提供的電池功耗信息推測用戶隱私也是一種典型的邊信道隱私推測攻擊。Android移動設(shè)備的電池功耗信息保存在sys文件系統(tǒng)的/sys/class/power_supply/battery文件夾下,主要數(shù)據(jù)包括當前電池的工作電壓(voltage_now)、工作電流(current_now)等。用戶的不同行為導(dǎo)致不同的移動設(shè)備功耗,如用戶錄制小視頻時的功耗比瀏覽網(wǎng)頁時的功耗大。移動設(shè)備的功耗信息反映了應(yīng)用的狀態(tài)和用戶的行為,是一種可利用的應(yīng)用狀態(tài)數(shù)據(jù)邊信道。利用sysfs提供的電壓、電流信息觀測移動設(shè)備的功耗變化,可進行4種邊信道隱私推測攻擊[11],其中包括:1) 通過分析應(yīng)用程序在啟動階段的功耗模式,識別出前端運行的應(yīng)用程序;2) 根據(jù)應(yīng)用程序用戶界面的功耗模式,實現(xiàn)對用戶正在瀏覽的應(yīng)用程序界面的推測;3) 根據(jù)用戶輸入密碼時的功耗劇烈變化次數(shù),推測出用戶輸入的密碼長度;4)通過分析移動設(shè)備在特定位置的功耗特征,實現(xiàn)對用戶地理位置的推測。此外,另一種攻擊則將移動設(shè)備的功耗與蜂窩信號強度關(guān)聯(lián),據(jù)此分析用戶位置與基站的距離,實現(xiàn)對用戶位置的推測[12]。
2.1.2 Android層應(yīng)用程序接口邊信道攻擊研究
Android層邊信道主要來自Android系統(tǒng)提供的應(yīng)用程序接口。除了Linux內(nèi)核提供的公共文件資源,Android系統(tǒng)也提供了應(yīng)用程序接口以幫助應(yīng)用程序訪問系統(tǒng)資源。其中,統(tǒng)計Android應(yīng)用程序流量使用情況的android.net.TrafficStats和接收Android應(yīng)用公共廣播內(nèi)容的android.content.BroadcastReceiver是2個典型的Android層邊信道。
Android移動設(shè)備的網(wǎng)絡(luò)數(shù)據(jù)使用情況保存在proc文件系統(tǒng)的/proc/uid_stat/
廣播(broadcast)是Android核心組件,用于在不同應(yīng)用之間傳遞數(shù)據(jù)或在同一應(yīng)用的不同組件之間傳遞數(shù)據(jù)。廣播類似“發(fā)布?訂閱”模式,應(yīng)用程序可以通過sendBroadcast方法發(fā)布廣播通知其他應(yīng)用,也可以通過registerReceiver方法訂閱指定的廣播以接收其他應(yīng)用的通知。例如,Android系統(tǒng)在啟動完成后會發(fā)送“ACTION_ BOOT_COMPLETED”廣播,注冊此廣播的應(yīng)用就會收到該廣播并執(zhí)行BroadcastReceiver. onReceive方法。攻擊者可利用Android系統(tǒng)的電池電量變化廣播構(gòu)建2個惡意應(yīng)用(如M-app1、M-app2)之間傳遞敏感信息的邊信道[15]。惡意應(yīng)用M-app1將敏感信息編碼,然后通過CPU、屏幕等設(shè)備改變電池電量的變化速度;惡意應(yīng)用M-app2則根據(jù)接收到的電量變化廣播的時間間隔,推測出收到的敏感信息。文獻[16]利用Android系統(tǒng)的音量變化廣播實現(xiàn)了類似的邊信道攻擊。
設(shè)備狀態(tài)邊信道主要指以傳感器為代表的硬件邊信道(Hardware層邊信道)。隨著移動設(shè)備內(nèi)置傳感器種類增多、功能增強,越來越多的Android應(yīng)用程序需要依賴傳感器采集用戶信息,如健康管理、路徑導(dǎo)航等。同時,越來越多的用戶隱私信息在Android移動設(shè)備中處理,這為邊信道隱私推測攻擊提供了潛在的攻擊目標。目前,利用傳感器的用戶隱私推測攻擊主要有屏幕輸入推測和位置信息推測。
屏幕輸入推測是指利用傳感器數(shù)據(jù)推測用戶在屏幕上輸入的解鎖密碼、解鎖圖案、文本等隱私信息。此類攻擊實施主要基于兩點:1) Android應(yīng)用訪問傳感器數(shù)據(jù)不需要單獨申請權(quán)限;2) 用戶在使用屏幕上輸入信息時會輕微地敲擊屏幕、轉(zhuǎn)動設(shè)備?,F(xiàn)有的屏幕輸入推測攻擊主要如下。1) 通過用戶在屏幕上輸入的數(shù)字與加速度傳感器之間存在關(guān)聯(lián),推測用戶的解鎖密碼[17],以及在此基礎(chǔ)上的單個字母推測攻擊[18]。2) 利用智能手表的加速度傳感器實現(xiàn)推測解鎖密碼的攻擊[19]。3) 結(jié)合加速度傳感器和陀螺儀傳感器進行推測文本攻擊[20]。4) 基于用戶輸入時設(shè)備輕微轉(zhuǎn)動導(dǎo)致的光線傳感器數(shù)據(jù)變化,實現(xiàn)解鎖密碼推測攻擊[21]。此外,也有研究利用話筒和前置攝像頭推測用戶輸入,但利用這2個設(shè)備需要單獨申請權(quán)限。
位置信息推測是基于用戶隨身攜帶移動設(shè)備這一假設(shè)進行的。對于用戶位置,應(yīng)用程序可以直接訪問GPS傳感器獲取,但這需要單獨申請位置信息訪問權(quán)限。當沒有權(quán)限時,應(yīng)用可以通過邊信道推測用戶的位置。典型攻擊包括:通過加速度傳感器推測用戶使用的交通工具[22];利用氣壓傳感器和地形地貌信息推測出用戶的駕駛路線[23];基于加速度傳感器和陀螺儀傳感器推測用戶的駕駛路線[24]等。
綜上,對Android移動設(shè)備中泄露隱私敏感信息的邊信道按隱私關(guān)聯(lián)對象分為應(yīng)用狀態(tài)邊信道和設(shè)備狀態(tài)邊信道。表1對這2類邊信道的敏感信息來源和隱私推測目標進行了分析總結(jié)。
表1 Android移動設(shè)備邊信道研究分析總結(jié)
邊信道隱私推測攻擊通過邊信道收集足夠的隱私敏感信息后,通過提取敏感信息特征、設(shè)計隱私推測分類器展開隱私推測。隱私推測的輸入是攻擊應(yīng)用從邊信道收集的敏感信息,輸出是用戶的隱私信息。隱私推測針對不同的邊信道和不同的隱私展開研究,主要解決2個問題:1) 從敏感信息中提取哪些特征;2) 運用什么方法推測用戶隱私。提取特征需要根據(jù)實際的攻擊場景具體研究。隱私推測運用的方法通常是典型的匹配、識別、分類算法,常用的方法有Jaccard指數(shù)(Jaccard index)、動態(tài)時間歸整(DTW, dynamic time warping)、隨機森林(random forest)、支持向量機(SVM, support vector machine)、隱馬爾可夫模型(HMM, hidden markov model)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN, recurrent neural network)。
隨機森林和支持向量機是典型的機器學(xué)習(xí)分類器。隨機森林[27]是一個包含多個決策樹的分類器,且其輸出類別由個別樹輸出類別的眾數(shù)而定。支持向量機[28]針對線性可分情況進行分析,對于線性不可分的情況,通過使用非線性映射算法將低維輸入空間線性不可分的樣本轉(zhuǎn)化為高維特征空間使其線性可分。在邊信道攻擊中,機器學(xué)習(xí)(machine learning)分類器可以利用邊信道數(shù)據(jù)的統(tǒng)計特性推測用戶隱私。文獻[14]通過記錄每組網(wǎng)絡(luò)數(shù)據(jù)分組的上傳流量、下載流量、總流量,并計算這3組數(shù)據(jù)的最小值、最大值、平均值、中位數(shù)、標準差、方差、數(shù)據(jù)分組個數(shù)等統(tǒng)計特征,最后利用隨機森林、支持向量機等機器學(xué)習(xí)分類器對這些統(tǒng)計特征進行分類,推測用戶安裝的應(yīng)用程序。
HMM[29]用來描述一個含有隱含未知參數(shù)的馬爾可夫過程,其從可觀察的參數(shù)中確定該過程的隱含參數(shù),然后利用這些參數(shù)做進一步的分析,如模式識別等。在邊信道攻擊研究中,HMM被用來識別序列數(shù)據(jù)中隱藏的隱私信息。文獻[30]實現(xiàn)了利用中斷信息推測用戶解鎖圖案的攻擊。攻擊首先根據(jù)采集到的中斷間隔推斷出解鎖圖案中每條直線的長度得到長度序列,再使用Viterbi算法計算出最可能的隱含狀態(tài)序列,即解鎖圖案。
RNN也用來識別序列數(shù)據(jù)中隱藏的隱私信息。RNN[31]是一種通過隱藏層節(jié)點周期性連接捕捉序列化數(shù)據(jù)中動態(tài)信息的神經(jīng)網(wǎng)絡(luò),可以對序列化的數(shù)據(jù)進行分類,常用于手寫識別、語音識別。文獻[32]利用中斷數(shù)據(jù)識別用戶用手勢輸入方式輸入的長文本。實驗表明,使用SVM對中斷數(shù)據(jù)進行處理,由于SVM以單詞為單位進行識別,不考慮上下文,丟失了長文本的語義語境信息,識別的準確率小于10%。而RNN能自動學(xué)習(xí)訓(xùn)練集中的單詞、語境,通過訓(xùn)練RNN分類器,可將長文本中的單詞識別準確率提高到92%。
表2總結(jié)了邊信道隱私推測方法的典型應(yīng)用。
表2 邊信道隱私推測方法研究總結(jié)
針對Android系統(tǒng)安全問題,已有多種惡意應(yīng)用、惡意攻擊行為檢測機制[33]。雖然常規(guī)惡意應(yīng)用檢測機制并未針對邊信道攻擊,但是由于邊信道攻擊應(yīng)用也具有類似攻擊特征,常規(guī)惡意應(yīng)用檢測機制也常被集合用于邊信道攻擊檢測。邊信道攻擊檢測設(shè)計的通用分析機制主要有數(shù)據(jù)流分析檢測和控制流分析檢測。
數(shù)據(jù)流分析檢測通過分析敏感信息在應(yīng)用程序中的傳播,檢測應(yīng)用程序外傳敏感信息的行為,如通過網(wǎng)絡(luò)套接字向外界發(fā)送敏感信息的行為等。數(shù)據(jù)流分析檢測主要有靜態(tài)數(shù)據(jù)流分析和動態(tài)污點跟蹤[33]。
靜態(tài)數(shù)據(jù)流分析的主要原理是分析應(yīng)用程序源碼中變量的關(guān)系,檢測與敏感信息相關(guān)的代碼。文獻[34]提出FlowDroid靜態(tài)數(shù)據(jù)流分析方法。該方法利用反編譯得到的可執(zhí)行代碼文件、布局文件以及配置文件,分析應(yīng)用程序組件的生命周期和回調(diào)函數(shù),生成函數(shù)調(diào)用圖,并通過分析數(shù)據(jù)在函數(shù)調(diào)用圖中的傳播發(fā)現(xiàn)可疑的數(shù)據(jù)流。
動態(tài)污點跟蹤技術(shù)的主要原理是使用污點標記應(yīng)用程序中的敏感數(shù)據(jù),隨著程序的運行將污點傳播至依賴于敏感數(shù)據(jù)的對象中。文獻[35]提出的TaintDroid就是通過動態(tài)污點跟蹤保護Andorid系統(tǒng)中的隱私數(shù)據(jù)。TaintDroid將位置傳感器、加速度傳感器、話筒、相機、通信錄、短信、設(shè)備識別碼等敏感信息作為源污點,從指令層、應(yīng)用間消息層、文件層等不同層跟蹤污點在內(nèi)存中的傳播。當污點出現(xiàn)在與外界聯(lián)系的接口(如網(wǎng)絡(luò)通信接口等)中時,TaintDroid就會發(fā)起敏感信息泄露警告。
控制流分析檢測是通過分析應(yīng)用程序的API調(diào)用及API調(diào)用的觸發(fā)條件來獲取應(yīng)用程序行為的相關(guān)信息,以此判斷應(yīng)用程序是否存在邊信道攻擊行為。
DroidAPIMiner[36]就是一種控制流分析方法。該方法首先分析惡意應(yīng)用頻繁調(diào)用的敏感API,通過反編譯APK文件提取應(yīng)用程序的敏感API調(diào)用信息,最后通過訓(xùn)練基于KNN(k-nearest neighbor)、SVM等多種機器學(xué)習(xí)算法的分類器檢測惡意應(yīng)用。該方法的惡意應(yīng)用檢出率最高達到97.8%。
MAMADROID[37]也是一種基于控制流分析的檢測機制。首先反編譯APK文件,分析應(yīng)用程序的API調(diào)用信息生成API調(diào)用圖;根據(jù)API調(diào)用圖提取API調(diào)用序列,進而構(gòu)建API調(diào)用的馬爾可夫鏈。得到的馬爾可夫鏈有340個狀態(tài)和115 600個可能的轉(zhuǎn)化,接著以狀態(tài)轉(zhuǎn)化的概率作為特征向量,利用主成分分析對特征向量降維,通過隨機森林、1-NN、3-NN、SVM這4種分類算法對惡意應(yīng)用進行分類檢測。該方法的惡意應(yīng)用檢出率最高達到99%。
現(xiàn)有針對邊信道攻擊應(yīng)用的檢測機制的研究是在常規(guī)惡意應(yīng)用檢測基礎(chǔ)上,增加對邊信道特征的檢測。這部分研究工作可以看作是常規(guī)惡意應(yīng)用檢測機制的補丁。
常規(guī)惡意應(yīng)用檢測機制可以檢測部分邊信道攻擊,但還有部分邊信道攻擊可以輕松繞過常規(guī)檢測機制。例如,文獻[38]提出了多種可以繞過TaintDroid污點跟蹤檢測的邊信道攻擊。這是由于TaintDroid可以跟蹤隱私數(shù)據(jù)在內(nèi)存中的傳播,卻不能跟蹤數(shù)據(jù)在邊信道中的傳播。這類攻擊通過2個攻擊應(yīng)用(如M-app1、M-app2)共謀實現(xiàn)。應(yīng)用M-app1將獲取的敏感信息隱藏在文件元數(shù)據(jù)、剪切板等公共資源或程序休眠時間等應(yīng)用行為中。應(yīng)用M-app2通過觀測這些公共資源或應(yīng)用行為獲取M-app1發(fā)送的敏感信息。由于這類數(shù)據(jù)流的終點是公共資源或應(yīng)用行為,TaintDroid無法檢測。
邊信道攻擊應(yīng)用檢測研究多從修補常規(guī)惡意應(yīng)用檢測漏洞的角度出發(fā)。例如,針對文獻[38]提出的邊信道攻擊,文獻[39]在TaintDroid基礎(chǔ)上構(gòu)建了多種邊信道的污點傳播規(guī)則,實現(xiàn)了對邊信道信息泄露的檢測。該機制構(gòu)建的污點傳播規(guī)則有:當應(yīng)用調(diào)用sleep函數(shù)時,將時間相關(guān)信息作為污點;污點傳播到公共資源,則將訪問公共資源的函數(shù)作為污點等。
針對Android邊信道隱私推測攻擊的檢測研究,提高了惡意應(yīng)用利用邊信道收集敏感信息的難度,增強了對Android系統(tǒng)中用戶隱私的保護。然而,一旦惡意攻擊應(yīng)用繞過了檢測機制的防御,就仍然可以發(fā)起邊信道攻擊。為全面保護Android用戶的信息安全,有必要對邊信道進行抑制,降低其泄露信息的能力。目前,抑制邊信道信息泄露的研究工作可以分為權(quán)限控制、干擾信源、限制采樣、限制運行這4個研究方向。
權(quán)限控制指在Android權(quán)限模型基礎(chǔ)上加強對敏感信息的訪問控制。通過細粒度的權(quán)限模型保護被邊信道攻擊所收集利用的敏感信息是最直接有效的抑制方法。文獻[40]針對利用傳感器的信息泄露提出了一種細粒度的傳感器訪問權(quán)限控制方法。Android應(yīng)用程序訪問硬件層傳感器設(shè)備需要經(jīng)過Application層、Framework層、Library層、Kernel層和Hardware層。該方法通過在Framework層增加權(quán)限檢查實現(xiàn)了對傳感器訪問權(quán)限的細粒度控制。
干擾信源指通過干擾邊信道收集敏感信息,降低隱私推測攻擊的準確性。典型的干擾信源的方式是注入噪聲。文獻[41]提出一種針對通過傳感器推測屏幕輸入內(nèi)容攻擊的限制方法。該方法在用戶打開軟鍵盤輸入內(nèi)容時,向/dev/input文件夾下的加速度傳感器和陀螺儀傳感器相應(yīng)的文件以7~12 ms的隨機時間間隔注入隨機值,實驗結(jié)果證明,該方法能夠顯著降低文本輸入推測的準確性。文獻[42]提出一種針對利用procfs提供的中斷信息推測用戶解鎖圖案攻擊的限制方法。該方法通過修改內(nèi)核實現(xiàn)向/dev/input注入假中斷,修改Widget組件的實現(xiàn)代碼設(shè)置隱藏窗口以接收假中斷,既保證了應(yīng)用窗口能夠正常接收中斷,又干擾了隱私推測攻擊。文獻[18]提出打亂軟鍵盤字符位置的方法,研究表明該方法可以消除輸入推測攻擊的安全隱患,代價是降低了軟鍵盤的可用性。
限制采樣指通過限制應(yīng)用程序訪問敏感信息或降低應(yīng)用程序?qū)γ舾行畔⒉蓸宇l率的方式,降低隱私推測攻擊的準確性。文獻[43]提出一種Android系統(tǒng)音頻資源管理方案,該方案可以在用戶通話時限制第三方應(yīng)用訪問麥克風,從而抑制了利用用戶通話音頻推測用戶隱私的攻擊。文獻[9]在利用瀏覽器進程的內(nèi)存足跡推測用戶的瀏覽記錄時,對比了不同內(nèi)存信息采樣率下的推測準確性。實驗結(jié)果表明,對應(yīng)用程序訪問procfs的頻率進行限制能夠顯著降低隱私推測的準確性。
限制運行指通過查殺惡意應(yīng)用進程的方式保護敏感信息。用戶在使用Android移動設(shè)備時產(chǎn)生的敏感信息通過邊信道被惡意應(yīng)用收集,惡意應(yīng)用收集敏感信息的行為在Android后臺隱蔽進行。文獻[44]提出了一種邊信道抑制方法,該方法在暴露隱私的前臺應(yīng)用運行時,中止信息收集應(yīng)用進程;在前臺應(yīng)用運行結(jié)束后,啟動信息收集應(yīng)用。該方法要中止信息收集應(yīng)用運行,需要申請“KILL_BACKGROUND_PROCESSES”權(quán)限。
抑制邊信道收集隱私敏感信息的主要方法、應(yīng)用細節(jié)和典型工作總結(jié)如表3所示。
表3 Android邊信道抑制方法研究總結(jié)
Android移動設(shè)備存儲、處理著大量用戶隱私,邊信道隱私推測攻擊通過收集邊信道泄露的隱私敏感信息推測用戶隱私,給Android用戶的信息安全帶來了嚴重的威脅。目前已有很多針對Android邊信道隱私推測攻擊的檢測和抑制研究,這些研究對防御邊信道攻擊、保護用戶隱私起到了重要作用。但仍有一些不足之處,具體如下。
1) 針對特定邊信道攻擊帶來的問題
目前,邊信道攻擊檢測抑制機制多針對特定邊信道攻擊,要想防御所有的邊信道攻擊,需要研究應(yīng)用多種邊信道攻擊檢測抑制機制。這帶來3個問題:①只對現(xiàn)有特定的邊信道有效,不能廣泛防御未知的邊信道攻擊;②需要研究驗證多種檢測抑制機制的有效性;③部署應(yīng)用大量檢測抑制機制使運行負載增加。
在最近的研究中,文獻[44]提出了能檢測抑制多種收集敏感信息的邊信道攻擊方案App-Guardian,但該方案也存在問題:①該方案通過CPU調(diào)度頻率檢測邊信道攻擊應(yīng)用的準確性有待進一步驗證;②該方案通過查殺應(yīng)用進程的方式抑制邊信道收集敏感信息,存在導(dǎo)致誤殺正常應(yīng)用的可能性。
2) 檢測抑制機制實際應(yīng)用過程中的問題
目前,檢測抑制機制實際應(yīng)用有2種方式:一種是安裝第三方安全應(yīng)用;另一種是改進Android系統(tǒng)的安全機制。第三方安全應(yīng)用的主要問題是運行負載。隨著邊信道攻擊的增多,安全應(yīng)用需要多種邊信道抑制檢測機制,安全應(yīng)用的運行負載也隨之增大。改進Android系統(tǒng)安全機制的典型做法是對隱私敏感信息增加細粒度權(quán)限控制。例如,Android M細化了應(yīng)用訪問procfs的權(quán)限,使應(yīng)用不能再訪問procfs中其他進程的相關(guān)文件。然而,由于可利用的邊信道仍在不斷被發(fā)現(xiàn),對每個被利用的邊信道都增加細粒度的權(quán)限管理很難實現(xiàn)。也有研究指出[45],由于有的用戶不理解特定權(quán)限的實際意義,有的用戶不關(guān)心應(yīng)用請求了哪些權(quán)限,導(dǎo)致通過權(quán)限機制也很難確保所有Android用戶的信息安全。
Android移動設(shè)備邊信道攻擊的檢測抑制研究不斷完善增加了邊信道隱私推測的難度。同時,物聯(lián)網(wǎng)和智能家居的迅速發(fā)展也為邊信道隱私推測提供了更多的隱私敏感信息。在這種背景下,邊信道隱私推測攻擊未來可能的發(fā)展趨勢如下。
1) 組合邊信道攻擊
組合多個邊信道可以使隱私推測在更多敏感信息的基礎(chǔ)上進行,一方面可以提高已有邊信道攻擊隱私推測的準確率,另一方面可以通過組合多種敏感信息推測新的隱私信息。在最近的研究中,文獻[46]組合緩存信息和傳感器狀態(tài)信息,用以提高推測用戶輸入內(nèi)容的準確性;文獻[47]組合用戶瀏覽網(wǎng)頁時的流量統(tǒng)計信息和輸入用戶名、密碼時的傳感器狀態(tài)信息,提出了可以推測用戶網(wǎng)站登錄憑證的邊信道攻擊。
2) 智能家居邊信道攻擊
智能家居中的智能設(shè)備都通過網(wǎng)絡(luò)互聯(lián)和訪問,從邊信道攻擊的角度來看,這些智能設(shè)備可以作為邊信道用來收集敏感信息,這增強了Android邊信道獲取隱私敏感信息的能力。隨著攻擊者對這些智能家居設(shè)備利用潛力的挖掘,邊信道隱私推測攻擊在智能家居環(huán)境下將會更加容易實現(xiàn)。事實上,文獻[44]已經(jīng)提出了一種智能家居邊信道攻擊,該文利用智能家居的Wi-Fi攝像頭配合Android系統(tǒng)的應(yīng)用流量邊信道,推測用戶是否在家。文獻[48]則提出通過對睡眠監(jiān)視器的流量分析推測用戶的睡眠狀態(tài)。
隱私信息泄露是目前Android移動設(shè)備最嚴重的安全威脅之一。本文對Android邊信道隱私推測攻擊進行了系統(tǒng)研究,主要從典型敏感信息邊信道、常用隱私關(guān)聯(lián)推測方法、邊信道攻擊應(yīng)用檢測、邊信道信息收集抑制這4個角度展開。本文按隱私關(guān)聯(lián)對象對Android移動設(shè)備邊信道進行了分類分析,總結(jié)了邊信道隱私推測中用到的匹配、識別、分類算法,分析了現(xiàn)有邊信道攻擊檢測抑制機制的主要方法和缺陷,分析了邊信道隱私推測攻擊的發(fā)展趨勢。
[1] KOCHER P C. Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems[C]//Annual International Cryptology Conference. 1996: 104-113.
[2] KOCHER P, JAFFE J, JUN B. Differential power analysis[C]// Annual International Cryptology Conference. 1999: 388-397.
[3] QUISQUATER J J, SAMYDE D. Electromagnetic analysis (ema): measures and counter-measures for smart cards[M]//Smart Card Programming and Security. Berlin: Springer. 2001: 200-210.
[4] MANGARD S, OSWALD E, POPP T. Power analysis attacks: revealing the secrets of smart cards[M]. Springer Science & Business Media, 2008.
[5] 國家計算機網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心. 2017 年第四季度國內(nèi)操作系統(tǒng)及瀏覽器占比情況分析[R].2018.
CNCERT. Analysis of the occupation ratio of domestic operating system and browser in the fourth quarter of 2017[R].2018.
[6] THURM S, KANE Y I. Your Apps are watching you[J]. The Wall Street Journal, 2010, 17(1).
[7] 張玉清, 王凱, 楊歡, 等. Android 安全綜述[J]. 計算機研究與發(fā)展, 2014, 51(7): 1385-1396.
ZHANG Y Q, WANG K, YANG H, et al. Survey of Android OS security[J]. Journal of Computer Research and Development, 2014, 51(7): 1385-1396.
[8] MAO J, CHEN Y, SHI F, et al. Toward exposing timing-based probing attacks in Web applications[J]. Sensors, 2017, 17(3): 464.
[9] JANA S, SHMATIKOV V. Memento: learning secrets from process footprints[C]//2012 IEEE Symposium on Security and Privacy (SP). 2012: 143-157.
[10] CHEN Q A, QIAN Z, MAO Z M. Peeking into your App without actually seeing it: UI state inference and novel Android attacks[C]//USENIX Security Symposium. 2014: 1037-1052.
[11] YAN L, GUO Y, CHEN X, et al. A study on power side channels on mobile devices[C]//The 7th Asia-Pacific Symposium on Internetware. 2015: 30-38.
[12] MICHALEVSKY Y, SCHULMAN A, VEERAPANDIAN G A, et al. PowerSpy: location tracking using mobile device power analysis[C]//USENIX Security Symposium. 2015: 785-800.
[13] ZHOU X, DEMETRIOU S, HE D, et al. Identity, location, disease and more: inferring your secrets from android public resources[C]// The 2013 ACM SIGSAC Conference on Computer & Communications Security. 2013: 1017-1028.
[14] TAYLOR V F, SPOLAOR R, CONTI M, et al. Robust smartphone app identification via encrypted network traffic analysis[J]. IEEE Transactions on Information Forensics and Security, 2018, 13(1): 63-78.
[15] CHANDRA S, LIN Z, KUNDU A, et al. Towards a systematic study of the covert channel attacks in smartphones[C]// International Conference on Security and Privacy in Communication Systems. 2014:427-435.
[16] MARFORIO C, RITZDORF H, CAPKUN S. Analysis of the communication between colluding applications on modern smartphones[C]//Computer Security Applications Conference. 2012:51-60.
[17] CAI L, CHEN H. TouchLogger: inferring keystrokes on touch screen from smartphone motion[C]//Usenix Conference on Hot Topics in Security. 2011:9-9.
[18] OWUSU E, HAN J, DAS S, et al. ACCessory: password inference using accelerometers on smartphones[C]//The Twelfth Workshop on Mobile Computing Systems & Applications. ACM, 2012: 9.
[19] 宋晨光, 劉建偉, 伍前紅, 等. 基于智能手表運動傳感器的新型攻擊及其防范[J]. 通信學(xué)報, 2015, 36(Z1): 235-242.
SONG C G, LIU J W, WU Q H, et al. New attack based on smartwatch motion sensors and the protection method research[J]. Journal on Communications, 2015, 36(Z1): 235-242.
[20] PING D, SUN X, MAO B. Textlogger: inferring longer inputs on touch screen using motion sensors[C]//The 8th ACM Conference on Security & Privacy in Wireless and Mobile Networks. 2015: 24.
[21] SPREITZER R. Pin skimming: exploiting the ambient-light sensor in mobile devices[C]//The 4th ACM Workshop on Security and Privacy in Smartphones & Mobile Devices. 2014: 51-62.
[22] HEMMINKI S, NURMI P, TARKOMA S. Accelerometer-based transportation mode detection on smartphones[C]//The 11th ACM Conference on Embedded Networked Sensor Systems. 2013: 13.
[23] HO B J, MARTIN P, SWAMINATHAN P, et al. From pressure to path: barometer-based vehicle tracking[C]//The 2nd ACM International Conference on Embedded Systems for Energy-Efficient Built Environments. 2015: 65-74.
[24] NARAIN S, VOHUU T D, BLOCK K, et al. Inferring user routes and locations using zero-permission mobile sensors[C]//Security and Privacy. 2016:397-413.
[25] HAMERS L. Similarity measures in scientometric research: the Jaccard index versus Salton's cosine formula[J]. Information Processing and Management, 1989, 25(3): 315-18.
[26] MüLLER M. Dynamic time warping[J]. Information Retrieval For Music and Motion, 2007: 69-84.
[27] LIAW A, WIENER M. Classification and regression by random- Forest[J]. Rnews, 2002, 2(3): 18-22.
[28] SUYKENS J A K, VANDEWALLE J. Least squares support vector machine classifiers[J]. Neural Processing Letters, 1999, 9(3): 293-300.
[29] EDDY S R. Hidden markov models[J]. Current Opinion in Structural Biology, 1996, 6(3): 361-365.
[30] DIAO W, LIU X, LI Z, et al. No pardon for the interruption: new inference attacks on android through interrupt timing analysis[C]// Security and Privacy. IEEE, 2016:414-432.
[31] MIKOLOV T, KARAFIáT M, BURGET L, et al. Recurrent neural network based language model[C]//The 11th Annual Conference of the International Speech Communication Association. 2010.
[32] SIMON L, XU W, ANDERSON R. Don’t interrupt me while i type: inferring text entered through gesture typing on Android keyboards[J]. Proceedings on Privacy Enhancing Technologies, 2016(3):136-154.
[33] 卿斯?jié)h.Android安全研究進展[J]. 軟件學(xué)報, 2016, 27(1):45-71.
QING S H. Research progress on Android Security[J]. Journal of Software, 2016, 27(1):45-71.
[34] ARZT S, RASTHOFER S, FRITZ C, et al. FlowDroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for Android apps[C]//ACM Sigplan Conference on Programming Language Design and Implementation. 2014:259-269.
[35] ENCK W, GILBERT P, CHUN B G, et al. TaintDroid: an information flow tracking system for real-time privacy monitoring on smartphones[J]. ACM Transactions on Computer Systems, 2010, 32(2):1-29.
[36] AAFER Y, DU W, YIN H. DroidAPIMiner: mining API-level features for robust malware detection in Android[C]// International Conference on Security and Privacy in Communication Systems. 2013:86-103.
[37] MARICONTI E, ONWUZURIKE L, ANDRIOTIS P, et al. MamaDroid: detecting android malware by building Markov chains of behavioral models[C]//Network and Distributed Systems Security Symposium(NDSS'17). 2017.
[38] BABIL G S, MEHANI O, BORELI R, et al. On the effectiveness of dynamic taint analysis for protecting against private information leaks on Android-based devices[C]// IEEE International Conference on Security and Cryptography. 2015:1-8.
[39] GRAA M, CUPPENS-BOULAHIA N, CUPPENS F, et al. Detection of side channel attacks based on data tainting in Android systems[C]//IFIP International Conference on ICT Systems Security and Privacy Protection. 2017: 205-218.
[40] 吳敬征, 武延軍, 羅天悅, 等. 一種基于權(quán)限控制機制的 Android 系統(tǒng)隱蔽信道限制方法[J]. 中國科學(xué)院大學(xué)學(xué)報, 2015, 32(5): 667-675.
WU J Z, WU Y J, LUO T Y, et al. A new mitigation approach for covert channel of Android operating system based on permission mechanism[J]. Journal of University of Chinese Academy of Sciences, 2015, 32(5): 667-675.
[41] SHRESTHA P, MOHAMED M, SAXENA N. Slogger: smashing motion-based touchstroke logging with transparent system noise[C]//ACM Conference on Security & Privacy in Wireless and Mobile Networks. 2016:67-77.
[42] SCHWARZ M, LIPP M, GRUSS D, et al. KeyDrown: eliminating software-based keystroke timing side-channel attacks[C]// Network and Distributed System Security Symposium. 2018.
[43] PETRACCA G, SUN Y, JAEGER T, et al. Android: preventing attacks on audio channels in mobile devices[C]// Computer Security Applications Conference. 2015:181-190.
[44] ZHANG N, YUAN K, NAVEED M, et al. Leave me alone: app-level protection against runtime information gathering on Android[C]//IEEE Symposium on Security and Privacy. 2015: 915-930.
[45] FELT A P, HA E, EGELMAN S, et al. Android permissions: user attention, comprehension, and behavior[C]//The Eighth Symposium on Usable Privacy and Security. 2012: 3.
[46] LIPP M, GRUSS D, SPREITZER R, et al. ARMageddon: cache attacks on mobile devices[C]//USENIX Security Symposium. 2016: 549-564.
[47] SPREITZER R, GRIESMAYR S, KORAK T, et al. Exploiting data-usage statistics for website fingerprinting attacks on Android[C]//The 9th ACM Conference on Security & Privacy in Wireless and Mobile Networks. 2016: 49-60.
[48] APTHORPE N, REISMAN D, FEAMSTER N. A smart home is no castle: privacy vulnerabilities of encrypted IoT traffic[C]// Workshop on Data and Algorithmic Transparency. 2016.
Review of side-channel privacy inference of Android mobile devices
SHI Futian, MAO Jian, LIU Jianwei
School of Electronic & Information Engineering, Beihang University, Beijing 100191, China
Android side channels may leak users’sensitive information. The existing Android side-channel attacks were analyzed and classified according to the type of the privacy-sensitive information with their inference models. The mainstream privacy inference approaches were analyzed and the deployed scenarios of these attacks were summarized. In addition, the mechanisms were discussed to detect or suppress the side-channel-based attacks and disclosed their limitations. Finally, the potential directions of research on side-channel-based privacy inference in Android systems were proposed.
Android, side-channel attack, privacy inference, mobile security
TP393
A
10.11959/j.issn.2096-109x.2018034
2018-02-02;
2018-03-20
毛劍,maojian@buaa.edu.cn
國家重點研發(fā)計劃基金資助項目(No.2017YFB0802400)
史福田(1991-),男,山東青島人,北京航空航天大學(xué)碩士生,主要研究方向為移動應(yīng)用安全。
毛劍(1978-),女,江蘇溧水人,博士,北京航空航天大學(xué)講師,主要研究方向為Web安全、移動終端安全、大數(shù)據(jù)安全與隱私保護。
劉建偉(1964-),男,山東萊州人,博士,北京航空航天大學(xué)教授、博士生導(dǎo)師,主要研究方向為密碼學(xué)、網(wǎng)絡(luò)安全。
The National Key R&D Program China (No.2017YFB0802400)