亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于安卓系統(tǒng)應(yīng)用程序安全視角對(duì)拓展框架進(jìn)行測(cè)試和分析

        2017-01-24 07:52:46任小波張長(zhǎng)勝
        價(jià)值工程 2017年1期

        任小波 張長(zhǎng)勝

        摘要: 本文為探討安卓系統(tǒng)醫(yī)用程序的安全性能,對(duì)不同方式的拓展框架進(jìn)行了對(duì)比和分析,研究結(jié)果顯示I-ARM-Droid框架的優(yōu)越性能。本文展示了此框架下安卓應(yīng)用程序的部分代碼和Dalvik bytecode;對(duì)深入了解I-ARM-Droid框架,并在重寫(xiě)安卓應(yīng)用程序相關(guān)工具中發(fā)揮作用具體應(yīng)用價(jià)值。

        Abstract: This paper makes a comparative analysis of the safety performance of the medical program of Android system, and analyzes the development framework of different ways. The results show that the I-ARM-Droid framework is superior to the performance of the system. This article shows some of the code and bytecode Dalvik of Android application under this framework; to understand the I-ARM-Droid framework, and to rewrite the application of Android application related tools to play a role in specific applications.

        關(guān)鍵詞: 安卓應(yīng)用程序;安全測(cè)試;拓展框架

        Key words: Android application;security testing;development framework

        中圖分類(lèi)號(hào):[TN915.09] 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-4311(2017)01-0162-03

        0 引言

        安卓程序的應(yīng)用市場(chǎng)隨著移動(dòng)互聯(lián)網(wǎng)時(shí)代的發(fā)展經(jīng)歷著日新月異的改變。目前,就安卓系統(tǒng)來(lái)講,其中正在使用的應(yīng)用程序多達(dá)百萬(wàn)種,因此,對(duì)于安卓系統(tǒng)來(lái)講,如何進(jìn)行安全防控和安全測(cè)試就顯得尤為重要[1]。正因?yàn)檫@樣,諸多帶病毒的相應(yīng)軟件從安卓漏洞當(dāng)中出發(fā),使得眾多用戶(hù)自身的隱私遭受到了損害。研究者針對(duì)安卓手機(jī)用戶(hù)的安全問(wèn)題進(jìn)行了諸多研究,開(kāi)發(fā)多種形式的拓展框架 (Framework Extension)為其中重要程度很高的方式,在這當(dāng)中,I-ARM-Droid(In-App Reference Monitors for Android Applications)框架承擔(dān)著重寫(xiě)重任[2],其突出的優(yōu)點(diǎn)便在于用戶(hù)不必更改安卓系統(tǒng)的中間件和Linux內(nèi)核,只需要關(guān)心應(yīng)用APP就可以對(duì)自身電腦進(jìn)行安全防范。之所以使用框架,目的是最大程度上以自定義的方式消除當(dāng)下安卓系統(tǒng)當(dāng)中的相應(yīng)安全隱患。

        1 拓展框架的安全防控原理

        拓展框架通過(guò)確定目標(biāo)方法的應(yīng)用程序建立引用監(jiān)聽(tīng),如此目的有二:其一,用戶(hù)自主性較強(qiáng),可自主就Java源代碼進(jìn)行編寫(xiě),之后進(jìn)行編譯,得到Dalvikbytecode攔截目標(biāo);除此之外,對(duì)于用戶(hù)來(lái)講,原有apk(安卓應(yīng)用程序)若以反轉(zhuǎn)編譯方式得到Dalvikbytecode并進(jìn)行修改,使用期調(diào)用用戶(hù)編寫(xiě)的API,將修改的Dalvikbytecode和用戶(hù)創(chuàng)建的Dalvikbytecode集成一體,用戶(hù)簽名創(chuàng)建驗(yàn)證修改的apk。需要注意的是,在安卓系統(tǒng)中通常用證書(shū)的形式驗(yàn)證程序開(kāi)發(fā)者,因此,在這個(gè)過(guò)程中拓展框架成為關(guān)鍵一點(diǎn),用戶(hù)不必更改安卓系統(tǒng)的中間件和Linux內(nèi)核,只需要關(guān)心應(yīng)用APP就可以添加安全控制措施。并且,通過(guò)測(cè)試證明修改后的部件運(yùn)行性能沒(méi)有收到絲毫影響。

        1.1 確定目標(biāo)方法

        拓展框架進(jìn)行采用的時(shí)候,第一,用戶(hù)應(yīng)了解相應(yīng)的目標(biāo)方法,同時(shí)在此基礎(chǔ)上要滿(mǎn)足用戶(hù)的個(gè)性化需求。以框架為例,框架示意圖如圖1所示,Dalvikbytecode當(dāng)中,標(biāo)識(shí)方面應(yīng)以全名進(jìn)行認(rèn)可,詳細(xì)來(lái)看,即所有方法在全名當(dāng)中都含有多個(gè)方面,比如返回類(lèi)型(returning types)、包名(package name)、和類(lèi)名(class name)[3]。這種方法在用戶(hù)需要攔截兩個(gè)同名目標(biāo)方法時(shí)不會(huì)混淆,盡快兩個(gè)方法的名相同,但是可以明顯看出它們?cè)诓煌陌鼉?nèi)。

        1.2 創(chuàng)建Stub/Wedge Java API

        當(dāng)?shù)玫较鄳?yīng)的目標(biāo)方法后,對(duì)于用戶(hù)來(lái)講,即可在此基礎(chǔ)上進(jìn)行自定義,所以,就自定義狀況進(jìn)行闡述時(shí),需要分析Stub和Wedge這兩個(gè)重要的概念。

        在Dalvikbytecode中有靜態(tài)方法(Static method),構(gòu)造方法(Constructor),實(shí)例方法(Instance method)三種主要類(lèi)型可供調(diào)用,在I-ARM-Droid框架中,用戶(hù)可以通過(guò)靜態(tài)方法添加用戶(hù)的自定義行為,因此,這種方法被稱(chēng)為Stub方法。具體而言,靜態(tài)方法是在其方法聲明時(shí)添加Static標(biāo)示符,而Java支持靜態(tài)方法和靜態(tài)變量,所以靜態(tài)方法在被調(diào)用時(shí)需要與其類(lèi)名一同,并不需要提前創(chuàng)建這個(gè)類(lèi)的實(shí)例。舉例來(lái)說(shuō),I-ARM-Droid框架當(dāng)中應(yīng)就“java. lang. Math. Sqrt”方法進(jìn)行攔截,用戶(hù)方式,則可以同樣的返回種類(lèi)與名字進(jìn)行設(shè)計(jì),也就是 “pkgprefix. java. lang. Math. sqrt”。然而就實(shí)例和靜態(tài)兩種方式來(lái)講,其是完全不同的,實(shí)例方法便不需要標(biāo)識(shí)符,在被調(diào)用時(shí),用戶(hù)只有就實(shí)例類(lèi)型進(jìn)行創(chuàng)設(shè)才可使用相應(yīng)的方式。舉例如下:

        ClassA classA=new ClassA();

        classA. instanceMethodName()。

        圖2當(dāng)中展現(xiàn)的為被攔截實(shí)例方式。

        “android. app. Activity. setContentView(int)”。

        如圖2,其展示的即是用戶(hù)將I-ARM-Droid框架當(dāng)作基礎(chǔ)進(jìn)行攔截的相應(yīng)“android. app. Activity. setContentView(int)”。在這當(dāng)中,用戶(hù)有對(duì)返回種類(lèi)與名字進(jìn)行相應(yīng)的創(chuàng)設(shè),差別及是新方式當(dāng)中的參數(shù)共有2個(gè),其一即是被攔截方面的相應(yīng)實(shí)例。和上述方式存在差別的是,所謂構(gòu)造方式,屬于Java創(chuàng)建類(lèi)當(dāng)中的一種實(shí)例,特征即是定義和方法存在相似性,區(qū)別即是類(lèi)名和構(gòu)造方式間是相應(yīng)的,其中沒(méi)有返回類(lèi)型。ClassA classA=new ClassA(args)。圖3中便是攔截的構(gòu)造方法。

        觀(guān)察 I-ARM-Droid框架能夠發(fā)現(xiàn),所謂Wedge方法,即是用戶(hù)就目標(biāo)方法進(jìn)行攔截的相應(yīng)方式,舉例來(lái)講,若用戶(hù)想就“android. app. Activity. setContenView”進(jìn)行攔截的話(huà),首先應(yīng)建立的是Wedge類(lèi)“pkgprefix. wedge. android. app. Activity”。其中,能夠就setContentView進(jìn)行整體囊括。對(duì)于用戶(hù)來(lái)講,需要做的即是將全部承襲 “android.app.Activity”均改為繼承“pkgprefix.wedge.android.app.Activity” 類(lèi)。圖4即為攔截的“android.app.activity” 類(lèi)。在圖4中,相應(yīng)的用戶(hù)攔截方式是對(duì)為“android. app. Activity. setContent View”進(jìn)行的相應(yīng)調(diào)用,其中Weage整體名稱(chēng)是“pkgprefix. wedge. android. app. Activity. setContentView”。在此基礎(chǔ)上,即可在更改MainActivity的前提下得到Wedge Activity。

        1.3 更改原始安卓apk

        將Wedge與Stub當(dāng)作基礎(chǔ)攔截目標(biāo)的方式,用戶(hù)方面,即可在對(duì)原有的安卓系統(tǒng)應(yīng)用程序當(dāng)中的相應(yīng)目標(biāo)方式進(jìn)行引用,在此基礎(chǔ)上,重寫(xiě)名稱(chēng)的調(diào)用情況,通常來(lái)講,用戶(hù)能得到apk文件,在這時(shí)候,apktool會(huì)因?yàn)榉淳幾g的方式得到Dalvikbytecode。命令操作即是“apktool d APPNAME. Apk DESTINATION FOLDER NAME” 。下述內(nèi)容是詳細(xì)對(duì)Dalvikbyte code攔截方式的闡述。①以Dalvik bytecode方式為基礎(chǔ),對(duì)靜態(tài)方式進(jìn)行更改;②以Dalvik bytecode為基礎(chǔ),更改其中的實(shí)例方式;③在Dalvik bytecode中修改構(gòu)造類(lèi)型;④在Dalvik bytecode中修改 Wedge 方法。

        1.4 新的未簽名的apk文件由Dalvik bytecode編譯

        用戶(hù)方面,若之前的Dalvik bytecode進(jìn)行了相應(yīng)的更改,同時(shí)劃分成兩類(lèi)Dalvik bytecode。則用戶(hù)的做法即是最大程度上將其進(jìn)行合成,而apktool工具即能創(chuàng)設(shè)相應(yīng)的apk文件,一旦命令成功執(zhí)行之后,新的apk文件便創(chuàng)建在apktool\simpleApp\dist上。

        1.5 簽名測(cè)試安卓應(yīng)用程序

        若安卓系統(tǒng)當(dāng)中有沒(méi)有簽名的相應(yīng)apk,則用戶(hù)的證書(shū)即會(huì)驗(yàn)證直白,所以此基礎(chǔ)上可以signapk.Jar為基礎(chǔ),獲取apk文件。概況而言,Stub和Wedge兩種方式攔截了要傳遞給目標(biāo)方法的參數(shù),適宜I-ARM-Droid用戶(hù)充分利用現(xiàn)有信息監(jiān)聽(tīng)并制定相應(yīng)的安全策略。

        2 基于安卓程序安全視角的I-ARM-Droid拓展框架分析

        在不同的包中創(chuàng)建Stub和Wedge方法,并不能用行內(nèi)添加自定義代替[4]。這是因?yàn)?,將其放在不同的包中,能夠極大有利于開(kāi)發(fā)者減少代碼量,并且新的方法只需要進(jìn)行單次添加。換句話(huà)說(shuō),這樣可以減少代碼冗余,并且管理代碼十分方便。同時(shí),本文選擇用Dalvik bytecode代替javabytecode植入也頗有深意,這是因?yàn)橹T如dex2jar等類(lèi)似的相應(yīng)編譯工具,均是可通過(guò)Dalvik bytecode進(jìn)行轉(zhuǎn)碼的,之后得到Java字節(jié)碼,卻無(wú)法保證可以把javabytecode更改為Dalvikbytecode并保證其安全性能。

        2.1 拓展框架的局限之處

        以Stub與Wedge方式當(dāng)作基礎(chǔ)進(jìn)行創(chuàng)設(shè),最關(guān)鍵的即是相應(yīng)的開(kāi)發(fā)人員在安卓應(yīng)用程序開(kāi)放上擁有經(jīng)驗(yàn),就算是I-ARM-Droid可維持安卓系統(tǒng)當(dāng)中的相應(yīng)中間件層,然而開(kāi)發(fā)者方面,仍舊不能很好的就不一樣的目標(biāo)方法的安全敏感性進(jìn)行明確,因此開(kāi)發(fā)者便無(wú)從判定,需要向擁有豐富開(kāi)發(fā)經(jīng)驗(yàn)的大公司求助[5]。很顯然,這對(duì)安卓應(yīng)用程序開(kāi)發(fā)而言是一筆不菲的開(kāi)支,同是,當(dāng)開(kāi)發(fā)者不能維持源代碼準(zhǔn)確性時(shí),即會(huì)得到全部危險(xiǎn)目標(biāo)方法,特別應(yīng)注意的為, Stub與Wedge兩種方式均需要開(kāi)發(fā)者就原有的相應(yīng)程序代表展開(kāi)變化,舉例來(lái)講,采取Wedge方法時(shí),開(kāi)發(fā)者方面,應(yīng)就原有的子類(lèi)進(jìn)行變化,承襲其中含有Wedge方式的相應(yīng)類(lèi),若類(lèi)在安全測(cè)試上沒(méi)有通過(guò),那么程序的正常性就會(huì)受到威脅。

        2.2 拓展框架的優(yōu)越性能

        比較而言,I-ARM-Droid的框架是安卓全擴(kuò)展形式的“便攜式”體現(xiàn),這是因?yàn)榇丝蚣艽嬗趹?yīng)用層當(dāng)中,優(yōu)勢(shì)即是和中間件與Linux內(nèi)核方面的距離較遠(yuǎn)。若框架在進(jìn)行修改的時(shí)候關(guān)系到此兩方面的話(huà),那么安卓系統(tǒng)的平臺(tái)代碼全部都得更換。在此狀況下,這種更換要比單純的對(duì)應(yīng)用程序代碼進(jìn)行更改的步驟與內(nèi)容更為繁雜,然而,即使是整體進(jìn)行修改,同樣應(yīng)獲取root權(quán)限[6],而這即會(huì)在很大程度上讓安卓系統(tǒng)平臺(tái)在安全方面受到威脅。所以, I-ARM-Droid優(yōu)勢(shì)是較高的,對(duì)其來(lái)講,需要做的即是對(duì)應(yīng)用層進(jìn)行部分的更改。另外,在注入了stub和wedge API后,對(duì)安卓應(yīng)用程序性能上的影響微乎其微。

        以最大程度上展現(xiàn)驗(yàn)證性能為目的,本篇在進(jìn)行試驗(yàn)的時(shí)候,采用的為Stub方法,對(duì)象即是“java.lang.StringBuilderappend(String str)” 調(diào)用過(guò)程,首先創(chuàng)建了靜態(tài)方法,如圖5所示。在此案例中,本文完成相應(yīng)的調(diào)用目標(biāo)方式是“java. lang. StringBuilder. append(String str)”10 000次。原有調(diào)用的相應(yīng)時(shí)間是68μs,納入Stub后,調(diào)用時(shí)間增加到了75μs。這在一定程度上表明幾乎每一次的相應(yīng)調(diào)用時(shí)間會(huì)維持在0.0007μs左右。如圖6所示,Logcat所展示出的是納入stub方法之前與之后,在調(diào)用時(shí)間方面的狀況(“pkgprefix. java. lang. StringBuider. append(java. lang. StringBuilder sb, String str” )。概而言之,重要性是I-ARM-Droid框架的重要特點(diǎn),無(wú)論是哪種目標(biāo)方式,其源頭都是Android SDK,或是Java SDK。除此之外,所有安卓應(yīng)用程序當(dāng)中,對(duì)象用戶(hù)均可以用相同的方法攔截目標(biāo)方法,保證安卓應(yīng)用平臺(tái)的安全性和兼容性。

        3 結(jié)論

        本文通以I-ARM-Droid拓展框架展示了部分代碼和工具,并通過(guò)安卓應(yīng)用程序改進(jìn)測(cè)試。本文研究在對(duì)目標(biāo)進(jìn)行明確時(shí),挑選的是難度較低的方式,就Stub與Wedge兩種方式進(jìn)行了創(chuàng)設(shè),同時(shí)展出了Dalvik bytecode反編譯(改正后)的相應(yīng)方式。就本篇來(lái)講,談到的2類(lèi)方式都可以對(duì)參數(shù)進(jìn)行攔截,所以用戶(hù)即具有較大的便利性,可以相對(duì)明確的方式就目標(biāo)方法展開(kāi)監(jiān)控。

        參考文獻(xiàn):

        [1]夏宏利.云應(yīng)用安全測(cè)試技術(shù)探索[J].計(jì)算機(jī)與網(wǎng)絡(luò),2014(23).

        [2]張超永,鄧迎君,李松合,李國(guó)杰.對(duì)搭建企業(yè)源代碼安全測(cè)試云平臺(tái)的研究[J].電腦編程技巧與維護(hù),2016(09).

        [3]Davis B,Sanders B,Khodaverdia A,et al. I-ARM-Droid:A rewriting framework for in - app reference monitors for android

        applications[C]/ /In IEEE Mobile Security Technologies(MoST),San Francisco,CA,2012.

        [4]Hornyack P,Han S,Jung J,et al.These aren t the droids you re looking for:retrofitting android to protect data from imperious applications[C] / /Proceedings of the 18th ACM conference on Computer and communications security.ACM,2011.

        [5]Stavrou,Angelos,Ryan Johnson,et al. Programming on Android:Best Practices for Security and Reliability[C]/ /Software Security and Reliability (SERE). I E 7th International Conference,2013:1-2.

        [6]Rhee,Keunwoo,Hawon Kim.Security Test Methodology for an Agent of a Mobile Device Management System[J].International Journal of Security & Its Applications,2012,6:2.

        91精品啪在线观看国产18| 国产成人无码综合亚洲日韩| 无码人妻av一二区二区三区 | 日韩精品极品视频在线观看蜜桃| 麻豆精品一区二区三区| 麻豆蜜桃av蜜臀av色欲av| 免费无码成人av在线播放不卡| 国产三级精品美女三级| 国产丝袜美腿一区二区三区| 久久精品国产字幕高潮| 欧美日韩亚洲国产精品| 美女视频很黄很a免费国产| 最新日本女优中文字幕视频| 在线中文字幕乱码英文字幕正常 | 国产精品精品| 久久夜色精品国产九色| 色呦呦九九七七国产精品| 在线人成免费视频69国产| 亚洲性啪啪无码AV天堂| 亚洲一区二区三区av无| 中文字幕无码成人片| 亚洲精品字幕在线观看| 亚洲AV永久无码精品一区二国 | 五月婷婷激情六月| 亚洲中文乱码在线视频| 国产在线精品一区二区三区| 久久天天躁狠狠躁夜夜96流白浆 | 日韩va高清免费视频| 亚洲熟妇无码久久精品| 最新国产av无码专区亚洲| 欧美亚洲h在线一区二区| 国产三级精品三级男人的天堂| 各种少妇正面着bbw撒尿视频| 亚洲天堂第一区| 亚洲黄色大片在线观看| 亚洲精品一区二区三区麻豆| 日韩av高清无码| 91亚洲精品久久久蜜桃| 音影先锋中文字幕在线| 精产国品一二三产区m553麻豆| 天天射色综合|