龐鵬飛 韓文聰 薛 源 于長富 謝常達
1(北京理工大學計算機學院 北京 100081)
2(中國人民解放軍32133部隊 山西大同 037034)
(664522431@qq.com)
隨著科學技術的發展,網絡設備和無線網絡的覆蓋范圍越來越大,人們對智能手機的青睞逐漸超過了PC.移動互聯網的發展和智能手機的普及促使市場上涌現出許多智能手機操作系統[1].Android系統作為源碼開放的智能手機操作系統,暴露的漏洞和面臨的風險越來越多[2].
Android手機存在數據安全風險.相關手機平臺的統計數據表明,Android平臺的惡意軟件非常之多[3],給廣大Android手機用戶帶來不可估量的損失[4].這些惡意軟件和病毒大都使用偽裝的方式,騙取用戶信任[5],通過獲取設備權限收集用戶隱私信息,并隱蔽上傳到遠程服務器[6].手機最為重要的特征是移動性,這使得它更容易暴露在不同的威脅環境中,并且其使用不依賴于外部物理安全[7].手機一旦脫離用戶視線,很容易受到離線攻擊竊取用戶隱私數據[8].根據相關安全研究人員發布的公告,Android設備在Web View編程接口方面存在漏洞[9],黑客利用這個漏洞能遠程下載手機SD卡的內容,并能捕獲應用程序相關數據[10].Android手機存在權限濫用、離線攻擊、漏洞攻擊等許多風險[11],因此有必要使用安全技術為用戶數據提供安全.
為了防止應用程序濫用權限,Google在Android6.0中引入了動態權限管理機制(runtime permission)[12],使得Android系統的權限管理更加嚴格完善[13].由于Android系統沒有對惡意軟件濫用權限的行為提供檢測機制,這給用戶手機安全特別是數據安全埋下隱患[14].為提升Android手機數據安全,Google從Android3.0開始引入全磁盤加密技術(full disk encryption,FDE)[15].許多黑客利用FDE統一管理密鑰的漏洞進行攻擊,來破解FDE加密技術,比如冷啟動攻擊、仆人攻擊等[16].Android系統的FDE加密密鑰存儲在高通驍龍芯片的TrustZone區域中,這個區域用來運行可信執行環境(trusted execution environment)[17-18].為了克服FDE的缺點,Google從Android7.0開始,提供了文件級加密(file based encryption,FBE)[19].雖然FBE能夠通過不同密鑰實現更細粒度的文件加密[20],但是FBE也存在一些不足而無法滿足用戶的安全要求.首先,使用FBE加密文件占用計算機很多資源,性能明顯下降;其次,FBE是文件級加密,其產生的數據明文碎片容易造成數據泄露;最后,FBE只能對內部存儲器實施加密,無法對外部存儲實施保護.
為了解決Android系統的數據安全問題,本文實現了一種基于Android內核擴展的數據保護技術,即在Android內核文件系統中過濾用戶隱私文件并進行文件重定向,然后攔截文件數據,接著利用AES加密技術,將用戶數據分塊加密,最后將加密數據寫入隱藏的data分區塊組.
本文的貢獻如下:
1)對Android手機內核進行深度定制以實現用戶隱私數據分塊加密;
2)通過所提出的方案實現了塊設備級數據存儲,提升了數據存儲的安全性.
本節通過介紹國內外學者對Android系統權限管理和數據保護的研究現狀,分析其不足并提出本文的設計方案.
Android手機的系統保護主要是基于Android權限管理機制,許多資源比如GPS,Camera都是通過系統服務實現訪問控制[21],這是一種粗粒度的訪問控制技術[22],不能有效地阻止手機程序對系統資源的濫用[23],很多Android惡意代碼借此進行攻擊.針對Android系統權限被濫用的問題,研究人員主要從應用行為和隱私數據2個方面檢測惡意應用.
1)基于應用行為檢測惡意應用.賓夕法尼亞州立大學的Enck等人[24]發現Android平臺的大部分應用都會使用與自身無關的權限,竊取用戶隱私數據并上傳到服務器.Enck等人[25]提出了基于安全規則的輕量級權限檢查方法,通過對危險權限組合進行分類來識別惡意應用.Burguera等人[26]提出了基于Android系統惡意行為的檢測系統Crowdroid,通過收集并分析應用程序產生的系統調用,檢測惡意行為為用戶提供安全保護.
2)基于隱私數據檢測惡意應用.北京大學的王磊[27]提出了一種Android系統增強型權限控制機制,在應用程序安裝和運行時執行權限檢測.北京郵電大學的湯瑾[28]通過對隱私數據添加標記來實現數據保護,利用網絡數據包攔截技術限制應用向外傳輸帶標記的數據,避免發生泄密隱患.上海交通大學的苑舉立[29]提出了一種用來檢測Android系統應用權限泄露的靜態分析方法,通過將應用權限轉化為規則,使用控制流圖和數據流圖驗證組件包含的權限,并生成權限泄露報告.
雖然許多學者提出可行性方案來檢測惡意應用,但是由于模型復雜不容易推廣.本文提出了一種基于Android內核驅動程序的權限管理方案,針對性強,容易實現.

圖1 拍照程序流程圖
針對Android系統數據被竊取的問題,許多學者研究了Android系統的數據保護技術.Huang等人[30]提出了一種基于用戶空間文件系統(FUSE)保護隱私數據的方案.該方案通過為應用程序引入新的GID細化了Android系統權限控制機制,實現外部存儲器中用戶隱私數據的隔離.Lu等人[31]提出了一種通過整合加密和散列方案,實現了數據安全高效存儲.該方案通過掃描Android用戶應用程序和隱私數據清單,借助加密模型實現隱私數據的保護控制.Gao等人[32]提出了一種基于隱藏加密卷和數據卷的方式實現的數據保護技術.該技術通過Google FDS加密系統Dmcrypt實現數據底層透明加解密,用戶需要通過啟動手機來切換正常模式和隱藏模式.
雖然已經有大量學者提出了Android系統數據保護方案,但只能實現離線攻擊保護.這些方案由于加解密同機操作,隱私數據在磁盤和內存以明文顯示,同時產生磁盤碎片,容易被黑客劫持數據.本文提出了一種基于Android內核的數據保護方案,首先將用戶隱私數據分塊加密,然后寫入隱藏的data分區塊組,最后通過文件提取工具,分塊解密用戶數據并還原為原始文件.
Android應用層圖像、視頻程序面臨許多風險:首先,Camera應用獲取的用戶數據經過多層傳遞,容易被竊取;其次,這些應用生成的圖像、視頻數據在內存以明文存儲,容易受到黑客的攻擊;最后,應用層存在文件存儲風險,惡意軟件可以輕易獲取用戶數據文件,文件存儲缺乏隱蔽性.因此,本文需要重新設計圖像、視頻程序,并實現用戶數據文件的安全存儲.首先是通過分析Camera接口與函數調用,開發拍照原生程序;其次是通過分析MediaRecorder接口與函數調用,開發錄像原生程序;最后,選擇隱藏的數據分區塊組,用于存儲加密后的圖像、視頻數據.
如圖1所示,Android系統拍照流程主要包括創建Camera實例、設置預覽參數、啟動預覽、拍照和停止預覽.拍照程序每次監測到拍照命令,首先要調用函數autoFoucus()實現自動對焦,然后調用函數takePicture()進行加密保護,最后調用函數stopPreview()停止預覽.如果要多次拍攝照片,停止預覽后需要重新調用startPreview()啟動預覽.函數takePicture(int msg Type)接收的參數值為CAMERA-MSG-COMPRESSED-IMAGE,所以Camera會調用函數handleCompressedPicture()處理回調的數據,然后通過函數dataCallback()對圖像數據實施保護.本文采取分塊寫入策略實施圖像數據保護,每塊寫入4 096 b,數據寫入流程如圖2所示:

圖2 圖像數據存儲流程圖
Android Camera圖像數據寫入流程為:
①msg Type值是否為256,如果不是,執行步驟⑦;如果是,執行步驟②;
②計算寫入數據的次數N;
③初始化計數變量i=0;
④判斷i≤N,如果是,執行步驟⑤,如果不是,執行步驟⑦;
⑤將tempBuffer寫入文件,計算寫入temp-Buffer數據:如果i<N,從Buffer中取出4096 B數據給tempBuffer;如果i=N,將Buffer中剩余數據復制到tempBuffer;
⑥計數變量i自增,返回步驟④;⑦程序結束.
依據Android開發者官網上提供的MediaRecorder video works程序流程,錄像程序開發大致分為:初始化Camera對象、初始化surface對象、初始化MediaRecorder對象、設置相關視頻參數、預覽、開始錄制、停止錄制7個部分,具體流程如圖3所示.
錄像程序流程為:
①初始化Camera對象;

圖3 錄像程序流程圖
②通過函數getCameraService()獲取Camera服務,然后執行Connect Camera.Android Camera包括前置和后置2種,需要指明CameraId;
③初始化surface對象,設置預覽圖像尺寸、像素格式;
④ 初始化 MediaRecorder對象,并設置將Camera對象賦予MediaRecorder;
⑤設置相關視頻參數,比如音視頻來源、輸出文件格式、音視頻編碼、比特率、視頻分辨率、文件輸出路徑和幀率等;
⑥通過函數prepare()和start(),準備并啟動錄像;
⑦監測用戶命令,判斷是否停止錄像,如果否,執行步驟⑧;否則,執行步驟⑨;
⑧保存視頻數據,繼續執行步驟⑦;
⑨停止錄像,釋放資源.
MediaRecorder提供了接口函數setOutput-File()來保存視頻文件,但是沒有數據回調函數,無法使用分塊加密技術對視頻數據進行保護.
本文將用戶隱私數據分塊加密并寫入隱藏的data分區.要想隱藏部分data分區,首先將空數據的磁盤鏡像文件刷入data分區,然后找到連續空閑的磁盤塊組進行屏蔽,用于存儲用戶隱私數據.本文實驗手機是HTC E9pw,具體操作步驟如下.
首先,cd是Linux中用于切換目錄的命令,此處表示切換到指定目錄后,然后執行ll命令查找data分區位置為mmcblk0p43.
其次,cd到/sys/block/mmcblk0/mmcblk0p43目錄,使用cat size命令得到data分區size=49037312,大小為23 GB.
然后,通過dd命令制作大小為23 GB的空磁盤鏡像文件,并將鏡像文件刷入手機.
接著,通過cd到proc/fs/ext4/mmcblk0p43目錄,使用cat mb-groups命令查看塊組使用情況,其中free為當前空閑的block數目,如果是32768說明當前塊組未被使用,可以找出5 GB的空閑塊組,用于制作隱藏的userdata分區.
最后,在Android內核源碼中通過修改mballoc.c文件,將隱藏的塊組進行屏蔽.由于寫入塊組需要特殊權限,所以要修改selinux/avc.c文件和fs/namei.c文件,賦予內核數據保護程序特殊權限,允許將隱私數據寫入隱藏的data分區塊組.
如圖4所示,Camera數據的保護分為開機前、后2部分.開機前,Android系統啟動內核和Android系統相關服務,通過定制的Camera驅動程序,阻止其他應用程序訪問Camera設備,避免權限濫用,同時借助Android系統自啟動服務嵌入Camera監聽程序.開機后,用戶通過特殊命令啟動數據保護工作模式,執行拍照、錄像原生程序,內核數據保護程序會根據用戶輸入的密鑰對圖像、視頻數據進行加密和文件重定向.

圖4 基于Android內核的數據保護實現流程圖
執行拍照、錄像的原生程序前需要實現3個關鍵步驟:控制Camera權限、啟動數據保護模式,啟動原生程序.
1)根據Android Camera分層架構可知,Camera在底層通過調用內核的驅動程序實現拍照、預覽功能.通過研究Android內核,利用Linux內核日志信息,尋找控制Camera設備的相關驅動,添加Camera訪問控制邏輯,實現Camera的權限控制.
2)數據保護模式是數據保護的總開關,只有啟動數據保護模式才能開啟圖像、視頻數據保護功能.本文通過Android文件系統的重命名操作實現數據保護開關.文件重命名函數為vfs-rename,包含4個參數,其中old-dir是舊的文件目錄,old-dentry是舊的目錄項對象,new-dir是新的文件目錄,new-dentry是新的目錄項對象,通過目錄項可以獲取用戶輸入的文件名.通過以上分析可以確定實現數據保護開關的方案:首先通過文件重命名將用戶命令傳入內核層;然后內核層函數vfs-rename()分析處理用戶命令,實現數據保護開關控制.
3)啟動Camera原生程序需要解決面臨3個問題:首先,怎么啟動監聽拍照、錄像程序;其次,用戶命令怎么在應用層、Framework層和Linux內核層實現消息傳輸;最后,如何控制拍照、錄像程序運行.
本文選擇開機啟動的Debuggerd進程來嵌入監聽主程序.在內核/system/core/debuggerd.cpp程序中,可以找到啟動Debuggerd進程的main函數,在這里可以編寫自定義的拍照、錄像監聽程序.監聽程序每5 s執行一次,掃描用戶是否發出命令,如果接收到用戶命令就調用子程序執行拍照、錄像事件.
本文利用uptime命令實現消息傳遞,具體方案為:內核層將用戶命令嵌入到uptime中,Framework層監聽程序讀取uptime命令的結果,然后執行相應業務邏輯.
本文通過監控手機按鍵事件實現手機拍照、錄像的啟動和結束.Android源碼frameworks層提供了實現手機按鍵事件的C程序代碼input.h,該文件定義了事件常量枚舉值.只要對input.h文件注冊監聽事件就可以檢測用戶的按鍵操作.
用戶隱私數據的安全存儲包含3個步驟:密鑰獲取、文件捕獲和重定向、數據存儲.
首先,本系統采用主流的AES對稱加密算法加解密數據,需要根據用戶的密碼生成加密密鑰.通過文件重命名的方式,將用戶命令和加密密碼傳遞到內核加密程序,實現數據的加密.
其次,Android系統虛擬文件層用來處理文件的打開、關閉和讀寫操作.函數do-filp-open()用來打開并返回文件對象,其包含4個參數,dfd是文件描述符,pathname是文件路徑,op是文件操作,flag是標志值.本文通過校驗pathname→name中的文件后綴名,捕獲圖像視頻文件,然后通過在函數path-openat()中對參數pathname進行重新賦值,將捕獲的圖像、視頻文件重定向到保護目錄.
最后,利用虛擬文件層的函數vfs-write()來實現數據寫入.函數vfs-write()有4個參數:filp是文件對象,存儲文件名、inode等信息;buffer是緩沖區,存儲文件數據;length是寫文件的數據大小;pos是寫文件的數據位置.本文利用vfs-write()監控圖像、視頻數據,將buffer中緩沖數據寫入隱藏的data分區塊組,實現用戶隱私數據的安全存儲.
如圖5所示,對于隱藏的data分區塊組,按照每塊4096B重新劃分,整體分為2個部分:索引部分和數據部分.索引部分前16 B用于存儲當前可用的空閑塊組地址,其余部分依次存儲每個文件的相關索引信息,比如文件類型、密鑰和文件地址等信息.

圖5 隱藏data分區的文件存儲結構

圖6 緩沖區數據結構
用戶隱私數據分為順序寫入和數據回寫2種類型,比如照片文件是一次性順序寫入,視頻數據存在分時寫入和數據回寫問題.對于順序寫入只要分塊加密并將數據依次寫入塊組即可,而針對視頻文件的數據回寫問題,需要設計專用的緩沖區數據結構來存儲數據.緩沖區數據結構如附圖6所示,本發明采用分塊寫入數據,每塊大小為4096 B,源緩沖區是函數vfs-write傳輸的隱私數據,目的緩沖區是寫入隱藏userdata分區塊組的數據,inoffset是源緩沖區寫入起始位置,out-offset是目的緩沖區寫入起始位置,write-size是當前可以寫入目的緩沖區的數據大小.
數據寫入策略為:1)如果源緩沖區中準備寫入的數據塊小于write-size空閑塊時,當前數據塊容量滿足要求,寫入結束.如果寫入的數據超出空閑塊大小時,需要計算寫入的數據塊位置in-offset,out-offset和準備寫入的數據塊大小writesize.2)對于回寫的數據比如視頻數據,需要判斷當前寫入位置的數據是否存在回寫,如果是,先取出當前數據塊進行解密,再寫入本次視頻數據并加密;否則,直接寫入加密的數據塊.
為了檢驗基于Android內核擴展的圖像、視頻數據保護方案的有效性,本節從加密前后數據內容、加密前后文件大小和加密前后CPU占用率3個方面進行測試以驗證方案的有效性.本實驗是在HTC E9pw(Android OS version:Lollipop,Kernel version:3.1)手機進行測試.
本文對照片、視頻數據內容采用了AES加密,改變文件的格式和內容從而實現數據的保護.下面分別對加密前后照片和視頻數據內容進行對比分析.
JPEG照片的EXIF信息由許多標記塊組成,常用的標記塊有:Start of Image(SOI)0xFFD8,End of Image(EOI)0xFFD9和Application(APP1)0xFFE1等.如圖7和圖8所示,可以看出加密前后的照片16進制數據變化.
1)加密前的SOI是“FFD8”,加密后的SOI是“62D3”;
2)加密前的APP1是“FFE1”,加密后的APP1是“1E39”;
3)加密前的EOI是“FFD9”,加密后的EOI是“7056”.

圖7 圖像加密前16進制數據

圖8 圖像加密后16進制數據

圖9 視頻加密前16進制數據
MPEG4視頻由許多Box組成的,Box排列順序是FTYP,MDAT,MOOV.如圖9和圖10所示,可以看出加密前后的視頻16進制數據變化.
1)加密前FTYP前4B內容為“0x00000018”,加密后為“0x5B565BDF”;
2)加密前MDAT前4B內容為“0x00000001”,加密后為“71BDD71C”;
3)加密前MOOV前4B內容為“0x00000ED3”,加密后為“0x3D21D929.
通過Win Hex對加密前后視頻數據的對比,發現JPEG照片的EXIF信息標記塊、視頻數據的MPEG格式發生了變化,數據受到破壞.這說明AES數據加密有明顯的效果,可以實現數據保護.
為了研究本文的數據保護技術對生成文件的影響,通過區分不同場景,測試了照片和視頻文件的大小.如表1和表2所示,3種場景的加密前后圖像、視頻大小完全一致.本文采用AES的循環冗余對稱加密算法,每輪采用異或運算,不影響數據大小.

圖10 視頻加密后16進制數據

表1 加密前后圖片文件大小 KB

表2 加密前后視頻文件大小 MB
本文采用Linux的top命令,測試了Camera工作時數據保護前后CPU的占用率.為了測試拍照過程mediaserver進程的CPU占用率,本文采用相關的測試方法:首先分別采集數據保護前和保護后的圖像數據,3 s 1張,10張照片為1組,測試10組數據;然后利用top命令計算每組數據mediaserver進程的CPU平均占用率.如圖11所示,對拍照進行數據保護后,mediaserver進程的CPU占用率有所上升.這是由于:1)本文采用基于AES的加密算法,寫入前要進行加密,寫入速度有所延遲;2)本文調用自定義的拍照程序,逐塊寫入文件,沒有采用高速緩沖區,所以對CPU資源的消耗較大.

圖11 圖像數據加密前后CPU占用率
為了測試視頻保護前后CPU占用率,本文采用了相關測試方法:首先分別采集數據保護前、后視頻數據,視頻時長20 s,一共采集10組測試數據;然后利用top命令計算每組數據mediaserver進程的CPU平均占用率.如圖12所示,對視頻數據實施保護后mediaserver進程CPU占用率有所上升.這是因為:1)本文采用特殊策略對視頻數據進行了回寫處理;2)對視頻數據采用分塊加密處理,耗費系統資源.

圖12 視頻數據加密前后CPU占用率
本文針對Android設備權限濫用和數據被竊取風險,通過研究Camera,MediaRecorder接口與函數調用,開發了拍照、錄像原生程序,并提出了基于Android內核擴展的Camera數據保護技術解決方案.本文使用HTC E9pw型號手機進行了真機測試.實驗表明,本方案可以在Android內核底層對圖像、視頻數據實現分塊加密,而且還可以推廣到其他設備,為用戶提供數據安全.本方案是基于Android內核擴展的數據保護,實驗需要修改內核,可移植性差.在以后的研究中,我們需要繼續研究更加通用、安全、便捷的數據保護技術,為數據保護領域提供思路,貢獻自己的一份力量.
[1]Jiang F,Huang X.Development Report on China's wearable devices in 2014[M]//Development Report on China's New Media.Berlin:Springer,2017:129-145
[2]Enck W,Ongtang M,Mcdaniel P.Understanding Android security[J].IEEE Security&Privacy,2009,7(1):50-57
[3]Shen J,Gong S,Bao W.Analysis of network security in daily life[J].Information and Computer Security,2018,1(1):1-9
[4]Yu L,Luo X,Liu X,et al.Can We trust the privacy policies of Android apps?[C]//Proc of IEEE/IFIP Int Conf on Dependable Systems and Networks.Piscataway,NJ:IEEE,2016:538-549
[5]Basu P,Rajamanikkam C,Bal A,et al.FIFA:Exploring a focally induced fault attack strategy in near-threshold computing[J].IEEE Embedded Systems Letters,2017,(99):1-1
[6]李金龍.基于內核擴展的智能手機安全加固技術[D].北京:北京理工大學,2015
[7]Prashantjawade P,Thakre SS.Physical security for nobile devices using novel application lockbox[J].International Journal of Innovative Research in Computer&Communication Engineering,2013,1(5):1238-1245
[8]Cortier V,Filipiak A,Florent J,et al.Designing and proving an EMV-compliant payment protocol for mobile devices[C]//Proc of 2017 IEEE European Symp on Security and Privacy(EuroS&P).Piscataway,NJ:IEEE,2017:467-480
[9]Shezan F H,Afroze S F,Iqbal A.Vulnerability detection in recent Android apps:An empirical study[C]//Proc of 2017 Int Conf on Networking,Systems and Security(NSysS).Piscataway,NJ:IEEE,2017:55-63
[10]Hong S,Liu C,Ren B,et al.Poster:Sdguard:An Android application implementing privacy protection and ransomware detection[C]//Proc of Int Conf on Mobile Systems,Applications,and Services.New York:ACM,2017:149-149
[11]Cai S,Huang R,Yang N,et al.Research on dynamic safe loading techniques in Android application protection system[C]//Proc of Int Conf on Smart Computing and Communication.Berlin:Springer,2017:134-143
[12]Wijesekera P,Baokar A,Tsai L,et al.The feasibility of dynamically granted permissions:Aligning mobile privacy with user preferences[C]//Proc of 2017 IEEE Symp on Security and Privacy(SP).Piscataway,NJ:IEEE,2017:1077-1093
[13]Andriotis P,Sasse M A,Stringhini G.Permissions snapshots:Assessing users'adaptation to the Android runtime permission model[C]//Proc of IEEE Int Workshop on Information Forensics and Security.Piscataway,NJ:IEEE,2016:1-6
[14]楊博.Android系統下應用程序的安全性研究[D].上海:上海交通大學,2013
[15]Hong S,Liu C,Cheng B,et al.MobiGemini:Sensitivebased data and resource protection framework for mobile device[J].China Communications,2017,14(7):1-11
[16]Müller T,Spreitzenbarth M.FROST[C]//Proc of Int Conf on Applied Cryptography and Network Security.Berlin:Springer,2013:373-388
[17]Rosculete L,Rosculete L,Mitra T,et al.Automated partitioning of Android applications for trusted execution environments[C]//Proc of IEEE/ACM Int Conf on Software Engineering.Piscataway,NJ:IEEE,2017:923-934
[18]Zhang Y,Zhao S,Qin Y,et al.Trust TokenF:A generic security framework for mobile two-factor authentication using trustzone[C]//Proc of IEEE Trustcom/Bigdatase/Ispa.Los Alamitos,CA:IEEE Computer Society,2015:41-48
[19]Gao C,Yang C H.File-based encryption with SM4[C]//Proc of the 2nd IEEE Int Conf on Data Science in Cyberspace(DSC).Piscataway,NJ:IEEE,2017:426-430
[20]Hazra S,Mateti P.Challenges in Android forensics[C]//Proc of Int Symp on Security in Computing and Communication.Berlin:Springer,2017:286-299
[21]Cai X,Gu X,Wang Y,et al.Enforcing ACL access control on Android platform[C]//Proc of Int Conf on Information Security.Berlin:Springer,2017:366-383
[22]Chang R,Jiang L,Chen W,et al.Towards a multilayered permission-based access control for extending Android security[J].Concurrency&Computation Practice&Experience,2018,30(5):e4414
[23]Wu J,Yang M,Luo T.PACS:Pemission abuse checking system for Android applictions based on review mining[C]//Proc of 2017 IEEE Conf on Dependable and Secure Computing.Piscataway,NJ:IEEE,2017:251-258
[24]Enck W,Octeau D,Mcdaniel P,et al.A study of Android application security[C]//Proc of USENIX Conf on Security.Berkeley,CA:USENIX Association,2011:21-21
[25]Enck W,Ongtang M,McDaniel P.On lightweight mobile phone application certification[C]//Proc of the 16th ACM Conf on Computer and Communications Security.New York:ACM,2009:235-245
[26]Burguera I,Zurutuza U,Nadjm-Tehrani S.Crowdroid:Behavior-based malware detection system for Android[C]//Proc of ACM Workshop on Security and Privacy in Smartphones and Mobile Devices.New York:ACM,2011:15-26
[27]王磊.Android增強型權限控制機制的設計與實現[D].北京:北京大學,2011
[28]湯瑾.Android平臺下的隱私數據保護方法的研究與實現[D].北京:北京郵電大學,2014
[29]苑舉立.Android應用的權限泄露分析[D].上海:上海交通大學,2014
[30]Huang F,Wu W,Yang M,et al.A fine-grained permission control mechanism for external storage of Android[C]//Proc of IEEE Int Conf on Systems,Man,and Cybernetics.Piscataway,NJ:IEEE,2017:002911-002916
[31]Lu Y F,Kuo C F,Fang Y Y.Efficient storage encryption for Android mobile devices[C]//Proc of Int Conf on Research in Adaptive and Convergent Systems.New York:ACM,2016:213-218
[32]Gao H,Guo X Y.Android oriented deniable and transparent encryption system[J].Computer Engineering&Design,2016,37(2):319-323