基于HTM算法的惡意Android應(yīng)用檢測(cè)
仇慎健a, 張仕斌a, 劉蘋光b
(成都信息工程大學(xué)a.信息安全工程學(xué)院;b.通信工程學(xué)院, 成都610225)
摘要:隨著互聯(lián)網(wǎng)用戶從傳統(tǒng)PC端到移動(dòng)端的轉(zhuǎn)換,移動(dòng)安全受到越來(lái)越多的關(guān)注。為了提高對(duì)未知惡意移動(dòng)應(yīng)用的檢測(cè)效率,針對(duì)傳統(tǒng)檢測(cè)對(duì)引入多態(tài)和變形技術(shù)的惡意應(yīng)用檢測(cè)能力較差的問(wèn)題,提出了一種基于HTM算法的惡意Android移動(dòng)應(yīng)用檢測(cè)方法。該應(yīng)用檢測(cè)包含針對(duì)Android應(yīng)用Dalvik指令特點(diǎn)的特征提取、采用信息增益的方式進(jìn)行特征選擇與融合,并利用HTM算法進(jìn)行序列模式訓(xùn)練和推導(dǎo),然后將測(cè)試樣本特征提取與融合后的結(jié)果輸入到完成訓(xùn)練的HTM網(wǎng)絡(luò)中,達(dá)到檢測(cè)惡意應(yīng)用的目的。實(shí)驗(yàn)仿真表明,所設(shè)計(jì)的惡意應(yīng)用檢測(cè)方法的檢測(cè)率接近100%,檢測(cè)效率高,誤報(bào)率0.08%。相較于其他算法,提出的惡意檢測(cè)方法的檢測(cè)率、誤報(bào)率、分類準(zhǔn)確率均更優(yōu),并能應(yīng)用于不同類型的惡意應(yīng)用,但訓(xùn)練和測(cè)試時(shí)間較長(zhǎng)。
關(guān)鍵詞:移動(dòng)安全;HTM算法;Dalvik指令;信息增益;惡意應(yīng)用;檢測(cè)
文章編號(hào):1673-1549(2015)04-0050-07
DOI:10.11863/j.suse.2015.04.11
收稿日期:2015-06-08
基金項(xiàng)目:四川省科技支撐計(jì)劃項(xiàng)目(2013GZX0137;2014GZ0002);成都市科技攻關(guān)項(xiàng)目(2014-HM01-00108-SF) ; 四川省科技創(chuàng)新研發(fā)專項(xiàng)( 2014GZ0006)
作者簡(jiǎn)介:仇慎健(1990-),男,江蘇徐州人,碩士生,主要從事計(jì)算機(jī)取證、網(wǎng)絡(luò)與信息安全方面的研究,(E-mail)1074271150@qq.com;張仕斌(1971-),男,重慶人,教授,博士,主要從事計(jì)算機(jī)取證、信息安全理論及應(yīng)用方面的研究(E-mail)498251651@ qq.com
中圖分類號(hào):TP393
文獻(xiàn)標(biāo)志碼:A
引言
以前,移動(dòng)端惡意應(yīng)用主要竊取的是文本信息,如短信、聯(lián)系人信息、地理位置等。隨著攻擊者攻擊技術(shù)的逐漸提升,惡意應(yīng)用進(jìn)行環(huán)境錄音、通話錄音、讀取sdcard內(nèi)容的攻擊方式也逐漸出現(xiàn)。隨著對(duì)反病毒引擎的免殺能力逐漸增強(qiáng),惡意應(yīng)用通過(guò)逆向?qū)?、加殼、Rootkit等技術(shù)逃避殺毒軟件的查殺。傳統(tǒng)基于規(guī)則和特征的檢測(cè)技術(shù)難以適應(yīng)引入多態(tài)和變形技術(shù)的惡意代碼檢測(cè),于是出現(xiàn)了基于深度學(xué)習(xí)算法HTM(Hierarchal Temporal Memory)的惡意移動(dòng)應(yīng)用檢測(cè)算法。深度學(xué)習(xí)算法HTM是一種新型的機(jī)器學(xué)習(xí)算法,其核心思想由Jeff Hawkins在其2004年出版的著作《人工智能的未來(lái)》中提出,它以模仿新大腦皮層的處理信息特性為核心,有著高度的學(xué)習(xí)、識(shí)別和預(yù)測(cè)能力。2005年George與Jeff介紹了HTM的基本模型[1],利用Bayesian Belief Propagation原理解釋分類和重建的過(guò)程,同時(shí)把算法部分原理通過(guò)生物學(xué)現(xiàn)象進(jìn)行解釋。2009年Jeff和George對(duì)HTM算法[2]進(jìn)入了深入的研究,闡述了HTM算法序列記憶的約束條件以及序列模型在生物學(xué)上的意義和具體的算法實(shí)現(xiàn)過(guò)程。2010年George提出了皮質(zhì)學(xué)習(xí)的主題條件[3],并且提出了HTM的改進(jìn)算法——Recursive Cortical Network(RCN)算法[4],該算法是在原HTM的各層的相鄰節(jié)點(diǎn)nodes之間加入了連接(connections)。2014年,Rehn等人[5]提出了針對(duì)HTM算法的Incremental Learning方法。在國(guó)內(nèi),針對(duì)HTM算法的研究也只是停留在理論層面。例如,2011年李元誠(chéng)、樊慶君提出將HTM算法應(yīng)用于未知惡意代碼檢測(cè)[6],該算法利用字節(jié)級(jí)n元文法提取訓(xùn)練集中文件的特征向量,構(gòu)建HTM網(wǎng)絡(luò)進(jìn)行序列模式學(xué)習(xí)訓(xùn)練和分類推導(dǎo),然后將測(cè)試集中提取的特征向量輸入到完成訓(xùn)練的HTM網(wǎng)絡(luò)進(jìn)行序列識(shí)別。本文在分析Android應(yīng)用的基礎(chǔ)上,結(jié)合HTM算法優(yōu)勢(shì),提出使用基于Dalvik指令進(jìn)行Android惡意應(yīng)用的特征提取,生成二進(jìn)制稀疏表征,并通過(guò)HTM網(wǎng)絡(luò)進(jìn)行深度學(xué)習(xí)訓(xùn)練和分類推導(dǎo),基于此方式進(jìn)行惡意應(yīng)用識(shí)別,目的是提高對(duì)未知惡意移動(dòng)應(yīng)用的檢出比。
1移動(dòng)應(yīng)用檢測(cè)系統(tǒng)組成
Dalvik是由Google開(kāi)發(fā)的應(yīng)用在Android平臺(tái)上的虛擬機(jī)。Dalvik虛擬機(jī)運(yùn)行的是Dalvik字節(jié)碼,所有的Dalvik字節(jié)碼由java字節(jié)碼轉(zhuǎn)換而來(lái),并被打包到一個(gè)DEX(Dalvik Executable)中。可以根據(jù)Dalvik指令集的特點(diǎn)來(lái)提取惡意應(yīng)用程序的特征,從指令中精簡(jiǎn)出反應(yīng)程序語(yǔ)義的指令,精簡(jiǎn)后的指令僅包括函數(shù)調(diào)用、賦值、跳轉(zhuǎn)等[7]。在Android惡意應(yīng)用中,通常使用反射機(jī)制調(diào)用有關(guān)程序,在語(yǔ)義提取過(guò)程中忽視調(diào)用的方法名,進(jìn)而可產(chǎn)生一種新型式的描述語(yǔ)言:
Procedure:=StatementList;
M:=MOVE|MOVE_WIDE_FROM16;
R:=RETURN|RETURN_OBJECT;
V:=INVOKE_INTERFACE_RANGE.
獲取到病毒等惡意應(yīng)用進(jìn)行反編譯后得到.smali文件??梢允褂胘eb將samli語(yǔ)言轉(zhuǎn)換為java語(yǔ)言,或者將惡意應(yīng)用的核心代碼使用NDK原生程序去編寫,使用IDA進(jìn)行反編譯.so文件獲取關(guān)鍵代碼,然后找到對(duì)應(yīng)的關(guān)鍵方法,如短信截取、靜默安裝等惡意行為實(shí)現(xiàn)反編譯之后的源代碼,最后使用新型式描述語(yǔ)言進(jìn)行定義,如[IRVM]@[MVRIR]等,可簡(jiǎn)化存儲(chǔ)并且可以摒棄冗余的指令。
因?yàn)殡S機(jī)樣本進(jìn)行提取的特征種類較多,但不是所有的特征都具有很強(qiáng)的分類性能,因此需要選擇出具有較好分類的特征,本文應(yīng)用信息增益實(shí)施衡量[8]。假設(shè)Y代表分類結(jié)果的參數(shù),Xi為與特征i對(duì)應(yīng)的參數(shù),那么特征i的信息增益可表示為
I(Y,Xi)=H(Y)-H(Y|Xi)
(1)
其中,H(Y)是參數(shù)Y的熵,H(Y|Xi)為在參數(shù)Xi限定下參數(shù)Y的條件熵。信息增益I(Y,Xi)結(jié)果值越大,說(shuō)明參數(shù)Xi所對(duì)應(yīng)的特征i的分類性能越優(yōu)。在HTM算法中,輸入序列為離散表征二進(jìn)制數(shù),因此可以構(gòu)建特征集合S,每個(gè)特征元素即為一段二進(jìn)制序列,選取信息增益值最大的前500個(gè)特征構(gòu)成該集合。集合S可以作為特征融合的原始輸入,特征融合的輸出即為HTM算法序列輸入。
下面對(duì)特征融合進(jìn)行說(shuō)明。假設(shè)U代表先知分類的代碼集合,對(duì)?u∈U,u符合u=
M={m|m∈U∧y=1}
N={n|n∈U∧y=0}
假設(shè)V代表將要檢測(cè)的未知惡意程序集合體,對(duì)?v∈V,v符合v=
(2)
(3)
PS=S-DS-SS
(4)
HTM層次實(shí)時(shí)記憶算法是一種以捕捉新大腦皮層結(jié)構(gòu)與算法特性為目標(biāo)的機(jī)器學(xué)習(xí)方法[9]。新的大腦表層對(duì)于高等思維有著舉足輕重的位置。生物學(xué)研究指出,并不是每一種認(rèn)知功能都對(duì)應(yīng)一個(gè)神經(jīng)算法,由于新大腦皮層的回路具有很高的統(tǒng)一性,新大腦皮層用一套公用的算法去實(shí)現(xiàn)不同功能。該算法是基于流數(shù)據(jù)的,而不是靜態(tài)數(shù)據(jù)庫(kù)。它可以通過(guò)最新的輸入來(lái)學(xué)習(xí)、識(shí)別和預(yù)測(cè)。它是一個(gè)基于記憶的系統(tǒng),HTM網(wǎng)絡(luò)被大量具有時(shí)間特性的數(shù)據(jù)訓(xùn)練而成,并依賴于大量?jī)?chǔ)存的模式序列。HTM的核心原理是它的層級(jí)組織結(jié)構(gòu)、區(qū)域的構(gòu)建、信息基于時(shí)間以及數(shù)據(jù)的存儲(chǔ)方式要以離散稀疏表征存儲(chǔ)等。一個(gè)HTM網(wǎng)絡(luò)是以按層級(jí)排列的區(qū)域構(gòu)成。該區(qū)域由一存儲(chǔ)和預(yù)測(cè)單元組成,區(qū)域表示該層級(jí)中的下級(jí)多個(gè)子元素會(huì)被聚合后形成的存儲(chǔ)單元。由于反饋連接的存在,信息也會(huì)隨著等級(jí)的下降不斷分流。稀疏離散表征是將自然界語(yǔ)言(如圖像,文本,音頻等)轉(zhuǎn)換為二進(jìn)制序列,而且是稀疏的,這是HTM的重要基礎(chǔ),所以HTM區(qū)域所做的第一件事就是將輸入轉(zhuǎn)化為稀疏離散表征。
將特征融合后得到的危險(xiǎn)特征集以稀疏離散特征的方式存儲(chǔ),并作為輸入序列進(jìn)入HTM網(wǎng)絡(luò)底層節(jié)點(diǎn)進(jìn)行學(xué)習(xí),直到底層所有節(jié)點(diǎn)的空間沉積池都完成了空間模式的學(xué)習(xí),時(shí)間沉積池完成時(shí)間分組的學(xué)習(xí)。HTM的整體層次框架如圖1所示。
圖1 HTM層次框架
HTM具有樹(shù)狀的層級(jí)網(wǎng)絡(luò)結(jié)構(gòu),節(jié)點(diǎn)是HTM中記憶與預(yù)測(cè)的基本單元。在節(jié)點(diǎn)中主要存儲(chǔ)三種數(shù)據(jù)[10-12],C(coincidences的集合)、G(temporal groups的集合,每個(gè)group實(shí)際上是coincidences的集合)和transition probability matrix(每個(gè)group中各個(gè)coincidence之間的轉(zhuǎn)移概率組成的矩陣)。HTM對(duì)空間模式的提取依賴于父節(jié)點(diǎn)對(duì)各子節(jié)點(diǎn)子模式的pooling,而時(shí)間模式與序列記憶的實(shí)現(xiàn)依賴于節(jié)點(diǎn)中不同的temporal groups以及其各coincidences組成的Markov chains。通過(guò)記憶不同order的Markov chains,可以由一個(gè)coincidences往前或者后推知另外coincidences發(fā)生的可能性,從而實(shí)現(xiàn)序列記憶。而每個(gè)group也是這種coincidences之間轉(zhuǎn)移概率最大化分類,以獲得時(shí)間相近、模式相似的結(jié)果。coincidence模式和Markov鏈時(shí)間分組利用belief propagation完成節(jié)點(diǎn)的記憶結(jié)構(gòu)。例如,Markov鏈時(shí)間組的子節(jié)點(diǎn)由coincidence模式下的Ci定義成向量[rim1,...,rimM]的形式,當(dāng)M=2時(shí),則group2和group5來(lái)自于子節(jié)點(diǎn)m1與m2,則C4的coincidences模式可等價(jià)為[2,5]。
空間沉積池(spatial pooler)主要功能是將一個(gè)區(qū)域的輸入轉(zhuǎn)換為稀疏模式,因?yàn)樵趯W(xué)習(xí)序列和預(yù)測(cè)的機(jī)制中第一步就要求從稀疏離散表征開(kāi)始。時(shí)間沉積池(temporal pooler)是將空間沉積池中的輸出作為輸入,然后根據(jù)序列模式的時(shí)間鄰接特性進(jìn)行離散性存儲(chǔ),它是基于海量學(xué)習(xí)數(shù)據(jù)之下的,微量或單一數(shù)據(jù)的學(xué)習(xí)起不到效果。單一節(jié)點(diǎn)學(xué)習(xí)如圖2所示。
圖2 單一節(jié)點(diǎn)學(xué)習(xí)
空間沉積的實(shí)現(xiàn)包括初始化、覆蓋、抑制、學(xué)習(xí)等幾個(gè)部分。根據(jù)當(dāng)前的輸入計(jì)算柱狀區(qū)域的覆蓋情況,在抑制作用完成后計(jì)算最終活躍的柱狀區(qū)域,最后更新突觸的聯(lián)通值和內(nèi)部變量。完成覆蓋抑制過(guò)程的偽代碼為:
1)for k
2)overlap(k)=0
3)for s in connectedSynapses(k)
4)overlap(k)=overlap(k) + input(t,s.sourceinput)
5)if overlap(k) 6)overlap(k)=0 7)else 8)overlap(k)=overlap(k)*boost(k) 9)for k in columns 10)minLocalActivity=KthScore(neighbors(k),desiredLocalActivity) 11)if overlap(k)>0 and overlap(k)>=minLocalActivity then 12)activeColumns(t).append(k) 給定一個(gè)輸入向量并根據(jù)這個(gè)向量計(jì)算每個(gè)柱狀區(qū)域的覆蓋情況。柱狀區(qū)域的覆蓋情況可以簡(jiǎn)單的理解為與當(dāng)前激勵(lì)輸入相連的突觸數(shù)量,然后乘以促進(jìn)系數(shù)。如果值小于minOverlap,將覆蓋值(overlap(c))置為0,然后從在柱狀區(qū)域經(jīng)過(guò)抑制作用后作為勝利者余留下來(lái),desirLocalActivity是用來(lái)控制最終活躍的柱狀區(qū)域數(shù)量的參數(shù)。 根據(jù)需要更新突觸的連通值以及柱狀區(qū)域的促進(jìn)系數(shù)和抑制半徑完成學(xué)習(xí)操作,其過(guò)程的偽代碼描述為: 1)for g in ActiveColumns(t) 2)for m in PotentialSynapses(g) 3)if active(m) then 4)m.permanence+=permanenceInc 5)m.permanence=min(1.0, m.permanence) 6)else 7)m.permanence-=permanenceDec 8)m.permanence=max(0.0, m.permanence) 9)for c in columns: 10)minDutyCycle(g)=0.01 * maxDutyCycle(neighbors(g)) 11)activeDutyCycle(g)=updateActiveDutyCycle(g) 12)boost(g)=boostFunction(activeDutyCycle(g), minDutyCycle(g)) 13)overlapDutyCycle(g)=updateOverlapDutyCycle(g) 14)if overlapDutyCycle(g)< minDutyCycle(g) 15)then 16)increasePermanences(g, 0.1 *connectedPerm) 17)inhibitionRadius=averageReceptiveFieldSize() 部分參數(shù)說(shuō)明如下: columns:所有柱狀區(qū)域的列表。 overlap(c):柱狀區(qū)域c對(duì)于特定輸入的空間沉積池的覆蓋值。 activeColumns(t):因自底向上輸入而活躍的柱狀區(qū)域列表。 desiredLocalActivity:一個(gè)控制經(jīng)過(guò)抑制后仍活躍的柱狀區(qū)域數(shù)量的參數(shù)。 inhibitionRadius:被連接到柱狀區(qū)域的平均感受域大小。 neighbors(c):在柱狀區(qū)域c抑制半徑內(nèi)所有柱狀區(qū)域的列表。 minOverlap:會(huì)進(jìn)入抑制過(guò)程的柱狀區(qū)域覆蓋值的最小值。 boost(c):在學(xué)習(xí)時(shí)被用與柱狀區(qū)域計(jì)算的c的促進(jìn)系數(shù),用于增加非活躍柱狀區(qū)域的覆蓋值。 節(jié)點(diǎn)學(xué)習(xí)記憶過(guò)程如圖3所示。 圖3 節(jié)點(diǎn)學(xué)習(xí)記憶過(guò)程 根據(jù)1.1節(jié)中特征提取的方法將測(cè)試集中惡意應(yīng)用的特征值提取并轉(zhuǎn)化為HTM網(wǎng)絡(luò)可識(shí)別的稀疏離散變量的形式,輸入到完成訓(xùn)練的HTM網(wǎng)絡(luò)中進(jìn)行序列識(shí)別以確定測(cè)試集中是否為惡意應(yīng)用。 在算法的實(shí)際實(shí)現(xiàn)中,因?yàn)閚umenta公司已經(jīng)把開(kāi)源項(xiàng)目nupic放到github上,使用python和c++實(shí)現(xiàn)。官網(wǎng)上也給出了開(kāi)源的3個(gè)應(yīng)用的源代碼GROK FOR IT ANALYTICS[9]、ROGUE BEHAVIOR DETECTION[10]和GEOSPATIAL TRACKING[11],它們是從3個(gè)不同的角度實(shí)現(xiàn)HTM算法的思想。在實(shí)際實(shí)現(xiàn)中參考它們算法實(shí)現(xiàn)的思想,包含簡(jiǎn)單的層級(jí)、時(shí)間性、稀疏離散表征等基本實(shí)現(xiàn)滿足實(shí)驗(yàn)的基本要求。 圖4為該系統(tǒng)的流程圖,反映了系統(tǒng)的各個(gè)組成部分。 圖4 系統(tǒng)流程圖 2實(shí)驗(yàn)結(jié)果及分析 實(shí)驗(yàn)平臺(tái)選取Win 7 64位操作系統(tǒng)、4 G內(nèi)存、酷睿i5處理器。采集的樣本由正常程序代碼和惡意正常程序代碼組成,其中正常的應(yīng)用隨機(jī)采集于Google Play商店或者一些大型互聯(lián)網(wǎng)廠商的官方App,惡意應(yīng)用來(lái)自于北卡羅來(lái)納州立大學(xué)建立的惡意樣本數(shù)據(jù)庫(kù)和一些自己平時(shí)收集已經(jīng)披露的大型安全事件的惡意樣本。例如,通過(guò)瘋狂截圖來(lái)獲取聊天信息、短信內(nèi)容,竊取用戶隱私信息;通過(guò)手機(jī)僵尸網(wǎng)絡(luò)“挖礦”的CoinKrypt家族木馬[13];將移動(dòng)設(shè)備加密鎖屏后,對(duì)用戶進(jìn)行勒索的simplelock家族木馬;偽造關(guān)機(jī),實(shí)際上在后臺(tái)竊聽(tīng)的shutdownhack家族木馬以及短信蠕蟲(chóng)等。根據(jù)惡意應(yīng)用的行為種類選取合適的學(xué)習(xí)樣本,以達(dá)到更好的訓(xùn)練效果。 本文準(zhǔn)確率(TPR)的定義為正確檢測(cè)出惡意樣本的個(gè)數(shù)和惡意樣本總數(shù)的比例,定義TP表示正確的檢測(cè)出的惡意樣本的數(shù)目,F(xiàn)N表示被錯(cuò)誤的檢測(cè)為正常樣本的數(shù)目,TPR的測(cè)算可表示為: (5) 本文誤報(bào)率(FPR)的定義為正常樣本被誤報(bào)為惡意樣本數(shù)目和被分類正常樣本總數(shù)之比,定義FP為被誤報(bào)為惡意樣本的正常樣本的數(shù)目,TN表示正確的被分類的正常樣本數(shù)目,F(xiàn)PR的測(cè)算[14]表示為: (6) 分類準(zhǔn)確率(CA)為把正常樣本和錯(cuò)誤樣本分開(kāi)的正確率,其中,TOT為正常樣本和病毒樣本的總數(shù),F(xiàn)N代表被錯(cuò)誤的檢測(cè)為正常樣本的數(shù)目,定義FP為被誤報(bào)為惡意樣本的正常樣本的數(shù)目: (7) 在該實(shí)驗(yàn)中選取300個(gè)正常的應(yīng)用和126個(gè)惡意應(yīng)用作為測(cè)試樣本,選取傳播范圍比較廣、影響比較大的ADRD和DroidKungFu惡意應(yīng)用為實(shí)驗(yàn)樣本,并規(guī)定每類惡意應(yīng)用的有效特征數(shù)為3個(gè),檢測(cè)到的結(jié)果大于等于2時(shí)即認(rèn)為該樣本為惡意應(yīng)用,并利用該算法和第三方殺毒軟件(金山手機(jī)毒霸、360手機(jī)衛(wèi)士、卡巴斯基KAV手機(jī)殺毒)作對(duì)比,該測(cè)試樣本經(jīng)過(guò)本算法的訓(xùn)練和測(cè)試得出的結(jié)果和第三方殺毒應(yīng)用對(duì)樣本庫(kù)的掃描結(jié)果如圖5所示。 圖5 TPR對(duì)比圖 從圖5可以看出,對(duì)于有少量樣本的ADRD類檢測(cè)率均為100%,而對(duì)于量為350的DroidKungFu類,本文的檢測(cè)算法與金山、KAV結(jié)果接近,其正確率均接近于100%,但是360殺毒軟件的準(zhǔn)確率在10%左右,這是因?yàn)槠涮卣鲙?kù)中很少這類病毒的特征,故準(zhǔn)確率很低。由此可知,第三方應(yīng)用對(duì)軟件特征庫(kù)很依賴,如果惡意代碼軟件變化范圍較大時(shí)就不太容易檢測(cè)出其正確結(jié)果。圖6為誤報(bào)率的對(duì)比圖。 圖6 FPR對(duì)比圖 從圖6可以看出,本文的檢測(cè)算法與第三方殺毒軟件的誤報(bào)率都比較低,誤報(bào)率均低于0.2%。所以本文的檢測(cè)算法是行之有效的。 本文檢測(cè)算法、金山手機(jī)毒霸、360手機(jī)衛(wèi)士、卡巴斯基KVA手機(jī)殺毒檢測(cè)時(shí)間隨樣本數(shù)目的變化關(guān)系如圖7所示。從圖7可以看出,檢測(cè)時(shí)間隨樣本數(shù)目的變化而變化,基本呈線性關(guān)系,本文算法的檢測(cè)效果為12分鐘400個(gè)樣本,即檢測(cè)每個(gè)樣本需要1.8 s,其檢測(cè)效率沒(méi)有360、KVA效率高,略高于金山毒霸,360檢測(cè)效率較高但是其準(zhǔn)確率較低。 圖7 檢測(cè)時(shí)間圖 實(shí)驗(yàn)在WEKA平臺(tái)上比較本算法和其他的數(shù)據(jù)挖掘算法的性能,其他算法由決策樹(shù)算法(J48)、樸素貝葉斯算法(Na?ve Bayes)、支持向量機(jī)算法(SVM)和本算法作比較。 收集的樣本分為正常應(yīng)用和惡意應(yīng)用,其中正常App數(shù)量為126個(gè),惡意應(yīng)用一共106個(gè),來(lái)源于殺軟測(cè)試中的樣本進(jìn)行抽取。其中木馬35個(gè)、病毒35個(gè)、蠕蟲(chóng)36個(gè),表1給出了相關(guān)數(shù)據(jù)的統(tǒng)計(jì)信息。 表1 數(shù)據(jù)集信息 在該平臺(tái)驗(yàn)證下,檢測(cè)的結(jié)果見(jiàn)表2。從表2的數(shù)據(jù)可以看出HTM算法在3種測(cè)試集中的準(zhǔn)確率、誤報(bào)率、分類準(zhǔn)確率均優(yōu)于其他3種數(shù)據(jù)挖掘算法。 表2 不同算法檢測(cè)結(jié)果 在實(shí)驗(yàn)分析過(guò)程中,可以看出在同一測(cè)試集情況下,正常應(yīng)用-木馬測(cè)試集中,HTM算法準(zhǔn)確率、誤報(bào)率、分類準(zhǔn)確率均優(yōu)于其他3種算法。同樣其他兩個(gè)測(cè)試集正常應(yīng)用-病毒測(cè)試集、正常應(yīng)用-蠕蟲(chóng)測(cè)試集也是這種狀況,從表2中還可以看出HTM算法對(duì)含有木馬測(cè)試集、病毒測(cè)試集、蠕蟲(chóng)測(cè)試集的正常應(yīng)用都能正常的檢測(cè)出其惡意應(yīng)用。 從表3可以看出本算法所用的訓(xùn)練時(shí)間較長(zhǎng),測(cè)試時(shí)間和其他算法相比處于中間水平,其原因主要在于HTM算法的數(shù)據(jù)反饋時(shí)間[13]和HTM網(wǎng)絡(luò)訓(xùn)練完成的訓(xùn)練時(shí)間較長(zhǎng)。 表3 不同算法的效率 3結(jié)束語(yǔ) 本文提出了一種新的基于深度學(xué)習(xí)HTM算法的惡意移動(dòng)應(yīng)用檢測(cè)系統(tǒng),該移動(dòng)應(yīng)用檢測(cè)系統(tǒng)包含適合Android應(yīng)用特點(diǎn)的特征提取、特征選擇與融合、HTM算法的學(xué)習(xí)訓(xùn)練,通過(guò)對(duì)該系統(tǒng)分析得出本算法和殺毒軟件對(duì)比其準(zhǔn)確率、誤報(bào)率均達(dá)到了要求,與不同檢測(cè)算法比較可知,本文算法的檢測(cè)率、誤報(bào)率、分類準(zhǔn)確率均優(yōu)于其他算法,但本算法和其他算法相比訓(xùn)練和測(cè)試時(shí)間較長(zhǎng),在下一步的算法模型改進(jìn)中嘗試建立一種算法融合的實(shí)踐,把其他檢測(cè)算法和HTM算法融合,做出一種最優(yōu)的判決規(guī)則,使檢測(cè)率、誤報(bào)率、分類準(zhǔn)確率達(dá)到較好的狀況下,訓(xùn)練時(shí)間和測(cè)試時(shí)間也不會(huì)耗費(fèi)較長(zhǎng)時(shí)間。 參 考 文 獻(xiàn): [1]George D,Hawkins J.A hierarchical Bayesian Model of invariant pattern recognition in the visual cortex//Proceedings of 2005 IEEE International Joint Conference on Neural Networks(IJCNN),Montreal,Canada,July 31-August 4,2005:1821-1817. [2]Hawkins J,George D,Niemasik J.Sequence memory for prediction,inference and behavior.Philosophical Transactions on the Royal Society B,2009,364:1203-1211. [3]vicarious[EB/OL].[2015-05-10].http://vicarious.com/ [4]Vicarious announces MYM15 million funding for AI software based on the brain[EB/OL].(2012-08-24)[2015-05-10].http://www.kurzweilai.net/vicarious-announces-15-million funding for ai software based on the brain [5]Rehn E M,Maltoni D.Incremental learning by message passing in Hierarchical Temporal Memory.Neural Computation,2014,26(8):1763-1809. [6]李元誠(chéng),樊慶君.未知惡意代碼的深度學(xué)習(xí)檢測(cè)算法:中國(guó),201110373558.2012-04-11. [7]黃聰會(huì),陳靖.一種基于危險(xiǎn)理論的惡意代碼檢測(cè)方法.中南大學(xué)學(xué)報(bào):自然科學(xué)版,2014,45(9):3057-3058. [8]Numenta Platform for Intelligent Computing[EB/OL].[2015-05-12].http://numenta.org/htm-white-paper.html [9]Breakthrough science for it anomaly detection[EB/OL].[2015-05-12].http://numenta.com/assets/pdf/grok/resources/1.6/Grok-1.6-DataSheet.pdf [10]Numenta.The science of anomaly detection[EB/OL].[2015-05-12].http://numenta.com/assets/pdf/whitepapers/Numenta %20 White %20 Paper %20-%20 Science %20 of %20 Anomaly %20 Detection.pdf [11]Numenta.Geospatial tracking[EB/OL].[2015-05-12].http://numenta.com/assets/pdf/whitepapers/Geospatial %20 Tracking %20 White %20 Paper.pdf [12]李挺,董航.基于Dalvik指令的Android惡意代碼特征描述及驗(yàn)證.計(jì)算機(jī)研究與發(fā)展,2014,51(7):1458-1466. [13]Weka 3:Data Mining Software in Java[EB/OL].[2015-05-15].http://www.cs.waikato.ac.nz/ml/weka/ [14]George D.How the brain might work:A hierarchical and temporal model for learning and recognition.Stanford:Stanford University,2008. Detection of Malicious Android Application Based on HTM Algorithm QIUShenjiana,ZHANGShibina,LIUPingguangb (a.College of Information Security Engineering; b.College of Communication Engineering, Chengdu University of Information Technology, Chengdu 610225, China) Abstract:With the Internet users’ conversion from traditional PC to mobile terminal, the mobile security has been more and more concerned. In order to improve the detection efficiency of unknown malicious mobile application, aiming at the poor detection ability problem of traditional detection in detecting the malicious applications that introduces polymorphic and deformation techniques, a method to detect malicious Android mobile applications based on HTM algorithm is proposed, the application detection contains the feature extraction that aims at Android application Dalvik instructions characteristic and the feature selection and integration by using the information gain method, and the sequence mode is trained and deduced by HTM algorithm, then the feature extraction and fusion result of test sample is input into the HTM network that completes training, therefore, the purpose of detecting malicious applications is achieved. The experiment simulation show: the detection rate of designed malicious application detection method is nearly 100%, and has high detection efficiency; the false positive rate is 0.08%. Compared to other algorithms, the detection rate, false positive rate and classification accuracy rate of proposed malicious detection method are better, and it can be applied to different types of malicious applications, but the training and testing time is longer. Key words: mobile security; HTM algorithm; Dalvik instruction; information gain; malicious application; detection1.4 系統(tǒng)流程圖
2.1 實(shí)驗(yàn)條件及指標(biāo)
2.2 實(shí)驗(yàn)測(cè)試
2.3 不同檢測(cè)算法性能