楊基慧
(吉林司法警官職業(yè)學(xué)院,吉林 長春130062)
隨著科學(xué)技術(shù)水平的大幅度提升,及信息通信技術(shù)的迅猛發(fā)展,移動(dòng)終端設(shè)備逐漸普及,手機(jī)、IPAD 等移動(dòng)設(shè)備近乎人手必備,其雖然改變了人們的生活方式,為人們帶來更多便捷,但同時(shí)也讓許多不法分子有了可乘之機(jī)。在不同功能Android 應(yīng)用軟件不斷被開發(fā)出來的同時(shí),Android 惡意軟件數(shù)量也在快速增加,并且這些惡意軟件會(huì)隨著科技發(fā)展而不斷更新,僅采取傳統(tǒng)惡意軟件檢測方法已無法對其進(jìn)行有效檢測。研究發(fā)現(xiàn),部分惡意軟件能夠采取增加代碼混淆、隱蔽命令或控制通信通道等方式,對檢測進(jìn)行有效躲閃,同時(shí)還可降低傳統(tǒng)檢測手段的檢測性能與準(zhǔn)確率,進(jìn)而大幅度提高了Android 惡意軟件的檢測難度[1]。所以目前急需研發(fā)出一種設(shè)計(jì)難度低、檢測準(zhǔn)確率高的Android 惡意軟件檢測系統(tǒng),以避免互聯(lián)網(wǎng)病毒對人們造成威脅。本文基于深度學(xué)習(xí)算法構(gòu)建出一套3 層神經(jīng)網(wǎng)絡(luò)的Android 惡意軟件檢測系統(tǒng),報(bào)道如下。
手機(jī)惡意軟件是一種在用戶完全不知情的情況下,強(qiáng)行在用戶手機(jī)中進(jìn)行安裝,或一旦在用戶手機(jī)中成功安裝便難以刪除,但同時(shí)還具備一定功能的軟件程序。手機(jī)惡意軟件與網(wǎng)絡(luò)病毒區(qū)別僅在于前者具備一定正常功能,而兩者均能對用戶手機(jī)網(wǎng)絡(luò)造成損害,竊取用戶信息,并采取一定手段導(dǎo)致用戶手機(jī)扣費(fèi)。截至2019 年底,我國手機(jī)用戶數(shù)量已超過10 億8 千萬,如此龐大的手機(jī)用戶數(shù)量,采取有效措施應(yīng)對手機(jī)惡意軟件,對于保護(hù)手機(jī)用戶財(cái)產(chǎn)與信息安全具有重要意義[2]。Android手機(jī)用戶在我國所有手機(jī)用戶中占比較大,為能確保Android手機(jī)用戶正常使用各類應(yīng)用軟件,我國在Android 惡意軟件檢測技術(shù)開發(fā)方面投入巨大,目前已有多種Android 惡意軟件檢測系統(tǒng)被開發(fā)出來。有研究者將機(jī)器學(xué)習(xí)引入惡意軟件檢測,以離線方式的支持向量機(jī)為基礎(chǔ),通過對權(quán)限與控制流圖特征進(jìn)行提取和訓(xùn)練來實(shí)現(xiàn)惡意軟件檢測,但這種檢測方法效果一般,無法有效解決問題[3];還有學(xué)者將人工神經(jīng)網(wǎng)絡(luò)與共生矩陣聯(lián)系起來,利用共生矩陣對相關(guān)系統(tǒng)調(diào)用進(jìn)行挖掘,由于良性應(yīng)用軟件和惡意軟件與系統(tǒng)調(diào)用之間的相關(guān)性存在較大差異,所以采用這種檢測系統(tǒng)能將惡意軟件有效分辨出來[4];另有研究者在實(shí)際應(yīng)用中發(fā)現(xiàn),部分應(yīng)用程序雖然聲明權(quán)限,但實(shí)際上并沒有使用,由此可見,僅通過分析權(quán)限清單文件并不一定可獲取準(zhǔn)確的檢測結(jié)果[5]。動(dòng)態(tài)特征主要指的是應(yīng)用系統(tǒng)在操作系統(tǒng)或網(wǎng)絡(luò)中的行為,借助系統(tǒng)調(diào)用實(shí)現(xiàn)特定任務(wù)的執(zhí)行,但這些特定任務(wù)并不能直接與操作系統(tǒng)實(shí)現(xiàn)交互,需要先由用戶發(fā)出系統(tǒng)調(diào)用指令,待操作模式轉(zhuǎn)換到內(nèi)核模式,任務(wù)才能開始執(zhí)行,并且還有些應(yīng)用程序需要在網(wǎng)絡(luò)連接條件下才能運(yùn)行,國內(nèi)學(xué)者通過對實(shí)驗(yàn)收集到的Android 惡意軟件樣本進(jìn)行研究,發(fā)現(xiàn)其中有超過90%的惡意軟件需要網(wǎng)絡(luò)連接,以確保惡意軟件能與其開發(fā)者進(jìn)行連接[6]。
本文對一種以深度學(xué)習(xí)算法(SDA)為基礎(chǔ)的Android 惡意軟件檢測系統(tǒng)進(jìn)行設(shè)計(jì)并實(shí)現(xiàn),此檢測系統(tǒng)通過對爬蟲爬取到的8000 個(gè)良性軟件與7000 個(gè)惡意軟件行特征提取,數(shù)據(jù)經(jīng)分析降維后獲取961 個(gè)特征,再利用SDA 建立一個(gè)3 層神經(jīng)網(wǎng)絡(luò),經(jīng)數(shù)據(jù)集較差驗(yàn)證后發(fā)現(xiàn)此檢測系統(tǒng)檢測正確率高達(dá)95.8%。本文設(shè)計(jì)檢測系統(tǒng)主要由編寫網(wǎng)絡(luò)爬蟲收集數(shù)據(jù)集、Android 應(yīng)用程序包(APK)靜態(tài)代碼特征與動(dòng)態(tài)行為特征收集、特征降維后行深度學(xué)習(xí)與建立良好神經(jīng)網(wǎng)絡(luò)行檢測3 部分組成。
結(jié)合以往研究,本文將Google Play 中的應(yīng)用視為良性應(yīng)用,編寫網(wǎng)絡(luò)爬蟲期間隨機(jī)抽取8000 個(gè)APK,以此作為本次設(shè)計(jì)的良性應(yīng)用數(shù)據(jù)集,此外在此期間又收集到7000 個(gè)惡意應(yīng)用軟件。本次設(shè)計(jì)期間所有軟件均屬真實(shí)軟件,均已提前知曉軟件性質(zhì),表明本次設(shè)計(jì)數(shù)據(jù)真實(shí)可靠。本次設(shè)計(jì)采用Apktool 軟件對每個(gè)APK 行反匯編,獲得Smail 和Manifest 文件,從中抽取權(quán)限、IP 地址等重要靜態(tài)代碼特性,隨后每個(gè)APK 均開啟虛擬機(jī)生成Log 日志,利用DroidBox 軟件收集Log 日志中的敏感行為信息,將獲取到的靜態(tài)代碼特征與動(dòng)態(tài)行為特征作為特征庫,借助主成分分析技術(shù)(PCA)行數(shù)據(jù)降維,降維后數(shù)據(jù)集經(jīng)SDA 構(gòu)建神經(jīng)網(wǎng)絡(luò),最后通過BP 算法對結(jié)果進(jìn)行微調(diào)處理,從而實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的任務(wù)分類功能。
改進(jìn)SDA 主要包括傳統(tǒng)自編碼、降噪自編碼和構(gòu)建分類模型。傳統(tǒng)自編碼的出現(xiàn)為SDA 提供了新的思路,自動(dòng)編碼機(jī)屬于無監(jiān)督算法,無需標(biāo)注樣本,則可對樣本信息進(jìn)行有效應(yīng)用,進(jìn)而促進(jìn)模型性能提升。傳統(tǒng)自動(dòng)編碼機(jī)可分為編碼與解碼兩部分,編碼階段主要將d 維輸入向量x 定性映射到d' 維隱層表示y,映射函數(shù)多采用Sigmoid,詳見公式(1)。解碼階段主要將得到的結(jié)果便是為y,再定性地映射至d 維重構(gòu)向量z,詳見公式(2)。通過這兩個(gè)階段,實(shí)現(xiàn)N 個(gè)樣本重構(gòu)誤差的優(yōu)化,均方誤差L 詳見公式(3)。研究發(fā)現(xiàn),傳統(tǒng)自編碼在不設(shè)置生成約束條件時(shí),易產(chǎn)生輸入向量直接復(fù)制成輸出向量的現(xiàn)象,也存在產(chǎn)生改變極為微小的情況,進(jìn)而導(dǎo)致重構(gòu)誤差相對較小,當(dāng)測試數(shù)據(jù)與訓(xùn)練數(shù)據(jù)之間存在較大差距且不符合同一分布時(shí),會(huì)導(dǎo)致訓(xùn)練效果明顯下降,為避免這種現(xiàn)象出現(xiàn),國外研究者研制出一種降噪自編碼,此算法會(huì)對樣本x 行改造處理,以一定幾率讓部分輸入層節(jié)點(diǎn)值為0,進(jìn)而將原來的樣本x 改造為x',隨后利用x'訓(xùn)練隱藏層,詳見公式(4)。將隱層輸出y 作為新輸入特征,多次進(jìn)行降噪自編碼,則可構(gòu)成SDA 深度結(jié)構(gòu),研究發(fā)現(xiàn),不同特征表示對數(shù)據(jù)的某些解釋因子能起到突顯或剔除效果,進(jìn)而產(chǎn)生不同表示能力,因此整個(gè)SDA 主要以找到一個(gè)相比原始特征更適應(yīng)任務(wù)需求的特征表示方式為目的。在深度結(jié)構(gòu)完成后,添加節(jié)點(diǎn)與類別個(gè)數(shù)相同的輸出層,并將最后獲取的特征表示通過此輸出層輸入,隨后將訓(xùn)練獲取各層權(quán)值矩陣、偏置項(xiàng)等作為初始參數(shù),最后再利用BP 算法對SDA 神經(jīng)網(wǎng)絡(luò)行微調(diào)處理,即可實(shí)現(xiàn)任務(wù)分類功能。
本次設(shè)計(jì)利用爬蟲爬到良性軟件8000 個(gè),自行收集惡意軟件7000 個(gè),驗(yàn)證實(shí)驗(yàn)中分別選取良性軟件7000 個(gè)和惡意軟件6000 個(gè)用作訓(xùn)練數(shù)據(jù),另外良性軟件和惡意軟件各1000 個(gè)用作驗(yàn)證數(shù)據(jù)。
本次驗(yàn)證實(shí)驗(yàn)評定指標(biāo)主要包括準(zhǔn)確率(ACC)、查準(zhǔn)率(P)、查全率(R)、f-measure、實(shí)際預(yù)測均正例(TP)、實(shí)際預(yù)測均負(fù)例(TN)、實(shí)際正例預(yù)測負(fù)例(FN)、實(shí)際負(fù)例預(yù)測正例(FP)、TPR 和FPR。其中ACC=(TP+TN)/(TP+TN+FN+FP),P=提取出正確信息條數(shù)/提取出信息條數(shù),R=提取出正確信息條數(shù)/樣本中信息條數(shù),f-measure 為ACC 與召回率加權(quán)調(diào)和平均值,TPR 為被正確分類樣本數(shù)目比例,F(xiàn)PR 為被錯(cuò)誤分類樣本數(shù)目比例。
本次驗(yàn)證試驗(yàn)選用10 份驗(yàn)證集,選用4 種分類器分別為SDA、多層神經(jīng)網(wǎng)絡(luò)(MLP)、Logistic 回歸模型及NB 分類算法,SDA 獲得ACC 為95.8%,高于其他3 種分類器。
實(shí)驗(yàn)結(jié)果顯示,基于SDA 構(gòu)建的3 層神經(jīng)網(wǎng)絡(luò)獲得ACC最高,屬于優(yōu)質(zhì)分類器,與其他學(xué)習(xí)算法相比,SDA 可在分類任務(wù)方面發(fā)揮更大作用,其作為一種特征學(xué)習(xí)方法,能將原始數(shù)據(jù)通過一些簡單且為非線性模型,更為抽象、更高層次地表達(dá)出來,在大量轉(zhuǎn)換組合的基礎(chǔ)上,即使是非常復(fù)雜的函數(shù),也能對其進(jìn)行有效學(xué)習(xí),學(xué)習(xí)效率更高。以往提取特征通常采用手工設(shè)計(jì)的特征提取器,但手工設(shè)計(jì)需要設(shè)計(jì)者熟練掌握較多的工程技術(shù)與專業(yè)領(lǐng)域知識(shí),要求較高,設(shè)計(jì)過程麻煩,如果僅需要通過通用學(xué)習(xí)過程即可獲取優(yōu)質(zhì)特征,則可將復(fù)雜的設(shè)計(jì)工作舍去。本次設(shè)計(jì)基于SDA 的Android 惡意軟件檢測系統(tǒng),抓住了SDA 的關(guān)鍵優(yōu)勢,借助SDA 減輕設(shè)計(jì)難度,同時(shí)也能有效彌補(bǔ)淺層機(jī)器學(xué)習(xí)存在的不足,進(jìn)而實(shí)現(xiàn)Android 安全問題的有效解決。
表1 實(shí)驗(yàn)評定指標(biāo)結(jié)果
本文通過對Android 應(yīng)用軟件中存在的安全隱患進(jìn)行全面分析,利用BP 算法對SDA 神經(jīng)網(wǎng)絡(luò)行微調(diào)處理,最后設(shè)計(jì)出一套基于SDA 的Android 惡意軟件檢測系統(tǒng),經(jīng)實(shí)驗(yàn)研究發(fā)現(xiàn),此檢測系統(tǒng)檢測精度高,檢測性能強(qiáng),檢測準(zhǔn)確率高達(dá)95.8%。