999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JDWP的Android應用程序惡意行為檢測研究

2017-05-02 15:14:48王宇曉
移動通信 2017年7期

王宇曉

【摘 要】當前Android惡意應用程序威脅越來越多,因此首先介紹了當前Android應用程序動態檢測技術背景和發展趨勢,其后重點介紹以JDWP協議為基礎的惡意行為檢測方法和檢測技術,最后與實際檢測經驗結合,介紹如何依照檢測結果對應用程序惡意行為進行分析和判斷。

【關鍵詞】Android應用程序 動態檢測 JDWP 惡意行為分析

1 引言

近年來,智能手機深入應用于人們生活當中,Android操作系統因其本身開源性和免費性,受到許多手機廠商和開發者的青睞和支持。據悉,2016年度Android系統在全球市場的占有率已經高達80%。但隨之而來的是,與Android平臺相關的惡意應用軟件攻擊也越來越多。OWASP[1]曾對比上百萬應用軟件,發布了十大移動應用惡意行為,其中涉及惡意扣費、靜默下載、隱私竊取、資費消耗、遠程控制等多方面。2016年,360互聯網安全中心發布《2016年AnDroid惡意軟件專題報告》,其中提到2016年累計截獲Android平臺新增惡意程序樣本1403.3萬個,平均每天新增3.8萬惡意程序樣本,而新增惡意程序主要是資費消耗,占比高達74.2%,其次是惡意扣費(16.5%)、隱私竊取(6.1%)[2]。

Android應用軟件的惡意行為給廣大用戶帶來了財產安全和個人新信息安全的重大威脅,對行業造成不良影響。在此種情況下,對智能手機應用軟件進行檢測是必要的,以求達到對風險可知、可控。當前Android平臺上,對應用軟件檢測主要分為靜態檢測技術和動態檢測技術兩個方面[3]。靜態檢測技術重點分析使用逆向技術[4]后得到的源碼,關注業務邏輯和相關算法,以達到對應用軟件檢測的目的。動態檢測技術將應用程序置于運行環境中運行,對其動態行為實時監控、分析和判斷,以判定應用軟件是否存在出現惡意行為的潛在風險。

本文基于JDWP協議監控敏感行為API,對Android應用程序進行動態檢測并分析和判斷行為事件是否具備惡意行為特征,接下來會從動態檢測技術背景、JDWP監控應用程序API原理和過程、惡意行為分析和判斷這三個方面進行介紹。

2 動態檢測技術背景和相關工作

2.1 通用動態檢測技術

動態檢測技術通常會把Android應用程序置于真實或者模擬環境中,監控應用程序的運行情況,對應用程序行為進行實時記錄分析,以判斷其正常性。目前Android應用程序動態監控技術既包括內核層監控,也包括應用層監控。內核層監控可采用鉤子(hook)技術、掛鉤系統關鍵敏感API來實現動態監測;而應用層監控采用重打包技術進行檢測[5]。常用的動態檢測技術包括DroidBox、APIMonitor[6]等。

DroidBox主要用于檢測隱私泄露,通過對隱私數據進行標識,使隱私數據成為污染源。一旦惡意程序獲取隱私數據,并對其進行操作,會使得新生成的數據被污染。如果出現污染數據流出或泄露的情況,證明應用軟件出現隱私泄露行為[7],在其他方面比如文件讀寫操作、網絡傳輸數據、動態加載、短信以及電話等操作,都能起到監控作用,但工具較大,容易在使用過程中出現問題。

APIMonitor利用Dalvik層面代碼篡改和重打包技術,監控特定敏感API以追蹤應用軟件的惡意行為。但隨著應用程序安全越來越受到重視,應用程序采用加固、反編譯、抗重打包、簽名驗證等技術增強安全性。這樣APIMonitor工具本身就有了很大的局限性,適用范圍受到限制。

2.2 JDWP調試原理

JDWP(JAVA調試協議)是JAVA平臺調試體系結構的重要組成部分之一[8],作為調試器和目標虛擬機交互的通信協議,在調試過程中起到重要作用。簡而言之,JDWP協議的作用就是通信,調試器可使用JDWP協議獲取虛擬機中程序的信息或者控制目標程序運行狀態。而虛擬機可通過JDWP協議通知調試器返回信息以執行后續操作[9],包括握手和應答兩個階段,在建立傳輸層連接之后,調試器會發送字符串“JDWP-Handshake”到虛擬機,虛擬機回復字符串“JDWP-Handshake”。兩端握手結束,調試器即可對虛擬機發送命令。

JDWP通信內容包括命令和回復,調試器和虛擬機兩端都有可能發送命令包和回復包。調試器發送命令給虛擬機,獲取當前在虛擬機中運行程序的信息,虛擬機回復該命令是否成功執行。同時虛擬機也可以向調試器發送命令包以通知部分事件的發生。JDWP執行的異步性使得請求和回復之間不需要考慮順序,減少等待時間,可直接發送其他命令。同時任何語言都可以實現JDWP,使得檢測系統更加容易實現。

3 惡意行為監控過程

本文的動態檢測技術利用JDWP協議、調試器與虛擬機通信獲得虛擬機工作狀態,以達到監控應用程序的作用。但是JDWP協議只能獲取正在運行的應用程序信息,所以當用戶開啟應用程序時,需要根據之前獲取的應用程序基本信息進行JDWP通信,獲取應用程序的運行信息。

在Android系統中,每一個Android應用都運行在一個虛擬機實例里,每一個虛擬機實例都是一個獨立的進程空間。每一個進程都有一個ID,被稱為Process ID(PID)[10]。調試器根據PID追蹤應用程序運行狀況,aapt工具可獲取當前移動設備中所有應用程序信息,比如應用程序名稱、應用程序包名、應用程序權限等,使用aapt命令獲取應用程序名稱。Android系統內置ps命令,ps命令可根據具體應用程序名稱獲取此進程的PID。PC端使用ADB(Android Debug Bridge)調試器,根據正在運行的應用程序PID值向Android虛擬機發出JDWP命令,請求虛擬機應用程序運行狀態,其后虛擬機返回應用程序相關信息,PC實時輸出應用軟件動態行為并判斷此應用程序是否存在惡意行為。動態檢測過程示意圖如圖1所示:

圖1 動態檢測過程示意圖

JDWP監控處理過程如下:

(1)ADB調試器發送JDWP請求與Android虛擬機握手,建立連接。

(2)根據用戶需求,ADB調試器發送JDWP命令到Android虛擬機,獲取當前某個運行中應用程序所加載的所有API地址。

(3)匹配用戶需監控API,確定地址,發送JDWP命令到Android虛擬機,對具體地址進行監控。

(4)ADB調試器處理監控返回信息,判斷連接和監控有效。

(5)用戶執行應用程序輸入操作,一旦被監控的API被觸發,Android虛擬機返回相關信息到ADB調試器。

(6)對返回信息分析和判斷,實時通過PC端展示給用戶,達到實時監控目的。

JDWP監控過程時序圖如圖2所示。

監控過程使用多進程監控思想,對于多個應用程序開啟多個進程處理。進程之間相互獨立,即使在監控過程中某個應用程序崩潰,也不會影響對其他應用程序的監控。同時多進程提高了性能,每一個進程都具有相同的地址空間和相同的資源,這樣能夠達到的性能上限相對較大。

4 惡意行為分析和判斷

本部分惡意行為分析和判斷是根據大量實際檢測經驗分析而來,包括兩部分內容,一是介紹如何對用戶信息泄露監控;二是如何根據事件行為時間序列對惡意行為進行監控。

在引言中提到,惡意行為中涉及惡意扣費、靜默下載、隱私竊取、資費消耗等占的百分比較大。惡意扣費和資費消耗相似,其行為都涉及后臺發送短信、撥打電話、連接網絡等。惡意行為分析中對短信發送相關API、撥打電話API以及連接網絡API監控與分析是必不可少的部分[11]。因而本文在惡意行為分析與判斷部分,重點關注隱私竊取。隱私竊取行為會在用戶不知情的情況下,將手機內涉及用戶隱私信息內容通過互聯網上傳到服務器。獲取移動設備信息比如IMEI、IMSI等需監控函數android.telephony.telephonyManager.getDeviceId和android.telephony.telephonyManager.getSubscriberId。在分析和判斷時,此類監控API一旦出現,可定義為相關惡意行為出現。除移動設備本身信息外,用戶信息以不同存儲方式保存在移動設備中。其他用戶私有數據存儲和共享部分借助Content Provider實現,Content Provider為數據定義統一資源定位符(URI),讀取數據時只需訪問對應URI。對于Content Provider,包括四種操作,查詢、插入、更新、刪除等行為需要監控API如下:android.content.ContentResolver.query、android.content.ContentResolver.insert、android.content.ContentResolver.update、android.content.ContentResolver.delete。一旦出現此類函數監控事件,表明應用軟件對數據庫進行操作。但由于Content Provider本身設計機制,會根據不同的輸入參數對不同的數據庫進行操作,比如日歷、聯系人、短信、上網記錄、圖片、視頻、音頻等數據,需要根據其對應URI參數進行特定監控。

應用程序惡意行為分析內容較多,部分涉及讀取的惡意行為根據監控事件即可確認,如上文所介紹。而部分惡意行為本身只是敏感行為,需要根據敏感行為發生上下文環境和關系進行分析判斷,來確定它是否可以被定義為惡意行為。

本文將監控實時事件行為與用戶輸入操作行為的時間序列進行對比。若敏感行為發生時間未與用戶輸入操作時間對應,即可將敏感行為判定為惡意行為,這種分析方式符合可治可控原則。除此之外,惡意行為也需要借助實際運行環境中上下文事件行為來進行分析和判斷。

以某一款錄音應用程序為例介紹。錄制音頻函數包括android.media.MediaRecorder.start和android.media.AudioRecord.startRecording。錄制音頻和錄制視頻時都會使用到android.media.MediaRecorder.start函數。因而在對此款錄音應用程序行為監控時,android.media.MediaRecorder.start函數出現,單純分析此事件,并不能確定此款錄音應用程序只是在進行其功能性錄音行為,后臺是否開啟視頻錄制無法確定。值得一提的是,在拍照和錄制視頻時,Android要求必須開啟相機預覽功能,而部分后臺錄制和拍照采取開啟相機預覽而設置預覽模塊大小為零的方案。用戶無法看到相機預覽,這就達到后臺拍照錄影的目的。在錄音應用程序開啟時間段內,android.media.MediaRecorder.start事件發生本身屬于正常行為。但如果此時間段內出現開啟相機預覽(android.hardware.Camera.startPreview)事件,錄音應用軟件則具備惡意行為嫌疑。此錄音應用程序在錄制音頻同時也在后臺錄制視頻,因而對敏感行為上下文事件行為發生分析和判斷是很有必要的,特別是由于Android系統的開放性,同一功能可能由不同方法完成,在惡意行為分析和判斷過程中特殊情況值得重視。

5 優勢和改進

本文中提到的動態檢測技術使用多進程思想,本身性能會有較大的提高,但是如果移動設備本身需要監控的應用程序過多的話,對PC端性能有較高要求。所以每次監控應用程序數量可以在PC端性能允許的情況下達到盡量多的數目,以求提高監控效率。

利用JDWP原理對應用程序事件進行實時監控和檢測,本身具有較高的時效性。但JDWP需要ADB調試器對Android虛擬機進行通信,通信本身就有一定時耗。其次由于Android虛擬機的設計,每個虛擬機實例都是一個獨立進程空間。當有新的Android應用程序開啟,創建一個新的虛擬機實例并被追蹤監控,這期間也需要一定的時間消耗,所以在用戶使用過程中,監控新開啟的應用程序需要一定的時間緩沖,應用程序用戶模擬輸入或實際輸入需要等待連接建立監控開啟后進行。即便虛擬機創建進程采用Linux的fork機制復制進程,相比較創建進程會有更高的效率,但短時間停頓仍然存在。在此段時間內如果應用程序開啟用戶輸入行為,可能會出現無法監控的情況。如果考慮應用程序行為監控完整性,就需要用戶輸入等待一段時間,這樣可能會造成不太良好的用戶體驗。在這一方面,期待在之后的研究和探索有一定的改進。

6 結束語

本文介紹了當前Android應用程序動態檢測技術和發展現狀,重點研究了以JDWP為基礎的動態檢測技術,并結合實際檢測經驗分析惡意行為的判定。目前針對Android應用程序動態檢測技術并不算少,但大多與實際應用并不能很好的結合,具有一定的局限性。然而應用程序越來越多地應用到人們生活、學習和工作的方方面面,因而研究應用程序的動態監測技術以及如何對惡意行為分析判斷定性具有一定的意義。

參考文獻:

[1] OWASP. Mobile Top 10 2016-Top 10[CP/OL]. (2017-02-

13). https://www.owasp.org/index.php/Mobile_Top_10_

2016-Top_10.

[2] 360互聯網安全中心. 2016年Android惡意軟件專題報告[EB/OL]. (2017-02-28). http://blogs.360.cn/360mobile/2017/02/28/review_android_malware_of_2016/.

[3] Shabtai A. Malware Detection on Mobile Devices[A]. Mobile Data Management[C]. 2010: 289-290.

[4] 豐生強. Android軟件安全與逆向分析[M]. 北京: 人民郵電出版社, 2013: 6-7.

[5] 王艷紅,楊丁寧,史德年. 當前移動應用軟件常用安全檢測技術[J]. 現代電信科技, 2012(9): 6-10.

[6] WU D J, MAO C H, WEI T E, et al. Droidmat: Android malware detection through manifest and api calls tracing[A]. 7th Asia Joint Conference on Information Security[C]. 2012.

[7] Sanz B, Santos I, Nieves J, et al. MADS: Malicious Android ApplicationsDetection through String Analysis[M]. Springer Berlin Heidelberg, 2013: 178-191.

[8] IBM. 深入 Java 調試體系,第 3 部分: JDWP 協議及實現[EB/OL]. (2014-11-04). https://www.ibm.com/developerworks/cn/java/j-lo-jpda3/.

[9] 史成潔. Android平臺應用軟件保護技術的研究與實現[D]. 北京: 北京郵電大學, 2015.

[10] 周志明. 深入理解Java虛擬機[M]. 北京: 機械工業出版社, 2013.

[11] 楊衛軍,秦海權,王鵬. Android移動應用軟件檢測平臺[J]. 信息網絡安全, 2012(8): 64-66.★

主站蜘蛛池模板: 国产精品lululu在线观看| 亚洲看片网| 亚洲欧美国产高清va在线播放| 久久人搡人人玩人妻精品| 欧美人在线一区二区三区| 久久夜夜视频| 久久精品国产国语对白| 亚洲v日韩v欧美在线观看| 婷婷伊人五月| 97超级碰碰碰碰精品| 99er这里只有精品| 亚洲日本韩在线观看| 亚洲中文字幕手机在线第一页| 久久久噜噜噜久久中文字幕色伊伊 | 久久无码av一区二区三区| 亚洲中文字幕久久精品无码一区| 91视频青青草| 9丨情侣偷在线精品国产| 不卡无码网| 国产97视频在线| 无码免费的亚洲视频| 精品少妇人妻av无码久久| 国产一级妓女av网站| 亚洲IV视频免费在线光看| 欧美啪啪视频免码| 久久人妻xunleige无码| 四虎国产永久在线观看| 国产成人高清精品免费软件 | 国产成人狂喷潮在线观看2345| 五月天综合婷婷| 成人一级免费视频| 欧美一区二区啪啪| 精品剧情v国产在线观看| 精品久久香蕉国产线看观看gif| 亚洲第一色网站| 欧美一级夜夜爽www| 亚洲热线99精品视频| 国模在线视频一区二区三区| 高清国产在线| 日本国产一区在线观看| 欧美一级夜夜爽| 国产91熟女高潮一区二区| 国产一级无码不卡视频| 91久久大香线蕉| 91麻豆久久久| 久草美女视频| 一本大道在线一本久道| 国产爽妇精品| 91精品国产丝袜| 狠狠色丁婷婷综合久久| 久久一日本道色综合久久| 国产精品毛片在线直播完整版| 成人福利在线视频| 暴力调教一区二区三区| 少妇精品在线| 在线欧美a| 欧美va亚洲va香蕉在线| 国产一区二区三区在线精品专区| 成人亚洲天堂| 国产97视频在线| 国内黄色精品| P尤物久久99国产综合精品| 91国内在线观看| 国产精品成人AⅤ在线一二三四| 亚洲人成影院在线观看| 91免费国产高清观看| 理论片一区| 亚洲成人77777| 国产成人精品视频一区视频二区| 国产在线日本| 一级毛片网| 国产精品第一区在线观看| 国产毛片高清一级国语 | 91精品小视频| 亚洲国产欧美自拍| 青青草一区| 日本精品影院| 国产人成在线观看| 无码中文字幕乱码免费2| 亚洲人成网址| 亚洲h视频在线| 蜜桃视频一区|