陳天偉
摘 要: 傳統(tǒng)Android惡意行為識別方法無法解決惡意行為特征的動態(tài)波動性,識別出的惡意行為精度差,并且需要耗費大量的時間,因此提出基于RBF神經(jīng)網(wǎng)絡的Android惡意行為識別方法。該方法首先進行Android惡意行為的樣本采集、行為特征提取和數(shù)據(jù)整合,使輸出的結(jié)果可以被RBF神經(jīng)網(wǎng)絡識別,然后采用RBF神經(jīng)網(wǎng)絡局部逼近的特點提高學習速度,增強神經(jīng)網(wǎng)絡結(jié)果的輸出質(zhì)量,并采用K均值聚類算法得到所有特征集中各樣本到該特征集中心距離的平方和,取該距離的最小值,通過最小二乘遞推法計算隱含層節(jié)點到數(shù)據(jù)輸出層節(jié)點的權(quán)值,完成RBF神經(jīng)網(wǎng)絡的訓練,實現(xiàn)Android惡意行為的準確識別。實驗結(jié)果說明所提方法可以提高對Android惡意行為識別的正確率和效率。
關(guān)鍵詞: RBF神經(jīng)網(wǎng)絡; Android惡意行為; 識別; 特征集; 局部逼近; 權(quán)值
中圖分類號: TN915.08?34; TP391 文獻標識碼: A 文章編號: 1004?373X(2018)15?0083?04
Android malicious behavior recognition based on RBF neural network
CHEN Tianwei1, 2
(1. University of Electronic Science and Technology of China, Chengdu 610101, China; 2. Urban Vocational College of Sichuan, Chengdu 610110, China)
Abstract: The traditional Android malicious behavior recognition method can′t solve the dynamic fluctuations of malicious behavior characteristics, has poor accuracy of malicious behavior recognition, and spends a large amount of time. Therefore, the Android malicious behavior recognition method based on RBF neural network is proposed. The items of sample acquisition of Android malicious behavior, behavior feature extraction and data integration are carried out to make that the output result can be identified by RBF neural network. The local approximation characteristic of RBF neural network is adopted to improve the output quality of neural network and learning speed. The K?means clustering algorithm is adopted to get the quadratic sum of distances from each sample in the feature set to the center of the feature set, so as to obtain the minimum distance. The least square recursive method is used to calculate the weight from the node of hidden layer to the node of data output layer, accomplish the training of RBF neural network, realize the accurate identification of Android malicious behavior. The experimental results show that the proposed method can improve the accuracy and efficiency of Android malicious behavior recognition.
Keywords: RBF neural network; Android malicious behavior; recognition; feature set; local approximation; weight
隨著經(jīng)濟的快速發(fā)展,移動互聯(lián)網(wǎng)應用領域日益擴大,智能Android系統(tǒng)也已成為市場占有量最大的操作系統(tǒng)之一,面對日益龐大的Android數(shù)據(jù)庫,采用有效的行為識別方法對Android惡意和正常的行為進行識別成為目前急需解決的問題。傳統(tǒng)的LSSVM Android惡意行為識別方法采用LSSVM基于惡意行為特征進行識別,無法解決惡意行為特征的動態(tài)波動性,識別出的惡意行為精度差,并且需要耗費大量的時間[1],為解決該問題,本文提出基于RBF神經(jīng)網(wǎng)絡的Android惡意行為識別方法,提高對Android惡意行為識別的正確率和效率,得到了滿意度較高的識別結(jié)果。
本文為規(guī)范Android惡意行為和正常行為的識別標準,使得到的樣本具有較高的代表性,在進行樣本采集時需要利用其他檢測工具實施檢測且每個Android惡意行為都至少被兩種檢測工具標定[2]。從收集的總體樣本中隨機選取70%作為訓練樣本,其余樣本為測試數(shù)據(jù)。將大量的樣本實施訓練能有效提高Android惡意行為識別的概率。
對Android惡意行為特征的提取階段,利用靜態(tài)分析技術(shù)對收集樣本APK進行翻譯,其能夠自動分析APK的AndroidManifest.xml文件和Smail文件的所屬類別。本文利用靜態(tài)分析技術(shù)對樣本的APK文件進行分析[3],得到如表1所示的10類樣本特征。其中,每個特征集中都包含多個Android惡意行為特征。
每個特征集中都包含大量的數(shù)據(jù),其中可能包含一些不重要的數(shù)據(jù),因此本文基于RBF神經(jīng)網(wǎng)絡的Android惡意行為識別過程中需要進行數(shù)據(jù)整合,計算出每個特征的重要性權(quán)重,并按照權(quán)重的大小進行排列[4]。之后對提取的特征實施格式化操作,使輸出結(jié)果可以被RBF神經(jīng)網(wǎng)絡識別。將每個樣本都表示成[1×n]的矩陣,數(shù)據(jù)格式用[x1:y1 x2:y2 … xi:yj … xn:ym]表示,[i]的取值范圍是[0,n],[j]的取值范圍是[0,m]。[i]表示表1中第[i]個特征類別,[xi]表示該特征的權(quán)值;[ym]為對應特征的被引用次數(shù)。
上述過程分析了Android惡意行為識別方案,該識別方案可進行Android惡意行為的樣本采集、行為特征提取和數(shù)據(jù)整合,使輸出的結(jié)果可以被RBF神經(jīng)網(wǎng)絡識別。
徑向基函數(shù)(Radial Basis Function,RBF)神經(jīng)網(wǎng)絡屬于一種局部逼近的神經(jīng)網(wǎng)絡,當輸入空間的局部區(qū)域只有少量的連接權(quán)值時,會影響神經(jīng)網(wǎng)絡結(jié)果的輸出,采用本文RBF神經(jīng)網(wǎng)絡局部逼近的特點提高學習速度[5],增強神經(jīng)網(wǎng)絡結(jié)果的輸出。圖1為RBF神經(jīng)網(wǎng)絡結(jié)構(gòu),屬于三層的前端反饋網(wǎng)絡,其包括三個層次:數(shù)據(jù)輸入層、隱含層和數(shù)據(jù)輸出層,每個層次各包括[n],[q]和[m]個單元數(shù)。輸入信號通過數(shù)據(jù)輸入層傳導至隱含層,隱含層中的節(jié)點即RBF節(jié)點由高斯函數(shù)構(gòu)成,數(shù)據(jù)輸出層即為常用的線性函數(shù)。
RBF神經(jīng)網(wǎng)絡隱含層中采用的高斯函數(shù)為:
[ui(x)=exp-(x-ci)2σ2i, i=1,2,…,q] (1)
式中:[ui]為隱含層中第[i]個節(jié)點的輸出結(jié)果,輸入的Android惡意行為樣本為[X=(x1,x2,…,xn)T];[ci]表示隱含層中節(jié)點[i]高斯函數(shù)的中心;[σi]為節(jié)點[i]歸一化參數(shù),隱含層中所有節(jié)點的個數(shù)用[q]表示。數(shù)據(jù)輸出層中輸出結(jié)果的大小在[0,1]之間,且該值隨著輸入樣本距節(jié)點中心距離的減小而增大[6]。輸出結(jié)果與隱含層中節(jié)點的線性關(guān)系表達式如下:
[Yj=i=1qωijμj(x), j=1,2,…,m] (2)
式中[ωij]表示從隱含層中第[i]個節(jié)點到數(shù)據(jù)輸出層第[j]個節(jié)點的連接權(quán)值。因此,可以在RBF神經(jīng)網(wǎng)絡結(jié)構(gòu)中實現(xiàn)數(shù)據(jù)輸入層[x]到[ui(x)]的非線性映射和數(shù)據(jù)輸出層從[ui(x)]到[y]的線性映射。
本文基于RBF神經(jīng)網(wǎng)絡的Android惡意行為識別方法,采用RBF神經(jīng)網(wǎng)絡的學習過程相似于BP神經(jīng)網(wǎng)絡,關(guān)鍵區(qū)別在于隱含層采用的函數(shù)不同,BP神經(jīng)網(wǎng)絡隱含層采用sigmoid函數(shù),屬于全局逼近的神經(jīng)網(wǎng)絡;本文采用的RBF神經(jīng)網(wǎng)絡隱含層,采用高斯函數(shù)屬于局部逼近的神經(jīng)網(wǎng)絡,因此只有少數(shù)幾個權(quán)值的變動可能造成神經(jīng)網(wǎng)絡輸出結(jié)果的變化,對神經(jīng)網(wǎng)絡訓練時也只需調(diào)節(jié)幾個關(guān)鍵的權(quán)值。因此這種局部逼近的神經(jīng)網(wǎng)絡可以增強RBF神經(jīng)網(wǎng)絡的學習效率,提高對Android惡意行為的識別能力。
通過對RBF神經(jīng)網(wǎng)絡的訓練得到隱含層中每個節(jié)點基函數(shù)的中心[ci],寬度[σi]及從隱含層中第[i]個節(jié)點到數(shù)據(jù)輸出層第[j]個節(jié)點的連接權(quán)值[ωij],從而實現(xiàn)Android數(shù)據(jù)輸入到Android惡意行為數(shù)據(jù)輸出的映射過程。本文對RBF神經(jīng)網(wǎng)絡的訓練過程分為兩個階段[7]:先利用K均值聚類算法對節(jié)點中心進行調(diào)整,其對RBF神經(jīng)網(wǎng)絡實施訓練的原理為計算所有特征集中每一個樣本到該特征集中心距離的平方和,并取該距離的最小值,其計算過程如下:
1) 設置[n]個聚類中心,用[ci(0)]表示,其中括號中的0為獲得聚類中心共進行的迭代次數(shù),進行初次聚類時其向量的值可以是任意向量,本文將其設置為初始的[n]個訓練樣本。
2) 對靠近聚類中心的訓練樣本實施分組,對任意一個訓練樣本[X],計算出該樣本到每個聚類中心的歐氏距離[8],根據(jù)歐氏距離劃分到距聚類中心近的一組。
3) 按照聚類后的分組情況,依據(jù)式(3)重新計算聚類中心:
[ci(k)=1Nij=1Mxij] (3)
式中:[i=1,2,…,N];[Ni]為第[i]組的所有樣本總量;[xij]為第[i]組中的第[j]個樣本。
4) 若出現(xiàn)結(jié)果[ci(k)=ci(k-1),i=1,2,…,N]時,K均值聚類算法結(jié)束;沒有出現(xiàn)該結(jié)果則返回到步驟2)重新計算。
完成對Android行為樣本的聚類后計算高斯函數(shù)的歸一化參數(shù),設[σ2i]為高斯函數(shù)的半徑,其表示每個從數(shù)據(jù)輸入層輸入的Android行為數(shù)據(jù)大小,[σ2i]可以表示為:
式中:[Mi]表示第[i]組中包含的元素數(shù)量;[xij]為第[i]組中的第[j]個樣本;[ci]表示第[i]組中的中心點。
RBF神經(jīng)網(wǎng)絡訓練的第二階段為計算隱含層節(jié)點到數(shù)據(jù)輸出層節(jié)點的權(quán)值[w],對權(quán)值[w]計算的方法包括最小二乘遞推算法、鏡像映射最小二乘法和最小均方算法[9],本文采用最小二乘遞推法(RLS)計算[w],目標函數(shù)定義為:
式中:[L]表示Android樣本的長度;加權(quán)因子用[λ(P)]表示,其取值范圍在[0,1]之間;[dp]為目標函數(shù)的輸出樣本;[yp]表示實際的輸出Android惡意數(shù)據(jù)樣本。
若使得到的[w]為最小值,使目標函數(shù)式(5)的值最小即可。由于:
可以根據(jù)最小二乘遞推算法得出:
式中:[qp(t)=q1p(t),q2p(t),…,qmp(t)T],[m]表示隱含層中節(jié)點的數(shù)量。
以上過程完成了對RBF神經(jīng)網(wǎng)絡的訓練 [10],得到了適宜的RBF神經(jīng)網(wǎng)絡結(jié)構(gòu)和參數(shù),能夠?qū)崿F(xiàn)對Android惡意行為的準確識別。
為驗證本文RBF神經(jīng)網(wǎng)絡的Android惡意行為識別方法的識別結(jié)果正確率和識別的用時情況,在實驗環(huán)境為Internet 4核2.7 Hz,運行內(nèi)存為4 GB的Windows XP系統(tǒng)的計算機上采用Matlab軟件實施仿真實驗。實驗將所有的Android惡意行為劃分為一類,正常的行為分為一類,為驗證本文方法的有效性,將KNN方法和LSSVM Android惡意行為識別方法作為對比方法,在特征維度為100的情況下,以Android惡意行為和正常行為平均識別的正確率、錯誤率和平均識別時間為評價指標對本文方法的有效性進行檢測。
圖2和圖3分別為采用三種方法進行Android惡意行為和正常行為識別結(jié)果的平均識別正確率和平均識別錯誤率的對比結(jié)果,每種方法均進行10次識別,取其平均值作為最終實驗參考結(jié)果。
從圖2可以看出,采用本文方法進行Android惡意行為識別的平均正確率在96%左右,稍高于對正常行為的識別正確率,而KNN方法和LSSVM Android惡意行為方法在進行Android惡意行為和正常識別的正確率分別在84%,80%,75%和76%,均低于本文方法的識別正確率,達不到對Android惡意行為識別的標準。從圖3三種方法在惡意識別和正常識別的錯誤率對比結(jié)果可以得出,本文方法對Android惡意行為識別的錯誤率極低,對Android惡意行為的識別效果較好,得到的Android惡意行為識別效果滿意度較高,可廣泛應用于各領域。
實驗在進行Android惡意行為識別過程中,對惡意行為識別的用時是判斷本文方法有效性的重要手段。從圖4結(jié)果中可以看出,本文方法對Android惡意行為和正常行為的平均識別用時分別在6.4 ms和6.5 ms左右;KNN方法對Android惡意行為和正常行為的平均識別用時分別為9.5 ms和10.4 ms;LSSVM Android惡意行為識別方法對Android惡意行為和正常行為識別用時分別為11.4 ms和12 ms。從該識別結(jié)果可以看出,本文方法對Android惡意行為和正常行為識別用時最短,識別效率最高,KNN方法和LSSVM方法對Android惡意行為和正常行為識別的用時較長,識別速率較緩慢,無法滿足對大量Android惡意行為識別的要求。
為驗證本文方法在不同特征維度下對Android惡意行為的識別用時,設置5組特征維度,分別采用本文方法和LSSVM方法進行Android惡意行為識別,表2為不同特征維度下的識別用時和速率。
從表2可以得出,本文方法和LSSVM方法隨著特征維度的增大對Android惡意行為的識別用時都有所提高,但本文方法識別時間的增幅較低且在較高特征維度時的識別速率較快,說明本文方法應用于Android惡意行為識別的效果較好。
本文設計基于RBF神經(jīng)網(wǎng)絡的Android惡意行為識別方法,采用RBF神經(jīng)網(wǎng)絡局部逼近的特點提高學習速度,增強神經(jīng)網(wǎng)絡結(jié)果的輸出質(zhì)量,提高Android惡意行為識別精度和效率。
參考文獻
[1] 盧先領,王洪斌,徐仙.基于加速度信號和進化RBF神經(jīng)網(wǎng)絡的人體行為識別[J].模式識別與人工智能,2015,28(12):1127?1136.
LU Xianling, WANG Hongbin, XU Xian. Human activity re?cognition based on acceleration signal and evolutionary RBF neural network [J]. Pattern recognition and artificial intelligence, 2015, 28(12): 1127?1136.
[2] 蔣銳.基于PCA?LBP算法的競技賽技術(shù)動作行為識別模型[J].科技通報,2016,32(6):162?165.
JIANG Rui. Behavior recognition model of competitive action based on PCA?LBP algorithm [J]. Bulletin of science and technology, 2016, 32(6): 162?165.
[3] 陳澤恩.基于k近鄰和最小二乘支持向量機的Android惡意行為識別[J].吉林大學學報(理學版),2015,53(4):720?724.
CHEN Zeen. Identification of Android malicious behaviors based on k nearest neighbor algorithm and least squares support vector machine [J]. Journal of Jilin University (science edition), 2015, 53(4): 720?724.
[4] 王志瑞,劉正濤,黃慧.基于LERBF算法的人體行為自相似識別[J].控制工程,2016,23(11):1784?1789.
WANG Zhirui, LIU Zhengtao, HUANG Hui. Self similarity recognition of human behavior based on LERBF algorithm [J]. Control engineering, 2016, 23(11): 1784?1789.
[5] 王忠民,曹洪江,范琳.一種基于卷積神經(jīng)網(wǎng)絡深度學習的人體行為識別方法[J].計算機科學,2016,43(z2):56?58.
WANG Zhongmin, CAO Hongjiang, FAN Lin. Method on human activity recognition based on convolutional neural networks [J]. Computer science, 2016, 43(S2): 56?58.
[6] 孫潤康,彭國軍,李晶雯,等.基于行為的Android惡意軟件判定方法及其有效性[J].計算機應用,2016,36(4):973?978.
SUN Runkang, PENG Guojun, LI Jingwen, et al. Behavior oriented method of Android malware detection and its effectiveness [J]. Journal of computer applications, 2016, 36(4): 973?978.
[7] 朱煜,趙江坤,王逸寧,等.基于深度學習的人體行為識別算法綜述[J].自動化學報,2016,42(6):848?857.
ZHU Yu, ZHAO Jiangkun, WANG Yining, et al. A review of human action recognition based on deep learning [J]. Acta automatica sinica, 2016, 42(6): 848?857.
[8] 徐曉惠,張繼業(yè),趙玲.一類混合時滯復值神經(jīng)網(wǎng)絡的動態(tài)行為分析[J].西南交通大學學報,2014,49(3):470?476.
XU Xiaohui, ZHANG Jiye, ZHAO Ling. Dynamic behaviors analysis of a class of complex?valued neural networks with mixed time delays [J]. Journal of Southwest Jiaotong University, 2014, 49(3): 470?476.
[9] 黃波,丁浩,張孝芳,等.基于RBF神經(jīng)網(wǎng)絡的某復雜裝備故障預測方法[J].計算機仿真,2014,31(1):14?17.
HUANG Bo, DING Hao, ZHANG Xiaofang, et al. Predication method of complex equipment based on RBF neural network [J]. Computer simulation, 2014, 31(1): 14?17.
[10] 郭麗杰,趙明娟,康建新.基于PCA和RBF神經(jīng)網(wǎng)絡的石化裝置故障監(jiān)測與診斷[J].燕山大學學報,2016,40(5):456?461.
GUO Lijie, ZHAO Mingjuan, KANG Jianxin. Fault monitoring and diagnosis based on PCA and RBF neural network for petrochemical plant [J]. Journal of Yanshan University, 2016, 40(5): 456?461.