王慶+袁珺+沈嘉薈+穆楠
摘 要:Android 平臺(tái)的安全問題越來(lái)越引起關(guān)注,盡管權(quán)限機(jī)制、隔離機(jī)制、應(yīng)用簽名等方式被用來(lái)保護(hù)平臺(tái)的安全性,但是這種以應(yīng)用開發(fā)者為中心、依托用戶完成的粗粒度授權(quán)和訪問控制機(jī)制存在諸多缺陷,導(dǎo)致系統(tǒng)安全性大大降低,容易受到權(quán)限提升攻擊。針對(duì)這種攻擊,現(xiàn)有的解決方案主要集中在加強(qiáng)中間層的防護(hù)措施,意味著攻擊者如果能夠跨越中間層,直接在應(yīng)用層和內(nèi)核層之間進(jìn)行通信,則可以繞開 Android 系統(tǒng)中間軟層的若干安全機(jī)制,實(shí)現(xiàn)對(duì)應(yīng)用層的權(quán)限提升攻擊。為了驗(yàn)證這種設(shè)想,論文提出了一種針對(duì)Android系統(tǒng)位置信息服務(wù)的權(quán)限提升攻擊方案,通過編寫可以在普通應(yīng)用進(jìn)程中運(yùn)行的且可替代 Android 位置信息服務(wù)原生庫(kù)的動(dòng)態(tài)鏈接庫(kù),使得應(yīng)用層請(qǐng)求只要調(diào)用該動(dòng)態(tài)鏈接庫(kù)就可以在沒有權(quán)限的情況下繞過 Android 權(quán)限機(jī)制到達(dá)底層,并獲得位置信息數(shù)據(jù),實(shí)驗(yàn)結(jié)果表明此方案可以實(shí)現(xiàn)權(quán)限提升,證實(shí)了現(xiàn)有Android 平臺(tái)安全機(jī)制的不足。
關(guān)鍵詞:Android; 訪問控制; 安全機(jī)制; 權(quán)限提升攻擊
中圖分類號(hào): TP302 文獻(xiàn)標(biāo)識(shí)碼:A
Abstract: With the continuous extension of application fields, the security problem of Android platform is more and more obvious. Although adopting the authority mechanism, isolating mechanism and application of signature, there are still lots of drawbacks in Android coarse-grained authorization and access control mechanism, which is developer-oriented and is based on users. This results in greatly lower security and being vulnerable to privilege escalation attack in application layer. For this type of attack, existing solutions are mainly concentrated on strengthening the security protection in the middleware. If the communication can be carried out between application layer and kernel layer directly, then privilege escalation attack can obtain success as bypassing those security mechanisms in the middle layer. In this paper, we proposes a privilege escalation attack scheme against Android Location Information service. we built a Dynamic Link Library, which can be run in common application process, to replace the native library. Through calling the Dynamic Link Library, requests in the application layer can bypass the Android access mechanism to reach the bottom and gain the location information data. The experimental results show that this scheme can realize elevated privileges, confirmed the shortage of the existing Android platform security mechanism.
Key words: android; access control; security mechanism; privilege escalation attack
1 引言
自2009年谷歌正式發(fā)布安卓(Android)系統(tǒng)第一版至今,Android出現(xiàn)已經(jīng)是第九個(gè)年頭了,其憑借開放平臺(tái)的特征帶來(lái)了大量的市場(chǎng)占有率,根據(jù)StatCounter監(jiān)測(cè)機(jī)構(gòu)公布的最新數(shù)據(jù),2017年3月,使用Android系統(tǒng)的用戶占比達(dá)37.93%[1],其使用量首次超過Windows系統(tǒng),成為全球最常使用的操作系統(tǒng)。隨著使用量的增加,其安全性也受到了越來(lái)越多的關(guān)注。騰訊安全實(shí)驗(yàn)室發(fā)布的2016手機(jī)安全報(bào)告也指出,手機(jī)遭遇安全危害的Android系統(tǒng)用戶占比37.2%,位居第一[2],CVE Details公布的2016年報(bào)告顯示,存在安全漏洞最多的軟件產(chǎn)品是Android系統(tǒng),共計(jì)為523處[3]。以上數(shù)據(jù)表明Android系統(tǒng)安全隱患不容忽視。
Android系統(tǒng)主要存在于移動(dòng)通信中,目前用戶對(duì)計(jì)算機(jī)安全認(rèn)知程度非常高,而對(duì)移動(dòng)通信的認(rèn)知很低,甚至不少用戶還沒有意識(shí)到移動(dòng)通信端存在安全問題。如手機(jī)上存儲(chǔ)著隱私性的移動(dòng)通信用戶個(gè)人信息,惡意操作多以資費(fèi)消耗、隱私竊取和系統(tǒng)破壞為主,有時(shí)還通過自動(dòng)聯(lián)網(wǎng)、自動(dòng)撥號(hào)和自動(dòng)發(fā)送短信注冊(cè)服務(wù),使用戶蒙受經(jīng)濟(jì)損失。另外,在用戶不知情的情況下獲取用戶通訊錄、地理位置及信用卡等敏感數(shù)據(jù),會(huì)造成不可估量的損失[4]。所以,對(duì)移動(dòng)通信安全性的有效檢測(cè)和評(píng)估,來(lái)提高安全性至關(guān)重要。endprint
Android系統(tǒng)存在如此嚴(yán)重安全隱患的主要原因就是,它是一種權(quán)限分離的操作系統(tǒng),即一個(gè)應(yīng)用程序想實(shí)現(xiàn)功能,就必須獲取相應(yīng)的系統(tǒng)權(quán)限。權(quán)限獲取后,程序在后臺(tái)對(duì)權(quán)限的調(diào)用就可能會(huì)涉及到通信簿、短信、位置信息等各種隱私[5]。Android系統(tǒng)同時(shí)有多個(gè)應(yīng)用在運(yùn)行,多個(gè)應(yīng)用也設(shè)置了對(duì)應(yīng)的訪問權(quán)限,應(yīng)用之間可以互相訪問,就出現(xiàn)了權(quán)限擴(kuò)展導(dǎo)致的提權(quán)漏洞。正是這個(gè)漏洞的存在,有些沒有特定API訪問權(quán)限的應(yīng)用可以通過對(duì)第三方應(yīng)用的訪問,間接實(shí)現(xiàn)某些超越自身權(quán)限的功能,這就是權(quán)限提升攻擊,這種攻擊具體可以分為混淆代理人攻擊(Confused Deputy Attack)和共謀攻擊(Collusion Attack)[6-8]?;煜砣斯羰侵笎阂獬绦蚶闷渌绦虻奈幢Wo(hù)接口來(lái)間接獲得特權(quán)功能,普遍存在于 Android缺省程序(如電話、鬧鐘、音樂和設(shè)置程序)以及第三方程序中。共謀攻擊是應(yīng)用層權(quán)限提升攻擊的另外一種方式:惡意程序可以通過共謀來(lái)合并權(quán)限,從而執(zhí)行超出各自特權(quán)的動(dòng)作。Davi L等人[9]實(shí)現(xiàn)了一個(gè)短信劫持的混淆代理人攻擊。文獻(xiàn)[10]利用兩個(gè)分別具有錄音和網(wǎng)絡(luò)權(quán)限的應(yīng)用,實(shí)現(xiàn)了應(yīng)用間權(quán)限提升共謀攻擊。
針對(duì)Android 系統(tǒng)的安全采取的措施層出不窮,根據(jù)應(yīng)用于系統(tǒng)位置的不同劃分為三類,分別是內(nèi)核層保護(hù)、中間層保護(hù)(系統(tǒng)庫(kù)和運(yùn)行環(huán)境、應(yīng)用框架)和應(yīng)用層保護(hù)。Android系統(tǒng)內(nèi)核是Linux 內(nèi)核,安全增強(qiáng)工作普遍基于安全模塊 LSM( Linux Security Module)實(shí)現(xiàn)。SELinux on Android[11]關(guān)注內(nèi)核層的權(quán)限提升攻擊,SEAndroid使得 SELinux 在 Android 上的實(shí)現(xiàn)成為可能。TrustDroid[12]提出了Android 軟件棧中不同層域孤立問題的解決方法,其依賴 Linux 文件權(quán)限機(jī)制來(lái)執(zhí)行內(nèi)核層的孤立。中間層通過應(yīng)用層權(quán)限管理、運(yùn)行時(shí)動(dòng)態(tài)權(quán)限檢測(cè)等機(jī)制對(duì)抗應(yīng)用層權(quán)限提升攻擊。例如IPC Inspection[13]將被調(diào)用者的有效權(quán)限減少為調(diào)用者與被調(diào)用者權(quán)限的交集;Quire[14]跟蹤IPC 的調(diào)用鏈來(lái)減少權(quán)限,并提出一種輕量級(jí)的簽名方案,通過創(chuàng)造簽名語(yǔ)句來(lái)抵抗混淆代理人攻擊。
Apex[15]是一個(gè)政策執(zhí)行Framework,運(yùn)行用戶在安裝時(shí)選擇的同意權(quán)限并且對(duì)APP運(yùn)行時(shí)的行為強(qiáng)加限制。應(yīng)用層應(yīng)用程序的靜態(tài)分析是Android系統(tǒng)應(yīng)用層的主要權(quán)限保護(hù)機(jī)制,用于識(shí)別 Android 應(yīng)用程序是否申請(qǐng)多余權(quán)限或提供未保護(hù)的開放特權(quán)接口等安全缺陷。
上述安全機(jī)制只關(guān)注各層對(duì)權(quán)限的分別保護(hù),忽略了層間的配合,對(duì)上下文不敏感。這也為應(yīng)用層權(quán)限提升攻擊提供了可乘之機(jī)。經(jīng)過深入調(diào)研發(fā)現(xiàn)Android系統(tǒng)的安全機(jī)制存在幾個(gè)缺陷:以用戶為中心,依托用戶完成授權(quán)工作,極大地降低了系統(tǒng)的安全性;解決方案過度依賴于中間層,如靜態(tài)分析很多成果依賴于Android權(quán)限機(jī)制,該機(jī)制是在中間層中實(shí)現(xiàn)的。
解決方案的不足導(dǎo)致存在這樣一種情況,即如果一種攻擊方法可以直接穿透中間層到達(dá)底層,則可以繞過安卓中間層的安全方案和所有層的權(quán)限管理機(jī)制。基于此種假設(shè),為驗(yàn)證Android仍然存在安全漏洞,本文提出了一種針對(duì)Android系統(tǒng)位置信息服務(wù)的權(quán)限提升攻擊方案,通過編寫可以在普通應(yīng)用進(jìn)程中運(yùn)行的且可替代 Android位置信息服務(wù)原生庫(kù)的動(dòng)態(tài)鏈接庫(kù),使得應(yīng)用層請(qǐng)求只要調(diào)用該動(dòng)態(tài)鏈接庫(kù)就可以在沒有權(quán)限的情況下繞過 Android 權(quán)限機(jī)制到達(dá)底層,并獲得位置信息數(shù)據(jù)。
2 攻擊方案
2.1 Android定位服務(wù)流程
Android 系統(tǒng)擁有位置信息服務(wù),定位方法包括四種,分別是GPS定位、WiFi定位、基站定位、AGPS定位。Android 位置信息服務(wù)的調(diào)用流程分析如下。LocationManager為整個(gè)定位服務(wù)的入口類。在LocationManager.java (位于:frameworks/base/location/java/android/ location/)中可以看到,LocationManager類中所有功能的實(shí)現(xiàn)都依賴于一個(gè)名為mService的字段來(lái)實(shí)現(xiàn),這個(gè)字段的類型是ILocationManager。ILocationManager由LocationManagerService實(shí)現(xiàn)。
定位服務(wù)的真正實(shí)現(xiàn)類是LocationManager Service,該類位于frameworks/base/services/java/com/android/server/LocationManagerService.java中。LocationManagerService.java的另外一個(gè)作用就是對(duì)申請(qǐng)使用位置信息的應(yīng)用進(jìn)行權(quán)限檢查。本文提出的攻擊所需要繞過的第一個(gè)訪問控制便在此處。
實(shí)際上,在移動(dòng)設(shè)備上可真正用于定位服務(wù)的通常只有兩種實(shí)現(xiàn)方法:一種是通過GPS 模塊,一種是通過網(wǎng)絡(luò)。網(wǎng)絡(luò)定位是通過代理方式來(lái)完成的,但代理在運(yùn)行時(shí)可以進(jìn)行動(dòng)態(tài)替換,具有一定的不確定性[16]。相反,GPS模塊的定位實(shí)現(xiàn)是確定的,是可以參考的[17]。所以,本文通過GPS模塊來(lái)完成定位的實(shí)現(xiàn)類:GpsLocation-Provider(位于:frameworks/base/services/java/com/android/server/location/GpsLocationProvider.java)。
經(jīng)過分析可知,當(dāng)硬件檢測(cè)到位置更新后,最初調(diào)用的是GPS LocationProvider.cpp中的location_callback函數(shù),消息通知的流程。
(1)location_callback函數(shù)中對(duì)應(yīng)的是調(diào)用GpsLocationProvider.java中的reportLocation方法。endprint
(2)GPS LocationProvider.java 中的report Location方法會(huì)調(diào)用ILocation-Manager的report Location方法,然后是調(diào)用LocationManagerService的reportLocation方法。
(3)LocationManagerService的reportLocation方法中會(huì)對(duì)LocationWorkerHandler發(fā)送消息MESSAGE_LOCATION_CHANGED。該消息在LocationWorkerHandler的handleMessage方法中被處理。處理方法中會(huì)調(diào)用LocationProviderInterface的updateLocation方法和LocationManagerService的handleLocationChangedLocked的方法。前者對(duì)于Gps模塊來(lái)說(shuō)就是調(diào)用GpsLocationProvider的updateLocation方法。
(4)GPS LocationProvider的updateLocation 方法會(huì)對(duì)ProviderHandler發(fā)送消息UPDATE_ LOCATION,該消息在ProviderHandler的handler方法中被處理,處理的方法是調(diào)用handleUpdateLocation方法,該方法中會(huì)調(diào)用native_inject_location方法以注入。
(5)而LocationManagerService的handle Location Changed Locked的方法會(huì)將最新的位置存放到mLastKnownLocation中。至此,便可以通過Location-ManagerService的getLastKnown Location方法獲取到最新更新的位置信息了。
2.2 Android定位服務(wù)流程
根據(jù)對(duì)Android GPS正常調(diào)用流程的分析發(fā)現(xiàn),應(yīng)用程序的權(quán)限在Framework層的Java代碼部分檢查,但Android GPS數(shù)據(jù)的獲取可以完全由原生方法實(shí)現(xiàn)。即在Android的原生方法實(shí)現(xiàn)的源文件GPS LocationProvider。
CPP中能夠?qū)崿F(xiàn)對(duì)GPS設(shè)備的初始化、調(diào)用獲取數(shù)據(jù)和數(shù)據(jù)的更新與傳遞。于是本文開發(fā)一個(gè)native_GpsTest.cpp實(shí)現(xiàn)GPS LocationProvider.cpp中的功能,編譯為malicious.so作為應(yīng)用程序自帶的動(dòng)態(tài)鏈接庫(kù)替代libandroid_servers.so。這樣攻擊程序只需要在本進(jìn)程中調(diào)用malicious.so就可以實(shí)現(xiàn)對(duì)底層設(shè)備的調(diào)用,從而可以繞過Framework層的權(quán)限檢查。
基于此思路編寫的攻擊程序不需要在AndroidManifest.xml中顯示聲明GPS相關(guān)權(quán)限, Android系統(tǒng)也不能通過權(quán)限檢查機(jī)制來(lái)限制其攻擊行為。這樣就可以將該程序在用戶完全不知情的情況下安裝進(jìn)入用戶手機(jī),并竊取其GPS數(shù)據(jù)。
本文編寫了NativeGpsTest以實(shí)現(xiàn)GPS Location Provider.cpp的功能,并作為應(yīng)用程序的自帶原生庫(kù)安裝進(jìn)入手機(jī)。
(1)隱藏在攻擊程序正常功能中,在程序運(yùn)行過程中會(huì)自動(dòng)調(diào)用NativeGpsTest,自動(dòng)發(fā)起攻擊。
(2)NativeGpsTest會(huì)使用的dlopen函數(shù)先調(diào)用libhardware.so中Hal 層入口函數(shù)get_module_t獲得gps.XXXX.so路徑并調(diào)用初始化接口。
(3)編寫的回調(diào)函數(shù)GPS Callback結(jié)構(gòu)體作為init函數(shù)的參數(shù)。通過gps.xxxx.so調(diào)用Linux 內(nèi)核層中設(shè)備驅(qū)動(dòng)打開設(shè)備并啟動(dòng)數(shù)據(jù)接收線程,獲得GPS數(shù)據(jù)后,返回至nativeGpsTest。
2.3 攻擊實(shí)現(xiàn)方案
為成功調(diào)用Android底層數(shù)據(jù),攻擊程序的編寫參照了GPS LocationProvider.cpp,結(jié)構(gòu)上與GPS LocationProvider.cpp源代碼完全相同,功能上也可以完全替代源代碼。
GPS LocationProvider.cpp源碼主要由兩部分組成,一個(gè)是實(shí)現(xiàn)其功能的普通函數(shù),另一個(gè)是回調(diào)函數(shù)。普通函數(shù)的編寫替換可以直接參照源碼。回調(diào)函數(shù)必須自行編寫并對(duì)源碼進(jìn)行替換。回調(diào)函數(shù)主要通過調(diào)用上層Java方法來(lái)實(shí)現(xiàn)數(shù)據(jù)、命令等在兩層間的傳遞,由于本文設(shè)計(jì)的攻擊直接穿過Framework層,所有的功能完全使用原生方法實(shí)現(xiàn),因此不需要向上層傳遞信息,即不需要調(diào)用上層Java方法,只需編寫空的回調(diào)函數(shù)即可。但名為create_thread_callback作為關(guān)鍵回調(diào)函數(shù)需要特殊處理,它的主要功能是調(diào)用系統(tǒng)函數(shù)createJavaThread來(lái)創(chuàng)建線程,是整個(gè)GPS LocationProvider.cpp中唯一一個(gè)需要Java代碼來(lái)實(shí)現(xiàn)的功能,需要通過使用Dlopen來(lái)調(diào)用createJavaThread函數(shù)
3 攻擊方案驗(yàn)證
3.1 模擬器實(shí)驗(yàn)
本文的源碼分析在Android虛擬機(jī)的各個(gè)版本上都進(jìn)行了實(shí)驗(yàn),以Android 4.1.2系統(tǒng)為例說(shuō)明。方案將攻擊程序運(yùn)行在Android虛擬機(jī)上,然后利用eclipse Emulator control模擬生成GPS數(shù)據(jù),以此來(lái)模擬現(xiàn)實(shí)的GPS數(shù)據(jù)接收。
攻擊程序獲得GPS數(shù)據(jù)成功之后便通過Log向控制臺(tái)輸出獲得的結(jié)果,并與模擬生成的GPS數(shù)據(jù)進(jìn)行比較。實(shí)驗(yàn)結(jié)果是我們的攻擊程序在各個(gè)版本的Android虛擬機(jī)上都取得了成功。
3.2 真機(jī)實(shí)驗(yàn)
模擬器實(shí)驗(yàn)成功后,按照模擬器上相同的流程繼續(xù)在Galaxy Nexus和Nexus_s_4g手機(jī),Android 4.1.2系統(tǒng)上進(jìn)行真實(shí)試驗(yàn)。但是真機(jī)上的實(shí)驗(yàn)卻并沒有取得預(yù)料的結(jié)果,如圖5。endprint
從輸出的Log信息可以看出攻擊程序按照方案設(shè)想已經(jīng)成功穿透中間軟層進(jìn)入到了硬件抽象層,但是在調(diào)用硬件抽象層中的實(shí)現(xiàn)庫(kù)gps.XXXX.so時(shí),出現(xiàn)了錯(cuò)誤。很可惜的是在遇到的問題沒有辦法通過源碼來(lái)分析。因?yàn)槌绦蚴〉拇a位于gps.xxxx.so中,而該部分代碼除了高通公司較早的開源版本外,其余完全不開源。只能通過分析程序調(diào)試中輸出的Log信息來(lái)分析報(bào)錯(cuò)原因。
通過輸出信息可以看到我們遇到的問題主要分為兩類,一類是硬件啟動(dòng)失敗,另一類是權(quán)限不足。Galaxy Nexus中的實(shí)驗(yàn)結(jié)果顯示,設(shè)備啟動(dòng)失敗總是在GPS數(shù)據(jù)接收線程開啟之前,且線程可以開啟成功。Nexus_s_4g的實(shí)驗(yàn)結(jié)果顯示,設(shè)備可以成功啟動(dòng),但是在線程間通信過程中存在權(quán)限問題。
3.3 實(shí)驗(yàn)驗(yàn)證
在Android的Linux內(nèi)核層,內(nèi)核檢查進(jìn)程的uid、gid以判斷進(jìn)程是否擁有相應(yīng)設(shè)備的調(diào)用權(quán)限。Android系統(tǒng)中所有硬件設(shè)備默認(rèn)為系統(tǒng)進(jìn)程SystemServer的資源,Android應(yīng)用程序只能通過System Server才能調(diào)用它們。因此判斷,雖然成功的穿透了Android中間層及其權(quán)限機(jī)制,但是Android系統(tǒng)內(nèi)核層的訪問控制和Android系統(tǒng)的隔離機(jī)制仍然存在。這是使得無(wú)法在真機(jī)上攻擊成功的原因。于是本文進(jìn)行了以下的嘗試性方案。
本文嘗試?yán)肁ndroid系統(tǒng)提供的進(jìn)程間共享數(shù)據(jù)的機(jī)制來(lái)調(diào)用底層設(shè)備。使用一臺(tái)Root過的手機(jī),修改系統(tǒng)文件/data/system/packages.xml中攻擊程序的相關(guān)字段。將攻擊程序的sharedUserID更改為1000—SystemServer的UID;攻擊程序的證書修改為圖6:
這樣就可以強(qiáng)行將攻擊程序加入System Group,這使得攻擊程序可以調(diào)用System Server進(jìn)程的文件,擁有調(diào)用硬件設(shè)備的權(quán)限。實(shí)驗(yàn)結(jié)果通過授予攻擊程序相應(yīng)的權(quán)限,但是仍然未能成功的獲得Gps數(shù)據(jù),且輸出的Log信息并沒有改變。
4 結(jié)束語(yǔ)
本文以 Android 4.1.2版本的源碼為基礎(chǔ),對(duì) Android平臺(tái)進(jìn)行了系統(tǒng)分析,對(duì)于 Android位置信息服務(wù)提出了權(quán)限提升攻擊方案,該方案主要利用了 Android位置信息服務(wù)的兩個(gè)特點(diǎn):一是 Android位置信息服務(wù)的c/c++代碼可以在不依賴上層Java代碼的情況下實(shí)現(xiàn)所有功能,但是權(quán)限檢測(cè)的功能卻是在上層Java代碼中實(shí)現(xiàn)的;二是Android系統(tǒng)運(yùn)行應(yīng)用程序調(diào)用系統(tǒng)庫(kù)(如 libhardware.so)并且沒有任何的安全檢查。
利用以上兩點(diǎn),本文編寫的攻擊程序,通過直接調(diào)用 Android系統(tǒng)庫(kù)實(shí)現(xiàn)Android位置信息服務(wù)系統(tǒng)的功能,從而在不需要通過System Server進(jìn)程的情況下在本進(jìn)程內(nèi)直接穿過中間層,打破Android系統(tǒng)的層次結(jié)構(gòu),實(shí)現(xiàn)權(quán)限提升攻擊,驗(yàn)證了系統(tǒng)此類安全漏洞的存在。由于時(shí)間和精力等原因,攻擊并沒有做到盡善盡美,這里提出一些可以改進(jìn)的方向,這也將是后續(xù)主要工作。
(1)針對(duì)真機(jī)上的攻擊不成功的原因的分析,進(jìn)行更多的實(shí)驗(yàn)和更廣泛的調(diào)研,以期查明原因。
(2)Android位置信息服務(wù)并不只限于GPS定位這一種方式,其他的定位方式也可以進(jìn)行攻擊嘗試,目前已經(jīng)展開對(duì)于基于基站的定位方式的分析。
(3)攻擊方法很可能并不只限于Android位置信息服務(wù)者一種情況,將嘗試將攻擊方法推廣到Android平臺(tái)下的其他敏感資源中。
基金項(xiàng)目:
戰(zhàn)略合作專項(xiàng)AQ1703 AQ1708。
參考文獻(xiàn)
[1] StatCounter. Operating System Market Share Worldwide[EB/OL].http://gs.statcounter.com/os-market-share.html, 2017–03–31/2017–04–27.
[2] 企鵝智酷. 2016年手機(jī)安全報(bào)告[EB/OL]. https://m.qq.com/security_lab/news_detail_362.html, 2016–08–03/2017–04–27.
[3] CVE Details. Top 50 Products By Total Number Of "Distinct" Vulnerabilities in 2016 [EB/OL]. https://www.cvedetails.com/top-50-products.php?year=2016.html, 2017–02–12/2017–04–27.
[4] 龔利.Android系統(tǒng)手機(jī)安全機(jī)制研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用, 2015(3):85-86.
[5] 鄭冠仕, 張錚, 張為華.面向移動(dòng)系統(tǒng)安全的應(yīng)用分析技術(shù)綜述[J].計(jì)算機(jī)系統(tǒng)應(yīng)用, 2016, 25(9):17-26.
[6] M. Ongtang W. Enck and P. McDaniel. Mitigating android software misuse before it happens[R]. Technical Report NAS-TR-0094-2008, Seq 2008.
[7] J. Jung S. Schechter P. Hornyack, S. Han and D. Wetherall. These arent the droids youre looking for: retrotting android to protect data from imperious applications[C]. In Proceedings of the 18th ACM conference on Computer and communications security, pages 639–652, ACM, 2011.endprint
[8] X.-y. Zhou M. Intwala A. Kapadia R. Schlegel, K. Zhang and X. Wang. Paranoid android: versatile protection for smartphones[C]. In Soundcomber: A stealthy and context-aware sound trojan for smartphones, volume 11, pages 17–33, 2010.
[9] Hasswa A, Nasser N, Hossanein H. Generic vertical handoff decision function for heterogeneous,wireless, networks[C]∥ The Second IFIP International Conference on Wireless and Optical Communications, 2005:239 -243.
[10] Yang T, Rong P. A fuzzy logic vertical handoff algorithm with motion trend decision[C]∥2011 the 6th International Forum on Strategic Technology( IFOST) , 2011:1280-1283.
[11] Y. Fledel A. Shabtai and Y. Elovici. Securing android-powered mobile devices using selinux. Security & Privacy, IEEE, 8(3):36-44, 2010.
[12] A. Dmitrienko S. Heuser A.-R. Sadeghi S. Bugiel, L. Davi and B. Shastry. Practical and lightweight domain isolation on android. In Proceedings of the 1st ACM workshop on Security and privacy in smartphones and mobile devices, pages 51–62, ACM, 2011.
[13] A. Moshchuk S. Hanna A. P. Felt, H. J. Wang and E. Chin. Permission redelegation: Attacks and defenses. In USENIX Security Symposium, 2011.
[14] Y. Pisetsky A. Shu M. Dietz, S. Shekhar and D. S. Wallach. Quire. Lightweight provenance for smart phone operating systems. In USENIX Security Symposium, 2011.
[15] S. Khan M. Nauman and X. Zhang. Apex. extending android permission model and enforcement with user-dened runtime constraints. In Proceedings of the 5th ACM Symposium on Information, Computer and Communications Security, pages 328–332, ACM, 2010.
[16] 崔虎.基于Android平臺(tái)的移動(dòng)終端設(shè)備的定位[J].科技信息, 2011(35):719-720.
[17] 倪紅軍.基于Android平臺(tái)的移動(dòng)終端GPS研究[J].計(jì)算機(jī)技術(shù)與發(fā)展, 2012, 22(5):198-201.endprint