• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種基于支持向量機(jī)的安卓惡意軟件新型檢測方法

      2018-10-24 08:34:34張超欽胡光武王振龍劉新宇
      關(guān)鍵詞:調(diào)用特征向量應(yīng)用程序

      張超欽 胡光武 王振龍 劉新宇

      1(國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心 河南 鄭州 450002)2(鄭州輕工業(yè)學(xué)院計(jì)算機(jī)與通信工程學(xué)院 河南 鄭州 450002)3(深圳信息職業(yè)技術(shù)學(xué)院計(jì)算機(jī)學(xué)院 廣東 深圳 518172)4(清華大學(xué)深圳研究生院 廣東 深圳 518055)5(深圳市金洲精工科技股份有限公司 廣東 深圳 518055)

      0 引 言

      近年來,基于安卓操作系統(tǒng)(Android)的智能終端設(shè)備得到了極大普及,并成為大部分智能手機(jī)的操作系統(tǒng)。但由于Android平臺(tái)的開放性,惡意軟件的制造者可以輕易地開發(fā)出大量的惡意軟件,給用戶帶來了很大的危害[1]。隨著Android智能手機(jī)的用戶數(shù)量不斷增加及越來越多的Android應(yīng)用(App)不斷推出,檢測和防范Android惡意軟件的重要性日益突出[2]。

      Android惡意軟件的檢測方法可以分為兩大類:靜態(tài)檢測和動(dòng)態(tài)檢測。靜態(tài)檢測不需要實(shí)際運(yùn)行程序,只需將程序源文件(APK)進(jìn)行解壓和反編譯,然后提取相應(yīng)的特征信息(如Permission、API等)、或者分析特征碼,就可以識(shí)別惡意App。因此靜態(tài)檢測過程比較簡單,檢測速度較快,但缺點(diǎn)是只能檢測現(xiàn)有已知惡意程序[8]。而動(dòng)態(tài)檢測是指在程序運(yùn)行過程中跟蹤程序的運(yùn)行狀態(tài),通過分析程序的實(shí)際運(yùn)行行為來檢測惡意程序。包括跟蹤內(nèi)存進(jìn)程運(yùn)行狀態(tài)、網(wǎng)絡(luò)狀態(tài)、文件操作、CPU使用情況、用戶隱私數(shù)據(jù)的訪問、系統(tǒng)調(diào)用等。因此,動(dòng)態(tài)檢測過程較為復(fù)雜,需要運(yùn)行程序才能判斷是否是惡意App,其效率較靜態(tài)檢測稍差,但可以檢測未知的惡意軟件?;跈C(jī)器學(xué)習(xí)的動(dòng)態(tài)檢測方法的成功取決于:(1) 收集信息的有用性和充分性;(2) 機(jī)器學(xué)習(xí)方法是否使用得當(dāng)[3]。

      系統(tǒng)調(diào)用是應(yīng)用程序與操作系統(tǒng)進(jìn)行交互最底層的接口,系統(tǒng)調(diào)用序列是對一個(gè)應(yīng)用程序所有行為的最根本的描述,包含了程序行為的所有信息,因此通過分析程序的系統(tǒng)調(diào)用序列來識(shí)別惡意App可以取得比較好的檢測效果[4]。機(jī)器學(xué)習(xí)算法在惡意軟件的檢測方面應(yīng)用非常廣泛,比如:樸素貝葉斯[3]、遺傳算法[5]、決策樹[6]、支持向量機(jī)(SVM)[7]、隨機(jī)森林[8]等。與其他方法相比,支持向量機(jī)可以在樣本比較少、特征維數(shù)比較高的情況下仍然擁有很好的泛化能力,而且可以避免“維度災(zāi)難”[9]。

      考慮到以上系統(tǒng)調(diào)用序列和支持向量機(jī)的特性,本文提出Android平臺(tái)基于系統(tǒng)調(diào)用序列的SVM檢測惡意軟件的方法。不同于現(xiàn)有的SVM方法[3,6-8,10-11]直接分析調(diào)用序列,本文采用了馬爾可夫鏈(Markov Chain)提取系統(tǒng)調(diào)用序列的特征,即把一個(gè)系統(tǒng)調(diào)用當(dāng)作一個(gè)Markov鏈狀態(tài),而一個(gè)應(yīng)用程序在一段時(shí)間內(nèi)調(diào)用的系統(tǒng)調(diào)用序列可以當(dāng)作一個(gè)離散時(shí)間Markov鏈[12]。緊接著,我們利用序列里相鄰系統(tǒng)調(diào)用對出現(xiàn)的頻率計(jì)算對應(yīng)狀態(tài)的轉(zhuǎn)移概率,并在轉(zhuǎn)移概率矩陣的支持下,將其轉(zhuǎn)化成特征向量。另一方面,我們利用已有標(biāo)簽(已判定為惡意或正常的App)的特征向量訓(xùn)練SVM,使得訓(xùn)練后的SVM可接受未知App的特征向量,計(jì)算該App所屬類別標(biāo)簽(正?;驉阂?,從而判斷出該App的性質(zhì),實(shí)現(xiàn)判定未知App是否屬于惡意軟件的目的。通過在1 189個(gè)正常軟件和1 227個(gè)惡意軟件上進(jìn)行的實(shí)驗(yàn)結(jié)果表明,本文所提方法顯著優(yōu)于現(xiàn)有的其他SVM檢測方法。

      本文主要貢獻(xiàn)如下:(1) 總結(jié)了現(xiàn)有的使用SVM檢測Android惡意軟件的方法;(2) 首次提出基于系統(tǒng)調(diào)用序列的SVM檢測方法;(3) 利用Markov鏈提取系統(tǒng)調(diào)用序列的特征,更好地刻畫了App的動(dòng)態(tài)行為;(4) 使用動(dòng)態(tài)檢測方法檢測未知的惡意軟件,并具有較高的準(zhǔn)確率。

      1 背景知識(shí)

      1.1 離散時(shí)間Markov鏈

      定義1一個(gè)隨機(jī)過程{ξn,n≥1}具有狀態(tài)空間S={s1,s2,…,sn},如果對所有的n≥1,j∈S和sm∈S(1≤m≤n),有:

      Pr(ξn+1=j|ξn=sn,ξn-1=sn-1,…,ξ1=s1)=

      Pr(ξn+1=j|ξn=sn)

      (1)

      則稱該過程為離散時(shí)間Markov鏈DTMC(Discrete-Time Markov Chain)。

      定義2一個(gè)離散時(shí)間Markov鏈{ξn,n≥1},如果它對所有的i∈S和j∈S,條件概率Pr(ξn+1=j|ξn=i)與n無關(guān),則稱這個(gè)DTMC{ξn,n≥1}是時(shí)間齊次的。

      對于時(shí)間齊次的DTMC{ξn,n≥1},一步狀態(tài)轉(zhuǎn)移概率記作pij=Pr(ξn+1=j|ξn=i),由一步狀態(tài)轉(zhuǎn)移概率pij構(gòu)成的矩陣P=[pij]稱作(一步)狀態(tài)轉(zhuǎn)移概率矩陣。ti=Pr(ξ1=i)稱作狀態(tài)i的初始出現(xiàn)概率。行向量T=(ti)i∈S稱作初始概率分布,它由狀態(tài)的初始出現(xiàn)概率構(gòu)成[12]。

      定理1初始概率分布T和狀態(tài)轉(zhuǎn)移概率矩陣P可以完全刻畫時(shí)間齊次的DTMC{ξn,n≥1},即:

      Pr(ξ1=s1,…,ξn-1=sn-1,ξn=sn)=

      ts1ps1,s2…psn-1,sn

      (2)

      1.2 系統(tǒng)調(diào)用

      操作系統(tǒng)的主要功能是硬件資源管理,為應(yīng)用程序開發(fā)人員提供良好的環(huán)境,使應(yīng)用程序具有更好的兼容性。為了達(dá)到這個(gè)目的,系統(tǒng)內(nèi)核提供一系列具備預(yù)定功能的多內(nèi)核函數(shù),通過一組稱為系統(tǒng)調(diào)用的接口呈現(xiàn)給用戶。系統(tǒng)調(diào)用把應(yīng)用程序的請求傳給內(nèi)核,并調(diào)用相應(yīng)的內(nèi)核函數(shù)完成所需的處理,最終將處理結(jié)果返回給應(yīng)用程序。和其他操作系統(tǒng)一樣,Android操作系統(tǒng)的架構(gòu)也采用了分層的形式,從上層到底層分別是應(yīng)用層、應(yīng)用程序架構(gòu)層、系統(tǒng)運(yùn)行庫層和Linux內(nèi)核層。本文所定義的系統(tǒng)調(diào)用是指在系統(tǒng)運(yùn)行庫和Linux內(nèi)核之間的接口。本文使用的Android版本是4.0.4,一共有196個(gè)不同的系統(tǒng)調(diào)用。

      系統(tǒng)調(diào)用是應(yīng)用程序與操作系統(tǒng)進(jìn)行交互的最底層的接口,程序?qū)τ布Y源的請求最后都要通過調(diào)用系統(tǒng)調(diào)用來執(zhí)行(包括API調(diào)用的執(zhí)行)。較其他特征,系統(tǒng)調(diào)用序列更能刻畫一個(gè)應(yīng)用程序行為,所以本方法擬通過程序的系統(tǒng)調(diào)用序列提取特征來進(jìn)行惡意程序的檢測。同時(shí),系統(tǒng)調(diào)用頻率只能描述事件出現(xiàn)的次數(shù),并不能刻畫事件之間的關(guān)聯(lián)性。而離散時(shí)間Markov 鏈可以很好地挖掘出相鄰事件的關(guān)聯(lián)關(guān)系,因此本文將利用Markov 鏈來提取系統(tǒng)調(diào)用序列中的關(guān)聯(lián)特征。

      1.3 支持向量機(jī)

      下面以二分類問題為例介紹線性支持向量機(jī)SVM的原理。

      給定樣本訓(xùn)練集(xi,di),i=1,2,…,N,xi∈Rn,di∈{±1},SVM的原理是試圖尋找一個(gè)超平面(w·x)+b=0,x,w∈Rn,b∈R,使該超平面滿足分類要求,即尋找權(quán)值向量w和偏置b的最優(yōu)值,使?jié)M足公式:

      di(wTxi+b)≥1-ξii=1,2,…,N

      (3)

      式中:松馳變量ξi≥0,i=1,2,…,N。

      α=(α1,α2,…,αN)T

      (4)

      F(x)= sgn{(w0·x)+b0}=

      (5)

      對于線性不可分的輸入數(shù)據(jù),支持向量機(jī)可以通過核方法利用以上原理,建立線性的特征空間像的最優(yōu)分類面。此時(shí)的最優(yōu)分類函數(shù)為:

      (6)

      式中:K(xi,x)是核函數(shù)。

      2 SVM在惡意軟件檢測中的應(yīng)用

      SVM是一種建立在統(tǒng)計(jì)學(xué)習(xí)理論基礎(chǔ)之上的、應(yīng)用最廣泛的機(jī)器學(xué)習(xí)算法。與傳統(tǒng)的分類方法相比,SVM在訓(xùn)練樣本比較少,特征維數(shù)比較高的情況下仍然能夠顯示出很強(qiáng)的分類能力[9]。所以它廣泛應(yīng)用于人臉識(shí)別、文本分類和人工智能等領(lǐng)域?,F(xiàn)有使用SVM檢測Android惡意軟件的方法主要分為兩步,即提取特征和利用SVM進(jìn)行分類。不同文獻(xiàn)方法之間的主要區(qū)別體現(xiàn)在提取了不同的特征?,F(xiàn)有方法提取特征一般為:Permission、API調(diào)用以及內(nèi)存使用情況、CPU使用信息、進(jìn)程信息和電池信息等。

      文獻(xiàn)[7]提出了基于Permission的檢測惡意程序的方法。先把程序的APK文件進(jìn)行解壓和反編譯,提取出每個(gè)程序的Permission作為原始特征,然后通過主成分分析方法(PCA)降維得到新特征,作為SVM的輸入進(jìn)行訓(xùn)練和測試。單純的Permission不能提供足夠的信息證明一個(gè)程序是否惡意,該方法只能達(dá)到最高90.08%的準(zhǔn)確率。與此類似,文獻(xiàn)[6]也先進(jìn)行解壓和反編譯,提取出Permission和API調(diào)用,然后分別使用三種特征提取算法(Chi-Square、Relief和Information Gain)進(jìn)行特征提取,最后利用SVM進(jìn)行分類。文獻(xiàn)[11]的前面處理方式與文獻(xiàn)[6-7]一樣,提取的特征包括細(xì)粒度化的Permission(Requested Permissions、Used Permissions)、細(xì)粒度化的API(Restricted API calls、Suspicious API calls)以及程序組件和網(wǎng)絡(luò)地址(IP、URL、主機(jī)名)等。

      由于以上這些方法沒有運(yùn)行程序,因此都屬于靜態(tài)分析。它們只是從源代碼中提取特征,這樣提取的程序信息不夠充分,不足以判斷一個(gè)程序是否惡意。如通過Java反射機(jī)制可以改變或隱藏API的名字,從而逃避API特征的提取。動(dòng)態(tài)分析方法則可以實(shí)時(shí)跟蹤和監(jiān)控應(yīng)用程序的運(yùn)行行為,根據(jù)程序的運(yùn)行狀態(tài)提取特征信息進(jìn)行識(shí)別。與靜態(tài)分析相比,這種方法能夠獲取更多的信息[3]。

      文獻(xiàn)[13-14]構(gòu)建了一個(gè)檢測系統(tǒng),通過監(jiān)控應(yīng)用程序的網(wǎng)絡(luò)、電話、短信息、CPU以及電池、進(jìn)程、內(nèi)存的信息,并從這些信息中挑出32個(gè)特征,然后利用Linear-SVM來檢測惡意軟件。文獻(xiàn)[14]的整個(gè)檢測系統(tǒng)分為兩部分:mobile agent和analysis server。其中mobile agent負(fù)責(zé)監(jiān)控和記錄應(yīng)用程序的運(yùn)行狀態(tài),而analysis server主要負(fù)責(zé)對獲得的運(yùn)行信息進(jìn)行分析。雖然以上文獻(xiàn)監(jiān)控了應(yīng)用程序的相關(guān)運(yùn)行信息,但是這些信息并不全面,因此無法完全刻畫程序的行為,并引起一定的誤判,致使檢測效果不是很理想。例如:在手機(jī)上運(yùn)行游戲程序時(shí),CPU的使用率和內(nèi)存的使用率突然變高,就可能導(dǎo)致誤判。文獻(xiàn)[3]使用APIMonitor和APE_BOX分別記錄應(yīng)用程序的API調(diào)用和活動(dòng)(activity),統(tǒng)計(jì)特定的25個(gè)API和13種活動(dòng)單獨(dú)出現(xiàn)的次數(shù),以及由這些組成的2-gram和3-gram的出現(xiàn)次數(shù),接著拼接成一個(gè)56 354維的向量并進(jìn)行歸一化,最后輸入到LIBSVM中進(jìn)行檢測。但該方法僅依靠API調(diào)用和活動(dòng)的頻率識(shí)別。

      3 基于Markov鏈的惡意軟件檢測方法

      如圖1所示,除樣本準(zhǔn)備階段外本文提出的安卓惡意軟件檢測方法主要有三個(gè)步驟:預(yù)處理、特征提取和分類階段。

      圖1 安卓惡意App檢測方法步驟

      其中預(yù)處理包括系統(tǒng)調(diào)用序列的獲取、編號(hào),并得到一個(gè)系統(tǒng)調(diào)用數(shù)列;特征提取包括計(jì)算狀態(tài)轉(zhuǎn)移概率矩陣和將矩陣轉(zhuǎn)換成特征向量;分類部分包括對SVM的訓(xùn)練和利用SVM進(jìn)行檢測。SVM的訓(xùn)練過程是一個(gè)典型的有監(jiān)督學(xué)習(xí)的過程,它可以對線性可分和線性不可分的樣本集進(jìn)行分類。對于線性不可分的情況,SVM通過使用非線性映射算法(核方法)將低維輸入空間線性不可分的樣本轉(zhuǎn)化為高維特征空間的線性可分樣本,然后在高維空間采用線性算法進(jìn)行分析。

      3.1 預(yù)處理階段

      預(yù)處理階段包括記錄系統(tǒng)調(diào)用序列和編號(hào)兩部分。我們通過strace、monkey命令來記錄一個(gè)應(yīng)用程序發(fā)起的系統(tǒng)調(diào)用。strace 命令可以跟蹤到一個(gè)進(jìn)程產(chǎn)生的系統(tǒng)調(diào)用,包括參數(shù)、返回值、執(zhí)行消耗的時(shí)間。monkey是Android中的一個(gè)命令行工具,它能夠向系統(tǒng)發(fā)送偽隨機(jī)的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等)。在這里,我們通過monkey工具來模擬用戶的使用行為。

      在用strace跟蹤程序的系統(tǒng)調(diào)用的輸出文件中,會(huì)出現(xiàn)極少數(shù)的亂碼,我們通過去噪把這些亂碼刪除。然后把系統(tǒng)調(diào)用的時(shí)間、參數(shù)等都過濾掉,經(jīng)過簡化,我們得到了只包含系統(tǒng)調(diào)用名稱的按時(shí)間順序排列的系統(tǒng)調(diào)用序列。為了方便后繼處理,我們用1,2,…,196,這196個(gè)數(shù)對Android4.0.4中的196個(gè)系統(tǒng)調(diào)用進(jìn)行編號(hào)。經(jīng)過這些操作后,系統(tǒng)調(diào)用序列轉(zhuǎn)化成了系統(tǒng)調(diào)用數(shù)列。

      3.2 特征提取階段

      提取特征的過程包括兩步,即計(jì)算狀態(tài)轉(zhuǎn)移概率矩陣和將矩陣轉(zhuǎn)換成特征向量。每個(gè)應(yīng)用程序的系統(tǒng)調(diào)用序列當(dāng)作一個(gè)離散時(shí)間Markov鏈,其中一個(gè)系統(tǒng)調(diào)用對應(yīng)一個(gè)狀態(tài),Android4.0.4共有196個(gè)系統(tǒng)調(diào)用,所以狀態(tài)轉(zhuǎn)移概率矩陣的維數(shù)是196×196。設(shè)經(jīng)過預(yù)處理后的系統(tǒng)調(diào)用數(shù)列為s1,s2,…,sr,r為其長度,N為系統(tǒng)調(diào)用總個(gè)數(shù)(在我們的方法中N=196),計(jì)算狀態(tài)轉(zhuǎn)移矩陣P的偽代碼如下:

      1P=(pij)N×N:=0;C=(cij)N×N:=0;k:=1;

      2i:=sk,j:=sk+1;cij:=cij+1;

      3k:=k+1;

      4 IF (k≤r-1) Goto STEP 2;

      6 For (1≤i,j≤N)pij:=cij/di;

      假設(shè)一個(gè)系統(tǒng)只有6個(gè)不同的系統(tǒng)調(diào)用1、2、3、4、5、6,經(jīng)過預(yù)處理后的系統(tǒng)調(diào)用序列假定為:2,1,6,4,1,3,5,4,6,3,2,5,1,4,5,3,4,2,1,4,6,2,5,3,6,4從系統(tǒng)調(diào)用i轉(zhuǎn)移到系統(tǒng)調(diào)用j的個(gè)數(shù)記為cij,從系統(tǒng)調(diào)用i轉(zhuǎn)移到任意系統(tǒng)調(diào)用的個(gè)數(shù)記為di,根據(jù)以上的系統(tǒng)調(diào)用序列有c11=0,c12=0,c13=1,c14=2,c15=0,c16=1,d1=4,……進(jìn)而我們可以求出所有cij和di:

      若系統(tǒng)調(diào)用i轉(zhuǎn)移到系統(tǒng)調(diào)用j的概率記為pij,根據(jù)概率論中的大數(shù)定理,我們可以定義:

      (7)

      最后,我們可以求得狀態(tài)轉(zhuǎn)移概率矩陣:

      因?yàn)橹С窒蛄繖C(jī)的輸入為向量,所以在得到狀態(tài)轉(zhuǎn)移概率矩陣后,需要將矩陣轉(zhuǎn)換成(特征)向量,才能作為支持向量機(jī)的輸入。具體的轉(zhuǎn)換方法是將矩陣的每一行按行號(hào)從小到大把每行元素首尾相接連在一起構(gòu)成一個(gè)(特征)向量。如以上的矩陣轉(zhuǎn)化后的特征向量是(0,0,1/4,1/2,0,1/4,1/2,0,0,0,1/2,0,0,1/4,0,1/4,1/4,1/4,1/5,1/5,0,0,1/5,2/5,1/4,0,1/2,1/4,0,0,0,1/4,1/4,1/2,0,0)。在我們的方法中,轉(zhuǎn)移概率矩陣的維數(shù)為196×196,所以轉(zhuǎn)換后的特征向量維數(shù)為38 416。

      3.3 分類階段

      本文的分類過程包括支持向量機(jī)的訓(xùn)練過程和檢測過程兩部分。在我們的樣本集中有1 227個(gè)惡意軟件和1 189個(gè)正常軟件,取其中614個(gè)惡意軟件和595個(gè)正常軟件作為訓(xùn)練樣本,剩下的613個(gè)惡意軟件和594個(gè)正常軟件作為測試樣本。每個(gè)軟件的系統(tǒng)調(diào)用序列經(jīng)過預(yù)處理4.1和提取特征4.2的處理后得到了一個(gè)38 416維的特征向量。記惡意軟件得到的特征向量為xi∈R38 416,i=1,2,…,1 227;正常軟件得到的特征向量為yi∈R38 416,i=1,2,…,1 189。SVM的訓(xùn)練過程是一個(gè)有監(jiān)督的學(xué)習(xí)過程,其輸入為特征向量和其對應(yīng)的標(biāo)簽。具體在我們的方法中,SVM的訓(xùn)練數(shù)據(jù)為38 417維的向量,即(xi,+1),i=1,2,…,614,和(yi,-1),i=1,2,…,595。其中“+1”是惡意軟件的標(biāo)簽,“-1”是正常軟件的標(biāo)簽。通過以上帶有標(biāo)簽的數(shù)據(jù)的訓(xùn)練,SVM求得最優(yōu)權(quán)值向量w0,最優(yōu)偏置b0和最優(yōu)分類函數(shù)F(x),這樣就獲得了分類的知識(shí),可以為無標(biāo)簽數(shù)據(jù)計(jì)算標(biāo)簽。

      檢測過程是對未知的惡意軟件進(jìn)行檢測,SVM的輸入不需要標(biāo)簽,所以只是38 416維的特征向量。訓(xùn)練好的SVM通過式(6)中的最優(yōu)分類函數(shù)F(x)為每個(gè)輸入特征向量計(jì)算出一個(gè)新的標(biāo)簽(1或-1)。具體在我們的方法中,對于每個(gè)測試樣本,訓(xùn)練好后的SVM的輸入數(shù)據(jù)為其系統(tǒng)調(diào)用轉(zhuǎn)移概率矩陣轉(zhuǎn)化的特征向量xi(i=615,…,1 227),或yi(i=596,…,1 189);SVM的輸出數(shù)據(jù)為SVM通過式(6)計(jì)算出的該向量對應(yīng)的標(biāo)簽,如果標(biāo)簽為“+1”,則該軟件被判為惡意,否則該軟件被判為正常。我們統(tǒng)計(jì)xi(i=615,…,1 227)作為SVM的輸入時(shí),SVM輸出的標(biāo)簽為“+1”的樣本總個(gè)數(shù)為TP(True Positive),輸出的標(biāo)簽為“-1”的樣本總個(gè)數(shù)為FN(False Negative);yi(i=596,…,1 189)作為SVM的輸入時(shí),SVM輸出標(biāo)簽為“+1”的樣本總個(gè)數(shù)為FP(False Positive),輸出標(biāo)簽為“-1”的樣本總個(gè)數(shù)為TN(True Negative)。這些數(shù)量可用于評(píng)估我們的方法。

      4 實(shí)驗(yàn)結(jié)果和分析

      4.1 數(shù)據(jù)集和評(píng)判指標(biāo)

      本文的實(shí)驗(yàn)數(shù)據(jù)集中的正常軟件來自于Android市場的官方網(wǎng)站。我們通過修改Chrome瀏覽器的插件,從中一共批量下載了1 189個(gè)App當(dāng)作正常軟件。實(shí)驗(yàn)數(shù)據(jù)集中的惡意軟件來自文獻(xiàn)[15],一共有1 227個(gè)惡意App,其中包括49個(gè)病毒家族。我們在MATLAB R2013b 中采用5個(gè)不同的核函數(shù)進(jìn)行訓(xùn)練和測試。

      評(píng)判一個(gè)檢測系統(tǒng)好壞的常用指標(biāo)有TPR(True Positive Rate)、FPR(False Positive Rate)、Precision和F-Score。記TP為惡意軟件被判定為惡意軟件的個(gè)數(shù),F(xiàn)N為惡意軟件被判定為正常軟件的個(gè)數(shù),TN為正常軟件被判定為正常軟件的個(gè)數(shù),F(xiàn)P為正常軟件被判定為惡意軟件的個(gè)數(shù),則TPR定義為:

      (8)

      FPR定義為:

      (9)

      Precision定義為:

      (10)

      F-Score定義為:

      (11)

      TPR相等時(shí),F(xiàn)PR越小,檢測效果越好;反之FPR相等時(shí),TPR越大,檢測效果越好。Precision越大說明檢測系統(tǒng)的準(zhǔn)確度越高。F-Score是Precision和TPR的加權(quán)調(diào)和平均,是評(píng)判一個(gè)檢測系統(tǒng)綜合好壞的最重要的指標(biāo)。

      4.2 實(shí)驗(yàn)結(jié)果

      表1給出了我們的方法在不同核函數(shù)下的實(shí)驗(yàn)結(jié)果。其中l(wèi)inear是線性核函數(shù),quadratic是二次的核函數(shù),polynomial是3次的多項(xiàng)式核函數(shù),RBF是寬度為1的高斯徑向基函數(shù),MLP是權(quán)重為1偏置為-1的多層感知器核函數(shù)。由表1可知,新方法利用線性SVM取得最好的檢測準(zhǔn)確度:TPR為0.956 0,F(xiàn)PR為0.010 1,Precision為0.989 9,F(xiàn)-Score為0.972 6。其中613個(gè)惡意軟件的測試樣本中只有27個(gè)被誤判為正常軟件,594個(gè)正常軟件的測試樣本中只有6個(gè)被誤判為惡意軟件。

      表1 本方案利用不同核函數(shù)對惡意軟件的判定結(jié)果

      4.3 比較與分析

      現(xiàn)有文獻(xiàn)[3,6-8,10-11]分別提出了6種不同的使用SVM檢測惡意軟件的方法。表2列出了本文方法(線性核)與以上6種方法的檢測結(jié)果的比較。從表中可以看出本文方法在Precision和F-Score值明顯優(yōu)于其他SVM檢測方法。

      表2 本方案與其他方法的比較

      文獻(xiàn)[6-7,11]是靜態(tài)分析的Android惡意軟件檢測方法。文獻(xiàn)[6]只考慮了應(yīng)用程序的Permission特征,單純的Permission提供的信息非常有限。文獻(xiàn)[7,11]從Permission和API調(diào)用兩個(gè)方面提取特征。這些方法都是從靜態(tài)的源代碼中提取特征,這樣提取的程序信息不夠充分,不能描述程序的實(shí)際動(dòng)態(tài)行為,所以它們的檢測結(jié)果比較差。

      文獻(xiàn)[3,8,10]使用的是動(dòng)態(tài)分析的檢測方法。文獻(xiàn)[8,10]從應(yīng)用程序運(yùn)行時(shí)的電話、短信息、網(wǎng)絡(luò)、CPU、電池以及進(jìn)程、內(nèi)存的信息中提取特征。由于這些相關(guān)運(yùn)行信息并不夠全面,不能完全刻畫程序的所有行為,所以會(huì)引起一定誤判,檢測效果不是很理想。文獻(xiàn)[3]依靠API調(diào)用和活動(dòng)的頻率來判別惡意程序。API調(diào)用是應(yīng)用程序接口,底層都是通過調(diào)用系統(tǒng)的系統(tǒng)調(diào)用來執(zhí)行的。系統(tǒng)調(diào)用相對于API調(diào)用更能細(xì)粒度地刻畫程序行為,而且頻率僅能體現(xiàn)事件次數(shù),不能體現(xiàn)事件的內(nèi)部聯(lián)系。Markov鏈描述了事件的前后聯(lián)系,所以利用Markov鏈提取系統(tǒng)調(diào)用特征的方法比文獻(xiàn)[3]方法的檢測結(jié)果好。

      圖2直觀地反映了表2的結(jié)果,從該圖我們看可以出,本文提出的方案要優(yōu)于靜態(tài)檢測方案6及動(dòng)態(tài)檢測方案10,同時(shí)也明顯優(yōu)于其他方案。

      圖2 本方案與其他方案對比

      5 結(jié) 語

      本文提出了一種基于SVM分類器的Android惡意軟件檢測新型方法。該方法為系統(tǒng)調(diào)用序列建立了Markov模型,把Markov鏈的狀態(tài)轉(zhuǎn)移概率矩陣作為SVM的輸入來判別惡意軟件。實(shí)驗(yàn)表明本方法的檢測效果優(yōu)于現(xiàn)有的其他基于SVM的檢測方法。一方面是由于系統(tǒng)調(diào)用是一個(gè)應(yīng)用程序具體行為的最根本的體現(xiàn),另一方面是由于離散時(shí)間Markov鏈可以挖掘出隱藏在系統(tǒng)調(diào)用系列里的事件之間的聯(lián)系。但是本文中還有一些工作可以進(jìn)一步的研究。建立Markov模型,計(jì)算狀態(tài)轉(zhuǎn)移概率矩陣只是從系統(tǒng)調(diào)用序列中提取信息的一種方法,是否存在更好的數(shù)學(xué)模型來提取特征值得我們將進(jìn)一步研究和探討。

      猜你喜歡
      調(diào)用特征向量應(yīng)用程序
      二年制職教本科線性代數(shù)課程的幾何化教學(xué)設(shè)計(jì)——以特征值和特征向量為例
      克羅內(nèi)克積的特征向量
      核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
      刪除Win10中自帶的應(yīng)用程序
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      一類特殊矩陣特征向量的求法
      EXCEL表格計(jì)算判斷矩陣近似特征向量在AHP法檢驗(yàn)上的應(yīng)用
      基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
      利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
      關(guān)閉應(yīng)用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      怀宁县| 镇远县| 卓尼县| 普安县| 达拉特旗| 册亨县| 禹城市| 客服| 上林县| 高碑店市| 格尔木市| 朝阳市| 牙克石市| 祁东县| 石林| 密山市| 汉阴县| 岱山县| 区。| 依安县| 察隅县| 兰坪| 招远市| 鄂托克前旗| 田林县| 勃利县| 宁城县| 临沂市| 慈利县| 平和县| 昭通市| 西和县| 平湖市| 朝阳市| 冀州市| 桑日县| 即墨市| 双牌县| 安福县| 玉屏| 普兰店市|