劉銀 沈輝
摘要:為了提高網絡漏洞靜態(tài)檢測的準確性,設計一個基于機器學習的網絡漏洞靜態(tài)檢測方法。首先對網絡中的數據進行預處理,將其轉化為序列表示,對網絡數據特征量化及特征選擇,并對漏洞序列相似度計算,最后采用機器學習的方法對昂羅漏洞靜態(tài)檢測。實驗以檢測準確性與檢測時間作為對比對象,結果表明,此次研究的基于機器學習的網絡漏洞靜態(tài)檢測方法較傳統(tǒng)方法檢測準確性高,并且檢測時間少,滿足了網絡漏洞靜態(tài)檢測方法的設計需求。
關鍵詞:機器學習;網絡漏洞;靜態(tài)檢測;
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)26-0042-03
開放科學(資源服務)標識碼(OSID):
機器學習是一種科學研究,其中計算機系統(tǒng)依靠模式和推理所用的算法和統(tǒng)計模型來有效地完成特定的任務,而無須明確的指令。在沒有明確規(guī)劃任務執(zhí)行的情況下,機器學習算法根據樣本數據建立被稱為“訓練數據”的數學模型來進行預測或決策。在電子郵件過濾和計算機視覺等多種應用中,機器學習算法被廣泛使用,而在這些應用中,無法開發(fā)執(zhí)行特定任務指令的算法?;跈C器學習這一特性,對網絡漏洞靜態(tài)檢測方法進行設計。
1 網絡數據預處理
所采集的網絡漏洞不能直接聚類,需要在序列聚類之前對數據進行預處理,將其轉化為序列表示[1]。具體方法如下:
軟件目標代碼的反匯編,以形成更易于理解和分析的反匯編代碼,接著將產生軟件漏洞的代碼從反匯編代碼中提取出網絡漏洞的特征序列[2]。所得到的漏洞特征序列是有長有短的,因此如何度量不同長度的漏洞序列之間的相似性就顯得至關重要。在收集已知漏洞信息后,建立網絡漏洞特征庫,在有漏洞需要檢測的情況下,通過與數據庫中漏洞的特征進行比較,確定漏洞類型。在漏洞特征庫中,漏洞以序列的形式被存儲,每一個序列由組成漏洞的基本事件組成[3]。
缺陷序列是從網絡反匯編代碼中提取的一組導致網絡缺陷的指令,它們是一系列軟件漏洞的特征序列,缺陷序列數據庫即為網絡漏洞序列數據庫[4]。
當創(chuàng)建漏洞模式庫時,通過定義漏洞父類和漏洞子類來表示漏洞序列類型,通過定義原子代碼類來表示匯編代碼段,從而生成產生漏洞的行為。
2 網絡數據特征量化及特征選擇
特征處理模塊的主要任務是處理原始特征并獲取標準數據,適合于訓練機器學習算法。特性處理的關鍵在于特性的量化與選取[5]。其具體過程如下:
特征量化:由于存儲在數據庫中的特征都是網絡的原始特征,不能直接對特征進行分析和輸入算法,所以特征量化部分的主要工作就是將原始特征轉換成數據分析包或機器學習算法可以分析的特征向量。數字特征不需要量化就可以直接,作為程序的輸入,而分類、文本特征則需要根據具體情況轉換成數字特征[6]。在目標向量方面,由于本文旨在于檢測網絡中是否存在漏洞,樣本主要分為0和1兩種類型,因此樣本標簽采用0或1表示。最終,特征量化階段將為每個網絡樣本特征形成一個[m]維的特征向量。由全部樣本特征向量組成的數據集將存儲為 CSV文件格式,該文件的第一行是選擇的特征屬性名,然后是每種行為的樣本特征向量。儲存方式的選擇主要考慮數據分析庫的功能,可直接裝載 CSV文件,便于特征分析和訓練。
特征選擇:在所用特征數達到一定值的情況下,模型精度開始下降。對于神經網絡模型,如果在訓練過程中使用了大量的特征,但是樣本很少,很容易導致模型的過度擬合,所以需要進行特征選擇。該方法首先根據已知漏洞知識和漏洞之間的高度相關性,構造漏洞特征子集,然后根據特征子集中所包含的特征子數目選擇特征選擇方法。
3 漏洞序列相似度計算
軟體攻擊順序是有序基本事件的集合,構成序列的基本事件,以及它們發(fā)生的次序,影響著序列的相似性。在兩個序列中,如果基本事件是相同的,但基本事件順序不同,則它們之間的相似度就會降低。相反,如果兩個序列中某一部分的基本事件的次序相同,組成該序列的基本事件也大不相同,則這兩個序列之間的相似度也可能很低,這就是說,它們表示不同類型的漏洞。
我們必須同時考慮序列中所包含的基本事件和事件的順序。將漏洞序列的全局相似度記作:
[G=max∑Tj=1INjn2j-n1jmaxS1,S2]? ? ? ? ? ? ? ? ? ?(1)
公式(1)中,[S1]、[S2]分別代表軟件漏洞序列,[∑Tj=1INj]代表第[N]個基本時間的集合。
計算局部相似度,局部相似度反映了基本事件序列中各個漏洞序列之間的相似程度,由全局相似度和局部相似度給出的漏洞序列總體相似度為:
[GLSMS1,S2=q×LSimS1,S2]? ? ? ? ? ? ? ?(2)
公式(2)中,[q]代表參數相似度衡量參數。
易攻擊的低熵序列最有可能成為序列聚類的中心,以此通過上述過程完成漏洞序列相似度的計算,為網絡漏洞檢測提供基礎依據。
4 網絡漏洞靜態(tài)檢測實現(xiàn)
在上述特征檢測的基礎上,對網絡漏洞靜態(tài)檢測,對可能被劫持的網絡數據來說,它們被認為是暴露的網絡內容,如果這些危險的組件能夠訪問敏感設備,或者該組件能夠通過調用應用程序中的其他接口或組件訪問網絡中的敏感數據,危險的組件就會被惡意應用程序利用,使惡意應用程序有可能訪問、獲取甚至修改應用程序關鍵區(qū)域的敏感數據。
基于內容跟蹤和風險識別,并以自編碼網絡為基礎構建支持向量機入侵檢測模型,運用RBM算法實現(xiàn)高維非線性原始數據向低維度的轉變,由此形成了一個雙向映射結構,聯(lián)通了高維空間與低維空間之間,利于數據的映射傳輸,運用BP算法將高維數據信息轉化為低位數據,得到相應的低維表示。