梁 濤,李毅成,段玉瑩
(1.南昌大學(xué)撫州醫(yī)學(xué)院,江西 撫州 344000;2.景德鎮(zhèn)陶瓷大學(xué),江西 景德鎮(zhèn) 333403;3.山東理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 淄博 255000)
由于系統(tǒng)應(yīng)用具有開(kāi)放性特點(diǎn),因此,應(yīng)用類軟件會(huì)產(chǎn)生大量非授權(quán)代碼[1]入侵,代碼入侵到系統(tǒng)應(yīng)用中會(huì)嚴(yán)重威脅系統(tǒng)安全。據(jù)權(quán)威調(diào)查結(jié)果顯示,每天都存在將近百萬(wàn)的非授權(quán)代碼被廣泛傳播。為防止非授權(quán)代碼擾亂正常網(wǎng)絡(luò)通信,需要檢測(cè)并禁止代碼傳播,所以相關(guān)檢測(cè)工作變得越來(lái)越重要。由于傳統(tǒng)檢測(cè)方法在檢測(cè)非授權(quán)代碼敏感路徑方面存在一定難度,因此,非授權(quán)代碼敏感路徑檢測(cè)方法成為新的研究熱點(diǎn)。
王衛(wèi)紅[2]等人提出基于N-Gram與加權(quán)分類器集成的非授權(quán)代碼檢測(cè)系統(tǒng),即網(wǎng)頁(yè)惡意腳本代碼的監(jiān)測(cè)系統(tǒng)。使用V8引擎將惡意腳本編譯成機(jī)器碼,并利用變長(zhǎng)N-Gram模型進(jìn)行數(shù)據(jù)預(yù)處理,提取出特征樣本訓(xùn)練集;對(duì)邏輯回歸以及樸素貝葉斯等分類器組合建立分類模型,將多個(gè)經(jīng)過(guò)訓(xùn)練集訓(xùn)練的分類模型集成,采取加權(quán)分類器集成的方式,對(duì)不同分類器設(shè)定權(quán)值。但是該系統(tǒng)的應(yīng)用過(guò)程耗時(shí)較長(zhǎng)。鄭忠偉[3]等人提出了基于圖結(jié)構(gòu)與內(nèi)存足跡分析的惡意應(yīng)用檢測(cè)方法。提取應(yīng)用請(qǐng)求所需的共生權(quán)限,將得到的權(quán)限結(jié)構(gòu)建立成圖結(jié)構(gòu),并利用圖內(nèi)的度量指標(biāo)分析圖的分類規(guī)律及其中心權(quán)限,通過(guò)中心權(quán)限數(shù)值選取可以描述各類型攻擊的最優(yōu)指標(biāo);利用計(jì)算獲得是應(yīng)用隱私與風(fēng)險(xiǎn)閾值,檢測(cè)各種惡意軟件或惡意行為。該方法耗時(shí)較短,但是沒(méi)有取得較高的檢測(cè)精度。
因此,本研究提出基于線性特征集的惡意敏感路徑檢測(cè)方法,利用深度學(xué)習(xí)逐層檢測(cè),減少了一定誤差,且實(shí)驗(yàn)證明方法的耗時(shí)較短,且具有較精度,可被推廣應(yīng)用。
深度學(xué)習(xí)[4]即效仿人腦運(yùn)行機(jī)制,對(duì)數(shù)據(jù)進(jìn)行理解與分析,比如學(xué)習(xí)圖像形狀、聲音旋律和文本知識(shí)等。從管理層面講,屬于無(wú)監(jiān)督學(xué)習(xí)方式,其基本原理源于人工神經(jīng)網(wǎng)絡(luò)[5]。通過(guò)構(gòu)建更加抽象的高層、更加清晰地描述屬性類別特征,可作為數(shù)據(jù)分布特征的參考。也可由經(jīng)過(guò)處理的多層次構(gòu)成計(jì)算機(jī)模型,用于表達(dá)多等級(jí)的抽象數(shù)據(jù)并結(jié)合反向傳播算法分析數(shù)據(jù)的內(nèi)在結(jié)構(gòu),同時(shí),可使用BP算法[6]描述如何在不同層面。利用從上一層獲取的數(shù)據(jù)信息,計(jì)算內(nèi)部參數(shù)值,在眾多領(lǐng)域被廣泛應(yīng)用,如圖1所示為深度學(xué)習(xí)基本流程。
圖1 深度學(xué)習(xí)基本步驟
若利用深度學(xué)習(xí)完成特征檢測(cè),需收集大量檢測(cè)數(shù)據(jù)信息。若檢測(cè)非授權(quán)代碼,則需正常代碼以及非授權(quán)代碼共同構(gòu)成檢測(cè)素材,從而分別提取代碼特征,完成非授權(quán)代碼檢測(cè)。
一般情況下,使用靜態(tài)分析[7]方式結(jié)合翻譯工具去除無(wú)關(guān)動(dòng)作指令,得到所需特征。
假設(shè)L(W)以及上一次的特征[8]更新值V1,兩者間的線性組合用于更新特征W1,表達(dá)式如下:
(1)
式(1)中,μ代表特征值,α表示基礎(chǔ)學(xué)習(xí)效率。
基于上節(jié)獲取的非授權(quán)代碼的特征,獲取代碼線性特征集合。在非授權(quán)代碼敏感檢測(cè)的過(guò)程中,涵蓋了大量的網(wǎng)絡(luò)歷史數(shù)據(jù)信息,這些數(shù)據(jù)信息包含n個(gè)操作變量,可用{y1,y2,…yn}代表,其中對(duì)應(yīng)的閾值可用aj代表,因此,為簡(jiǎn)化操作模型可用下列公式表達(dá):
(2)
上式中Gj與Gk間的關(guān)聯(lián)程度較小,網(wǎng)絡(luò)行為中的主要數(shù)據(jù)信息使用Gj,利用Gj建立的敏感路徑特征系數(shù)矩陣[9]如下式:
(3)
利用深度學(xué)習(xí)方法有效檢測(cè)出網(wǎng)絡(luò)行為中的非授權(quán)代碼敏感路徑,可有效的保障數(shù)據(jù)信息安全。
引入操作特征等相關(guān)數(shù)據(jù),描述敏感性變化率為:
(4)
通過(guò)上述式可得到敏感變化率,非授權(quán)代碼特征值計(jì)算如下:
(5)
因非授權(quán)代碼間存在較弱的關(guān)聯(lián)性,可得構(gòu)成的線性特征集合為:
(6)
為判斷路徑是否有效,應(yīng)先判斷應(yīng)用程序是否加密,若未加密對(duì)其直接進(jìn)行反饋;若已加密,需要完成相關(guān)解密工作,再開(kāi)始反饋。根據(jù)非授權(quán)代碼的主要入侵方式[10],改變系統(tǒng)中一部分的函數(shù)信息,通過(guò)敏感路徑實(shí)現(xiàn)非授權(quán)代碼攻擊,將敏感路徑中的主要信息分為五個(gè)部分,分別為:進(jìn)程、線程、注冊(cè)表、網(wǎng)絡(luò)類和文件。利用上述五個(gè)步驟,可快速地識(shí)別出相應(yīng)的非授權(quán)代碼路徑。基于線性特征集的非授權(quán)代碼敏感路徑分析,關(guān)鍵在于是否可準(zhǔn)確查詢出可能性最大的惡意敏感路徑集合,并通過(guò)執(zhí)行獲取到程序行為,構(gòu)建新的系統(tǒng)函數(shù)信息調(diào)用圖,也可稱為行為特征圖,以此避免傳統(tǒng)檢測(cè)方法檢測(cè)結(jié)果不準(zhǔn)確、效率低等問(wèn)題?;诰€性特征集的非授權(quán)代碼敏感路徑判斷結(jié)構(gòu)如圖2所示。
圖2 非授權(quán)代碼敏感路徑判斷結(jié)構(gòu)
在對(duì)非授權(quán)代碼敏感路徑進(jìn)行檢測(cè)時(shí),需要將各類型代碼以及其變量看作目標(biāo)樣本,并對(duì)每一類型的惡意特征行為進(jìn)行提取,從而構(gòu)建出新的特征行為庫(kù);然后對(duì)檢測(cè)樣本代碼開(kāi)始分析及計(jì)算,提取敏感特征,在特征行為庫(kù)中進(jìn)行匹配,最終利用深度學(xué)習(xí)檢測(cè)出非授權(quán)代碼敏感路徑
基于線性特征集的檢測(cè)方法,開(kāi)始執(zhí)行bfsCheckfunc_s(sens_act_func),以此得到代碼包含的RegDeletekeyA、ExitWindows、RegCreateKey三個(gè)敏感路徑函數(shù)。選取其中一個(gè)輸入交互函數(shù)[11]scanf,計(jì)算求得Re g-DeleteKeyA的最小深度數(shù)值等于2,因此首先需從Re g-DeleteKeyA處返回,進(jìn)行檢測(cè)得到從函數(shù)scanf至函數(shù)Re g-DeleteKeyA的敏感路徑,隨之檢測(cè)其余敏感路徑。
為提高檢測(cè)效率,對(duì)非授權(quán)代碼敏感路徑進(jìn)行檢測(cè)時(shí),若Psub上所有的敏感點(diǎn)和輸入點(diǎn)都存于另一條敏感路徑Pa中,即Psub是Pa的子路徑,假設(shè)先處理Pa完成后,則無(wú)需對(duì)Psub進(jìn)行任何處理,在圖4中,若只完成(scanf,RegDeletekey,RegCrestKey)以及(scanf,ExitWindows)兩條非授權(quán)代碼敏感路徑,基于深度學(xué)習(xí)檢測(cè),需最先處理路徑中包含敏感信息最多的路徑,對(duì)其進(jìn)行動(dòng)態(tài)分析。
通常情況下,同一個(gè)函數(shù)中不可能同時(shí)存在敏感點(diǎn)和交互點(diǎn),因函數(shù)體內(nèi)的第一個(gè)基本塊存在前驅(qū)塊的可能性為0,所以當(dāng)敏感點(diǎn)返回檢測(cè)時(shí),只能返回至所在函數(shù)體的初始所在塊內(nèi),此時(shí)得到的結(jié)果為部分敏感路徑。同時(shí),需使用相關(guān)函數(shù)調(diào)用信息,從調(diào)用該函數(shù)的初始位置向回繼續(xù)檢測(cè),當(dāng)?shù)诌_(dá)交互點(diǎn)和代碼入口時(shí),完成檢測(cè),通過(guò)對(duì)路徑進(jìn)行合并得到非授權(quán)代碼中的完整敏感路徑。
假設(shè)使用有像圖G=(V,E)表示函數(shù)調(diào)度,V表示頂點(diǎn)數(shù)據(jù)集合,E表示邊點(diǎn)數(shù)據(jù)集合,其中E={(vi,vj),vi,vj∈V},使用vi表示系數(shù)數(shù)值,若系統(tǒng)數(shù)值v2和v1被調(diào)用,此時(shí)出現(xiàn)一條邊v1指向v2為(v1,v2)。G=(V,E)中節(jié)點(diǎn)v相對(duì)應(yīng)的函數(shù)使用v.SystemCall()代表,va·prev∈Ga,va·prev(i)代表節(jié)點(diǎn)va中的第i個(gè)后續(xù)點(diǎn),va·sucnum代表va后續(xù)點(diǎn)數(shù)量。由于非授權(quán)代碼敏感路徑會(huì)導(dǎo)致系統(tǒng)變化幅度范圍較小,相似度相對(duì)明顯,基于此,可利用函數(shù)調(diào)用圖為基礎(chǔ)進(jìn)行檢測(cè)。
在檢測(cè)過(guò)程中,將目標(biāo)代碼用As代表,每一個(gè)As都會(huì)形成圖Gs,其中樣本數(shù)量為k,會(huì)生成k個(gè)有像圖。由于有像圖都是由一種類型的非授權(quán)代碼產(chǎn)生,相似性遠(yuǎn)大于其他樣本。因此,將k個(gè)有像圖中的G′作為特整體,保證有像圖中的各節(jié)點(diǎn)必須在子圖中出現(xiàn)此節(jié)點(diǎn),即:
va=G′
(7)
并且滿足:
(8)
可得出相似程度矩陣為:
(9)
式(9)中,γ表示相似程度參數(shù)值,同時(shí)0≤γ≤1,可得出:
(10)
通過(guò)式(10)可知,相似數(shù)值最大的為敏感路徑。
由于正常代碼間差別較大,內(nèi)部結(jié)構(gòu)形態(tài)各不相同,尋找公共子圖有一定難度,基于深度學(xué)習(xí)檢測(cè)需對(duì)正常代碼樣本的函數(shù)圖進(jìn)行特征提取,并設(shè)置閾值threshold,即:
(11)
式(11)用于判斷正常代碼,能夠有效提高非授權(quán)代碼的提取準(zhǔn)確度,提高網(wǎng)絡(luò)安全性能,為用戶的數(shù)據(jù)信息提供可靠的安全保障。
實(shí)驗(yàn)參數(shù)選用某高校的公開(kāi)數(shù)據(jù)信息,涵蓋了5000多款惡意App,其中有180個(gè)非授權(quán)代碼家族,非授權(quán)代碼數(shù)量為2000個(gè)。本次實(shí)驗(yàn)使用數(shù)據(jù)中樣本數(shù)量最多的非授權(quán)代碼作為樣本,并從軟件商店下載良性App作為正常樣本。
仿真實(shí)驗(yàn)環(huán)境信息如表1所示。
表1 實(shí)驗(yàn)環(huán)境信息
表2數(shù)據(jù)反映了本文所提方法的有效性,在同等時(shí)間內(nèi)以及測(cè)試數(shù)量相同的情況下,對(duì)檢測(cè)惡意敏感路徑的速度效率進(jìn)行比較。經(jīng)數(shù)據(jù)表明,本文所提方法相比方法1和方法2,檢測(cè)出的敏感路徑數(shù)量最多、覆蓋塊數(shù)以及敏感路徑函數(shù)次數(shù)最高,最終的有效數(shù)據(jù)所占比率高于其他兩種方法。
表2 數(shù)據(jù)比分析結(jié)果對(duì)比
因此,可說(shuō)明本文所提方法對(duì)于非授權(quán)代碼敏感路徑的檢測(cè)分析能力較高,有效性最佳。
利用文獻(xiàn)[2]方法和文獻(xiàn)[3]方法作為測(cè)試對(duì)照組,對(duì)比該傳統(tǒng)方法與研究方法在應(yīng)用過(guò)程的噪聲大小,較小的噪聲能夠有效保證方法的穩(wěn)定性。具體對(duì)比結(jié)果如圖3:
圖3 不同方法下網(wǎng)絡(luò)噪聲對(duì)比
從圖3實(shí)驗(yàn)結(jié)果可以明顯看出在非授權(quán)代碼數(shù)量逐漸增多的過(guò)程中,兩種傳統(tǒng)方法的噪聲值忽高忽低,缺乏穩(wěn)定性,噪聲平均值偏高。研究方法在實(shí)驗(yàn)測(cè)試過(guò)程中能夠保持較低噪聲,這說(shuō)明研究方法具有更好的抗噪性能。
分析不同樣本數(shù)量情況下,不同方法對(duì)于準(zhǔn)確率的影響,分別選用500、1000、1500以及2000、2500個(gè)代碼樣本進(jìn)行比較實(shí)驗(yàn),結(jié)果如表3所示。
表3 準(zhǔn)確率比較
可得出隨著樣本數(shù)量不斷增加,所提方法的檢測(cè)準(zhǔn)確率不斷提高,而其他兩種方法隨著樣本數(shù)量不斷增加,準(zhǔn)確率逐漸降低。
為進(jìn)一步驗(yàn)證研究方法的應(yīng)用有效性,對(duì)其耗時(shí)性進(jìn)行實(shí)驗(yàn)。以文獻(xiàn)[2]方法和文獻(xiàn)[3]方法作為實(shí)驗(yàn)對(duì)照組。為方便實(shí)驗(yàn)結(jié)輸出,A表示文獻(xiàn)[2]方法,B表示文獻(xiàn)[3]方法,C表示研究方法,具體實(shí)驗(yàn)結(jié)果如圖4:
圖4 非授權(quán)代碼檢測(cè)路徑結(jié)果
實(shí)驗(yàn)結(jié)果顯示,所提方法不僅能夠有效檢測(cè)非授權(quán)代碼,且耗時(shí)更短。在代碼樣本數(shù)量為500個(gè)~2500個(gè)之間,耗時(shí)最高不超過(guò)30ms,而另外兩種傳統(tǒng)方法不僅耗時(shí)波動(dòng)較大,且最高耗時(shí)達(dá)到35ms,耗時(shí)指標(biāo)不能滿足該領(lǐng)域的實(shí)際應(yīng)用要求。實(shí)驗(yàn)結(jié)果驗(yàn)證了研究方法在不同方面均表現(xiàn)出良好的性能優(yōu)勢(shì)。
本文提岀基于線性特征集的非授權(quán)代碼敏感路徑檢測(cè)方法。根據(jù)非授權(quán)代碼特征獲取目標(biāo)代碼操作,針對(duì)敏感行為函數(shù)的關(guān)鍵代碼區(qū)域進(jìn)行分析,發(fā)現(xiàn)最可能存在的非授權(quán)代碼敏感路徑,減少計(jì)算過(guò)程中的路徑數(shù)量,最終仿真實(shí)驗(yàn)結(jié)果表明:所提方法可有效縮短檢測(cè)時(shí)間,魯棒性更高。