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

基于Android系統免Root主防方法的研究

2016-09-22 10:51:52劉井強李斌陳立章陳彬
網絡與信息安全學報 2016年1期
關鍵詞:程序檢測方法

劉井強,李斌,陳立章,陳彬

(哈爾濱工業大學(威海)計算機科學與技術學院,山東 威海264209)

基于Android系統免Root主防方法的研究

劉井強,李斌,陳立章,陳彬

(哈爾濱工業大學(威海)計算機科學與技術學院,山東 威海264209)

為解決Android手機獲取Root權限系統安全性的降低,非Root授權下Android手機安全應用防護效果不理想的一系列問題,研究了ART運行時工作原理、Java反射機制和AOP原理,設計驗證了一套免Root主動防御機制,避免了傳統防護應用在系統內核層Hook系統關鍵函數需要Root授權帶來的安全問題以及在應用層調用API效果不理想的現狀,實現了對手機應用的敏感行為攔截,能夠達到增強Android手機防護的效果。

Android系統;免Root主防;AOP;Hook;行為攔截;Dalvik

1 引言

Android是Google推出的以Linux內核為基礎的開源移動操作系統,采用4層分層架構,從上層到底層依次為應用層、應用框架層、Android運行時和庫文件層、Linux內核層,Android系統層次架構如圖1所示。

近幾年智能手機的普及暴露出一系列移動平臺安全問題,尤其是Android平臺惡意應用泄露隱私的現象更是屢見不鮮[1],Android平臺敏感行為檢測已經成為安全研究的熱點[2]。入侵檢測等被動防御技術不能在系統的脆弱性方面做出預判斷,而主動防御技術能夠克服這一缺點,通過分析敏感操作預測攻擊角度,做出主動防御策略響應[3]。通過在Linux內核層對服務和進程進行注入,Android安全應用從惡意代碼定義出發,Hook系統關鍵函數調用,能夠對程序惡意行為做出判斷,但前提是取得Root授權。鑒于開放Root授權后會降低手機系統安全性,手機生產廠商反對Root授權。安全應用廠商以漏洞利用方式獲取Root授權,但漏洞生命周期有限,使手機獲取Root授權難度加大。多數Android惡意應用在免Root授權情況下仍可正常運行,如廣告推廣、短信推送、隱私竊取[4],但在相同條件下,Android安全應用不能達到有效的手機防護效果[5]。

一些研究者對Android系統的安全防護做出如下嘗試。Sanz等[6]和Felt等[7]以Android應用的權限聲明為依據,判斷軟件是否存在惡意行為,這種方式僅從聲明某項敏感權限的角度出發,對軟件是否存在惡意行為做出判斷,存在不準確性的缺點。Androguard[8]作為流行的Android應用安全分析工具,對Android相似性應用采用歸一化壓 縮 距 離 ( NCD,Normalized compression distance)[9]方法,結合函數熵等方法,形式化描述函數特征,僅通過比較應用的相似性,不能從應用自身行為出發做出有效判斷。語義分析和特征碼分析法[10]從被動防御角度出發,判斷軟件是否存在惡意行為。在代碼的語義分析方面,對于PC端應用的語義檢測,已經做了一些理論研究[11,12],有利于從該角度出發進行病毒變種檢測分析;在特征碼分析方面,移動端的防護研究在實踐方面取得了一定的進展,Desnos[13]從應用程序的敏感代碼特征出發在相似性上做出比較,是一種被動防御的手段,存在軟件防護滯后性的缺點。

本文利用反射機制和面向切面編程(AOP,aspect oriented programming)原理,基于安卓運行時(ART,Android runtime),將Java層定義的方法修改為Native層定義的方法,使被修改后的方法調用由Java層轉為Native層,在Native層改變原有程序代碼的執行邏輯,可以在免Root授權情況下動態劫持和判斷程序敏感行為。

圖1 Android系統架構

2 普通手機安全應用隱患分析

2.1主動防御角度的安全應用隱患分析

從主動防御角度出發,普通手機安全應用防護隱患主要存在以下兩個層面。

1)基于Linux內核層的安全防護。以進程注入方式Hook系統關鍵函數調用,需要Root授權,因此會降低系統安全性,如惡意程序在手機Root授權后可以靜默安裝其他程序[14]。

2)基于應用層的安全防護。通過Android系統頂層框架的應用程序編程接口(API,application programming interface),為開發者提供的封裝類庫在功能上已經被事先定義。如觸發短信發送到短信接收前,該時間段內未提供可操作的API來檢測短信的狀態。

2.2被動防御角度的安全應用隱患分析

當一種木馬或病毒開始在網絡中傳播被發現后,第三方安全廠商(如360、騰訊等)會對帶有該木馬或病毒的惡意軟件進行行為分析,找出惡意軟件行為特征碼,形成自己的軟件安全病毒庫。手機安全防護應用根據病毒庫進行特征碼匹配,判斷軟件是否存在安全隱患。被動防御的缺點是只有當用戶的利益受到損失后,才能發現惡意軟件的危害,在安全應用防護方面存在滯后性,防御效率較低[15]。

2.3手機生產廠商和第三方安全廠商的配合問題

隨著手機隱患受到大家的廣泛關注,手機生產廠商開始陸續定制自己的安全防護功能,該功能是一種ROM內置的防護措施[16],可以深入系統底層對手機系統進行防護,不需要取得Root授權,能夠對手機的敏感行為進行攔截,但手機生產廠商并沒有第三方安全廠商在安全防護方面的技術優勢。同時,手機生產廠商沒有為第三方安全廠商提供深入底層的防護接口。兩方廠商配合不當,最終導致用戶的手機防護效果不能最大化。

3 基于普通手機安全應用的改進

3.1改進原理介紹

Java VM在虛擬棧上運行,執行.class文件,Dalvik VM在寄存器上運行,執行.class文件經dex工具處理后的.dex文件。基于ART運行時,調用libdvm.so中的方法,將Dalvik VM原有的執行流程和處理方法進行修改,初始化原Dalvik VM的同時,執行自定義方法,將Java層方法修改為Native層方法,為應用層調用Native層方法提供自定義API支持,Java VM、Dalvik VM和ART運行時三者關系如圖2所示。

在應用層調用JNI的Native方法,如果該方法沒有被顯示聲明,程序會從lib庫中自動加載.so文件,在該文件中找到并注冊JNI的Native方法。基于ART運行時,改變原有對象方法在Dalvik虛擬機的定義,并為應用層提供修改后的API,通過JNI回調應用層的統一處理方法。在應用層,主要應用Invoke反射機制,基于AOP原理在API統一處理方法中調用并重寫before、after函數,形成加固模塊,Dalvik VM的啟動時序如圖3所示。

圖2 Java VM、Dalvik VM和ARTVM的關系

圖3 Dalvik VM啟動時序

解壓待加固的應用程序安裝包,其主要組成如表1所示。

表1 APK解壓包主要文件組成

在清單文件中修改普通應用程序的Application入口為加固程序入口,在Application中全局初始化應用加固模型,添加所有其他類和權限聲明,合并資源文件,將APK重打包并重簽名,生成新的加固安裝包,應用加固模型如圖4所示。

3.2改進模型實現

1)加固應用執行流程

在用戶啟動加固應用時,Zygote進程以Root身份創建并fork自身,然后加載Android運行時環境(虛擬機、類庫、動態庫),切換為應用相應的用戶身份,加載應用包并運行應用。安裝加固程序包,程序加載加固模塊,預定義Hook請求,加載并初始化系統服務,當程序向系統服務請求預定義的關鍵函數時,加固模塊攔截該請求并進行敏感行為審核。只有審核通過后,才能繼續請求調用系統服務,返回處理結果;否則,屏蔽該請求,執行加固過程如圖5所示。加固模塊執行在應用相應的用戶身份下,在Android運行時層調用libdvm.so庫中的方法反射得到Native層的方法,沒有在內核層Hook系統的函數調用或者注入服務進程,也沒有在Native層執行需要Root授權的操作,在攔截函數調用時可以免Root授權。

2)Java層調用Native層方法

通過查找待Hook類的方法定義的類名、方法名、參數信息,依次調用Class.forName()、Class.getDeclaredMethod()、 Field.getIField()、Constructor.getParameterTypes()方法,反射得到待Hook類的對象、方法、函數偏移量和待Hook方法的參數信息。Java層加載.so文件,將待Hook類的對象、方法、函數偏移量和Hook方法的參數信息作為參數,傳入 Native層的自定義hookMethodNative()方法。Java層調用Native層方法的執行流程如圖6所示。

圖4 應用加固模型

圖5 加固應用執行流程

圖6 Java層調用Native層方法

3)Native層Hook Java層方法

在 Native層調用 initNative(),初始化Native層信息,JNI注冊Java中的待Hook類和方法。

static int register_com_protectdemo_Bridge (JNIEnv* env) { return env->RegisterNatives (javaClass,javaMethods,NELEM(javaMethods));}

調用libdvm.so庫中的dvmDecodeIndirectRef()方法來獲得要注冊JNI方法的類對象,調用dvmSlotToMethod()方法,根據函數的偏移量從ClassLoader中獲取函數指針,獲得待Hook的方法并保存被Hook的方法信息。在ART將方法標記置為 ACC_NATIVE方法,讓方法屬性nativeFunc指向本地的methodCallbackHandler。將Java層代碼的待Hook方法聲明為Native方法后,執行Java層代碼的方法會從Native層查找方法定義,而非在Java層執行代碼,從而在Native層實現改變代碼的執行邏輯。被Hook方法修改的關鍵代碼如下。

此時,待Hook方法已經被成功Hook,代碼的執行邏輯轉為methodCallbackHandler調用本地的 nativeCallbackHandler()方 法 , 本 地 的nativeCallbackHandler()方法調用dvmCallMethod()方法,執行nativeCallbackHandler()方法,該方法回調Java端的handleHookedMethod()方法,其關鍵代碼如下。

dvmCallMethod(self, nativeCallbackHandler, NULL,&result,originalReflected,(int)original, additionalInfo,thisObject,argsArray);

bridgeClass = env->FindClass("com/ protectDemo/android/Bridge");

nativeCallbackHandler= (Method*)env-> GetStaticMethodID(bridgeClass,"handleHookedMeth od",

"(Ljava/lang/reflect/Member;ILjava/lang/Object;Lja va/lang/Object;[Ljava/lang/Object;)Ljava/lang/Obje ct;");

Native層Hook Java層方法執行流程如圖7所示。

4)Java層實現AOP Proxy機制

Java端的 handleHookedMethod()方法通過AOP Proxy機制,實現before()和after()方法,通過在before()和after()中修改被Hook方法的執行邏輯來添加自定義的方法,實現對Hook方法的敏感行為攔截,執行流程如圖8所示。

4 實驗及結果分析

Android實驗機未進行Root授權,分別安裝主流手機安全應用軟件和卸載主流手機安全應用軟件,對未經允許自動發送短信程序做如下實驗。

1)將安全應用軟件金山、獵豹、360、百度、騰訊推出的主流手機安全衛士安裝至手機,安裝用戶未經允許發送短信的程序,點擊短信發送按鈕,沒有收到安全應用軟件的攔截提示,短信發送成功。如果手機安全應用開啟全面防護,要求用戶Root授權,加固應用執行流程界面如圖9所示。

圖7 Native層Hook Java層方法

圖8 Java層AOP Proxy機制

圖9 加固應用執行流程界面

2)卸載手機安全應用軟件,安裝用戶未經允許發送短信的程序,程序加固后提供關閉短信攔截和開啟短信攔截功能,短信發送行為檢測程序示意如圖10所示。

圖10 短信發送行為檢測程序示意

3)使用關閉短信攔截功能,點擊短信發送按鈕,短信發送成功,關閉短信發送行為檢測功能如圖11所示。

4)卸載手機安全應用軟件,安裝用戶未經允許發送短信的程序,開啟短信攔截功能,從嘗試發送短信到接收方未收到短信時間段內,短信發送過程被中斷并提醒用戶,開啟短信發送行為檢測功能如圖12所示。

對于上述自動發送短信程序實驗可做如下分析。

圖11 關閉短信發送行為檢測功能

1)手機安全應用在免Root情況下沒有檢測到短信發送的敏感行為并通知用戶。如果手機安裝帶有惡意軟件的程序,比如:自動發送短信的惡意程序,用戶手機會在不知不覺中發送短信,導致利益受損。另一方面,隨著第三方Android系統的定制,手機Root授權的難度增加,如小米手機根據手機安全應提供的Root步驟獲取權限失敗。

2)經過本文的加固方案后,在免Root情況下,可以檢測到手機軟件的敏感行為并通知用戶,避免了Root授權后手機安全風險的增加,同時彌補了普通手機安全應用攔截敏感行為效果不理想的局限性。

圖12 開啟短信發送行為檢測功能

5 結束語

相對于普通手機安全應用,本文方法有以下優點:

1)不需要手機Root授權即可運行,進而提高手機安全性;

2)主動發現并提醒手機使用者惡意應用存在的敏感行為;

3)避免手機安全應用在沒有Root授權下防護功能受限的不足。

因此,相對于普通手機安全應用獲取Root授權后手機安全性降低,未取得Root授權時安全防護功能存在局限性的特點,本文方法能夠實現對手機應用敏感操作的行為監控,對于Android手機安全應用提高免Root主防能力有現實意義。

[1]騰訊移動安全實驗室2015年第三季度手機安全報告[EB/OL].(2015-11-03).http://m.qq.com/security_lab/news_detail_335.html.Mobile security report of Tencent mobile security laboratory in 2015,third quarter[EB/OL].(2015-11-03).http://m.qq.com/security_ lab/news_detail_335.html.

[2]李挺,董航,袁春陽,等.基于Dalvik指令的Android惡意代碼特征描述及驗證[J].計算機研究與發展,2014,51(7):1458-1466.LI T,DONG H,YUAN C Y,et al.Description of Android malware feature based on Dalvik instructions[J].Journal of Computer Research and Development,2014,51(7):1458-1466.

[3]李志,單洪,馬春來,等.基于攻防圖的網絡主動防御策略選取研究[J].計算機應用研究,2015,32(12).LI Z,SHAN H,MA C L,et al.Network active defense strategy selection based on attack-defense graph[J].Application Research of Computers,2015,32(12).

[4]李淑民.Android手機隱私泄露研究[J].軟件,2015(2):69-72.LI S M.Research on privacy leakage of Android smart phones[J].Computer Engineering&Software,2015(2):69-72.

[5]吳茂林.微信紅包折射手機安全防護軟肋[J].通信世界, 2015(6):17.WU M L.We Chat ked envelope reflects a soft soft spot of mobile security protection[J].Communications World,2015(6):17.

[6]SANZ B,SANTOS I,LAORDEN C,et al.PUMA:permission usage to detect malware in Android[C]//The 5th International Conference on Computational Intelligence in Security for Information Systems(CISIS’02).Berlin:Springer,c2103:289-298.

[7]FELT A P,CHIN E,HANNA S,et al.Android permissions demystified[C]//The 18th ACM Conference on Computer and Communications Security,New York.c2011:627-638.

[8]DESNOS A.Reverse engineering,malware and goodware analysis of Android applications…and more(ninja!)[CP/OL].(2013-03-26).https://github.com/androguard/androguard.

[9]CILIBRASI R,VITANYI P M B.Clustering by compression[J].IEEE Transactions on Information Theory,2005,51(4):1523-1545.

[10]南秦博,慕德俊,侯艷艷.Android系統惡意程序檢測技術研究[J].現代電子技術,2015(12):47-50.NAN Q B,MU D J,HOU Y Y.Research of malicious program detection technology for Android system[J].Modern Electronics Technique,2015(12):47-50.

[11]CHRISTODORESCU M,JHA S,SESHIA S A,etal.Semantics-aware malware detection[C]//The 2005 IEEE Symposium on Security and Privacy(Oakland’05).c2005:32-46.

[12]王蕊,馮登國,楊軼,等.基于語義的惡意代碼行為特征提取及檢測方法[J].軟件學報,2012,23(2):378-393.WANG R,FENG D G,YANG Y,et al.Semantics-based malware behavior signature extraction and detection method[J].Journal of Software,2012,23(2):378-393.

[13]DESNOS A.Android: static analysis using similarity distance[C]//The 45th Hawaii International Conference on System Sciences(HICSS),c2012:5394-5403.

[14]楊超,劉文慶,張偉,等.基于利用方式的Android Root漏洞分析[J].計算機科學,2014,41(S1):343-346.YANG C,LIU W Q,ZHANG W,et al.Utilization pattern based Android Root vulnerability analysis[J].Computer Science,2014, 41(S1):343-346.

[15]盧文杰.網絡安全主動防御技術[J].網絡安全技術與應用, 2015(4):148.LU W J.Network security active defense technology[J].Network Security Technology&Application,2015(4):148.

[16]孫曉奇.面向多國發布的手機軟件定制系統的設計與實現[D].北京:中國科學院大學,2014.SUN X Q.Design and implementation of software custom ization for global released mobile phone[D].Beijing:University of ChineseAcademy of Sciences,2014.

Research based on the method of Android system active defense without Root permission

LIU Jing-qiang,LI Bin,CHEN Li-zhang,CHEN Bin

(College of Computer Science and Technology,Harbin Institute of Technology,(Weihai),Weihai 264209,China)

In order to solve the problem that the system security is reduced through getting Root permission and that the security of Android smartphone is not effective without Root permission,the working principle of ART,the Java reflection mechanism and AOP principle were studied.The new mechanism was designed and implemented to avoid the security problem caused by the traditional protection application of Hooking system function in the kernel layer and the limitations with calling API in the application layer ineffectively.The interception of sensitive behavior and the protection of smartphone were both achieved.

Android system,active defense without Root,AOP,Hook,behavior interception,Dalvik

TP309

A

10.11959/j.issn.2096-109x.2016.00013

2015-10-10;

2015-12-30。通信作者:李斌,libin@hit.edu.cn

劉井強(1991-),男,山東青州人,哈爾濱工業大學(威海)碩士生,主要研究方向為網絡安全和移動安全。

李斌(1962-),男,黑龍江慶安人,哈爾濱工業大學(威海)教授,主要研究方向為計算機網絡安全。

陳立章(1980-),男,湖南邵東人,哈爾濱工業大學(威海)高級工程師,主要研究方向為網絡安全與內容安全、網絡管理等。

陳彬(1968-),男,吉林省吉林市人,博士,哈爾濱工業大學(威海)計算機科學與技術學院副院長、副教授,主要研究方向為人工智能、機器學習。

猜你喜歡
程序檢測方法
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
小波變換在PCB缺陷檢測中的應用
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
主站蜘蛛池模板: 国产视频欧美| 国产黄色片在线看| 久久精品人妻中文视频| 亚洲精品在线91| 国产福利小视频高清在线观看| 免费无码AV片在线观看中文| 91久久精品国产| 亚洲高清中文字幕| 国产麻豆福利av在线播放| 亚洲精品欧美日本中文字幕| 色视频国产| 91在线丝袜| 高清久久精品亚洲日韩Av| 国产真实自在自线免费精品| 波多野结衣视频一区二区| 亚洲日韩欧美在线观看| 国产91九色在线播放| 最新亚洲人成网站在线观看| 亚洲美女操| 无码精油按摩潮喷在线播放| 丝袜国产一区| 国产一级在线观看www色| 国产免费人成视频网| 亚洲天堂区| 国产精品亚洲а∨天堂免下载| 国产欧美精品午夜在线播放| 国产后式a一视频| 韩日免费小视频| 中文字幕久久精品波多野结| 国产精品一区二区在线播放| 欧美日韩国产高清一区二区三区| 免费人欧美成又黄又爽的视频| 真实国产乱子伦高清| 国产精品理论片| 国产一区二区三区免费观看| 试看120秒男女啪啪免费| 国产成人综合久久精品下载| 亚洲国产成人在线| 亚洲永久免费网站| 成年人视频一区二区| 亚洲精品另类| 人妻丰满熟妇av五码区| 69av免费视频| 亚洲男人的天堂久久香蕉网| 色综合天天综合中文网| 精品黑人一区二区三区| 亚洲AV无码久久天堂| 亚洲精品男人天堂| aa级毛片毛片免费观看久| 美美女高清毛片视频免费观看| 性色生活片在线观看| 亚洲AV无码乱码在线观看裸奔 | 18禁高潮出水呻吟娇喘蜜芽| 国产精品七七在线播放| 欧美www在线观看| 欧洲熟妇精品视频| 国产精品视频公开费视频| 午夜日b视频| 亚洲一区网站| www精品久久| 国产视频久久久久| 亚洲青涩在线| 一本久道热中字伊人| 天堂av综合网| 中文字幕在线欧美| 无码精品福利一区二区三区| 伊在人亞洲香蕉精品區| 国产视频大全| 国产大片喷水在线在线视频| 午夜少妇精品视频小电影| 婷婷午夜天| 国产精品福利尤物youwu| 成人毛片在线播放| 狠狠综合久久久久综| 91精品国产91久久久久久三级| 99re热精品视频中文字幕不卡| 成人91在线| 中国国产高清免费AV片| 国产九九精品视频| 亚洲成综合人影院在院播放| 视频国产精品丝袜第一页| 成人综合网址|