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

        ?

        基于textCNN模型的Android惡意程序檢測①

        2021-01-22 05:41:54張雄冠邵培南
        計算機系統(tǒng)應(yīng)用 2021年1期
        關(guān)鍵詞:日志卷積程序

        張雄冠,邵培南

        (中國電子科技集團(tuán)公司第三十二研究所,上海 201808)

        近10年來,伴隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,以及智能移動終端的普及,傳統(tǒng)的計算機軟件也開始向基于智能終端的應(yīng)用市場轉(zhuǎn)移.根據(jù)360 互聯(lián)網(wǎng)安全中心發(fā)布的《2019年手機安全狀況報告》展示[1],2019年截獲的新增Android 惡意程序樣本約為180.9 萬個,平均每天截獲的新增惡意程序樣本個數(shù)約為0.5 萬個.觀察新增樣本的類型,還是以惡意扣費、資費消耗和隱私竊取這3 種類型為主.由此可見,Android 操作系統(tǒng)的安全形勢依然刻不容緩,為了減少惡意程序?qū)τ脩粼斐傻膿p失,Android 惡意程序檢測也就成為一個值得深入研究的課題.

        目前,Android 惡意程序檢測技術(shù)主要分成兩種:基于簽名的檢測技術(shù)[2]和基于行為的檢測技術(shù).基于簽名的檢測技術(shù)實際上利用了模式匹配的思想,使用這種方法進(jìn)行檢測需要對比已知的惡意代碼簽名庫,因此這種方法無法識別未知的惡意程序.而基于行為的檢測技術(shù)因為不需要依賴簽名的特性逐漸成為目前研究與應(yīng)用的主流方法之一.基于行為的檢測技術(shù)又可依據(jù)是否需要實際運行目標(biāo)程序進(jìn)一步分為靜態(tài)行為分析方法和動態(tài)行為分析方法.

        靜態(tài)行為分析法是目前應(yīng)用相對廣泛的惡意代碼檢測方法.其優(yōu)勢在于可以直接利用反編譯技術(shù)提取代碼本身的特征,不必在指定檢測環(huán)境下運行代碼,從而能夠在應(yīng)用安裝前完成分析.文獻(xiàn)[3]就提出了一種組合靜態(tài)行為分析方法,該方法使用API 調(diào)用、API時間序列及API 使用頻率作為3 種靜態(tài)特征,再結(jié)合C4.5、DNN、LSTM 三種模型進(jìn)行訓(xùn)練,最后采用投票法確定測試樣本的結(jié)果.盡管應(yīng)用廣泛,但靜態(tài)行為分析法還是具有一定的局限性.隨著互聯(lián)網(wǎng)安全技術(shù)的提高,越來越多的Android 應(yīng)用為了抵抗未知的反編譯分析而采用了代碼保護(hù)技術(shù).與此同時,惡意程序也在不斷地進(jìn)化,比如采用代碼混淆技術(shù)來隱藏和加密自身的惡意代碼.面對這樣的情況,使用靜態(tài)行為分析技術(shù)的檢測效率也是越來越低.

        動態(tài)行為分析法則是要求在沙箱或隔離環(huán)境中安裝并運行程序,這樣做的目的是盡可能監(jiān)控程序執(zhí)行過程中所產(chǎn)生的行為,并判斷是否存在惡意行為.這種方法不需要反編譯目標(biāo)程序,且不受代碼混淆技術(shù)的影響,因此具有較高的檢測效率.目前,動態(tài)行為分析法從原理上可以分為以下兩類.

        第1 類是基于污點跟蹤技術(shù)[4]的分析方法,這類方法首先標(biāo)記程序?qū)Y源數(shù)據(jù)的訪問范圍,然后依據(jù)程序?qū)Ρ粯?biāo)記的污點數(shù)據(jù)的使用情況來判斷該程序的行為是否具有合法性.采用污點跟蹤技術(shù)的檢測方法可以有效地識別出惡意程序所產(chǎn)生的隱私泄露、數(shù)據(jù)篡改甚至漏洞利用等問題.文獻(xiàn)[5]介紹了一個基于污點追蹤技術(shù)的惡意軟件數(shù)據(jù)流分析模型TaintART,該模型采用多級污點分析技術(shù)把污點標(biāo)簽存儲在寄存器中,從而減少污染標(biāo)簽的存儲量,可以改善傳統(tǒng)污點分析效率較低的問題.盡管基于污點跟蹤技術(shù)的檢測方法能夠更細(xì)粒度地分析惡意程序的行為屬性,但是這種分析通常只能在Android 虛擬機層進(jìn)行,因而無法檢測惡意程序在其他層(例如Native 層)存在的惡意行為.

        第2 類則是基于系統(tǒng)函數(shù)調(diào)用情況的分析方法,這類方法主要是通過檢測程序?qū)ο到y(tǒng)函數(shù)的調(diào)用行為來判斷程序是否具有惡意性.惡意程序往往需要利用系統(tǒng)提供的函數(shù)接口來實現(xiàn)其惡意行為,因此這類方法可以通過分析程序的系統(tǒng)函數(shù)調(diào)用情況來識別惡意程序.文獻(xiàn)[6]就介紹了一種監(jiān)控目標(biāo)軟件對Android Native 層系統(tǒng)函數(shù)和框架層API 的調(diào)用情況的方法,然后通過分析函數(shù)的調(diào)用序列及調(diào)用函數(shù)所傳遞的參數(shù)來檢測惡意軟件.

        隨著機器學(xué)習(xí)技術(shù)的日漸成熟,將機器學(xué)習(xí)算法應(yīng)用到Android 惡意代碼檢測中也逐漸成為了研究的主流趨勢.文獻(xiàn)[7]就提出了一種基于機器學(xué)習(xí)的動態(tài)監(jiān)測框架用來監(jiān)控軟件行為,并通過實驗分別對SVM、k近鄰等多種機器學(xué)習(xí)算法進(jìn)行了評價.文獻(xiàn)[8]的研究則是采用隨機輸入和人工交互輸入來提取Android系統(tǒng)調(diào)用,并使用兩種特征選擇方法來共同構(gòu)建特征矩陣,最后使用RandomForest、RotationForest 及AdaBoost 三種機器學(xué)習(xí)模型分別進(jìn)行實驗.盡管目前機器學(xué)習(xí)在Android 惡意代碼檢測的應(yīng)用中取得了較好的效果,但是其面對新增的、變種的惡意軟件的檢測能力依然有待提高.同時基于傳統(tǒng)機器學(xué)習(xí)的方法往往需要手動工程來判斷一個文件的行為是否具有惡意,但手動工程一般不僅時間消耗較長,而且需要人為確定特征、參數(shù)、變量等.

        針對靜態(tài)行為分析方法與基于污點跟蹤技術(shù)的分析方法在Android 代碼行為特征提取上的不足,以及傳統(tǒng)機器學(xué)習(xí)方法在惡意程序檢測中存在的問題,本文提出了一種在動態(tài)行為分析的基礎(chǔ)上利用textCNN神經(jīng)網(wǎng)絡(luò)模型的Android 惡意程序檢測方法.本方法的主要思路是首先采用多種觸發(fā)機制相結(jié)合的行為誘導(dǎo)方法來觸發(fā)Android 程序潛在的惡意行為;接著通過hook 技術(shù)掛鉤關(guān)鍵函數(shù)接口,進(jìn)而對程序的各種行為數(shù)據(jù)進(jìn)行采集并構(gòu)建行為日志;然后基于行為日志提取行為特征數(shù)據(jù)作為模型輸入;最后使用textCNN神經(jīng)網(wǎng)絡(luò)對行為數(shù)據(jù)集進(jìn)行訓(xùn)練、參數(shù)優(yōu)化得到最終的分類模型,并通過實驗與傳統(tǒng)機器學(xué)習(xí)方法SVM、RandomForest 以及傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行比較,證明了本方法具有較好的檢測效果.

        1 動態(tài)行為采集方法

        任何Android 程序所產(chǎn)生的行為實際上都具有特定的行為模式,即這些行為可以分解為由原子行為組成的時間序列.而這些原子行為往往需要調(diào)用系統(tǒng)提供的函數(shù)接口來實現(xiàn),因此可以采用基于系統(tǒng)函數(shù)調(diào)用的動態(tài)行為分析方法從程序?qū)ndroid 框架層API和Native 層函數(shù)的調(diào)用情況中提取行為特征,再通過對比惡意程序的行為來判斷程序的合法性.基于這個原理,本文提出了一種以監(jiān)測系統(tǒng)函數(shù)調(diào)用為基礎(chǔ)的動態(tài)行為采集方法,該方法主要包含兩個模塊:行為觸發(fā)模塊和行為采集模塊.行為觸發(fā)模塊的作用是采用多種觸發(fā)機制盡可能多地觸發(fā)程序的行為,使得采集模塊可以盡可能全面地采集到軟件的所有行為數(shù)據(jù).行為采集模塊的作用是通過hook 技術(shù)來監(jiān)控并記錄程序?qū)ndroid 系統(tǒng)函數(shù)的調(diào)用情況以形成行為日志.

        1.1 行為觸發(fā)模塊

        已知動態(tài)行為檢測方法是在沙箱或隔離環(huán)境中運行程序,其中第一個關(guān)鍵的步驟就是要能夠觸發(fā)程序的行為.倘若無法觸發(fā)惡意程序的全部行為,則后續(xù)的行為采集模塊很可能就無法提取到有效的惡意行為數(shù)據(jù),繼而一定會影響檢測模型最后的檢測效率.因此,為了提高程序行為觸發(fā)的覆蓋率,首先需要明確的是被觸發(fā)的行為所發(fā)生在Android 系統(tǒng)中的層面,主要包含以下3 類:(1)系統(tǒng)層面,當(dāng)系統(tǒng)層面的事件(例如開機、連接網(wǎng)絡(luò)等)執(zhí)行后會立即觸發(fā)惡意程序的惡意行為,比如當(dāng)系統(tǒng)接入互聯(lián)網(wǎng)后,惡意程序會開始傳輸系統(tǒng)中隱私數(shù)據(jù).(2)Service 層面,許多惡意程序會將其惡意行為隱藏在后臺服務(wù)中,這樣就可以在用戶未知的情況下執(zhí)行操作.(3)UI 及Activity 層面,當(dāng)用戶對惡意程序的UI 進(jìn)行操作時,往往就會觸發(fā)惡意的Activity 活動.針對不同系統(tǒng)層面的行為需要采取不同的觸發(fā)機制,具體的流程與框架如圖1所示.

        本模塊通過使用Android 模擬器模擬各種系統(tǒng)事件發(fā)生的方式來觸發(fā)程序系統(tǒng)層面的惡意行為.已知在Android 系統(tǒng)中,軟件若要監(jiān)聽系統(tǒng)事件就必須在Manifest 文件中注冊廣播組件.因此本模塊通過解析目標(biāo)程序的Manifest 文件來獲取已注冊的廣播組件信息,然后利用ADB 調(diào)試橋與telnet 遠(yuǎn)程控制命令在模擬器中模擬廣播組件相對應(yīng)的各種事件,從而觸發(fā)程序系統(tǒng)層面相對應(yīng)的行為.

        圖1 行為觸發(fā)模塊框架流程圖

        針對程序在Service 層面的惡意行為,本模塊采用啟動所有Service 事務(wù)的方式來觸發(fā)潛在該層面的惡意行為.因為任何應(yīng)用想要在Android 系統(tǒng)中使用Service 事務(wù)就必須在Manifest 的文件中注冊Service組件,所以本模塊通過解析目標(biāo)程序的Manifest 文件來獲取已注冊的Service 組件,然后利用ADB 工具啟動這些Service 事務(wù),進(jìn)而觸發(fā)執(zhí)行在這些Service 中的惡意行為.

        針對UI 及Activity 層面的惡意行為,本模塊所采用的方法相對復(fù)雜一些.首先,通過靜態(tài)分析目標(biāo)程序來獲取軟件中Activity 之間的跳轉(zhuǎn)路徑信息;接著,針對每一個Activity,在啟動之后利用UI 獲取部件提取當(dāng)前Activity 的UI 層次信息;然后,本模塊會利用系統(tǒng)自動化測試工具M(jìn)onkeyRunner[9]針對這些UI 信息來模擬各種UI 事件觸發(fā)程序的行為;當(dāng)遍歷完當(dāng)前Activity 的所有UI 元素后,即可按照Activity 的跳轉(zhuǎn)路徑信息繼續(xù)下一個Activity 的遍歷.

        1.2 行為采集模塊

        考慮到目前Android 平臺的應(yīng)用軟件都會使用混淆、加殼技術(shù)來保護(hù)自身的程序代碼,因此本模塊采用了一種基于動態(tài)分析的多層次的行為數(shù)據(jù)提取方法以應(yīng)對該問題.本模塊所采用的方法主要以Android 逆向技術(shù)和Android 安全框架為理論基礎(chǔ),分別對Android的應(yīng)用框架層和Native 層的程序行為進(jìn)行采集.

        針對Android 應(yīng)用框架層的行為數(shù)據(jù),本模塊主要通過Android 注入技術(shù)以及Java hook 技術(shù)進(jìn)行采集的.已知Android 系統(tǒng)一般采用虛擬機對應(yīng)用層的軟件程序進(jìn)行隔離和管理,其中4.4 版本之前采用的是Dalvik 虛擬機,而4.4 版本之后采用的是Android Runtime.在Dalvik 虛擬機進(jìn)行Hook 的原理是:首先將虛擬機里面的Java 方法的Method 標(biāo)識字段改為nativeMethod;接著自己編寫一個Native 方法,在這個Native 方法中,再自定義一個Java 方法,并在這個方法里調(diào)用了原方法;然后在調(diào)用前后分別通過注入技術(shù)插入鉤子,從而可以記錄原方法的調(diào)用情況了;最后把原Java 方法的nativeFunc 字段指向這個Native 方法.當(dāng)原方法被調(diào)用時,首先會調(diào)用到自定義的Native 方法,在調(diào)用過程中,原函數(shù)的調(diào)用數(shù)據(jù)就被采集.對于Android Runtime 進(jìn)行hook 的原理實際上是類似的,已知Java 層的每一個方法在Android Runtime 實現(xiàn)中都對應(yīng)一個ArtMethod 結(jié)構(gòu)體,只要把原方法的結(jié)構(gòu)體內(nèi)容通過注入方式替換為新的結(jié)構(gòu)體內(nèi)容,當(dāng)然原方法被調(diào)用的時候,真正執(zhí)行的就是注入的新方法的指令.為了兼容不同版本的Android 虛擬機,本模塊采用了同時支持Dalvik 虛擬機和ART 虛擬機的Xposed[10]框架對Android 應(yīng)用框架層API 進(jìn)行hook 工作.

        對于Android Native 層的行為數(shù)據(jù),本模塊則采用基于Inline hook[11]的動態(tài)注入技術(shù)進(jìn)行采集.對比基于全局偏移表的hook 方法,Inline hook 的優(yōu)勢在于不會受到表的限制,能夠修改重寫內(nèi)存中任意一處的指令,從而實現(xiàn)對系統(tǒng)函數(shù)的掛鉤.Inline Hook 的實現(xiàn)原理是首先獲得被hook 系統(tǒng)函數(shù)的入口地址,然后在入口地址處插入強制跳轉(zhuǎn)指令,使進(jìn)程跳轉(zhuǎn)到特定函數(shù)中,在該函數(shù)中執(zhí)行監(jiān)聽并記錄程序的行為數(shù)據(jù),從而就實現(xiàn)了對Android 底層接口函數(shù)調(diào)用情況的監(jiān)測.

        當(dāng)目標(biāo)程序的一系列操作行為被成功觸發(fā)之后,各種操作行為必然依靠應(yīng)用框架層或系統(tǒng)Native 層的函數(shù)接口來實現(xiàn),此時行為采集模塊就可以利用上述方法對函數(shù)接口的調(diào)用情況進(jìn)行監(jiān)測與記錄,根據(jù)記錄結(jié)果即可生成程序的行為日志.本實驗所生成的行為日志的條目及相關(guān)含義如表1所示.

        表1 目標(biāo)程序行為日志條目說明

        2 基于textCNN 的檢測框架

        卷積神經(jīng)網(wǎng)絡(luò)CNN 曾被廣泛應(yīng)用于計算機視覺領(lǐng)域,隨著深度學(xué)習(xí)研究的不斷深入,不少學(xué)者也開始使用CNN 模型來處理自然語言處理問題.textCNN[12]即是由Yoon Kim 提出的一種用于處理文本分類問題的卷積神經(jīng)網(wǎng)絡(luò)模型.textCNN 的主要思想是使用多個通道以及多個不同大小的卷積核,并通過一維卷積的方式提取詞向量矩陣的特征,然后使用最大池化層從特征矩陣選出每個通道中的最大值,與其他通道的最大值進(jìn)行拼接,組合成最終的特征向量,最后通過全連接層計算分類的概率.經(jīng)過動態(tài)行為觸發(fā)模塊和采集模塊后,程序的行為數(shù)據(jù)實際上轉(zhuǎn)換為了文本數(shù)據(jù),因此可以采用textCNN 模型來進(jìn)行處理.

        2.1 嵌入層預(yù)處理文本數(shù)據(jù)

        對于文本類數(shù)據(jù),首先需要將自然語言數(shù)值化,以方便后續(xù)處理.對于動態(tài)行為日志文本,其中每一行的函數(shù)調(diào)用記錄代表一個動態(tài)行為,本文將每一行視為一個行為詞匯,然后分別對每個詞匯構(gòu)建相應(yīng)的詞向量.將文本中的詞匯表征成詞向量最簡單的方式就是采用one-hot 編碼方法,但是這種方法也存在比較明顯的缺點,比如生成的向量長度過大以及無法準(zhǔn)確表達(dá)詞匯之間的相似關(guān)系.而textCNN 模型提供一個隱藏的嵌入層,可以將one-hot 向量投影到低維空間里,在指定維度中編碼語義特征.本文在嵌入層采用的向量表示方法為fastText[13].fastText 實際上是Word2Vec中跳字模型[14]的一種改進(jìn),使用子詞嵌入的方法將構(gòu)詞信息引入到了模型中.

        在fastText 中,往往使用子詞集合來表示中心詞,假設(shè)一個中心詞w,將其長度在一定范圍內(nèi)的子詞及特殊子詞的并集記為Gw.已知fastText 中詞典由所有詞的子詞集合的并集構(gòu)成,假設(shè)w的子詞y在詞典中的向量表示為zy,則中心詞的向量vw就表示成:

        對比跳字模型,fastText 訓(xùn)練的詞向量可以更加準(zhǔn)確地描述動態(tài)行為詞匯之間相關(guān)性.當(dāng)在檢測過程中即便遇到詞典中未曾出現(xiàn)的行為詞匯,fastText 模型也可以從與其結(jié)構(gòu)類似的其他詞匯中獲得對該詞匯更好的向量表示.

        2.2 使用textCNN 對數(shù)據(jù)進(jìn)行分類

        textCNN 模型的核心結(jié)構(gòu)是卷積神經(jīng)網(wǎng)絡(luò),其基本結(jié)構(gòu)包括輸入層、卷積層、池化層、全連接層和輸出層.卷積神經(jīng)網(wǎng)絡(luò)用于行為分類的模型結(jié)構(gòu)圖[15]如圖2所示.

        圖2 textCNN 行為分類模型圖

        從圖2中可以看到,在textCNN 模型的卷積層,卷積核的寬度與詞向量的維度是一致的,表明模型在提取特征的時候,將行為詞匯作為日志文本的最小粒度.在Android 動態(tài)行為日志中,往往惡意行為是由多個連續(xù)的動態(tài)行為詞匯組成,因此可以通過設(shè)置卷積核的高度來提取日志中相鄰行為詞匯的關(guān)聯(lián)性,不僅考慮了動態(tài)行為文本中的詞義而且兼顧了詞序以及上下文.圖2中卷積核的高度分別設(shè)置為2、3、4,對應(yīng)提取文本中的2-gram、3-gram、4-gram 特征.對比傳統(tǒng)機器學(xué)習(xí)中的n-gram 模型,使用卷積核的優(yōu)勢在于,只考慮連續(xù)詞匯的組成,不會使訓(xùn)練集詞表爆炸式增長.

        在卷積層中模型使用了不同大小的卷積核,卷積得到的feature maps 會具有不同的向量維度.因此在池化層中,可以使用1-max-pooling 方法通過提取每個feature map 中的最大值來表征該特征向量.池化層的主要作用是下采樣,通過不斷降低數(shù)據(jù)維度來減少網(wǎng)絡(luò)中的參數(shù)和計算次數(shù).最后模型將每個特征向量經(jīng)過1-max-pooling 池化得到的值拼接起來,即為池化層最終的輸出向量.

        textCNN 模型最后一層為全連接層,池化層的輸出結(jié)果在進(jìn)入全連接層之前,需要進(jìn)行Dropout 操作來避免過擬合.全連接層設(shè)置可以參照傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò),第1 層采用ReLU 作為激活函數(shù),第2 層則使用Softmax 分類函數(shù)來進(jìn)行分類.

        3 實驗分析

        3.1 實驗環(huán)境與數(shù)據(jù)

        本文的實驗環(huán)境與相關(guān)配置如表2所示.

        表2 實驗環(huán)境與配置

        本文實驗所需的Android 惡意軟件樣本均來自于VirusShare 網(wǎng)站[16],其中樣本的數(shù)量為1500 個.同時,實驗所需的1000 個正常樣本均下載于Android 官方應(yīng)用市場Google Play.對于1500 個惡意樣本和1000個正常樣本,分別使用其中的70%作為本文模型的訓(xùn)練樣本,剩下的30%作為測試樣本.

        對于每一個樣本,經(jīng)過動態(tài)行為采集框架處理后會得到一個行為日志.原始的行為日志是json 數(shù)據(jù)格式,為了便于后面textCNN 模型的處理,實驗需要通過Python 爬取日志中關(guān)鍵信息,將其轉(zhuǎn)換為txt 文檔表示.文檔中的每一行即為一個行為API,每一行分為3 個部分,由空格分隔,每個部分的說明如表1所示.

        3.2 實驗評價指標(biāo)

        為了充分評估模型的性能,本文在驗證模型訓(xùn)練結(jié)果的時候采用了k折交叉驗證技術(shù).在本實驗中,k的取值設(shè)定為10,即將訓(xùn)練集劃分為10 個規(guī)模相等且無交集的子集,在每次訓(xùn)練過程中依次選擇1 個子集作為測試集,剩余9 個子集作為訓(xùn)練集,最終以10 次計算結(jié)果的平均值作為模型評價指標(biāo)的最終結(jié)果.

        本實驗使用3 個通用的評價指標(biāo)即準(zhǔn)確率PPrecision、召回率PRecall以及F1值來對實驗結(jié)果進(jìn)評價.本實驗采用的樣本分類混淆矩陣如表3所示.

        表3 樣本分類結(jié)果混淆矩陣

        表3中,TP表示實際為正常樣本,被預(yù)測為正常樣本的樣本數(shù)目;FP表示實際為惡意樣本,被預(yù)測為正常樣本的樣本數(shù)目;FN表示實際為正常樣本,被預(yù)測為惡意樣本的樣本數(shù)目;TN表示實際為惡意樣本,被預(yù)測為惡意樣本的數(shù)目.實驗評價指標(biāo)的計算公式如下所示:

        3.3 實驗參數(shù)設(shè)置

        由于實驗結(jié)果在很大程度上會受到實驗參數(shù)的影響,因此在實驗中將會對模型的參數(shù)進(jìn)行設(shè)置.首先實驗將行為日志轉(zhuǎn)換后的文本最大長度設(shè)置為400,超過長度的部分將直接進(jìn)行截斷操作.本實驗使用fastText模型訓(xùn)練詞向量時所設(shè)置的參數(shù)值如表4所示.

        表4 fastText 模型訓(xùn)練參數(shù)設(shè)置

        在textCNN 模型的訓(xùn)練過程中,本實驗將卷積核的高度固定設(shè)置為3、4、5.對于其他參數(shù),分別設(shè)置了幾組對照實驗,其中卷積核數(shù)量分別對比了64、128、256 三組值,Dropout 參數(shù)分別對比了0.3、0.4、0.5 三組值,激活函數(shù)對比了ReLU 和tanh 兩種函數(shù).通過對比上述幾組參數(shù)值對實驗結(jié)果的影響,最終確定模型的參數(shù)如表5所示.

        表5 textCNN 模型訓(xùn)練參數(shù)設(shè)置

        3.4 實驗結(jié)果與分析

        為了驗證本文提出的對于Android 應(yīng)用程序的動態(tài)行為采集框架的有效性,本文設(shè)置了3 組對照實驗,分別采用不同的方法來提取Android 軟件的行為特征.第1 組采用傳統(tǒng)的靜態(tài)行為分析法來提取程序的靜態(tài)行為文本數(shù)據(jù),實驗中具體參考文獻(xiàn)[3]提出的方法;第2 組采用基于污點跟蹤技術(shù)的分析方法來提取程序的行為文本數(shù)據(jù),實驗中具體參考文獻(xiàn)[5]中方法;第3 組就采用本文的基于系統(tǒng)函數(shù)調(diào)用的動態(tài)行為采集方法來提取實驗數(shù)據(jù).3 組實驗均使用相同的Android樣本數(shù)據(jù)集,然后將3 組實驗得到的3 組文本數(shù)據(jù)集都經(jīng)過fastText 模型預(yù)處理以及textCNN 模型進(jìn)行訓(xùn)練,最后相同模型在不同數(shù)據(jù)集上的實驗結(jié)果如表6所示.

        表6 不同數(shù)據(jù)集實驗結(jié)果對比

        從表6中數(shù)據(jù)可以看出,本文提出的動態(tài)行為采集框架可以更有效的提取出Android 程序中行為特征.第一組數(shù)據(jù)集的檢測準(zhǔn)確率相對較低,原因在于現(xiàn)在的Android 應(yīng)用程序都添加了代碼混淆和代碼保護(hù)殼等對抗反編譯的措施,對比而言本文方法幾乎沒有受到這些措施的影響.第2 組與第3 組實驗結(jié)果的對比證實了基于污點跟蹤技術(shù)分析方法存在的局限性,即無法檢測惡意程序在Android Native 層的惡意行為.

        為了對比textCNN 模型與傳統(tǒng)機器學(xué)習(xí)模型及傳統(tǒng)深度學(xué)習(xí)模型在Android 惡意程序上的檢測能力,本文設(shè)置了4 組對照實驗,將textCNN 模型與SVM 模型、RandomForest 模型以及循環(huán)神經(jīng)網(wǎng)絡(luò)LSTM 模型進(jìn)行了對比.SVM 與RandomForest 均是機器學(xué)習(xí)中比較成熟的分類模型,LSTM 也是一種可以高效處理文本問題的神經(jīng)網(wǎng)絡(luò)模型.對于SVM、RandomForest和LSTM 模型中使用的詞向量,本實驗均采用傳統(tǒng)Word2Vec 模型預(yù)處理行為數(shù)據(jù)集來得到.不同模型在相同測試集上的實驗結(jié)果對比如表7所示.

        表7 不同模型實驗結(jié)果對比

        從表7中可以看出,對比SVM 與RandomForest這兩種機器學(xué)習(xí)模型,textCNN 模型的準(zhǔn)確率、召回率和F1值分別高出了6.73%、5.48%、6.08%和3.39%、5.04%、4.2%,同時LSTM 模型的實驗結(jié)果較兩種機器學(xué)習(xí)模型而言也有明顯的提升.這說明采用神經(jīng)網(wǎng)絡(luò)模型較傳統(tǒng)機器學(xué)習(xí)方法而言確實可以提高Android惡意程序的檢測準(zhǔn)確率.對比textCNN 與LSTM,可以看到在相同測試集上textCNN 模型的檢測準(zhǔn)確率還是有所提升的,雖然這種提升是有限的,但是應(yīng)該考慮到textCNN 具有模型復(fù)雜度更小且訓(xùn)練速度更快的先天優(yōu)勢.圖3展示的是4 種模型在相同數(shù)據(jù)集上損失函數(shù)值隨迭代次數(shù)變化而變化的情況.從圖中可以看出,textCNN 模型的損失值相對于其他3 種模型不僅下降速度較快,而且最終收斂到一個更低的穩(wěn)定值.

        綜合兩部分的實驗結(jié)果可以表明本文提出的基于textCNN 模型的利用動態(tài)行為分析方法的Android 惡意程序檢測模型是切實可行的方案,能夠有效提升Android 惡意程序檢測的準(zhǔn)確性和有效性.

        圖3 不同模型損失值變化圖

        4 結(jié)論與展望

        本文提出了基于textCNN 模型的Android 惡意程序檢測方法.該方法實現(xiàn)了包含多種觸發(fā)機制的行為觸發(fā)系統(tǒng),有效提高了程序動態(tài)行為的檢測覆蓋率;通過hook 技術(shù)動態(tài)采集程序系統(tǒng)函數(shù)接口和應(yīng)用層API 的調(diào)用情況來生成動態(tài)行為日志;通過fastText 算法對行為日志進(jìn)行詞嵌入處理,將文本數(shù)據(jù)轉(zhuǎn)換為詞向量數(shù)據(jù);使用textCNN 模型對程序的行為數(shù)據(jù)進(jìn)行檢測與分類.在實驗環(huán)節(jié),本文使用1500 個惡意樣本和1000 個正常樣本,分別對動態(tài)行為采集模塊和基于textCNN 的檢測模塊設(shè)置了對照實驗,實驗結(jié)果證實了本文提出的這兩個模塊是切實可行的且能夠有效提高Android 惡意軟件檢測的準(zhǔn)確性.

        在下一步工作中,針對動態(tài)行為采集模塊,將研究更加智能的動態(tài)行為觸發(fā)機制,以提高行為檢測的覆蓋率;針對動態(tài)行為檢測與分類模塊,將繼續(xù)研究分類模型的優(yōu)化問題,并嘗試將捕捉行為詞匯前后依賴關(guān)系的機制以及注意力機制引入到模型中,使模型能夠更高效地檢測Android 程序是否存在惡意性.

        猜你喜歡
        日志卷積程序
        一名老黨員的工作日志
        華人時刊(2021年13期)2021-11-27 09:19:02
        基于3D-Winograd的快速卷積算法設(shè)計及FPGA實現(xiàn)
        扶貧日志
        心聲歌刊(2020年4期)2020-09-07 06:37:14
        從濾波器理解卷積
        電子制作(2019年11期)2019-07-04 00:34:38
        試論我國未決羈押程序的立法完善
        基于傅里葉域卷積表示的目標(biāo)跟蹤算法
        “程序猿”的生活什么樣
        游學(xué)日志
        英國與歐盟正式啟動“離婚”程序程序
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        国产成人乱色伦区小说| 日本一道综合久久aⅴ免费| 在线 | 一区二区三区四区| 国产亚洲日韩一区二区三区| 久久aⅴ无码av高潮AV喷| 亚洲av熟女传媒国产一区二区| 亚洲av无码专区在线| 日本熟妇人妻xxxxx视频| 四虎成人精品国产一区a| 中文字幕色一区二区三区页不卡| 国产欧美精品aaaaaa片| 最近最新中文字幕| 午夜a福利| 五月综合丁香婷婷久久| 人人妻人人澡人人爽人人精品av| 国产成人精品日本亚洲11| 99JK无码免费| 精品国产日韩亚洲一区在线| 中文字幕人妻在线中字| 久久久久亚洲av无码a片软件| 麻豆人妻无码性色AV专区| 国内精品国产三级国产| 精品国产性色无码av网站| 亚洲h视频| 亚州韩国日本区一区二区片| 91九色成人蝌蚪首页| 国产sm调教视频在线观看| 2021国内精品久久久久精免费| 亚洲精品国产熟女久久久| 又色又爽又黄的视频软件app| 欧美丰满熟妇乱xxxxx图片| 少妇特殊按摩高潮惨叫无码| 在线免费看91免费版.| 最新精品国偷自产在线| 国产精品原创巨作av无遮| 国产在线视频一区二区三| 亚洲精品一区二区国产精华液| 欧美大香线蕉线伊人久久| 亚洲av午夜福利精品一区二区| 久久一本日韩精品中文字幕屁孩| 日躁夜躁狠狠躁2001|