


摘 ?要: 為了解決傳統惡意APP軟件檢測技術中存在的檢測準確率低下的問題,引入模糊神經網絡,設計惡意APP軟件的動態檢測技術。從軟件應用程序權限與軟件代碼兩個方面,提取惡意APP軟件特征,并得出相應的特征向量,通過構建模糊神經元得出動態模糊神經網絡,將得出的APP軟件特征向量輸入到模糊神經網絡當中,針對APP軟件的惡意行為進行特征匹配,從而輸出APP軟件的風險檢測報告。通過實驗發現,模糊神經網絡下的惡意APP軟件動態檢測技術比傳統的檢測技術誤報率與漏檢率分別低18.5%和3.8%,準確率高6.47%。
關鍵詞: 惡意APP軟件; 動態檢測; 模糊神經網絡; 特征向量獲取; 特征匹配; 對比驗證
中圖分類號: TN711?34; TP183 ? ? ? ? ? ? ? ? ?文獻標識碼: A ? ? ? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2020)02?0049?04
Research on malicious APP software dynamic detection technology based on
fuzzy neural network
PENG Shouzhen
Abstract: A dynamic detection technology against malicious APP software is designed by introducing a fuzzy neural network to solve the low detection accuracy in the traditional malicious APP software detection technology. From the two aspects of software application permission and software code, the features of malicious APP software are extracted and the corresponding feature vectors are obtained. The dynamic fuzzy neural network is obtained by constructing the fuzzy neuron, in which the obtained feature vectors of APP software are inputted, so as to conduct the feature matching against the malicious behaviors of APP software to output the risk detection report of APP software. The experimental results show that in comparison with the traditional detection technology, the false alarm rate and the omission rate of the malicious APP software dynamic detection technology based on fuzzy neural network are decreased by 18.5% and 3.8%, respectively, and its accuracy is increased by 6.47%.
Keywords: malicious APP software; dynamic detection; fuzzy neural network; feature vector acquisition; feature matching; comparison validation
0 ?引 ?言
智能手機與傳統的功能機相比,延續了傳統手機打電話和手發短信息的功能,并在此基礎上添加了無線上網功能,實現網絡通信,并按照用戶的個人需求,支持第三方軟件下載與安裝。Android市場份額的擴大和第三方軟件應用數量的急增,也給惡意軟件的開發者創造了機會[1]。惡意APP軟件開發人員,利用Android系統源碼的隱藏漏洞,對源代碼進行篡改,導致用戶隱私遭到威脅。現階段出現的惡意APP軟件類型分為惡意吸費、隱私竊取、遠程控制、惡意推廣以及系統破壞。用戶在無意識的情況下安裝相應的APK文件,被竊取短信、通話記錄等隱私信息。惡意APP軟件通過采取重打包、更新攻擊等方式入侵,重打包將軟件包裝成為正常的APK,經過APK的反編譯、重打包、重簽名等步驟生成新的、帶有惡意功能的安裝包,誘導用戶下載與安裝。而更新攻擊是將連接服務器的部分代碼寫入到合法應用當中,當用戶在使用APP軟件時,惡意代碼服務器連接后臺啟動,通過遠程服務器完成更新,進而執行惡意代碼[2]。
為了保證用戶手機的使用安全,需要在安裝之前對APP軟件進行安全檢測,由此也就產生了惡意APP軟件檢測技術。現階段的檢測技術包括基于源碼分析的靜態檢測技術和基于行為模擬的動態檢測方法。基于源碼分析的靜態檢測技術可以有效地檢測出以重打包為主要入侵攻擊方式的惡意軟件,但由于更新攻擊的源碼是隱藏在正常應用程序當中的,因此使用這種靜態分析技術不能檢測出隱藏的惡意功能[3]。基于行為模擬的動態檢測方法有效地解決了靜態檢測技術當中的問題,但與此同時降低了檢測的準確率。綜合現階段傳統檢測技術中存在的問題,引入了模糊神經網絡的概念,對惡意APP軟件動態檢測技術進行優化設計,在擴大檢測范圍的同時,保證檢測的準確性與精確性。
1 ?特征向量提取
通過對惡意APP軟件中的特征提取作為檢測惡意軟件的依據。具體的特征提取分為兩個方面,分別為應用程序權限提取和代碼特征提取。特征提取的方式是逆向分析APP軟件的安裝包,即APK文件,從中獲得軟件程序的調用信息;惡意APP軟件這兩個方面的特征組合成為混合特征,構建特征向量。
1.1 ?應用程序權限提取
應用程序在執行功能時需要申請相應的權限,因此一個應用程序軟件的權限列表能夠反映該程序的功能和行為。在SDK提供的權限中,例如統計電量、設置壁紙等權限是不會產生惡意行為的[4]。惡意APP程序常用權限包括:撥打電話、發送短信、聯網、安裝程序包、讀取手機狀態、讀取手機聯系人信息等。提取按照圖1中的流程對應用程序權限特征進行提取。
定義特征權限向量為[P=p1,p2,…,pm],其中[pm]表示的是在惡意應用軟件中通話權限的次數從高到低排序為第m位的權限,由此得出的特征權限既具有代表性,同時可以避免統計過多權限特征,導致算法時間效率低下的問題。在此基礎上定義權限惡意程度值函數為:
[?p=λ2mpλnp] (1)
式中:[p∈P];[λm]為惡意行為概率;[λn]為正常行為概率。
1.2 ?代碼特征提取
代碼特征的提取對象是解壓后得到的應用程序軟件文件,文件中包含APK的包名和權限。其中包名可以當成APK文件的身份信息[5];而權限可以用來判斷APK對手機系統的調用情況。將代碼特征提取結果用[η]來表示,[η]的提取過程如圖2所示。
通過圖2可以看到,圖中所示的.dex文件反編譯模塊和Java反編譯模塊可以將dex文件逐步由Dalvik虛擬機可執行文件轉換為Java字節碼文件直至Java代碼文件。
綜上所述,綜合應用程序權限提取與代碼特征提取結果,可以將惡意APP軟件提取的特征向量表示為:
[QA=q1,q2,…,qm=ηp??p] (2)
式中:[ηp]與[?p]分別表示特征提取的結果;[qi]的取值范圍為0~1。
2 ?動態模糊神經網絡建模
模糊神經網絡就是具有模糊權系數或者輸入信號是模糊量的神經網絡[6]。利用邏輯模糊神經網絡中的誤差學習算法,即是監視學習算法,針對惡意APP軟件檢測建立動態網絡模型。
建立動態模糊神經網絡模型首先需要建立模糊神經元模型。模糊神經元是模糊神經網絡的基本組成單位,主要是指一類可以實施模糊信息處理模糊邏輯運算的神經元。模糊神經元模型的基本表達式如下:
[r=hω1x1,ω2x2,…,ωnxnk=fr-Tyj=gjk] (3)
式中:[r]表示的是模糊神經元的輸入值;h表示的是模糊神經元的聚合函數;k表示的是模糊神經元的狀態,一般情況下取值為0或1;[f]表示的是輸入值在模糊神經元當中的傳遞函數;T為閾值[7];[gj]為一個模糊神經元對應的n個輸出函數,其中[j]的取值為[0,1,2,…,n]。
在建立模糊神經元模型基礎上進行模糊神經元的分類,按照分類單元對惡意APP元件代碼進行分類。按照模糊化圣經元和模糊邏輯神經元的分類原則,可以將模糊神經元劃分為第一類模糊神經元和第二類模糊神經元,兩類神經元的模型結構如圖3所示。
圖3中:[xi]為第i個模糊神經元的輸入值;y為當前的輸出值;圖中“[?]”表示的是累計算子;[μi]為修正處理函數。而第二類模糊神經元的加權操作是對每一個模糊輸入的值進行修正的操作。
3 ?神經網絡動態特征匹配
對惡意APP軟件進行動態跟蹤,得到初始的跟蹤數據。在敏感數據來源上分配模糊神經元標簽,帶有標簽的神經元隨著數據和變量的移動自由傳播,在模糊神經元流動路徑以及終端的位置添加檢測標簽。惡意軟件啟動會調用本地的方法和數據,變量的值會與神經元同時作為參數進行傳輸。通過模糊神經元的標記,在惡意軟件啟動的過程中,神經元隨著軟件應用程序進行流通,因此神經元的運行路徑即為軟件的執行路徑。當有軟件結束調用時,觀察并檢測被操作的數據是否與標記的模糊神經元重合,以此來判定APP軟件是否存在惡意行為。接著進行特征向量匹配檢測,檢測過程如圖4所示。
該過程主要通過應用程序調用相關工具獲取APK的文件包名、版本信息等內容,從中提取MD5的值為APK的特征碼。首先將得到的APP軟件應用程序代碼和惡意代碼按照黑白名單入庫,將提取出的文件特征與數據庫中的數據進行匹配,若待檢測軟件的提取特征與正常軟件的匹配度達到95%以上,可以判定為正常軟件;如果提取的特征與惡意特征匹配度僅達到5%,則判定為惡意APP軟件。
4 ?輸出軟件風險檢測報告
利用特征動態匹配對比結果得出相應的程序隱私分數,進而得出軟件風險檢測報告[8]。通過特征比對的結果,對應用與類的相似性進行加權處理,獲得風險模式指標。結合指標的最終相似性,得出風險閾值參數[β],當[β]為0時,APP軟件的風險取值會固定為給定的特征匹配比對值;當[β]為1時,需要通過應用權限計算的平均相似性來決定風險的閾值;當[β]大于1時,風險閾值使相似性低的應用設置高風險值,即應用的權限越多,相似性閾值則越高。
5 ?實驗分析
5.1 ?實驗環境
實驗平臺環境主要由支持APP運行的Android手機和用于相關檢測的服務器兩部分組成。選用的運行檢測服務器為云端服務器,其基本配置為Intel 2.94 GHz CPU,2 GB RAM,操作系統為Windows XP。而Android手機的版本為Android 2.4.4版本,SD卡的容量為1.86 GB。
5.2 ?實驗樣本
實驗中選用的實驗樣本分別為APP軟件10組,且正常APP軟件有5組,惡意APP軟件5組。具體的測試樣本APP設置情況如表1所示。
另外,在實驗中將部分已知惡意軟件的特征添加到檢測環境中的惡意軟件樣本特征庫中。
5.3 ?實驗過程
將實驗樣本輸入到實驗環境中,利用Eclipse檢測技術進行后臺檢測,最終輸出檢測報告。具體的實驗過程如圖5所示。
在此次實驗當中設立傳統的檢測技術和靜態檢測技術作為實驗的對比方法,將實驗樣本輸入到檢測環境當中,分別按照檢測的技術流程進行檢驗。相比于設計出的檢測技術,傳統的檢測技術沒有輸入模糊神經網絡的步驟。通過兩種實驗檢測方法得出惡意APP軟件的最終檢驗結果。
5.4 ?實驗結果與分析
通過APP軟件檢測方法輸出最終的檢測報告,針對兩種實驗技術得出實驗結果進行具體分析,得出有關于檢測技術效率相關系數的實驗結果。檢測效率相關系數包括APP軟件檢測的準確率、檢測率、誤報率、漏檢率等,最終明確檢測精度。APP軟件檢測的準確率為實驗正確檢測樣本數與總樣本數的商;檢測率為檢測出的惡意APP樣本數與總惡意APP樣本數的商;誤報率為錯誤檢測樣本數與總樣本之間的商;漏檢率為未檢測出的惡意APP樣本數與惡意APP樣本總數之間的商。由此便可得出有關于檢測技術效率的實驗對比結果如表2所示。
從表中的數據可以看出,基于模糊神經網絡的惡意APP軟件檢測技術比傳統技術的檢測率高3.665%,誤報率低18.5%,漏檢率低3.8%,準確率高6.47%。由此可以看出,借助模糊神經網絡理論,設計出的惡意APP軟件檢測技術精度較高。
6 ?結 ?語
綜上所述,借助模糊神經網絡設計出的惡意APP軟件檢測方法,具有較高的使用價值。在實際的生活與工作當中應用這種軟件檢測方法也達到了相應的預期效果,與傳統的檢測方法相比,在準確率和誤報率等方面都有一定的提升。然而由于研究時間和研究水平的限制,設計出的檢測技術仍存在諸多不足之處,希望可以在今后的研究中不斷得到完善。
參考文獻
[1] 秦玉海,候世恒,楊嵩.Android平臺惡意APP的檢驗方法[J].中國刑警學院學報,2017,23(3):121?124.
[2] 孫偉,孫雅杰,夏孟友.一種靜態Android重打包惡意應用檢測方法[J].信息安全研究,2017,3(8):692?700.
[3] 蘭雪梅,董純,季啟政.基于LabVIEW的計量校準軟件動態量限自動測試方法研究[J].計測技術,2017,37(z1):236?240.
[4] 張海艦,方舟,陳新.基于深度學習技術的惡意APP檢測方案[J].網絡安全技術與應用,2017,22(3):108.
[5] 宋秋雨.軟件安全漏洞檢測技術[J].數字通信世界,2017,20(7):74.
[6] 王濤,李劍.基于深度學習的Android惡意軟件檢測系統的設計和實現[J].信息安全研究,2018,37(2):25?29.
[7] 郗桐,金昊,徐根煒,等.基于卷積神經網絡的Android惡意應用檢測方法[J].信息安全研究,2018,35(8):41?47.
[8] 權鵬宇,車文剛,余任,等.基于混沌時間序列的模糊神經網絡預測研究[J].軟件導刊,2018,11(2):23?27.
[9] 沈斐揚.鋼軌超聲導波動態檢測關鍵技術研究[D].杭州:浙江大學,2018.
[10] 龔琪,曹金璇,蘆天亮.基于序列比對的勒索病毒同源性分析[J].計算機與現代化,2018(2):1?5.
作者簡介:彭守鎮(1979—),男,江西九江人,碩士,講師,研究方向為數據挖掘和決策算法、信息安全。