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

        ?

        基于靜態(tài)分析的APK安全檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2018-10-23 02:02:54李軍虎陳曉升
        關(guān)鍵詞:應(yīng)用程序靜態(tài)代碼

        曹 勇 李軍虎 陳曉升

        (1.海軍工程大學(xué)信息安全系 武漢 430033)(2.海軍92665部隊(duì) 慈利 427200)(3.海軍91650部隊(duì) 湛江 524000)

        1 引言

        《2015移動(dòng)應(yīng)用隱私安全認(rèn)知調(diào)查報(bào)告》指出,目前中國(guó)手機(jī)用戶數(shù)量超過(guò)13.06億,其中智能手機(jī)用戶量超過(guò)6.8億[1];隨著近年來(lái)智能手機(jī)用戶迅速增加,移動(dòng)應(yīng)用程序也得到了迅速普及。但是,智能手機(jī)市場(chǎng)的迅速發(fā)展也帶來(lái)了如病毒、木馬,披著“正常軟件”外衣的惡意軟件,源代碼開(kāi)放的Android系統(tǒng),程序質(zhì)量參差不齊的免費(fèi)應(yīng)用商城等與用戶密切相關(guān)的安全問(wèn)題,用戶在享受應(yīng)用軟件所帶來(lái)便利的同時(shí),個(gè)人信息面臨著各種各樣的安全威脅。大量隱私泄露和濫用權(quán)限的現(xiàn)象在Android平臺(tái)廣泛存在。

        本文針對(duì)安卓市場(chǎng)第三方應(yīng)用存在大量隱私泄露及濫用權(quán)限的情況,通過(guò)研究面向Android應(yīng)用程序的代碼靜態(tài)分析工具,充分運(yùn)用反編譯分析技術(shù)、XMLParser解析技術(shù)、正則表達(dá)式關(guān)鍵詞匹配技術(shù),檢測(cè)應(yīng)用程序是否存在泄露用戶隱私和濫用手機(jī)權(quán)限。同時(shí)利用APK文件的反編譯、文件解析等方法進(jìn)行分析識(shí)別,提出采取安裝應(yīng)用程序之前展示可能涉及的權(quán)限和API的方法,為用戶選擇提供參考依據(jù),從而解決隱私信息泄露和權(quán)限濫用問(wèn)題。

        2 關(guān)鍵技術(shù)

        2.1 Android惡意代碼注入原理

        通過(guò)互聯(lián)網(wǎng)可以獲得Android平臺(tái)各類逆向工具來(lái)反編譯APK文件,就可以得到文件中包含的各類資源文件、簽名文件,以及關(guān)鍵的程序描述文件AndroidManifest.xml。將應(yīng)用文件和惡意代碼文件分別逆向得到各自的smali代碼和程序描述文件,在應(yīng)用的smali代碼中加入惡意代碼的部分,同時(shí)修改程序描述文件中的對(duì)應(yīng)條目就完成了惡意代碼的注入[2]。將已注入惡意代碼的應(yīng)用偽裝成正常應(yīng)用,應(yīng)用安裝后,惡意代碼通過(guò)一定條件觸發(fā)執(zhí)行,完成惡意行為。

        2.2 APK共享權(quán)限

        APK可以指定接口和數(shù)據(jù)給任何其他APK讀取,需要自己實(shí)現(xiàn)接口和共享的數(shù)據(jù)。隱式共享造成的隱私泄露是由AndroidManifest文件中可選屬性的濫用引起的[3]。通過(guò)共享用戶ID,擁有同一個(gè)用戶ID的多個(gè)APK可以配置成運(yùn)行在同一個(gè)進(jìn)程中。默認(rèn)可以互相訪問(wèn)任意數(shù)據(jù),訪問(wèn)其他APK的數(shù)據(jù)目錄下的數(shù)據(jù)庫(kù)和文件。

        2.3 APK逆向技術(shù)

        破解指的是反編譯APK文件進(jìn)行匯編級(jí)的代碼分析,并修改或插入自己的代碼,重新簽名打包為APK文件[4],以達(dá)到改變程序原有行為的目的。我們要破解一個(gè)APK文件,流程包括:反編譯、代碼分析、重新打包簽名。Android程序逆向的一般步驟為

        1)用解壓縮工具打開(kāi)apk文檔,得到詳細(xì)文檔結(jié)構(gòu);

        2)將classes.dex文件解壓出來(lái),然后使用工具反編譯成*.jar文件,再進(jìn)一步反編譯出Java文件;

        3)利用Google提供的apktool工具得到xml文件;

        4)將2)中得到的class文件和3)中得到的xml文件組合成一個(gè)Android工程,即可得到完整的APK源碼。

        2.4 靜態(tài)分析技術(shù)

        靜態(tài)分析是指在不運(yùn)行的情況下,采用詞法分析、語(yǔ)法分析等各種技術(shù)手段對(duì)程序文件進(jìn)行掃描從而生成程序的反匯編代碼,然后閱讀反匯編代碼來(lái)掌握程序功能的一種技術(shù)。一般有兩種方法:一種是閱讀反匯編生成的Dalvik字節(jié)碼,用IDA Pro分析dex文件,或者使用文本編輯器閱讀baksmali反編譯生成的smali文件;另一種是閱讀反匯編生成的java源碼,可以使用dex2jar生成jar文件,然后再使用jd-gui閱讀jar文件的代碼。通過(guò)上述兩種方法得到反匯編代碼后,采用下面的方法定位關(guān)鍵代碼。

        1)信息反饋法:先運(yùn)行目標(biāo)程序,然后根據(jù)程序運(yùn)行時(shí)給出的反饋信息作為突破口尋找關(guān)鍵代碼;

        2)特征函數(shù)法:跟信息反饋法類似;

        3)順序查看法:從軟件的啟動(dòng)代碼開(kāi)始,逐行向下分析,掌握軟件的執(zhí)行流程;

        4)代碼注入法:手動(dòng)修改apk文件的反匯編代碼,加入Log輸出,配合LogCat查看程序執(zhí)行到特定點(diǎn)時(shí)的狀態(tài)數(shù)據(jù);

        5)棧跟蹤法:輸出運(yùn)行時(shí)的棧跟蹤信息,然后查看棧上的函數(shù)調(diào)用序列來(lái)理解方法的執(zhí)行流程;

        6)方法剖析:熱點(diǎn)分析和性能優(yōu)化。

        靜態(tài)分析利用程序的靜態(tài)語(yǔ)法或結(jié)構(gòu)屬性來(lái)判定其惡意性,與動(dòng)態(tài)分析相比,靜態(tài)分析有以下優(yōu)點(diǎn)[5]:

        1)靜態(tài)分析允許進(jìn)行全面分析。靜態(tài)分析不受一個(gè)程序的特定執(zhí)行過(guò)程約束,并且適用于程序的所有執(zhí)行過(guò)程;

        2)結(jié)果在執(zhí)行過(guò)程之前被給出,惡意行為難以偽裝;

        3)沒(méi)有運(yùn)行時(shí)負(fù)擔(dān),能夠減少成本并且提高性能。

        3 總體模塊設(shè)計(jì)

        本文通過(guò)Android系統(tǒng)的體系結(jié)構(gòu),研究An?droid系統(tǒng)以及應(yīng)用程序的不安全因素等。通過(guò)研究面向Android應(yīng)用程序的代碼靜態(tài)分析工具,對(duì)這些API調(diào)用進(jìn)行截取,然后根據(jù)策略進(jìn)行判定。研究重要的反編譯拘束,對(duì)多個(gè)反編譯技術(shù)進(jìn)行分析對(duì)比,提出一種綜合靜態(tài)檢測(cè)方法。

        3.1 流程設(shè)計(jì)

        1)通過(guò)反編譯工具Dedexer反編譯APK文件獲得一個(gè)可以執(zhí)行機(jī)器操作的DDX文件,然后對(duì)該DDX文件進(jìn)行匹配式查找;

        2)通過(guò)使用AXMLPrinter.jar工具包反編譯An?droidManifest.xml文件,得到可讀的XML文件,然后運(yùn)用XML解析技術(shù)JDOM解析XML文件[6];

        3)對(duì) AndroidManifest.xml文件[7],跟蹤<permis?sion>和<uses-permission>兩個(gè)標(biāo)簽,尋找系統(tǒng)權(quán)限和自定義權(quán)限,并檢測(cè)具有相同User ID的共享用戶ID屬性值;

        4)對(duì)第三方應(yīng)用市場(chǎng)上的APK進(jìn)行測(cè)試和分析。

        系統(tǒng)完整的檢測(cè)流程如圖1所示。

        圖1 系統(tǒng)檢測(cè)流程

        3.2 系統(tǒng)組成

        整個(gè)系統(tǒng)組成有五個(gè)模塊:APK文件識(shí)別和解壓模塊,反編譯模塊,XML文件分析模塊,危險(xiǎn)API分析模塊,界面操作和檢測(cè)信息展示模塊。系統(tǒng)模塊如圖2所示。

        圖2 系統(tǒng)模塊圖

        主要實(shí)現(xiàn)功能:

        1)反編譯功能:將代碼文檔有dex反編譯為可讀性較高的ddx文檔,將二進(jìn)制的AndroidManifest.xml文件反編譯為可直接讀取的字符型文檔[8]。

        2)權(quán)限分析功能:對(duì)反編譯后的文件進(jìn)行搜索匹配和分析已得到APK的權(quán)限信息和API使用情況。

        3)聯(lián)合分析功能:將正在分析的APK與數(shù)據(jù)庫(kù)存儲(chǔ)的APK聯(lián)合分析,檢測(cè)是否存在通過(guò)使用相同的APK的sharedUserId實(shí)現(xiàn)數(shù)據(jù)共享[9]。

        4)潛在威脅提醒功能:綜合一個(gè)APK的所有分析信息,實(shí)現(xiàn)對(duì)APK潛在威脅的說(shuō)明。

        3.3 詳細(xì)設(shè)計(jì)

        1)APK文件識(shí)別和解壓模塊[10]

        Android應(yīng)用程序識(shí)別和解壓模塊的結(jié)構(gòu)如圖3所示。

        圖3 Android應(yīng)用程序識(shí)別和解壓模塊結(jié)構(gòu)圖

        2)反編譯模塊

        APK文件一般基于Java語(yǔ)言編寫,由于Java目標(biāo)代碼——字節(jié)碼(bytecode)中包含了大部分的源碼結(jié)構(gòu)等信息,較容易反編譯成Java源碼[11],反編譯流程如圖4所示。

        圖4 反編譯流程圖

        3)XML文件解析模塊

        本文采用JDOM對(duì)XML文件執(zhí)行解析[12]。分別對(duì)shareuserID和權(quán)限進(jìn)行分析,最終了解該APK調(diào)用其它程序組件的情況。詳細(xì)流程如圖5所示。

        圖5 XML文件解析流程圖

        4)危險(xiǎn)API檢測(cè)模塊[13]

        對(duì)所有ddx文件進(jìn)行匹配式查找,就能發(fā)現(xiàn)該APK是否使用以及使用了多少有危險(xiǎn)的API。詳細(xì)匹配流程如圖6所示。

        圖6 匹配流程圖

        3.4 系統(tǒng)實(shí)現(xiàn)

        根據(jù)上述方法進(jìn)行了系統(tǒng)實(shí)現(xiàn),軟件界面外觀如圖7所示。主要分三部分:?jiǎn)蝹€(gè)APK檢測(cè)、批量檢測(cè)和幫助說(shuō)明。檢測(cè)結(jié)果根據(jù)內(nèi)容以樹(shù)狀結(jié)構(gòu)的結(jié)點(diǎn)顯示,結(jié)果顯示簡(jiǎn)潔清晰。

        圖7 系統(tǒng)運(yùn)行界面

        4 測(cè)試驗(yàn)證

        結(jié)合國(guó)內(nèi)安卓第三方應(yīng)用市場(chǎng)現(xiàn)有的APK,通過(guò)使用本系統(tǒng)進(jìn)行測(cè)試驗(yàn)證,驗(yàn)證該方法的有效性。主要測(cè)試參數(shù)有:

        1)APK調(diào)用的危險(xiǎn)API種類和次數(shù)。

        2)APK申請(qǐng)使用的系統(tǒng)權(quán)限和自定義權(quán)限[14]。

        3)APK通過(guò)shareUserId屬性能夠間接使用的權(quán)限[15]。

        4.1 對(duì)典型Android應(yīng)用的檢測(cè)結(jié)果

        在百度Android平臺(tái)上下載全民斗地主APK,經(jīng)過(guò)上述方法的檢測(cè),可以得到該APK的基本信息、權(quán)限和API調(diào)用信息,如圖8所示。

        圖8 典型APK檢測(cè)信息

        由圖8可以得知,該APK在執(zhí)行基本功能的基礎(chǔ)上將會(huì)要求網(wǎng)絡(luò)連接并且會(huì)申請(qǐng)用戶手機(jī)發(fā)送信息和撥打電話,系統(tǒng)將其評(píng)價(jià)為威脅度中(可能會(huì)造成額外的費(fèi)用支出)。通過(guò)實(shí)際地操作該APK,顯示該APK將會(huì)使用短信權(quán)限和網(wǎng)絡(luò)權(quán)限來(lái)補(bǔ)完游戲體驗(yàn),同時(shí)需要用戶支付相應(yīng)的費(fèi)用,并潛藏著需要申請(qǐng)撥打電話的操作,雖然沒(méi)有找到惡意盜取用戶資金的操作,但并沒(méi)有在第三方應(yīng)用市場(chǎng)上發(fā)現(xiàn)其存在收費(fèi)相關(guān)的信息介紹,此體驗(yàn)結(jié)論與檢測(cè)結(jié)果吻合。

        4.2 統(tǒng)計(jì)分析結(jié)果

        對(duì)常用的游戲類和工具類APK進(jìn)行了測(cè)試比較,統(tǒng)計(jì)結(jié)果如圖9和圖10所示。

        通過(guò)檢測(cè)結(jié)果可對(duì)比看出,實(shí)驗(yàn)成功地從惡意軟件中檢測(cè)出了隱私泄露和濫用權(quán)限行為,證明了有效性。同時(shí),統(tǒng)計(jì)數(shù)據(jù)表明本文采用的APK檢測(cè)方法檢測(cè)正確率高達(dá)95%,只存在少量的漏報(bào)和誤報(bào)。

        圖9 游戲類APK申請(qǐng)權(quán)限數(shù)量

        圖10 功能類APK申請(qǐng)權(quán)限數(shù)量

        5 結(jié)語(yǔ)

        針對(duì)目前國(guó)內(nèi)安卓智能手機(jī)用戶對(duì)第三方應(yīng)用市場(chǎng)的巨大依賴性及第三方應(yīng)用市場(chǎng)的混亂性,本文采用靜態(tài)分析技術(shù),逆向反編譯解析APK文件,檢測(cè)應(yīng)用程序是否存在泄露用戶隱私和濫用手機(jī)權(quán)限,詳細(xì)生成APK中使用的權(quán)限和危險(xiǎn)API信息,分析APK可能對(duì)用戶產(chǎn)生的潛在威脅。從而指導(dǎo)用戶進(jìn)行選擇性安裝,避免了APK安裝后惡意行為導(dǎo)致的用戶利益損害。隨著安卓手機(jī)市場(chǎng)應(yīng)用的進(jìn)一步擴(kuò)大,以及用戶對(duì)安全性能和隱私保護(hù)的進(jìn)一步覺(jué)醒,本文提出的方法在手機(jī)安全防護(hù)和隱私保護(hù)中所起的作用將會(huì)日益凸顯。

        猜你喜歡
        應(yīng)用程序靜態(tài)代碼
        靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
        刪除Win10中自帶的應(yīng)用程序
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        機(jī)床靜態(tài)及動(dòng)態(tài)分析
        具7μA靜態(tài)電流的2A、70V SEPIC/升壓型DC/DC轉(zhuǎn)換器
        50t轉(zhuǎn)爐靜態(tài)控制模型開(kāi)發(fā)及生產(chǎn)實(shí)踐
        上海金屬(2013年6期)2013-12-20 07:57:59
        關(guān)閉應(yīng)用程序更新提醒
        電腦迷(2012年15期)2012-04-29 17:09:47
        精品国产av无码一道| 国产乱码卡二卡三卡老狼| 亚洲色欲色欲综合网站| 精品国产AⅤ一区二区三区4区| 日本最新在线一区二区| 日本av一级片免费看| 97精品国产97久久久久久免费| 丰满少妇人妻无码专区| 日本一区二区三区在线播放 | 中文字幕人妻无码一夲道| 免费可以在线看A∨网站| 日本女优中文字幕在线观看| 视频在线观看国产自拍| 欧美成人片在线观看| 国产真实露脸4p视频| 激情网色图区蜜桃av| 国产精品无码翘臀在线观看| 亚洲日本在线电影| 白白色发布在线播放国产| 东京热加勒比国产精品| 含紧一点h边做边走动免费视频| 欧美俄罗斯乱妇| 女同成片av免费观看| 亚洲国产一区二区三区精品| 高清不卡一区二区三区| 午夜tv视频免费国产区4| 日本黄色特级一区二区三区| 亚洲欧美综合精品成人网站| 成人亚洲性情网站www在线观看| 日日躁欧美老妇| 国产老熟女精品一区二区| 99久久久无码国产精品6| 国产真实老熟女无套内射| 国产99页| 精品国产三区在线观看| 特黄熟妇丰满人妻无码| 这里只有久久精品| 色婷婷一区二区三区77| 日韩精品无码一区二区三区四区| 日韩精品人妻系列无码专区免费| 老肥熟女老女人野外免费区|