度學(xué)習(xí)的安卓惡意代碼檢測(cè)系統(tǒng)的APK檢測(cè)流程,檢測(cè)流程包括以下步驟:
[0082](I)保存用戶上傳的APK程序,并生成APK程序的SHAl散列值;
[0083](2)對(duì)于⑴中生成的散列值,在數(shù)據(jù)庫(kù)中進(jìn)行指紋匹配;
[0084](3)如果⑵的匹配結(jié)果存在,進(jìn)入(9),否則進(jìn)入(4);
[0085](4)提取⑴中APK程序的靜態(tài)特征,得到靜態(tài)特征向量;
[0086](5)提?、胖蠥PK程序的動(dòng)態(tài)特征,得到動(dòng)態(tài)特征向量;
[0087](6)組合⑷與(5)中的向量,組成總體特征向量;
[0088](7)將(6)中總體特征向量輸入至學(xué)習(xí)完畢的檢測(cè)模型中,輸出結(jié)果;
[0089](8)將(6)中總體特征向量與(7)中輸出值,插入系統(tǒng)數(shù)據(jù)庫(kù);
[0090](9)根據(jù)數(shù)據(jù)庫(kù)中記錄,解析生成安全評(píng)估報(bào)告。
[0091]圖4示出了圖1所示的基于深度學(xué)習(xí)的安卓惡意代碼檢測(cè)系統(tǒng)的深度學(xué)習(xí)模型部分,模型包括以下特點(diǎn):
[0092](I)采用RNN(多層反饋神經(jīng)網(wǎng)絡(luò))和MLP (多層感知器)模型相結(jié)合的方式構(gòu)造整體模型。
[0093](2)用RNN神經(jīng)網(wǎng)絡(luò)了處理長(zhǎng)度不固定的動(dòng)態(tài)行為序列,抽象出動(dòng)態(tài)特征再和靜態(tài)特征組合成長(zhǎng)度固定的特征向量;RNN的內(nèi)部網(wǎng)絡(luò)狀態(tài)可以很好的展示動(dòng)態(tài)時(shí)序的行為,不同于前饋神經(jīng)網(wǎng)絡(luò),RNN可以利用它內(nèi)部的記憶來(lái)處理任意時(shí)序的輸入序列,因此本系統(tǒng)使用RNN模型來(lái)分析程序的動(dòng)態(tài)行為特征。將DroidBox提取的維度不一的動(dòng)態(tài)特征通過(guò)RNN模型的處理,輸出維度固定的23維動(dòng)態(tài)特征。
[0094](3)用MLP模型進(jìn)行處理分類,這樣的處理方式對(duì)靜態(tài)特征和動(dòng)態(tài)特征進(jìn)行了充分合理的運(yùn)用?;诜聪騻鞑W(xué)習(xí)的多層感知器(MLP)是典型的前饋網(wǎng)絡(luò),其信息的處理方向從輸入層到各隱層再到輸入層逐層進(jìn)行。MLP需要確定的參數(shù)有:隱含層節(jié)點(diǎn)數(shù)、隱含層到輸出層的連接權(quán)值、輸出層的閾值。我們通過(guò)不斷調(diào)整這些參數(shù),提高訓(xùn)練的效率。MLP多層感知器可以并行計(jì)算、處理速度快且學(xué)習(xí)功能強(qiáng)大,容易實(shí)現(xiàn)非線性映射過(guò)程,且容錯(cuò)性強(qiáng),局部神經(jīng)元損壞后不會(huì)對(duì)全局活動(dòng)造成巨大影響,并有對(duì)輸入信號(hào)的模式變換和特征提取的功能,對(duì)系統(tǒng)含有不確定因素及輸入模式不完備的情況不太敏感。MLP多層感知器對(duì)本系統(tǒng)中維度偏大的樣本能進(jìn)行充分的整合和訓(xùn)練,達(dá)到提高檢測(cè)精準(zhǔn)度的目的。
[0095]最終使用的MLP模型主要參數(shù)為:
[0096]輸入:508維的特征向量(包括靜態(tài)特征和動(dòng)態(tài)特征);
[0097]輸出:0 (安全軟件)的概率、I (惡意軟件)的概率;
[0098]隱含層節(jié)點(diǎn)數(shù):80 ;
[0099]隱含層到輸出層的連接權(quán)值:0.001 ;
[0100]輸出層的閾值:0.7;
[0101]學(xué)習(xí)迭代次數(shù)(Epoch):1000 ;
[0102]學(xué)習(xí)速率(LearningRate):0.05 ;
[0103]同時(shí),為了最大化學(xué)習(xí)過(guò)程的效率,本系統(tǒng)采用了快速中止(Early Stopping)的方法,即在每一個(gè)迭代結(jié)束時(shí)(一個(gè)迭代即對(duì)所有訓(xùn)練數(shù)據(jù)的一輪遍歷)計(jì)算驗(yàn)證數(shù)據(jù)(validat1n data)的準(zhǔn)確度(accuracy),當(dāng)準(zhǔn)確度不再提高時(shí),就停止訓(xùn)練。這樣做既可以避免不必要的學(xué)習(xí)造成浪費(fèi),也可以同時(shí)防止過(guò)度擬合(overfitting)。
[0104]此外,在訓(xùn)練學(xué)習(xí)模型的過(guò)程中,為達(dá)到穩(wěn)定可靠的結(jié)果,本系統(tǒng)使用5折交叉驗(yàn)證(5-fold cross validat1n)作為命中率測(cè)試的方法,將數(shù)據(jù)集分為五份,輪流使用其中四份作為訓(xùn)練,一份作為驗(yàn)證,十次結(jié)果的均值作為命中率測(cè)試的最終結(jié)果。
[0105]圖5、6示出了基于深度學(xué)習(xí)的安卓惡意代碼檢測(cè)系統(tǒng)所含的動(dòng)態(tài)特征、靜態(tài)特征提取包括以下步驟:
[0106](I)解壓縮用戶上傳的APK程序,獲取兩個(gè)關(guān)鍵文件:AndroidManifest.xml和classes, dex ;
[0107](2)使用 AXMLPrinter2 和 TinyXml 工具解析 AndroidManifest.xml 文件,得到該APK程序申請(qǐng)的所有權(quán)限,維度為120,作為靜態(tài)特征的第一部分;
[0108](3)用反匯編程序baksmali反編譯classes, dex文件,暴搜程序源碼,獲取主要API的調(diào)用情況,抽象成維度為365的特征向量,作為靜態(tài)特征的第二部分;
[0109](4)使用DroidBox作為動(dòng)態(tài)監(jiān)測(cè)的沙盒,通過(guò)Hook安卓程序中的20多個(gè)關(guān)鍵API,經(jīng)由RNN模型,得到23維動(dòng)態(tài)特征。
[0110]以上詳細(xì)描述了本發(fā)明的較佳具體實(shí)施例。應(yīng)當(dāng)理解,本領(lǐng)域的普通技術(shù)無(wú)需創(chuàng)造性勞動(dòng)就可以根據(jù)本發(fā)明的構(gòu)思作出諸多修改和變化。因此,凡本技術(shù)領(lǐng)域中技術(shù)人員依本發(fā)明的構(gòu)思在現(xiàn)有技術(shù)的基礎(chǔ)上通過(guò)邏輯分析、推理或者有限的實(shí)驗(yàn)可以得到的技術(shù)方案,皆應(yīng)在由權(quán)利要求書所確定的保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于深度學(xué)習(xí)的安卓惡意代碼檢測(cè)系統(tǒng),其特征在于,所述檢測(cè)系統(tǒng)包括: 特征提取模塊,所述特征提取模塊被配置為以APK程序作為輸入,使用靜態(tài)特征提取與動(dòng)態(tài)特征提取相結(jié)合的方式,輸出由O、I組成的所述APK程序的特征向量; 深度學(xué)習(xí)模塊,所述深度學(xué)習(xí)模塊被配置為使用多層感知器模型對(duì)由所述特征向量與監(jiān)督值組成的樣本集進(jìn)行訓(xùn)練,得到學(xué)習(xí)成熟的模型;同時(shí)以所述特征向量作為輸入,使用所述學(xué)習(xí)成熟的模型,輸出結(jié)果概率,作為所述APK程序的安全級(jí)別; 報(bào)告生成模塊,所述報(bào)告生成模塊被配置為根據(jù)所述特征向量與所述安全級(jí)別進(jìn)行分析,并生成評(píng)估報(bào)告。2.如權(quán)利要求1所述的基于深度學(xué)習(xí)的安卓惡意代碼檢測(cè)系統(tǒng),其特征在于,所述的檢測(cè)系統(tǒng)采用瀏覽器端/服務(wù)器端架構(gòu),所述服務(wù)器端被配置為通過(guò)調(diào)用所述的特征提取模塊、深度學(xué)習(xí)模塊和報(bào)告生成模塊,進(jìn)行所述學(xué)習(xí)成熟的模型的預(yù)處理和所述APK程序的檢測(cè);所述瀏覽器端被配置為面向用戶進(jìn)行上傳APK文件、搜索shal和呈現(xiàn)所述評(píng)估報(bào)生口 ο3.—種基于深度學(xué)習(xí)的安卓惡意代碼檢測(cè)方法,其特征在于,所述的檢測(cè)方法包括以下步驟: (51)以APK程序作為輸入,使用特征提取模塊提取所述APK程序的動(dòng)態(tài)特征和靜態(tài)特征,輸出由O、I組成的所述APK程序的特征向量; (52)使用深度學(xué)習(xí)模型進(jìn)行預(yù)處理; (53)對(duì)所述特征向量進(jìn)行檢測(cè); (54)根據(jù)上述檢測(cè)的結(jié)果生成評(píng)估報(bào)告。4.如權(quán)利要求3所述的基于深度學(xué)習(xí)的安卓惡意代碼檢測(cè)方法,其特征在于,步驟S2中的所述模型預(yù)處理包括以下步驟: (S2-1)采集大量的帶有正負(fù)標(biāo)識(shí)的所述APK程序,其中安全的軟件帶有正標(biāo)識(shí),惡意的軟件帶有負(fù)標(biāo)識(shí); (S2-2)批量提取上述APK程序的靜態(tài)特征,得到靜態(tài)特征向量; (S2-3)批量提取上述APK程序的動(dòng)態(tài)特征,得到動(dòng)態(tài)特征向量; (S2-4)將上述靜態(tài)特征向量與上述動(dòng)態(tài)特征向量組合成總體特征向量; (S2-5)以上述總體特征向量為輸入維度,結(jié)合步驟(S2-1)中所述APK程序?qū)?yīng)的監(jiān)督值,組合成樣本集合; (S2-6)將上述樣本集合插入至系統(tǒng)數(shù)據(jù)庫(kù); (S2-7)以上述系統(tǒng)數(shù)據(jù)庫(kù)作為輸入,對(duì)深度學(xué)習(xí)模型進(jìn)行訓(xùn)練,得到學(xué)習(xí)成熟的模型。5.如權(quán)利要求3所述的基于深度學(xué)習(xí)的安卓惡意代碼檢測(cè)方法,其特征在于,步驟S3中所述APK程序的特征向量的檢測(cè)包括以下步驟: (S3-1)保存用戶上傳的APK程序,并生成這個(gè)APK程序的SHAl散列值; (S3-2)對(duì)于上述散列值,在系統(tǒng)數(shù)據(jù)庫(kù)中進(jìn)行指紋匹配; (S3-3)如果上述匹配結(jié)果存在,則進(jìn)入步驟(S3-9),否則進(jìn)入步驟(S3-4); (S3-4)提取用戶上傳的APK程序的靜態(tài)特征,得到靜態(tài)特征向量; (S3-5)提取用戶上傳的APK程序的動(dòng)態(tài)特征,得到動(dòng)態(tài)特征向量; (S3-6)將上述靜態(tài)特征向量與上述動(dòng)態(tài)特征向量組合成總體特征向量; (S3-7)將上述總體特征向量輸入至學(xué)習(xí)成熟的模型中,輸出結(jié)果概率; (S3-8)將上述總體特征向量與上述輸出結(jié)果概率插入所述系統(tǒng)數(shù)據(jù)庫(kù); (S3-9)根據(jù)所述系統(tǒng)數(shù)據(jù)庫(kù)中記錄,解析生成安全評(píng)估報(bào)告。6.如權(quán)利要求5所述的基于深度學(xué)習(xí)的安卓惡意代碼檢測(cè)方法,其特征在于,步驟(S3-4)、(S3-5)中所述的動(dòng)態(tài)特征、靜態(tài)特征提取包括以下步驟: (S3-45-1)解壓縮用戶上傳的APK程序,獲取文件:AndroidManifest.xml和classes.dex ; (S3-45-2)使用 AXMLPrinter2 和 TinyXml 工具解析 AndroidManifest.xml 文件,得到上述APK程序申請(qǐng)的所有權(quán)限,維度為120,作為靜態(tài)特征向量的第一部分; (S3-45-3)用反匯編程序baksmali反編譯classes, dex文件,并搜索反匯編得到的源碼,獲取API的調(diào)用情況,抽象成維度為365的特征向量,作為靜態(tài)特征向量的第二部分;(S3-45-4)使用DroidBox作為動(dòng)態(tài)監(jiān)測(cè)的沙盒,通過(guò)Hook安卓程序中的23個(gè)API,得到23維動(dòng)態(tài)特征向量。7.如權(quán)利要求4所述的基于深度學(xué)習(xí)的安卓惡意代碼檢測(cè)方法,其特征在于,所使用的深度學(xué)習(xí)模型具有如下特征: (1)采用多層反饋神經(jīng)網(wǎng)絡(luò)和多層感知器模型相結(jié)合的方式構(gòu)造整體模型; (2)采用多層反饋神經(jīng)網(wǎng)絡(luò)處理長(zhǎng)度不固定的動(dòng)態(tài)行為序列,抽象出動(dòng)態(tài)特征后再和靜態(tài)特征組合成長(zhǎng)度固定的總體特征向量 (3)采用多層感知器模型進(jìn)行處理分類。8.如權(quán)利要求7所述的基于深度學(xué)習(xí)的安卓惡意代碼檢測(cè)方法,其特征在于,所述多層感知器模型的參數(shù)為: 輸入:508維的特征向量,包括靜態(tài)特征和動(dòng)態(tài)特征; 輸出:安全軟件的概率、惡意軟件的概率; 隱含層節(jié)點(diǎn)數(shù):80 ; 隱含層到輸出層的連接權(quán)值:0.001 ; 輸出層的閾值:0.7 ; 學(xué)習(xí)迭代次數(shù):1000 ; 學(xué)習(xí)速率:0.05。9.如權(quán)利要求7所述的基于深度學(xué)習(xí)的安卓惡意代碼檢測(cè)方法,其特征在于,所述多層感知器模型采用了快速中止的方法,即在每一個(gè)迭代結(jié)束時(shí)計(jì)算驗(yàn)證數(shù)據(jù)的準(zhǔn)確度,當(dāng)上述準(zhǔn)確度不再提高時(shí),就停止訓(xùn)練,以免過(guò)度擬合。10.如權(quán)利要求7所述的基于深度學(xué)習(xí)的安卓惡意代碼檢測(cè)方法,其特征在于,所述多層感知器模型采用了 5折交叉驗(yàn)證作為命中率測(cè)試的方法,即將驗(yàn)證數(shù)據(jù)集分為五份,輪流使用其中四份作為訓(xùn)練,一份作為驗(yàn)證,十次結(jié)果的均值作為命中率測(cè)試的最終結(jié)果。
【專利摘要】本發(fā)明公開了一種基于深度學(xué)習(xí)的安卓惡意代碼檢測(cè)系統(tǒng)包括:特征提取模塊,深度學(xué)習(xí)模塊與報(bào)告生成模塊。特征提取模塊以APK程序作為輸入,使用靜態(tài)提取與動(dòng)態(tài)提取相結(jié)合的方式,輸出0、1組成APK程序特征向量。深度學(xué)習(xí)模塊使用多層感知器(MLP)模型作為學(xué)習(xí)模型。一方面對(duì)特征向量與監(jiān)督值組成的樣本集進(jìn)行訓(xùn)練與學(xué)習(xí),得到成熟的學(xué)習(xí)模型;另一方面以特征向量作為輸入,使用成熟的學(xué)習(xí)模型,輸出結(jié)果概率,作為APK程序的安全級(jí)別。報(bào)告生成模塊根據(jù)APK程序的特征向量與安全級(jí)別,進(jìn)行解釋與分析,生成評(píng)估報(bào)告。本發(fā)明將深度學(xué)習(xí)模型與惡意代碼檢測(cè)相結(jié)合,同時(shí)將靜態(tài)特征與動(dòng)態(tài)特征相結(jié)合,提高了系統(tǒng)對(duì)于未知惡意代碼的甄別能力和檢測(cè)的準(zhǔn)確性。
【IPC分類】G06F21/56
【公開號(hào)】CN105205396
【申請(qǐng)?zhí)枴緾N201510667016
【發(fā)明人】鄒福泰, 徐凱翼, 唐佳莉, 朱文彬, 杭?jí)臬h
【申請(qǐng)人】上海交通大學(xué)
【公開日】2015年12月30日
【申請(qǐng)日】2015年10月15日