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