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

        ?

        改進(jìn)隨機(jī)森林在Android惡意軟件檢測(cè)中的應(yīng)用

        2021-02-04 14:15:54覃仁超何夢(mèng)乙劉建蘭唐風(fēng)揚(yáng)
        關(guān)鍵詞:分類特征檢測(cè)

        熊 健,覃仁超,何夢(mèng)乙,劉建蘭,唐風(fēng)揚(yáng)

        西南科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,四川 綿陽(yáng)621000

        近年來(lái)智能手機(jī)已迅速成為極為流行的計(jì)算平臺(tái),使用智能手機(jī)的人群日益龐大。其中Android操作系統(tǒng)在智能手機(jī)操作系統(tǒng)市場(chǎng)占領(lǐng)絕對(duì)優(yōu)勢(shì),成為使用量最多的移動(dòng)端操作系統(tǒng)。此外,其開源性和開放性也使得它成為了越來(lái)越多黑客的攻擊對(duì)象。《2018 年中國(guó)手機(jī)安全狀況報(bào)告》[1]顯示,360互聯(lián)網(wǎng)安全中心在當(dāng)年共截獲約434.2萬(wàn)個(gè)新增Android惡意應(yīng)用樣本,平均每天新增約1.2 萬(wàn)個(gè)。為減少Android 惡意應(yīng)用給用戶帶來(lái)的危害和損失,Android 惡意軟件的檢測(cè)成為近年來(lái)一項(xiàng)熱門的研究。

        國(guó)內(nèi)外針對(duì)Android惡意應(yīng)用檢測(cè)方法做出了許多研究。目前分析Android應(yīng)用的技術(shù)主要包括靜態(tài)檢測(cè)和動(dòng)態(tài)檢測(cè)技術(shù)。靜態(tài)檢測(cè)技術(shù)就是在不執(zhí)行應(yīng)用的條件下,利用反匯編分析的技術(shù)。由于其具有不需執(zhí)行應(yīng)用、檢測(cè)開銷低等優(yōu)點(diǎn)成為了眾多學(xué)者采用的方法[2]。?ahin等人[3]對(duì)權(quán)限進(jìn)行了系統(tǒng)地分析并提出了給權(quán)限分配權(quán)重的方法,采用k近鄰(KNN)和樸素貝葉斯(NB)方法與已有的研究進(jìn)行比較;Westyarian 等人[4]提出了利用API 類來(lái)檢測(cè)Android 惡意軟件,并使用機(jī)器學(xué)習(xí)來(lái)區(qū)分惡意應(yīng)用,使用交叉驗(yàn)證和百分比分割測(cè)試來(lái)驗(yàn)證分類的準(zhǔn)確性;Ju[5]提出一種靜態(tài)檢測(cè)的方法,該方法利用程序的權(quán)限和包;Yuan等人[6]提出了一種基于貝葉斯分類的Android 應(yīng)用程序自動(dòng)分類的有效方法,從應(yīng)用程序本身和Android market 中提取出應(yīng)用的權(quán)限和字符串作為分類特征;Li等[7]提出一種基于靜態(tài)分析的方法,通過提取權(quán)限和API 調(diào)用函數(shù)作為特征來(lái)訓(xùn)練支持向量機(jī)(SVM)算法;Arp[8]提出一個(gè)靜態(tài)分析Android 應(yīng)用框架,從AndroidManifest 文件中提取一組功能,并通過反匯編代碼生成特征向量,將SVM應(yīng)用于數(shù)據(jù)集來(lái)識(shí)別惡意應(yīng)用;基于靜態(tài)分析的DROIDMAT[9]分析AndroidManifest 文件,提取應(yīng)用程序的不同功能,例如權(quán)限和意圖消息,然后標(biāo)記了應(yīng)用程序組件、活動(dòng)、服務(wù)和接收者作為初始點(diǎn)來(lái)跟蹤和權(quán)限有關(guān)聯(lián)的API調(diào)用,并應(yīng)用K-means 算法對(duì)惡意應(yīng)用進(jìn)行分類檢測(cè);Chan 等人[10]提出了一個(gè)包含Android 惡意軟件靜態(tài)檢測(cè)權(quán)限和API 調(diào)用的特征集。其中,文獻(xiàn)[3]只選取了Android 軟件的權(quán)限作為特征,特征選取過于單一;文獻(xiàn)[4]選擇了Android 軟件的API 函數(shù)作為特征,選擇范圍比較片面;文獻(xiàn)[5-10]雖然采用了多種特征結(jié)合,并運(yùn)用相應(yīng)機(jī)器學(xué)習(xí)技術(shù)進(jìn)行檢測(cè),但檢測(cè)精度都不夠高。綜上所述,目前Android 惡意軟件檢測(cè)的研究成果在檢測(cè)效率和精度等方面還有待進(jìn)一步提高。

        本文提出的Android 惡意軟件靜態(tài)檢測(cè)模型,采用基于行為的靜態(tài)分析技術(shù),提取權(quán)限、四大組件、API調(diào)用以及程序的關(guān)鍵信息如動(dòng)態(tài)代碼、反射代碼、本機(jī)代碼、密碼代碼和應(yīng)用程序數(shù)據(jù)庫(kù)等11 個(gè)類別作為特征屬性,并對(duì)屬性使用信息增益算法(Information Gain,IG)進(jìn)行優(yōu)化選擇,通過對(duì)比共選取65 個(gè)分類特征,先采用有監(jiān)督的機(jī)器學(xué)習(xí)算法對(duì)Android程序進(jìn)行檢測(cè)分類并比較它們之間的精確度,通過對(duì)比選擇精確度最高的隨機(jī)森林(Random Forest)算法,采用加權(quán)投票機(jī)制對(duì)其進(jìn)行改進(jìn),并將其應(yīng)用于本模型的惡意軟件檢測(cè)分類當(dāng)中。通過實(shí)驗(yàn)證明,本文提出的模型在有效提高Android惡意軟件檢測(cè)效率上具有一定的可行性。

        1 Android應(yīng)用基礎(chǔ)

        Android 操作系統(tǒng)基于Lniux 內(nèi)核,主要由Linux 內(nèi)核、Android 中間件和應(yīng)用層三部分構(gòu)成,如圖1 所示。Linux 內(nèi)核層位于最下面一層,是系統(tǒng)庫(kù)層與硬件之間的橋梁,提供一系列的核心系統(tǒng)服務(wù),負(fù)責(zé)硬件抽象和驅(qū)動(dòng)程序等;Android中間件層包括應(yīng)用架構(gòu)層、Android運(yùn)行時(shí)和系統(tǒng)庫(kù)。該層為上層的應(yīng)用提供了必要的運(yùn)行環(huán)境,為Android系統(tǒng)提供了核心功能;應(yīng)用層提供了許多API,方便開發(fā)人員使用來(lái)開發(fā)應(yīng)用程序。

        圖1 Android操作系統(tǒng)框架

        Android應(yīng)用程序有四個(gè)基本組件:活動(dòng)(Activity)、廣播接收器(Broadcast Receiver)、內(nèi)容提供商(Content Provider)和服務(wù)(Service)。其中活動(dòng)組件用于聲明一個(gè)實(shí)現(xiàn)應(yīng)用的部分可視化用戶界面;廣播接收器是接收廣播通知的組件,用于實(shí)現(xiàn)消息的發(fā)布與訂閱;內(nèi)容提供商用于實(shí)現(xiàn)數(shù)據(jù)共享,為程序間的數(shù)據(jù)訪問提供接口;服務(wù)長(zhǎng)期運(yùn)行在后臺(tái),提供一系列系統(tǒng)服務(wù)。

        Android 應(yīng)用程序APK 文件是由JAVA 語(yǔ)言編寫的壓縮安裝包文件,它包含了程序的所有內(nèi)容。APK文件的主要組成有:META-INF 目錄、assets 目錄、res 目錄、AndroidManifest.xml文件、classes.dex文件、resources.arsc文件。其中META-INF 目錄主要存放校驗(yàn)文件;assets目錄存放在封裝到APK文件中時(shí)要保持原始文件形式的文件;res 目錄主要用來(lái)存儲(chǔ)與圖形界面有關(guān)的資源文件;AndroidManifest.xml 文件是存儲(chǔ)Android 應(yīng)用配置的文件,包含如包名、權(quán)限列表及組件聲明等信息;classes.dex文件擁有程序的全部邏輯實(shí)現(xiàn);resources.arsc文件是一個(gè)已被編譯過的索引文件,用來(lái)記錄ID 與資源文件之間的關(guān)系。

        2 隨機(jī)森林算法

        2.1 算法分析

        隨機(jī)森林(RF)算法是由Breiman和Adele開發(fā)的一種集成學(xué)習(xí)算法[11-12],該算法對(duì)Bagging 算法進(jìn)行了擴(kuò)展,結(jié)合了Bagging和隨機(jī)子空間方法,可以用來(lái)處理分類問題和回歸問題等。在Bagging 中,通過使用輸入數(shù)據(jù)的bootstrap 樣本單獨(dú)構(gòu)建每個(gè)分類器。在常規(guī)決策樹分類器中,劃分屬性是選擇當(dāng)前結(jié)點(diǎn)屬性集合的一個(gè)最優(yōu)解。而在RF 中,首先在結(jié)點(diǎn)的屬性集合中隨機(jī)選擇一個(gè)子集,該子集包含m個(gè)屬性,然后再?gòu)倪@個(gè)子集中選擇一個(gè)最優(yōu)屬性。這種對(duì)于特征的隨機(jī)選擇不僅可以在每個(gè)特征向量包含許多特征的情況下,使用RF很好進(jìn)行縮放,而且還可以減少特征屬性之間的相互依賴性(相關(guān)性),從而更不容易受到特征內(nèi)在噪音的影響。RF 算法的流程如圖2 所示,隨機(jī)森林算法偽代碼如下。

        輸入:樣本集N

        For b=1←B

        1. 從原始數(shù)據(jù)N中有放回地抽取bootstrap樣本記為Z

        2. 對(duì)bootstrap 樣本進(jìn)行建模并生成決策樹T,生成過程遵循下述原則:

        1.1 從所有樣本N中隨機(jī)選取M個(gè)屬性

        1.2 從這M個(gè)屬性中選擇最佳分割屬性作為分裂點(diǎn)

        1.3 重復(fù)以上兩個(gè)步驟建立k棵決策樹

        end for 輸出:決策樹集合組成隨機(jī)森林

        圖2 RF算法流程示意圖

        3. 使用上述的隨機(jī)森林對(duì)樣本進(jìn)行分類檢測(cè),采用簡(jiǎn)單投票原則算出最終的分類結(jié)果

        2.2 算法特點(diǎn)

        RF算法簡(jiǎn)單易實(shí)現(xiàn)、計(jì)算開銷小,并且因?yàn)槠湓诂F(xiàn)實(shí)任務(wù)中展現(xiàn)出來(lái)的強(qiáng)大性能,被譽(yù)為“代表集成學(xué)習(xí)技術(shù)水平的方法”。RF 中基學(xué)習(xí)器的多樣性不僅來(lái)自于樣本擾動(dòng),還來(lái)自屬性擾動(dòng),這就使得該算法比單個(gè)分類器具有更好的泛化能力和分類效果。通過平均決策樹,具有抗過擬合能力。RF非常穩(wěn)定,即使數(shù)據(jù)集中出現(xiàn)了一個(gè)新的數(shù)據(jù)點(diǎn),整個(gè)算法也不會(huì)受到過多影響,它只會(huì)影響到一棵決策樹,很難對(duì)所有決策樹產(chǎn)生影響。但是,RF算法在投票選舉的時(shí)候無(wú)法區(qū)分強(qiáng)、弱分類器之間的差距也存在著可以改進(jìn)的地方,下面將對(duì)其進(jìn)行改進(jìn)。

        3 改進(jìn)的隨機(jī)森林算法

        對(duì)于分類任務(wù)來(lái)說(shuō),最常見的預(yù)測(cè)策略是使用投票法。RF算法采取的是簡(jiǎn)單投票原則即將同樣的權(quán)值賦值到每棵決策樹上,從而忽略了不同分類器之間強(qiáng)弱的差異,無(wú)法增強(qiáng)隨機(jī)森林中分類性能優(yōu)秀和削弱分類性能欠佳的決策樹對(duì)分類結(jié)果的影響。因此,本文采用加權(quán)投票原則對(duì)RF 算法進(jìn)行改進(jìn),形成改進(jìn)的隨機(jī)森林(Improved Random Forest,IRF)分類器。具體步驟如下。

        (1)首先使用Bagging算法從原始數(shù)據(jù)集(記為N)中有放回地抽取樣本,形成一個(gè)樣本集。因此,會(huì)存在一些未被抽取到的樣本,這一部分樣本稱為OOB(Out-Of-Bag)數(shù)據(jù),OOB數(shù)據(jù)中每個(gè)樣本沒有被抽到的概率為那么N→∞時(shí)p≈0.368,表明沒有被抽中的樣本的概率有36.8%。設(shè)X為測(cè)試樣本集,x為它的一個(gè)樣本;T為訓(xùn)練完成的決策樹分類器集合,t為當(dāng)前的決策樹;C為分類結(jié)果集合,其中c是C中的一個(gè)分類。

        (2)將OOB數(shù)據(jù)輸入到T中,得到每棵決策樹對(duì)OOB數(shù)據(jù)正確分類的比率CRt,作為相應(yīng)決策樹的權(quán)重。

        (3)對(duì)樣本x使用RF進(jìn)行檢測(cè)分類并加權(quán)統(tǒng)計(jì),屬于Malware類的總得票數(shù)記為S,則:

        (4)選出得票最多的類別C作為樣本x的最終類別,即:

        如果按照傳統(tǒng)隨機(jī)森林算法采取的簡(jiǎn)單投票原則對(duì)最終分類結(jié)果進(jìn)行決定,這樣會(huì)導(dǎo)致分類性能優(yōu)秀的決策樹和分類性能欠佳的決策樹擁有相同的權(quán)重,從而導(dǎo)致分類性能優(yōu)秀決策樹的能力得不到充分發(fā)揮,而分類性能欠佳的決策樹又對(duì)最終分類結(jié)果帶來(lái)一定的負(fù)面影響,從而導(dǎo)致最終的分類結(jié)果存在偏差。本文采用改進(jìn)的隨機(jī)森林算法能夠避免上述情況對(duì)隨機(jī)森林的分類能力帶來(lái)的負(fù)面影響,增強(qiáng)了森林中分類性能優(yōu)秀的決策樹在投票中所占的比重,同時(shí)削弱了分類性能欠佳的決策樹在投票中所占的比重,對(duì)比傳統(tǒng)的隨機(jī)森林算法在分類性能上具有一定的優(yōu)勢(shì)。

        4 靜態(tài)檢測(cè)模型

        圖3為本文所提出的Android惡意軟件靜態(tài)檢測(cè)模型結(jié)構(gòu),共包括5個(gè)模塊:反編譯模塊、特征提取模塊、生成特征向量模塊、特征屬性優(yōu)化模塊和檢測(cè)分類模塊。

        圖3 Android惡意代碼靜態(tài)檢測(cè)模型

        模型處理過程設(shè)計(jì)如下:

        (1)使用AndroGuard 工具反編譯樣本集中的APK文件,生成對(duì)應(yīng)的AndroidManifest.xml文件和smali文件。

        (2)使用Python 模塊分別對(duì)permission、activity、provider、receiver和service、API調(diào)用、動(dòng)態(tài)代碼、反射代碼、本機(jī)代碼、密碼代碼和應(yīng)用程序數(shù)據(jù)庫(kù)進(jìn)行屬性值提取,將提取的屬性值保存為文本文件格式,以便后續(xù)將其向量化。

        (3)在獲得幾大類特征集合后,就要將其映射到向量空間中。運(yùn)用Python 模塊實(shí)現(xiàn)將特征文本文件轉(zhuǎn)化為特征向量,生成相應(yīng)的特征向量集合。

        (4)使用IG 算法對(duì)處理后的特征向量集合進(jìn)行優(yōu)化,選取IG值更高更有代表性的65項(xiàng)特征屬性,生成特征優(yōu)化向量集合。

        (5)使用機(jī)器學(xué)習(xí)分類算法對(duì)上述優(yōu)化后的向量集合進(jìn)行分類檢測(cè),同時(shí)檢驗(yàn)分類的準(zhǔn)確性。

        4.1 特征選取

        Android安裝包(以下簡(jiǎn)稱APK 文件)是Android軟件通過打包過后生成的一個(gè)相當(dāng)于壓縮包的文件,但是無(wú)法閱讀其直接解壓后里面包含的內(nèi)容,因此需通過反編譯APK文件獲取其中的信息。為了獲取應(yīng)用的特征用于機(jī)器學(xué)習(xí)分類算法進(jìn)行分類檢測(cè),本文采用Andro-Guard工具(https://github.com/androguard/androguard)對(duì)APK 文件進(jìn)行反編譯分析,將應(yīng)用程序APK 文件以AndroidManifest.xml 和Java 類的形式反編譯為其源代碼,使用Python 模塊從源代碼中解析所需的特征,表1顯示了部分所需的特征。AndroGuard 是用于第三方Android 應(yīng)用程序的靜態(tài)分析工具,該工具可分解應(yīng)用程序并使用其API訪問其組件。

        表1 提取的Android移動(dòng)應(yīng)用程序部分特征

        為了保證安全性,Android 系統(tǒng)會(huì)通過權(quán)限機(jī)制來(lái)限制應(yīng)用程序能夠訪問的資源,應(yīng)用程序必須通過用戶授權(quán)才能使用某種權(quán)限。雖然權(quán)限機(jī)制在一定程度上增強(qiáng)了系統(tǒng)的安全性,但是用戶最終的權(quán)限授予選擇取決于他對(duì)權(quán)限的關(guān)注和理解程度。調(diào)查發(fā)現(xiàn),用戶很可能因?yàn)槠惹行枰褂媚承?yīng)用而忽視權(quán)限帶來(lái)的風(fēng)險(xiǎn),從而有可能被惡意軟件利用權(quán)限來(lái)實(shí)現(xiàn)其惡意目的,并有多種方式來(lái)執(zhí)行此操作。因此,權(quán)限可以作為反映該應(yīng)用是否可能存在惡意行為的特征;應(yīng)用程序通過四大應(yīng)用組件可以實(shí)現(xiàn)相應(yīng)的功能,四大應(yīng)用組件在另一方面又可以顯示應(yīng)用程序在運(yùn)行中與其他應(yīng)用程序或系統(tǒng)資源間的交互情況,從而能夠有效反映出應(yīng)用程序在運(yùn)行過程中可能進(jìn)行的操作。因此,本文也選取了四大組件作為特征屬性;Android框架提供了大量的API,這些API的組合調(diào)用不僅可以用于良性軟件的開發(fā),還可用來(lái)實(shí)現(xiàn)惡意的行為:訪問用戶隱私信息、發(fā)送惡意扣費(fèi)短信等。調(diào)查發(fā)現(xiàn),惡意軟件對(duì)一些高危API的調(diào)用次數(shù)遠(yuǎn)遠(yuǎn)高于正常的應(yīng)用,這在一定程度上可以真實(shí)地反映一個(gè)應(yīng)用程序的行為特點(diǎn),根據(jù)這些行為特點(diǎn)可以判別該應(yīng)用是否存在著惡意行為。因此,本文將一些API調(diào)用作為一個(gè)識(shí)別惡意應(yīng)用的特征依據(jù);加密代碼可以反映APK 文件是否采取了加密措施,如果在應(yīng)用程序中檢測(cè)到與密碼代碼相關(guān)的代碼,則在二進(jìn)制向量生成階段將is_crypto_code 字段設(shè)置為1,否則為0;is_dynamic_code 字段表示檢測(cè)類的動(dòng)態(tài)加載,如果在應(yīng)用程序中檢測(cè)到dexClassLoader 方法,則在二進(jìn)制向量生成階段將字段值設(shè)置為1,否則為0;is_native_code字段值表示使用本機(jī)庫(kù)的應(yīng)用程序。Native 庫(kù)包含本機(jī)代碼,這些本機(jī)代碼被編譯為二進(jìn)制代碼并直接在操作系統(tǒng)上運(yùn)行。通過在應(yīng)用程序中檢測(cè)LoadLibrary方法可以檢測(cè)是否使用了本機(jī)代碼;is_reflection_code 字段表示應(yīng)用程序使用反射來(lái)動(dòng)態(tài)調(diào)用方法,如果在應(yīng)用程序中檢測(cè)到Reflection 方法,則在二進(jìn)制向量生成階段將字段值設(shè)置為1,否則為0;如果在程序中檢測(cè)到與數(shù)據(jù)庫(kù)連接,在二進(jìn)制向量生成階段將字段值設(shè)置為1,否則為0。以上字段能在基于傳統(tǒng)特征的基礎(chǔ)上在一定程度上反映應(yīng)用程序的行為特點(diǎn),從而可以判斷該應(yīng)用是否存在著惡意行為。通過實(shí)驗(yàn)發(fā)現(xiàn),采用上述多特征結(jié)合相比只采用傳統(tǒng)特征,提高了識(shí)別惡意應(yīng)用的精確度。因此,本文也選取了程序的關(guān)鍵信息作為特征屬性。

        4.2 生成特征向量

        使用集合S表示包含所有特征屬性的并集,如公式(3)所示:

        其中集合S1~S11分別表示Android 應(yīng)用程序中的系統(tǒng)權(quán)限、四大組件、API調(diào)用和程序關(guān)鍵信息的屬性集合,并且通過Python 模塊保證集合中元素的唯一性。利用并集S,定義一個(gè)|S|維的向量空間φ,其中的元素要么是0要么是1。

        因此,提取某一特征屬性類別X(比如系統(tǒng)權(quán)限)下所有Android應(yīng)用程序的特征屬性并映射到向量空間φ中可由公式(4)表示:

        其中,當(dāng)函數(shù)I(x,s)=1 時(shí)表示當(dāng)前應(yīng)用程序x包含特征s,當(dāng)函數(shù)I(x,s)=0 時(shí)表示當(dāng)前應(yīng)用程序x不包含特征s。

        本文中每個(gè)特征屬性類別所包含的APK應(yīng)用數(shù)量不止一個(gè),如表2所示,當(dāng)APK應(yīng)用數(shù)量較多時(shí),同一類別下的每一個(gè)APK的特征描述都必須在同一向量空間中表示出來(lái)。

        表2 向量空間存儲(chǔ)格式

        其中,第一行表示當(dāng)前功能類別(如系統(tǒng)權(quán)限)的所有屬性特征,Class屬性為標(biāo)記,其余每一行表示對(duì)一個(gè)APK 應(yīng)用的特征描述,1 表示當(dāng)前APK 包含對(duì)應(yīng)的屬性,0 表示不包含,true 標(biāo)記當(dāng)前APK 應(yīng)用為正常軟件,false標(biāo)記當(dāng)前APK應(yīng)用為惡意軟件。

        本文選取了標(biāo)簽項(xiàng)中的17 個(gè)屬性值,標(biāo)簽項(xiàng)中的16 個(gè)屬性值,標(biāo)簽項(xiàng)中的7 個(gè)屬性值,標(biāo)簽項(xiàng)中的3 個(gè)屬性值,標(biāo)簽項(xiàng)中的8 個(gè)屬性值,標(biāo)簽項(xiàng)中的9個(gè)屬性值,is_crypto_code,is_dynamic_code,is_native_code,is_reflection_code和is_database等共計(jì)65個(gè)屬性值作為分類檢測(cè)的特征屬性,將其保存為.arff格式的特征向量集合。

        4.3 特征優(yōu)化

        特征優(yōu)化是對(duì)于數(shù)據(jù)進(jìn)行預(yù)處理中的關(guān)鍵一步,它的目的是為了消除特征冗余的同時(shí)選取相關(guān)度比較大的特征,為后續(xù)的分類檢測(cè)提高其精度以及效率。具體設(shè)計(jì)如圖4所示。

        圖4 特征屬性優(yōu)化模塊

        4.3.1 信息熵

        假設(shè)X是一個(gè)離散型隨機(jī)變量,即它擁有有限范圍的取值范圍R={x1,x2,…,xm},其中xi出現(xiàn)的概率為Pi,設(shè)Pi=P{X=xi},則X的信息熵定義如公式(5)所示:

        本文使用信息熵來(lái)描述分類事件中出現(xiàn)的不確定性,即分類事件X可能擁有的信息量,那么信息熵越大,獲得的信息量就越多。如果某事件X已經(jīng)確定一定發(fā)生或者不發(fā)生,那么得到的信息量為0,當(dāng)事件X發(fā)生的概率為0.5 時(shí),將會(huì)得到最大的信息熵。因此對(duì)于本文中的分類情況來(lái)說(shuō),只有當(dāng)正常和惡意樣本數(shù)量所占比例均為0.5時(shí),才能取得最大的信息熵,從而獲取更多的信息量。因此,為了保證獲取最大的信息量,本文采集APK 應(yīng)用時(shí),始終保持正常應(yīng)用與惡意應(yīng)用的數(shù)量保持均勻分布。

        4.3.2 信息增益

        本文通過計(jì)算特征集中的每一個(gè)特征下分類事件的信息熵來(lái)確定每一個(gè)特征對(duì)于分類事件的不確定性和影響大小,即條件熵。如公式(6)所示:

        設(shè)X、f是兩個(gè)離散隨機(jī)變量,隨機(jī)變量X條件下f的條件熵H(X|f)表示隨機(jī)變量f在已知隨機(jī)變量X的條件下發(fā)生的不確定性。其中離散變量X的取值可能為{true|false}。

        當(dāng)且僅當(dāng)H(X|f)=H(X)時(shí),表示在包含特征f的條件下對(duì)事件X的判斷無(wú)任何影響。否則,只要H(X|f)≥0,特征f對(duì)于事件X的判斷就會(huì)產(chǎn)生不同程度的影響。

        本文采用信息增益來(lái)進(jìn)行特征的選擇優(yōu)化,即增加了特征f之前與之后,事件X的信息熵之差,如公式(7)所示:

        使用IG(X,f1)表示在包含特征f1的情況下判斷成正常應(yīng)用的信息量IG(X=true,f1),或者在不包含的情況下判斷成惡意應(yīng)用的信息量IG(X=false,f1)。同理,可以使用IG(X,f2)來(lái)衡量在包含或不包含特征f2的情況下其對(duì)于分類任務(wù)的貢獻(xiàn)價(jià)值。依次類推,分別計(jì)算出特征集合中每個(gè)特征對(duì)于分類任務(wù)的可用價(jià)值,信息增益越大,代表該特征的可用價(jià)值越高,隨后對(duì)所有特征的信息增益值進(jìn)行排序,選擇值更大的特征作為優(yōu)化后的特征,即可完成特征選擇過程。

        4.3.3 特征屬性優(yōu)化

        根據(jù)上述IG算法對(duì)已提取的特征集合進(jìn)行優(yōu)化選擇。根據(jù)排序結(jié)果,生成對(duì)應(yīng)的優(yōu)化特征向量集合OFVS.arff。表3 展示了特征屬性數(shù)量分別為55、65、75的時(shí)候采用隨機(jī)森林算法進(jìn)行分類檢測(cè)時(shí)的效果對(duì)比。

        表3 選取不同數(shù)量特征屬性采用RF算法分類效果對(duì)比

        通過表3 可以看到,當(dāng)特征屬性數(shù)量為65、75 的時(shí)候效果最好,但特征屬性數(shù)量為75 時(shí)比特征屬性數(shù)量為65 時(shí)占用了更多的系統(tǒng)開銷,所以通過信息增益算法選擇65個(gè)特征屬性來(lái)進(jìn)行分類檢測(cè)。

        4.4 分類檢測(cè)

        將優(yōu)化后的特征向量集合OFVS.arff分為測(cè)試集和訓(xùn)練集兩類作為輸入,對(duì)訓(xùn)練集采用機(jī)器學(xué)習(xí)分類算法進(jìn)行訓(xùn)練同時(shí)對(duì)測(cè)試集進(jìn)行檢測(cè)分類。首先,采用樸素貝葉斯(Naive Bayes,NB)、K最近鄰(K-Nearest Neighbor,K-NN)、Bagging、決策樹(J48)、隨機(jī)樹(Random Tree,RT)、隨機(jī)森林(Random Forest,RF)分類器對(duì)模型進(jìn)行訓(xùn)練,并采用現(xiàn)目前流行的十倍交叉驗(yàn)證技術(shù)(K-fold Cross Validation)[13]來(lái)評(píng)估分類器的性能。即將訓(xùn)練集劃分為10 個(gè)相等并且沒有交集的子集,在每次訓(xùn)練中將1 個(gè)子集作為測(cè)試集,剩余的9 個(gè)子集用作訓(xùn)練集,最后以10 次訓(xùn)練結(jié)果平均值作為檢測(cè)分類器最后的分類性能。接著使用改進(jìn)的隨機(jī)森林(IRF)分類器對(duì)特征優(yōu)化向量進(jìn)行分類并檢測(cè)。最后對(duì)比其分類性能。

        5 實(shí)驗(yàn)

        5.1 實(shí)驗(yàn)樣本與配置

        為了證明本文提出方法的有效性,本文共選取了12 000 個(gè)Android 應(yīng)用文件作為數(shù)據(jù)集進(jìn)行分類檢測(cè)實(shí)驗(yàn)。其中,6 000 個(gè)良性APK 應(yīng)用來(lái)自于國(guó)內(nèi)第三方Android 應(yīng)用市場(chǎng);6 000 個(gè)惡意APK 應(yīng)用來(lái)自于VirusShare.com提供的惡意軟件樣本集。本文進(jìn)行實(shí)驗(yàn)的軟件和硬件配置如表4所示。

        表4 實(shí)驗(yàn)環(huán)境配置

        5.2 評(píng)估指標(biāo)

        假設(shè)TP(True Positive)表示將正常應(yīng)用樣本正確識(shí)別的數(shù)量,TN(True Negative)表示將惡意應(yīng)用樣本正確識(shí)別的數(shù)量,F(xiàn)P(False Positive)表示將惡意應(yīng)用樣本誤判為良性的數(shù)量,F(xiàn)N(False Negative)表示將正常應(yīng)用樣本誤判為惡意的數(shù)量。即可得到如下分類器評(píng)估指標(biāo)參數(shù):

        (1)真陽(yáng)率(TP Rate,TPR),表示被正確分類的正常應(yīng)用與數(shù)據(jù)集中所有正常應(yīng)用數(shù)量的比值。

        (2)真陰率(TN Rate,TNR),表示被正確分類的惡意應(yīng)用與數(shù)據(jù)集中所有惡意應(yīng)用數(shù)量的比值。

        (3)假陽(yáng)率(FP Rate,F(xiàn)PR),表示被誤判的惡意應(yīng)用與數(shù)據(jù)集中所有惡意應(yīng)用數(shù)量的比值。

        (4)假陰率(FN Rate,F(xiàn)NR),表示被誤判的正常應(yīng)用與數(shù)據(jù)集中所有正常應(yīng)用數(shù)量的比值。

        (5)準(zhǔn)確率(Accuracy),表示分類器的分類性能。

        5.3 實(shí)驗(yàn)結(jié)果

        為了評(píng)估所提出模型的性能,使用Weka中集成的6種數(shù)據(jù)挖掘算法:樸素貝葉斯(NB)、K近鄰(K-NN)、Bagging、決策樹(J48)、隨機(jī)樹(RT)和隨機(jī)森林(RF)算法,采用10 折交叉驗(yàn)證方法對(duì)4.3.3 小節(jié)中生成的優(yōu)化特征向量集合進(jìn)行分類檢測(cè)。實(shí)驗(yàn)以測(cè)量指標(biāo)的形式促進(jìn)了對(duì)各種機(jī)器學(xué)習(xí)分類器的分類性能的更好了解,這些指標(biāo)包括真陽(yáng)率(TPR)、假陽(yáng)率(FPR)、準(zhǔn)確度(Accuracy)、召回率(Recall)、F 值(F-Measure)和ROC曲線(ROC Area)。

        將特征向量集合分為均等的10份,輪流將其中的1份用作測(cè)試集,剩下的9 份用作訓(xùn)練集,并且對(duì)10 次的實(shí)驗(yàn)結(jié)果求平均值。通過實(shí)驗(yàn),可以得出RF 算法的檢測(cè)效率最高,接著對(duì)RF算法進(jìn)行改進(jìn),將IRF算法集成到Weka 中,對(duì)數(shù)據(jù)集進(jìn)行分類檢測(cè)。幾種機(jī)器學(xué)習(xí)分類算法的檢測(cè)結(jié)果如表5所示。

        表5 不同分類器的分類效果對(duì)比

        從表5 可以看出,使用6 種機(jī)器學(xué)習(xí)分類算法進(jìn)行分類檢測(cè)都有較好的準(zhǔn)確率,其中對(duì)于惡意軟件檢測(cè)能力最弱即TPR值最低的是NB分類器,其針對(duì)惡意軟件的檢測(cè)率僅為89.1%,而IRF 算法對(duì)于惡意軟件的檢測(cè)效果最好,檢測(cè)精度達(dá)到了98.1%。因此,鑒于本文選擇機(jī)器學(xué)習(xí)分類器的應(yīng)用開銷均相對(duì)較低,通過實(shí)驗(yàn)結(jié)果可以表明本文所提出的Android惡意軟件檢測(cè)模型是切實(shí)可行的方案,能夠有效提高Android 惡意軟件檢測(cè)的有效性和準(zhǔn)確性。

        5.4 實(shí)驗(yàn)結(jié)論

        提出的方法在經(jīng)過實(shí)驗(yàn)論證后,與以往的研究方法相比主要有以下幾方面的特點(diǎn):

        (1)對(duì)比以往對(duì)Android 惡意代碼檢測(cè)技術(shù)采用的傳統(tǒng)特征,本文在傳統(tǒng)特征的基礎(chǔ)上增加了程序的關(guān)鍵信息等特征,能夠充分發(fā)揮多特征在Android 惡意代碼檢測(cè)中所起的作用,提高了對(duì)惡意應(yīng)用的識(shí)別率。

        (2)通過對(duì)比幾種常見分類器的分類效果,選取分類效果更好的隨機(jī)森林算法,對(duì)其采用加權(quán)投票機(jī)制進(jìn)行改進(jìn),能夠更大程度上提高檢測(cè)的精確度。

        (3)實(shí)驗(yàn)使用了大量的真實(shí)樣本,使得實(shí)驗(yàn)結(jié)果更有說(shuō)服力。

        (4)通過使用Androguard 中相應(yīng)的函數(shù)以及編寫Python代碼,縮短了樣本特征的提取及向量化時(shí)間。

        6 結(jié)束語(yǔ)

        本文針對(duì)目前移動(dòng)設(shè)備的惡意應(yīng)用不斷增長(zhǎng),給人們帶來(lái)了巨大的危害,比如經(jīng)濟(jì)損失或泄露隱私等情況,提出一種利用多特征、基于改進(jìn)隨機(jī)森林算法的Android惡意軟件靜態(tài)檢測(cè)模型。模型采用基于行為的靜態(tài)分析技術(shù),提取權(quán)限、四大組件、API調(diào)用以及程序的關(guān)鍵信息如動(dòng)態(tài)代碼、反射代碼、本機(jī)代碼、密碼代碼和應(yīng)用程序數(shù)據(jù)庫(kù)等11 個(gè)類別作為特征屬性,并對(duì)屬性采用IG 算法進(jìn)行優(yōu)化選擇,通過對(duì)比共選取65個(gè)分類特征,最后先采用有監(jiān)督的機(jī)器學(xué)習(xí)算法對(duì)Android程序進(jìn)行檢測(cè)分類并比較它們之間的精確度,通過對(duì)比選擇精確度最高的RF 算法采用加權(quán)投票機(jī)制進(jìn)行改進(jìn),并將其應(yīng)用于本模型的惡意軟件檢測(cè)分類當(dāng)中。通過實(shí)驗(yàn)表明,本文提出的模型相比目前Android 惡意軟件檢測(cè)技術(shù)具有較好的檢測(cè)效果。

        本文提出的Android惡意軟件檢測(cè)模型還存在著一些需要改進(jìn)的地方:(1)本文研究采用了權(quán)限、組件、API調(diào)用信息和程序的關(guān)鍵信息作為特征,在下一步工作中將會(huì)考慮更多的特征比如敏感函數(shù)對(duì)等信息;(2)本文只收集了12 000 個(gè)Android 應(yīng)用程序安裝包,如果能夠收集到更大的數(shù)據(jù)集可以得到更為精確的檢測(cè)結(jié)果;(3)下一步考慮結(jié)合動(dòng)態(tài)檢測(cè)技術(shù)來(lái)減少惡意軟件的識(shí)別率與誤報(bào)率;(4)在分類檢測(cè)方面考慮采用深度學(xué)習(xí)等技術(shù)進(jìn)一步提高準(zhǔn)確率。下一步工作將會(huì)針對(duì)以上不足進(jìn)行研究分析。

        猜你喜歡
        分類特征檢測(cè)
        “不等式”檢測(cè)題
        “一元一次不等式”檢測(cè)題
        “一元一次不等式組”檢測(cè)題
        分類算一算
        如何表達(dá)“特征”
        不忠誠(chéng)的四個(gè)特征
        分類討論求坐標(biāo)
        數(shù)據(jù)分析中的分類討論
        教你一招:數(shù)的分類
        抓住特征巧觀察
        无码少妇精品一区二区免费动态| 中文人妻av久久人妻水蜜桃| av在线观看一区二区三区| av无码国产精品色午夜| 亚洲国产成人久久三区| 国产农村乱辈无码| 日韩黑人欧美在线视频观看| 国产精品久久久久乳精品爆| 真人新婚之夜破苞第一次视频| 亚洲精品综合一区二区| 亚洲第一无码xxxxxx| 久久av无码精品人妻出轨| 91国视频| 久久中文字幕亚洲精品最新| 国产日韩午夜视频在线观看| 一本色道亚州综合久久精品| 亚洲中文乱码在线视频| 亚洲av香蕉一区二区三区av| 人妻久久一区二区三区蜜桃| 大地资源高清在线视频播放| 亚洲七久久之综合七久久| 国产一区a| 免费大学生国产在线观看p| 中文天堂一区二区三区| 中国久久久一级特黄久久久| 69精品人人人人| 中文字幕精品久久久久人妻| 亚洲中文字幕第一页在线| 国产精品高清视亚洲乱码有限公司| 最新永久无码AV网址亚洲| 一区二区三区乱码专区| 日本一本免费一二区| 熟女无套内射线观56| 国产精品后入内射日本在线观看| a级福利毛片| 国产麻豆精品久久一二三 | 国产成人精品日本亚洲专区61| 老妇女性较大毛片| 亚洲电影中文字幕| 在线视频一区二区观看| 中文文精品字幕一区二区|