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

        ?

        安卓惡意代碼及軟件檢測方法研究

        2022-04-09 12:56:40王晨光宋繼紅
        電腦知識與技術(shù) 2022年6期

        王晨光 宋繼紅

        摘要:Android系統(tǒng)作為現(xiàn)階段社會廣泛使用的移動端操作系統(tǒng),雖然給社會帶來了很多便利,但是隨著Android系統(tǒng)上惡意軟件的滋生和傳播,也給用戶造成了巨大的安全威脅。文章從安卓的安全機(jī)制進(jìn)行分析,針對各種可能對Android操作系統(tǒng)造成安全威脅的漏洞進(jìn)行提煉和分析,通過靜態(tài)分析的方式對反編譯后的smali文件中的信息進(jìn)行提煉和總結(jié),根據(jù)組件、權(quán)限、url和所對應(yīng)的敏感api進(jìn)行語義分析,總結(jié)App可能對用戶產(chǎn)生的安全威脅。

        關(guān)鍵詞:靜態(tài)分析;惡意軟件檢測;敏感API;Smali;Soot

        中圖分類號:TP393? ? ? ? 文獻(xiàn)標(biāo)識碼:A

        文章編號:1009-3044(2022)06-0031-03

        開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):

        Android是由Google公司與開放手機(jī)聯(lián)盟開發(fā)的一款基于Linux內(nèi)核的操作系統(tǒng),已經(jīng)過多年,至今Android應(yīng)用市場已形成較大的規(guī)模,例如官方的Google應(yīng)用市場,第三方安卓應(yīng)用市場應(yīng)用寶等,雖然大量的移動應(yīng)用的出現(xiàn)給人們的生活帶來了很多便利,但與此同時,由于其系統(tǒng)的開源性也導(dǎo)致很多惡意應(yīng)用乘虛而入,破壞Android系統(tǒng)的安全性,根據(jù)360烽火實驗室2019年報告[1]指出,中國平均每天都會攔截手機(jī)的惡意程序攻擊259.2萬次,其中在移動金融行業(yè),移動流量產(chǎn)業(yè)和移動社交領(lǐng)域都出現(xiàn)了對于經(jīng)濟(jì)效益的攻擊。根據(jù)奇安信 2020年報告[2]指出,現(xiàn)在黑色產(chǎn)業(yè)鏈仍然活躍并相比2019年的攻擊方式,又多了很多新型攻擊手段,對于用戶隱私和財產(chǎn)安全威脅嚴(yán)重,其中山寨網(wǎng)貸、刷量廣告、棋牌私彩等黑色產(chǎn)業(yè)鏈最為突出,對于用戶的隱私信息和經(jīng)濟(jì)利益會造成巨大的威脅,所以對于Android的安全性治理應(yīng)該隨著現(xiàn)代的發(fā)展進(jìn)行進(jìn)一步的更新以及深入。

        1 Android安全機(jī)制

        Android系統(tǒng)在Linux原有的安全機(jī)制的基礎(chǔ)上結(jié)合移動端特性,設(shè)計了進(jìn)程沙箱隔離機(jī)制、應(yīng)用程序簽名機(jī)制和權(quán)限機(jī)制等安全機(jī)制,保證應(yīng)用程序的安全性[3]。

        1.1 進(jìn)程沙箱隔離機(jī)制

        Android應(yīng)用程序移植Linux操作系統(tǒng)的多用戶隔離機(jī)制,讓應(yīng)用程序在安裝時被賦予獨特的用戶標(biāo)識(UID),并永久保持;應(yīng)用程序及其運行的Dalvik虛擬機(jī)運行于獨立的Linux進(jìn)程空間,與UID不同的應(yīng)用程序完全隔離。雖然是隔離的,但在用戶要共享資源時,同時提供共享資源的方式,保證資源的共享順利完成。這種安全機(jī)制,在發(fā)現(xiàn)惡意軟件的時候,可以將惡意軟件隔離在一個單獨的空間,保證其他應(yīng)用程序的安全。

        1.2 應(yīng)用程序簽名機(jī)制

        Android應(yīng)用程序的簽名對每一個應(yīng)用程序都必不可少。為了標(biāo)志代碼作者和監(jiān)測應(yīng)用程序的改變,開發(fā)者需要擁有私有密鑰,從而可以在應(yīng)用程序之間安全地共享資源。不同的應(yīng)用程序通過相同的簽名可以相互授權(quán)訪問API[4]。

        1.3 權(quán)限機(jī)制

        Android權(quán)限機(jī)制是指在應(yīng)用程序成功運行時所需要的權(quán)限,在Android 6.0之后,具體權(quán)限在AndroidManifest.xml文件中<uses-permisson>標(biāo)簽中通過android:protectionLevel屬性進(jìn)行設(shè)置分為4類,Normal類:低風(fēng)險權(quán)限,任何應(yīng)用都可以申請,在安裝應(yīng)用時系統(tǒng)默認(rèn)授權(quán);Dangerous類:高風(fēng)險權(quán)限,在安裝時需要用戶確認(rèn)才可以使用;Signature類:僅當(dāng)申請該權(quán)限的應(yīng)用程序與聲明該權(quán)限的程序使用相同的簽名時,才能賦予該權(quán)限;SignatureOrSystem類:僅當(dāng)申請該權(quán)限的應(yīng)用程序位于相同的Android系統(tǒng)鏡像中,或申請該權(quán)限的應(yīng)用程序與聲明該權(quán)限的程序使用相同的簽名時,才賦予該權(quán)限。

        2 Android漏洞分析

        2.1 惡意軟件

        Android的惡意軟件是各種各樣的,并且有很多種分類的方法。其中按照傳統(tǒng)進(jìn)行分析,卿思漢[5]等人表示可以分為木馬類、病毒類、后門類、僵尸類、間諜軟件類、恐嚇軟件類、勒索軟件類、廣告軟件類和跟蹤軟件類等。另一種是按照惡意軟件特征進(jìn)行分類,Zhou[6]等人認(rèn)為可以分為惡意軟件安裝、惡意軟件運行、惡意負(fù)載、權(quán)限使用等。在其中360官方2020年報告[7]顯示指出,其中惡意軟件行為主要為惡意扣費、資源消耗、流氓行為,所以直接可以看出,惡意軟件的目的直接和經(jīng)濟(jì)聯(lián)系到一起,為謀取利益而進(jìn)行惡意行為。

        2.2 Android敏感權(quán)限

        Android 6.0 版本以后,Android官方加強(qiáng)了對權(quán)限的管理,其中Android的敏感權(quán)限都放在了Dangerous權(quán)限類中,在Dangerous權(quán)限的類中分為9個大類包含24個敏感權(quán)限,在Androidapp運行的時候?qū)τ诎踩墑e為dangerous的服務(wù)進(jìn)行授權(quán)時,需要用戶的授權(quán)同意,才可以獲得授權(quán),其中還有與危險權(quán)限不同的特殊權(quán)限,SYSTEM_ALERT_WINDOW 和 WRITE_SETTINGS 特別敏感對系統(tǒng)進(jìn)行操作,因此大多數(shù)應(yīng)用不應(yīng)該使用這兩個權(quán)限,如果某應(yīng)用需要其中一種權(quán)限,必須在清單中聲明該權(quán)限,并且發(fā)送請求用戶授權(quán)的 intent。這樣可以通過用戶的操作,提高Android系統(tǒng)安全性。

        2.3 第三方SDK漏洞

        SDK全稱:Software Development Kit,通常是指專業(yè)公司提供的第三方服務(wù),以jar包/so庫的形式集成到應(yīng)用中,封裝了很多功能。對于開發(fā)者而言屬于黑盒,無法知曉其中是否安全。所以由于這個原因,很多第三方公司對此進(jìn)行利用,導(dǎo)致很多漏洞的出現(xiàn),包括繞過沙盒限制、訪問應(yīng)用私有組件、推送惡意消息、誘導(dǎo)訪問釣魚網(wǎng)站、訪問用戶隱私數(shù)據(jù)等。

        3 Android漏洞分析方法

        3.1 惡意數(shù)據(jù)集收集

        Android的惡意軟件檢測離不開數(shù)據(jù)集的支持,但是由于Android應(yīng)用更新較快,所以數(shù)據(jù)集的收集也成為當(dāng)前一個非常困難的事情,當(dāng)前最常用的有兩類,一類是惡意樣本的共享網(wǎng)站,例如VirusShare[8]等;另一類是具有家族信息的數(shù)據(jù)集,例如Drebin[9]數(shù)據(jù)集、開源DroidBench[10]數(shù)據(jù)集等。

        3.2 Androidapp介紹

        Androidapp是一個被打包的Apk文件,而Apk文件同時也是一個壓縮文件,通過解壓可以看到每一個Apk文件的基本組成結(jié)構(gòu),如表1所示。

        其中最為重要也是需要進(jìn)行重點分析的是AndroidManifest.xml文件和classes.dex文件,AndroidManifest.xml文件中主要存儲Android四大組件,其中Activity是用戶操作的可視化頁面,它為用戶提供了一個完成操作指令的窗口。Service是用作后臺處理耗時的邏輯,Content Provider一個應(yīng)用程序指定數(shù)據(jù)集提供給其他程序,實現(xiàn)數(shù)據(jù)共享。 BroadcastReceiver運用在應(yīng)用程序之間的傳輸信息的機(jī)制,對發(fā)送出來的廣播進(jìn)行過濾并響應(yīng)。Androidapp的四大組件之間通過一個運行綁定機(jī)制——Intent機(jī)制將四大組件聯(lián)系起來,進(jìn)行通信以及程序之間的交互。

        3.3 Androidapp逆向工程

        1) Apk反編譯

        通過Apktool工具反編譯Apk得到以下文件結(jié)構(gòu),如表2所示。

        其中最關(guān)鍵的是通過Smali文件夾中的以.smali文件結(jié)尾的文件獲取信息。在smali文件中,可以通過指定的讀取smali文件的方法提取文件的信息。

        2) smali文件

        Smali是用于Dalvik(Android虛擬機(jī))的反匯編程序?qū)崿F(xiàn),一個smali文件相對應(yīng)一個java的.class文件,如果java有內(nèi)部類的格式,則寫為ClassName$InnerClassA表示,所以smali文件個數(shù)要比對應(yīng)的class的文件個數(shù)數(shù)量多。

        (1) 在smali文件中存放了很多和java文件所對應(yīng)的指令代碼,在smali文件中的指令都是以“.”開始,對應(yīng)java文件的常用指令如表3所示。

        (2) smali文件中的也有屬于自己的數(shù)據(jù)類型,它的類型是和java文件中的數(shù)據(jù)類型一一對應(yīng)的,例如smali文件中的“I”表示java文件中的int,具體常用的類型如表4所示。

        通過對于smali文件的解析可以得到每個class的詳細(xì)信息,如下部分smali文件代碼所示:

        .class public Lmiui/app/ActivityOptionsHelper;//指定包名和類名

        .super Ljava/lang/Object;//父類名

        .source "SourceFile"http:// 源文件名稱

        .method private constructor <init>()V// 函數(shù)的名稱

        .locals 0// 寄存器個數(shù)

        .line 1// 行數(shù)

        invoke-direct {p0}, Ljava/lang/Object;→<init>()V// 方法調(diào)用一個參數(shù)

        return-void// 返回值

        .end method// 結(jié)束任務(wù)

        在上述代碼中可以通過前三行代碼判斷這個文件的類關(guān)系,“.method”為函數(shù)的開始,隨后可知函數(shù)的名稱,在函數(shù)中“invoke”的字符,后面也會有調(diào)用函數(shù)的名稱,可以得到調(diào)用函數(shù)的關(guān)系,在搜索到“.end method”中,代表此函數(shù)的結(jié)束,通過遍歷文件的這個方法可以提取所有Apk信息中所調(diào)用的api,經(jīng)過以上步驟可以通過這種方式獲取所有靜態(tài)特征。

        在得到想要的信息后,可以和Virustutal[11]提供的官方分析工具給出分析信息并比較,查看是否存在問題,從而增加得到數(shù)據(jù)的準(zhǔn)確性。

        3.4 Android靜態(tài)分析

        靜態(tài)分析法通過對惡意軟件本身二進(jìn)制文件、可執(zhí)行文件或者通過反編譯文件提取到的應(yīng)用程序組件、權(quán)限、API等靜態(tài)特征進(jìn)行分析[12],對比惡意軟件與正常軟件的靜態(tài)特征的異同來發(fā)現(xiàn)惡意軟件。靜態(tài)檢測的優(yōu)點是檢測速度快、可以上傳Apk到服務(wù)端進(jìn)行檢測,缺點是無法有效識別利用Android系統(tǒng)漏洞和靜態(tài)檢測對抗技術(shù)的惡意應(yīng)用識別[3]。

        1) Soot框架

        Soot[13]是Mc Gill大學(xué)的Sable研究小組所研發(fā)的一種Java優(yōu)化框架,現(xiàn)在被世界各地的研究人員用來對Java工程和Android應(yīng)用進(jìn)行分析。其中最關(guān)鍵的是其中定義的五種數(shù)據(jù)結(jié)構(gòu),分別是Scene、SootClass、SootMethod、SootField、Body。這些數(shù)據(jù)結(jié)構(gòu)使用面向?qū)ο蠹夹g(shù)來實現(xiàn),所以可以被輕易使用。通過Soot對于Apk的靜態(tài)分析可以得到Apk的詳細(xì)信息例如權(quán)限,Android四大組件信息以及Intent的調(diào)用信息。

        通過Soot框架進(jìn)行的某app調(diào)用權(quán)限以及組件部分信息的情況圖,可以通得出結(jié)果,如圖1所示。

        在將權(quán)限收集完成后,與官方所給出的風(fēng)險提示相比較,得出所含有的風(fēng)險類型以及風(fēng)險詳細(xì)描述,如發(fā)現(xiàn)第三方所需要的權(quán)限與數(shù)據(jù)庫內(nèi)容不相符,則加入數(shù)據(jù)庫中并產(chǎn)生提示,在后續(xù)的維護(hù)中,進(jìn)行第三方權(quán)限的補充收集工作。在通過代碼獲取四大組件的部分信息如圖2所示。

        通過簡單的邏輯代碼可以提取在權(quán)限文件中所屬的四大組件使用Intent-filter便簽的信息,例如<action name="miui.intent.calculator.FLOAT_WINDOW_SERVICE">,屬于service組件中使用intent-filter進(jìn)行標(biāo)注的組件,其他三大組件和此方法的提取方式一致,通過算法實現(xiàn)對intent-filter中action和category信息進(jìn)行提取。

        通過對Android中四大組件信息的收集,可以分析出 exported 屬性是否為私有或者公有,通過判斷是否存在intent filter 和 android:exported的設(shè)置,對于結(jié)果進(jìn)行收集,通過權(quán)限的設(shè)置和上述屬性的配置,判斷在四大組件中是否存在組件暴露的風(fēng)險特征,如果出現(xiàn)了風(fēng)險,則進(jìn)行組件判斷,判斷是由哪個組件的產(chǎn)生的風(fēng)險,跟蹤組件信息,從而定位準(zhǔn)確位置。

        2) 語義分析

        通過在各大應(yīng)用市場的Apk收集和上文所提到的惡意軟件數(shù)據(jù)集的提取,將其中的權(quán)限作為語義分析的特征之一,其中提取第三方權(quán)限和官方權(quán)限信息1800余條并分類。再通過Psout所提供的數(shù)據(jù)集,將其中敏感的權(quán)限取出保存至txt文件中。依據(jù)所提取到的權(quán)限與已提取到的數(shù)據(jù)進(jìn)行數(shù)據(jù)匹配得到敏感Api,作為語義分析的第二特征。將所有提取到的特征利用集合進(jìn)行存儲,再將所得到結(jié)果的集合組合,生成最終的數(shù)據(jù)集文件,利用weka進(jìn)行所得到特征的數(shù)據(jù)集分析,通過決策樹,貝葉斯分類器算法進(jìn)行訓(xùn)練,根據(jù)訓(xùn)練所得的比率,設(shè)定閾值從而預(yù)測App是否屬于惡意軟件。

        4 結(jié)論

        通過對于Androidapp的逆向工程以及反編譯知識,了解到在Androidapp背后所產(chǎn)生的種種安全。在對于權(quán)限分析和第三方SDK的分析中,可能會因為版本的變換以及權(quán)限對應(yīng)Api的改變導(dǎo)致分析的不正確產(chǎn)生偏差,所以在后續(xù)的研究中要加強(qiáng)對于出現(xiàn)問題的解決能力。隨著5G時代的到來,安全的信息化建設(shè)更是重中之重,在對于移動端的安全保證方面,還需要更加努力地繼續(xù)深入研究。

        參考文獻(xiàn):

        [1] 2019年Android惡意軟件專題報告 - 360 核心安全技術(shù)博客[EB/OL]. [2021/12/1]. https://blogs.#/post/review_android_malware_of_2019.html.

        [2] 2020Android平臺安全亂象:超230萬惡意程序被截獲[EB/OL].[2021/12/1].https://baijiahao.baidu.com/s?id=169519861 2017629671.

        [3] 王思遠(yuǎn),張仰森,曾健榮,等.Android惡意軟件檢測方法綜述[J].計算機(jī)應(yīng)用與軟件,2021,38(9):1-9.

        [4] 張琳.Android安全技術(shù)分析[J].電子技術(shù)與軟件工程,2016(18):211.

        [5] 卿斯?jié)h.Android安全研究進(jìn)展[J].軟件學(xué)報,2016,27(1):45-71.

        [6] Zhou Y J,Jiang X X.Dissectingandroid malware:characterization and evolution[J].2012 IEEE Symposium on Security andPrivacy,2012:95-109.

        [7] 你的Android手機(jī)安全嗎?這份報告驚呆你!-安全資訊-360官網(wǎng)[EB/OL]. [2021/12/1]. https://www.#/n/11558.html.

        [8] VirusShare.com. https://virusshare.com/.

        [9] The Drebin Dataset. https://www.sec.tu-bs.de/~danarp/drebin/.

        [10] DroidBench. https://github.com/secure-software-engineering/DroidBench/.

        [11] VirusTotal. https://www.virustotal.com/gui/.

        [12] 蔣煦,張長勝,戴大蒙,等.Android平臺惡意應(yīng)用程序靜態(tài)檢測方法[J].計算機(jī)系統(tǒng)應(yīng)用,2016,25(4):1-7.

        [13] Soot - A Java optimization framework. https://github.com/soot-oss/soot.

        【通聯(lián)編輯:代影】

        久久国产精品色av免费看| 国产欧美日韩一区二区三区在线| 亚洲日韩小电影在线观看| 国产成熟人妻换╳╳╳╳| 免费毛片在线视频| 中文字幕中文字幕人妻黑丝| 爆操丝袜美女在线观看| 51国产黑色丝袜高跟鞋| 国产成人亚洲综合一区| 蜜桃在线观看免费高清| 久久天堂精品一区二区三区四区 | 国产午夜福利不卡在线观看视频| 国产极品美女高潮抽搐免费网站| 国产乱老熟视频乱老熟女1| 日韩三级一区二区三区| 久久久久亚洲av片无码下载蜜桃| 国产免费av片在线观看麻豆| 国产av无码专区亚洲av| 一道久在线无码加勒比| 被欺辱的高贵人妻被中出| 国产一区二区三区中出| 国产在热线精品视频| 日日干夜夜操高清视频| 色优网久久国产精品| 国产自产av一区二区三区性色| 亚洲欧美日韩精品久久亚洲区色播 | 热99精品| 国产亚洲精品看片在线观看| 日韩av在线不卡观看| 中文字幕视频一区懂色| 国产av无码专区亚洲a∨毛片| 99精产国品一二三产品香蕉| 色yeye在线观看| 国产一级r片内射免费视频| 韩日无码不卡| 白色月光免费观看完整版 | 国产揄拍国产精品| 三年片在线观看免费大全电影| 亚洲精品美女久久久久99| 久久免费看的少妇一级特黄片| 国产乱子伦一区二区三区国色天香|