謝維
摘? 要: 當(dāng)前機(jī)器學(xué)習(xí)算法應(yīng)用于iOS平臺(tái)惡意軟件檢測(cè)的研究較少、公開(kāi)樣本數(shù)據(jù)集獲取難、靜態(tài)檢測(cè)誤報(bào)率高。因此提出一種改進(jìn)的ID3信息增益算法的動(dòng)態(tài)惡意軟件檢測(cè)方法。首先創(chuàng)建數(shù)據(jù)集,使用改進(jìn)的ID3信息增益算法選取前40個(gè)API調(diào)用序列組成特征向量并構(gòu)建決策樹(shù),然后構(gòu)建測(cè)評(píng)指標(biāo)對(duì)實(shí)驗(yàn)進(jìn)行分析和驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,本文方法具有較好的檢測(cè)率,與改進(jìn)前的算法相比準(zhǔn)確率提高了2.5%,可有效地對(duì)惡意軟件進(jìn)行動(dòng)態(tài)識(shí)別。
關(guān)鍵詞: iOS平臺(tái); 惡意軟件檢測(cè); ID3算法; 動(dòng)態(tài)檢測(cè); 創(chuàng)建數(shù)據(jù)集
中圖分類號(hào):TP181;TP309;TP311.5? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? 文章編號(hào):1006-8228(2023)09-32-05
Malware detection strategy based on improved ID3 algorithm
Xie Wei
(School of Information Science and Technology, Zhejiang Sci-Tech University, Hangzhou, Zhejiang 310018, China)
Abstract: Currently, malware detection on iOS platform suffers from few researches on applying machine learning algorithms, difficulty in acquiring public sample datasets, and high false alarm rate of static detection. Therefore, a dynamic malware detection method based on improved ID3 information gain algorithm is proposed. Firstly, a data set is created, and the top 40 API call sequences are selected by the improved ID3 information gain algorithm to form the feature vector and construct the decision tree. Then, evaluation indexes are constructed to analyze and verify the experiment. Experimental results show that the proposed method has a good detection performance, and the accuracy rate is increased by 2.5% compared with the original algorithm. It can effectively identify malware dynamically.
Key words: iOS system; malware detection; ID3 algorithm; dynamic detection; create data set
0 引言
一直以來(lái),有關(guān)iOS系統(tǒng)惡意軟件檢測(cè)的研究較少,因?yàn)閕OS是閉源系統(tǒng),分析應(yīng)用的行為必然會(huì)用到逆向以及插樁技術(shù),這大大增加了研究的難度。根據(jù)Skycure 2022年移動(dòng)安全報(bào)告顯示,iOS的漏洞數(shù)量近年呈逐漸上升趨勢(shì),因此對(duì)于iOS惡意軟件檢測(cè)的研究有很大價(jià)值。
機(jī)器學(xué)習(xí)作為通用數(shù)據(jù)處理技術(shù),在各個(gè)領(lǐng)域都得到了廣泛的應(yīng)用。其中監(jiān)督式學(xué)習(xí)采用分類和回歸技術(shù)對(duì)模型進(jìn)行開(kāi)發(fā)和預(yù)測(cè),在惡意軟件檢測(cè)領(lǐng)域研究中取得顯著成效。例如 Moon Dami[1]等人使用良性和惡意文件的標(biāo)記數(shù)據(jù)集進(jìn)行監(jiān)督學(xué)習(xí),并不斷調(diào)整特征哈希向量的大小,不僅減少了70%的內(nèi)存空間,而且提高了檢測(cè)精度。 Urmila T.S.[2]采用機(jī)器學(xué)習(xí)和行為特征技術(shù),通過(guò)使用多個(gè)權(quán)限,將特征合并到預(yù)測(cè)模型中,將研究分成四個(gè)階段執(zhí)行檢測(cè)惡意軟件的相關(guān)程序。Tejaswini Ghate[3]等人建議結(jié)合兩種主要的分類算法來(lái)對(duì)惡意軟件的存在進(jìn)行分類,同時(shí)探索滿足實(shí)驗(yàn)需求的數(shù)據(jù)集,在同一數(shù)據(jù)集上執(zhí)行邏輯回歸,并加入XG-Boost以提高性能,來(lái)達(dá)到最好的分類效果。
本文在現(xiàn)有研究基礎(chǔ)上,結(jié)合iOS系統(tǒng)運(yùn)行時(shí)的特點(diǎn)即方法及屬性類型的確定是在運(yùn)行時(shí)候綁定,提出一種基于改進(jìn)的ID3信息增益算法[4]的動(dòng)態(tài)惡意軟件檢測(cè)方法,檢測(cè)效果顯著。
1 動(dòng)態(tài)監(jiān)測(cè)系統(tǒng)
1.1 iOS的安全機(jī)制
圖1是iOS系統(tǒng)安全架構(gòu)模型圖,歸納起來(lái)主要有安全啟動(dòng)策略,代碼簽名,沙盒機(jī)制,數(shù)據(jù)加密,地址布局空間隨機(jī)化[5]等幾個(gè)部分,在安全性能上,iOS系統(tǒng)使用了大量的密碼學(xué)理論和計(jì)算機(jī)加密技術(shù)[6],這些措施增加了iOS系統(tǒng)的穩(wěn)定性。
越獄,是用戶為了獲取iOS系統(tǒng)最高權(quán)限的一種技術(shù)手段,并且可對(duì)其權(quán)限進(jìn)行更改。常見(jiàn)的一些脫殼技術(shù)包括dump-decrypted,Clutch等。本文設(shè)計(jì)的動(dòng)態(tài)監(jiān)測(cè)系統(tǒng)也應(yīng)用了越獄技術(shù)。
1.2 系統(tǒng)的設(shè)計(jì)
要對(duì)iOS系統(tǒng)進(jìn)行動(dòng)態(tài)分析,就要設(shè)計(jì)一個(gè)動(dòng)態(tài)監(jiān)測(cè)系統(tǒng)來(lái)實(shí)時(shí)獲取程序的運(yùn)行情況。在越獄的手機(jī)上我們可以使用GDB,CYCRIPT等工具來(lái)調(diào)試[7]。本監(jiān)測(cè)系統(tǒng)不僅可以應(yīng)用在越獄手機(jī)也可以用在非越獄手機(jī)上。
本檢測(cè)框架基于Frida,它是基于Phython以及JavaScript語(yǔ)言的能夠?qū)OS系統(tǒng)進(jìn)行Hook的一款強(qiáng)大的調(diào)試框架,在非越獄的手機(jī)上插入FridaGadget.dylib即可對(duì)設(shè)備進(jìn)行動(dòng)態(tài)監(jiān)測(cè)。越獄手機(jī)在cydia上運(yùn)行該檢測(cè)框架即可。
本文監(jiān)測(cè)原理是在API調(diào)用層和系統(tǒng)層注入一個(gè)監(jiān)控層。監(jiān)測(cè)框架如圖2所示。
監(jiān)測(cè)系統(tǒng)本文統(tǒng)一叫做EMS,一部分運(yùn)行在服務(wù)器端,另一部分運(yùn)行在iOS設(shè)備端,使用Phython語(yǔ)言開(kāi)發(fā)。服務(wù)器端完成一些基礎(chǔ)的信息配置,比如越獄或非越獄,設(shè)置自定義腳本等等,在iOS設(shè)備端對(duì)設(shè)備模擬操作來(lái)獲取應(yīng)用程序運(yùn)行時(shí)的API調(diào)用序列。
2 特征提取
2.1 利用改進(jìn)ID3算法篩選高危權(quán)限
獲取相冊(cè)或者視頻等這類的API都可叫做敏感的API,重載的特點(diǎn)很多看似不同的API實(shí)質(zhì)一樣,而使用機(jī)器學(xué)習(xí)訓(xùn)練模型時(shí)特征個(gè)數(shù)越多,訓(xùn)練需時(shí)間越長(zhǎng),也容易引起特征“維度”災(zāi)難,因此需要降低特征向量的維度。
2.2 ID3算法介紹
解決分類問(wèn)題時(shí),決策樹(shù)算法是用得最多,范圍最廣的算法,核心是構(gòu)建一棵分類準(zhǔn)確的決策樹(shù)[8]。它具有分類快,簡(jiǎn)單易用的特點(diǎn)。本文通過(guò)使用信息增益算法對(duì)數(shù)據(jù)集中的每一個(gè)特征進(jìn)行計(jì)算,從而過(guò)濾選擇出分類能力更強(qiáng)的特征,它的定義如下:
[Ι(S1,S2,…,Sn)=-i=1nP1?log2(Pi)? (1≤i≤n)] ⑴
式⑴表示樣本。其中,p表示某個(gè)樣本出現(xiàn)的概率,I表示數(shù)據(jù)集樣本的期望信息量。
[Ι(S1,j,S2,j,…,Sn,j)=-i=1nPi,j?log2(Pi,j)? (1≤j≤k)]? ⑵
式⑵表示某個(gè)特征在所有樣本中的期望信息量。
[Ε(?。?i=1kSjS?Ι(S1,j,S2,j,…,Sn,j)] ⑶
式⑶表示A特征的信息熵。
[Gain(?。?Ι(S1,j,S2,j,…,Sn,j)-Ε(?。 ⑷
式⑷表示A特征的信息增益。
雖然該算法優(yōu)點(diǎn)突出,但也有一處明顯不足,即存在多值偏向[9]的問(wèn)題,會(huì)優(yōu)先測(cè)試屬性較多的特征,而不是優(yōu)先選擇跟結(jié)果有密切聯(lián)系的特征,基于此,本文對(duì)其進(jìn)行了改進(jìn)。
2.3 ID3算法的改進(jìn)
2.3.1 信息增益的修正
針對(duì)ID3算法存在多值偏向的問(wèn)題,本文提出了使用增益率和信息增益兩個(gè)衡量標(biāo)準(zhǔn)來(lái)共同構(gòu)建ID3決策樹(shù)算法,改進(jìn)公式如下:
[GR(?。?Gain(?。㎏] ⑸
其中,分母K表示各個(gè)屬性的個(gè)數(shù),系數(shù)作為修正參數(shù),修正了多值偏向?qū)π畔⒃鲆娴挠绊?。但這個(gè)公式結(jié)果可能會(huì)有接近0的情況,即常說(shuō)的過(guò)擬合現(xiàn)象。
2.3.2 屬性閾值
為了解決過(guò)擬合問(wèn)題提出閾值的解決方法:
[r=1S1kΕ(Α)] ⑹
其中,r代表閾值,表示數(shù)據(jù)集中所有屬性的平均信息熵,s為數(shù)據(jù)集中的樣本數(shù)量,k表示樣本中特征的數(shù)量,E(A)是式⑶表示的某個(gè)特征的信息熵值通過(guò)改進(jìn)的該方法可以訪問(wèn)到數(shù)據(jù)集中每一個(gè)特征屬性。
2.3.3 平衡系數(shù)
為了修復(fù)多值偏向以及信息增益補(bǔ)償過(guò)度的問(wèn)題,需要引入平衡系數(shù)α,該系數(shù)規(guī)定,當(dāng)某個(gè)特征值信息增益大于它的閾值時(shí),選擇信息增益作為最后的結(jié)果,當(dāng)某個(gè)特征的信息增益小于閾值時(shí),使用閾值作為結(jié)果。平衡系數(shù)的計(jì)算公式為:
[α=GR(A)×rGR(A)] ⑺
該系數(shù)等效于修正后以及屬性閾值r共同作用的結(jié)果,有效地解決了ID3算法自身的缺陷,優(yōu)化后的信息增益算法為:
[GR=α×Gain(A)] ⑻
用改進(jìn)后的信息增益算法選出數(shù)據(jù)集中屬性計(jì)算結(jié)果最好的前40位特征,作為本數(shù)據(jù)集的特征向量集。
2.4 提取高危權(quán)限特征
特征提取的部分需要用到上述1.2節(jié)設(shè)計(jì)的EMS系統(tǒng)來(lái)監(jiān)控API的調(diào)用,獲取API調(diào)用序列的同時(shí),濾除冗余部分并保存結(jié)果,使其成為數(shù)據(jù)集的一部分。然后使用改進(jìn)的ID3算法訓(xùn)練數(shù)據(jù)集,保留前40個(gè)信息增益比較大的特征作為最后的特征集,將特征的有無(wú)量化為“1”或“0”,“1”代表該特征下的API有調(diào)用,“0”則相反,最后敏感API調(diào)用頻次的動(dòng)態(tài)特征信息描述如下:
[Fdanamic=f1,f2,……,f41(0≤fi<∞)]? ⑼
[f1],[f2]...,[f40]等前40位表示的是調(diào)用的一個(gè)API序列,最后一位代表該樣本是惡意的還是良性,惡意用“0”來(lái)表示,良性的用“1”表示。
表1為篩選出的部分敏感API序列。
3 實(shí)驗(yàn)結(jié)果
3.1 創(chuàng)建數(shù)據(jù)集
本實(shí)驗(yàn)整體架構(gòu)如圖3所示。
未知軟件放入EMS系統(tǒng),拿到運(yùn)行數(shù)據(jù)作為數(shù)據(jù)集的待測(cè)樣本,最后分類器輸出為“0”或者“1”。由于數(shù)據(jù)集獲取困難,本文從App Store 60款iPhone必備App,人氣影視與音樂(lè),人氣攝影與視頻工具等模塊里下載一些常見(jiàn)的App 200款作為白名單,從第三方渠道下載惡意的軟件100款作為黑名單,如圖4所示。
下載App之前先將手機(jī)里所有的非系統(tǒng)軟件按照設(shè)置→通用→iPhone存儲(chǔ)空間→點(diǎn)擊需要卸載的軟件的步驟一步步操作,防止與后續(xù)需要下載的軟件產(chǎn)生交互或數(shù)據(jù)存留造成獲取的實(shí)驗(yàn)數(shù)據(jù)不準(zhǔn)確。軟件下載后即在EMS系統(tǒng)運(yùn)行,并收集運(yùn)行的數(shù)據(jù)。運(yùn)行App的過(guò)程中會(huì)產(chǎn)生很多的調(diào)用API,有些API明顯跟實(shí)驗(yàn)分類結(jié)果無(wú)關(guān),基于此本文設(shè)計(jì)了過(guò)濾算法,即維氏匹配法,該匹配法滿足將不相干調(diào)用API接口從數(shù)據(jù)庫(kù)中濾除。維氏匹配法不僅可以濾除一部分毫不相干的API調(diào)用序列,也可以濾除一些冗余序列。之后對(duì)App打標(biāo)為0或1,0代表惡意軟件,1代表良性軟件,并對(duì)模型進(jìn)行訓(xùn)練。
3.2 評(píng)測(cè)系統(tǒng)的建立
為了達(dá)到惡意軟件自動(dòng)檢測(cè)的效果,本文設(shè)計(jì)了一款A(yù)pp應(yīng)用運(yùn)行時(shí)自動(dòng)監(jiān)控以及對(duì)API序列進(jìn)行抓取的EMS監(jiān)控系統(tǒng),該監(jiān)測(cè)系統(tǒng)的安裝環(huán)境為Windows10,被測(cè)手機(jī)設(shè)備為iPhone6s,系統(tǒng)的版本為10.1.2,系統(tǒng)的測(cè)評(píng)標(biāo)準(zhǔn)如表2所示。
表2中TP表示的是一個(gè)惡意軟件被預(yù)測(cè)為惡意樣本的數(shù)量,F(xiàn)P表示的是一個(gè)良性樣本的被預(yù)測(cè)為惡意軟件的數(shù)目,F(xiàn)N表示的是惡意的樣本被預(yù)測(cè)為良性的App的數(shù)量,而TN表示的是一個(gè)良性的樣本被預(yù)測(cè)為良性樣本的量,TRP代表的是當(dāng)前的預(yù)測(cè)樣本中真正的惡意樣本總數(shù)占所有樣本的比率。
3.3 實(shí)驗(yàn)
本文使用ID3機(jī)器學(xué)習(xí)算法以及改進(jìn)的ID3機(jī)器學(xué)習(xí)算法分別對(duì)自創(chuàng)建的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),數(shù)據(jù)集分為兩個(gè)部分,一部分為將要訓(xùn)練的數(shù)據(jù)集,一部分作為測(cè)試集來(lái)驗(yàn)證改進(jìn)算法的效果,實(shí)驗(yàn)結(jié)果如圖5~圖8所示(縱軸單位:%;橫軸代表樣本數(shù),單位:個(gè))。
由圖5~圖8可知,隨著樣本數(shù)量的增加分類效果的各個(gè)指標(biāo)都穩(wěn)步上升,如樣本數(shù)量從60到300后使用改進(jìn)的ID3算法精確度提升了3%,而使用未改進(jìn)的算法也提高了3%,除此之外隨著算法的改進(jìn)各個(gè)分類的指標(biāo)也較于未改進(jìn)有了明顯的提升,例如召回率,在使用改進(jìn)算法之后提高了2%。
最終分類效果對(duì)比如表3所示。
由此可見(jiàn),本改進(jìn)方法在iOS平臺(tái)惡意軟件檢測(cè)上有非常好的效果。
4 結(jié)論
本實(shí)驗(yàn)使用改進(jìn)的ID3算法進(jìn)行惡意軟件檢測(cè),準(zhǔn)確率達(dá)到了92.7%,與改進(jìn)前的算法相比提高了2.5%,具有很好檢測(cè)效果。
當(dāng)前在iOS平臺(tái)上的惡意軟件檢測(cè)研究較少且多為靜態(tài),誤報(bào)率高,本文自創(chuàng)數(shù)據(jù)集并提出動(dòng)態(tài)檢測(cè)方法,解決了靜態(tài)檢測(cè)策略不足的問(wèn)題。采用了改進(jìn)ID3算法,提升了特征提取效果,并提升惡意軟件檢測(cè)效率以及準(zhǔn)確率。
本文自創(chuàng)的樣本數(shù)量有限,后續(xù)可進(jìn)一步擴(kuò)充樣本的數(shù)量并結(jié)合云端分析平臺(tái)進(jìn)一步提高惡意軟件檢測(cè)的準(zhǔn)確率和效率。
參考文獻(xiàn)(References):
[1] Moon Damin and Lee JaeKoo and Yoon MyungKeun.Compact feature hashing for machine learning based malware detection[J]. ICT Express,2022,8(1):124-129.
[2] Urmila T.S.. Machine learning-based malware detection on Android devices using behavioral features[J].Materials Today: Proceedings,2022,62(P7):4659-4664.
[3] Machine Learning Based Malware Detection: a Boosting Methodology[J].International Journal of Innovative Technology and Exploring Engineering,2020,9(4):2241-2245.
[4] 王利軍.決策樹(shù)ID3算法的優(yōu)化[J].菏澤學(xué)院學(xué)報(bào),2020,42(5):15-19,30.
[5] 甄恩浩.基于iOS平臺(tái)的惡意軟件檢測(cè)機(jī)制研究[D].四川:電子科技大學(xué),2015.
[6] 梁澤華.基于iOS平臺(tái)應(yīng)用安全檢測(cè)及防護(hù)技術(shù)的研究[D].四川:電子科技大學(xué),2017.
[7] 胡亮.iOS應(yīng)用程序漏洞和惡意行為檢測(cè)的研究[D].北京:北京郵電大學(xué),2019.
[8] 朱琳,楊楊.ID3算法的優(yōu)化[J].軟件,2016,37(12):89-92.
[9] 謝鑫,張賢勇,楊霽琳.鄰域等價(jià)關(guān)系誘導(dǎo)的改進(jìn)ID3決策樹(shù)算法[J].計(jì)算機(jī)應(yīng)用研究,2022,39(1):102-105,112.