【论文笔记】李盟, et al. 一种恶意代码特征选取和建模方法. 计算机应用与软件 08(2015):272-277.
前言
論文筆記。
論文筆記
| 論文標題 | 一種惡意代碼特征選取和建模方法 |
| 論文作者及工作單位 | 李盟、賈曉啟、王蕊、林東岱 ( 中國科學院信息工程研究所信息安全國家重點實驗室 北京 100093) ( 中國科學院大學 北京 100049) |
關鍵詞
- Malicious code
- Dynamic analysis
- Sequence feature
- Machine learning
概述
改進傳統 n-grams 模型對代碼樣本的API調用序列進行處理,從而針對惡意代碼分析檢測靜態分析技術難以檢測變形、多態代碼的問題,提出一種提取惡意代碼語義動態特征的方法。
論文研究的問題及其意義
- 問題
靜態分析雖然比較全面,,但是對于采用了變形、混淆等代碼變形技術的惡意代碼卻很難進行準確的分析,因為語法無法從根本上反映出惡意代 碼的“惡意性”,不同的語法表達出的語義可以是相同的。 - 意義
采用了函數調用監控中API 監控方法進行動態行為分析檢測研究,惡意代碼的檢測準確率有所提高。
現有方法
| Chess 等[7] | 使用沙盒技術來檢測病毒,他們證明了病毒檢測一般而言是不可判定的 |
| Christodorescu 等[8] | 使用靜態分析技術檢測惡意代碼,文中實現的 SAFE 可以有效處理大多數惡意代碼采用的混淆技術 |
| Christodorescu 等[9] | 在檢測使用混淆技術的惡意代碼上效果很好,不過該方法在進行分類上的時間需要 1 分 鐘以上,這就使得該方法在商業防病毒檢測上的實用性大大降 低 |
| Kruegel 等[10] | 針對混淆程序使用的是控制流圖和統計方 |
| 法 | |
| Agrawal 等[11] | 對于惡意軟件變種同樣采用了控制流及數據流分析,并使用了正規化矩陣距離進行相似性判斷 |
| Bergeron 等[12] | 通過使用關鍵 API 以及安全策略檢測惡意代碼,不過他們 的方法對于混淆程序無效 |
| Martignoni 等[13] | 使用實時程序檢測方法來檢測內存中的反混淆,文中實現 OmniUnpack 對于已知以及未知的混淆器均能檢測出其混淆行為 |
| 張等[14] | 通過識別惡意代碼調用的系統函數或庫函數來檢測其變種 |
| 文獻 [15] | 使用挖掘算法檢測混淆的惡意代碼 |
上述方法對于混淆的惡意代碼效果很好,不過對于單個程序的檢測時間需要數秒鐘時間。
| 文獻[16] | 采用靜態分析方法檢測系統調用位置,通過運行時監測來確保靜態分析中所有的系統調用來自同一位置 |
| 傳統的基于簽名的惡意軟件檢測方法[17,18] | 在檢測多態以及變形的惡意軟件上存在困難 |
| 一些工作[19,20,21] | 旨在提高基于特征的檢測,其中文獻[21]通過測度已知病毒與可疑代碼之間的相似度來檢測多態惡意軟件。該方法的基礎思想是同一惡意軟件的不同變種均含有共同的核心特征,從原始惡 意軟件提取出該特征用來進行匹配。盡管該工作能提高傳統基 于特征的檢測方法對多態惡意軟件的檢測效果,但是并不適用 于未知惡意軟件 |
| Santos 等[22] | 對惡意軟件效果一般,提出一種基于操作碼序列頻率的模型,并結合機器學習方法,對未知惡意軟件的檢測效果較好原文如此,但怎么感覺讀起來有點兒拗口? |
| Anderson 等[23] | 樣針對基于特征方法進行改進的,通過收集動態指令構建特征圖,并計算相似性矩陣進行不同圖之間的相似性比較 |
| 一些研究工作[24 - 30] | 使用數據挖掘以及機器學習方法的,其中文獻[24]使用了 1971 個良性軟件和 1651 個惡性 軟件來提取 n-gram 特征 |
| Ye 等[28] | 使用 API 調用作為特征,使用的數據集含有12 214 個良性程序以及17366 個惡意軟件,從 API 調用中提取出特征,在此基礎上使用數據挖掘技術 |
| Alazab 等[29] | 基于 Windows API 調用頻率,結合包括樸素貝葉斯、K 近鄰、決策樹等多種數據挖掘方法,提出了 一種新的檢測 0day 惡意軟件的手段 |
| Trinius 等[30] | 提出了一種新的惡意行為表示方法———惡意指令集,該方法專門為使 用數據挖掘及機器學習技術分析設計,對于這一類分析可以提 高運行效率及分析結果準確度 |
| Canali 等[31] | 在行為模型對惡意軟件檢測造成的影響方面進行了系統的研究,對于基于系統調用的惡意軟件檢測科學研究有一定價值 |
本論文方法與已提出的方法進行對比:
論文中只舉了兩個例子
1.
| Alazab M 等[43]—— 同樣使用了 n-gram 模型,該方法首先使用PEiD 和 IDA Pro 對可執行文件進行反匯編,在得到的匯編碼基礎上得出 API 調用特征,根據 API 調用特征得出 n-gram 特征, 分類器選用的是支持向量機。文獻[43]實驗結果顯示,隨著 n 的增大,準確度逐漸減小,FPR 逐漸增大。 | 先獲取了惡意樣本及良性樣本的 API 調用特征,并根據調用特征得出了各樣本的 3-gram 特征及其相關聯的 概率、頻次信息,概率、頻次信息可以反映連續 gram 之間的上下 文語義,從而增強了特征,為檢測時提供了更多的信息。之后對 得到的特征信息分別采用了四大類分類器進行建模,并進行了交叉驗證。 |
| Kolbitsch C 等[38]使用的是行為圖進行建模,使用的檢測工具為 Anubis,選取的惡意樣本的家族與本文相同,針對Allaple、 Mydoom兩類惡意樣本的檢測有效率( 即 TPR) 達到了 0. 90,不 過其平均 TPR 只有 0. 64,遠遠低于本文中 DT: J48 的 TPR ( 0. 892) | 同上 |
- 本文方法實驗結果
由表 4 可知本文使用的決策樹在準確度上較 Alazab.M等[29]的方法優,同時 FPR 也較小。
論文提出的思路和方法及其優缺點
理論:
n-gram 算法改進。
- c: 表示置信度
- s: 表示支持系數
- w: 表示窗口
大小 - f: 表示最小出現次數
支持系數 s 表示的是該條規則在所有監測記錄的 API 調用序列中出現的概率,置信系數 c 表示的是在規則左側出現的前 提下該條規則出現的概率。參數 s、c 均有一個最小的閾值 s0、 c0,最小出現次數 f表示序列建立成規則需要出現的最小次數。
本文提出的惡意代碼動態行為特征分析檢測基本架構:
- 框架說明:
- 搭建用于動態運行惡意代碼的虛擬環境。
- 于虛擬環境下執行惡意代碼,并提取惡意代碼動態行為語義特征。本文選取惡意代碼執行期間調用的 API 序列作為語義特征。
- 使用提取的語義特征
進行模型建立,即將原始的、未組織 的語義信息元素建立為加工過且結構化的語義模型。本文對惡意代碼運行期間的 API 調用序列進行加工,抽象為能代表其語義特征 的改進 n-gram。 - 建立模型庫,進行相似性檢測。可采用的檢測方 法根據特征不同而有所不同,如使用機器學習( 決策樹、k-近鄰、 神經網絡等) 方法進行檢測。
虛擬環境的作用:
為了能獲得惡意代碼的動態行為特征,我們使用了虛擬機
環境,虛擬機使用的是 VirtualBox,虛擬操作系統為 Windows XP,之所以選擇虛擬環境是因為在進行動態運行惡意代碼時實 際主機可以避免影響,虛擬機具有存儲快照的功能。即使在虛 擬機中運行的惡意代碼對操作系統產生了修改甚至是破壞行 為,使用快照功能存儲的備份也可以將系統快速恢復到運行惡 意代碼前的狀態。事實上,虛擬機的這一功能除了能保護實際 系統不被修改破壞之外,還可以保證不同惡意代碼運行的環境 是完全相同的,從而保證了實驗結果的可比性。
這個架構是否有欠妥當或能改善的地方,目前還看不出來。
論文使用的數據集和實驗工具
- 數據集
| 來自 Offensive Computing[30],包含6種病毒:Agent、Allaple、Bagle、Mydoom、Mytob、Netsky | Windows 中的程序 |
- 實驗工具
- 提取API調用情況:
API Monitor - 進行分類(分類器)的工具:
Weka - 同時,,記錄建模時間的工具也是:
Weka
- 提取API調用情況:
實驗部分
使用了工具Weka記錄建模時間和充當分類器。
- 算法
選擇決策樹[39,40]、K 近鄰、樸素貝葉斯[41]及貝葉斯網絡、支持向量機[42]四種分類器來進行測試。 - 衡量指標
TPR、FPR、Precision、
F-Measure - 實驗結果
- 性能分析
綜合檢測效果以及建模時間來看,
貝葉斯網絡由于建模時間較長,且檢測效果并不明顯具有優勢,所以性能最差。
決策樹: J48 和支持向量機: Linear Kernel 的效果最好。
總結
以上是生活随笔為你收集整理的【论文笔记】李盟, et al. 一种恶意代码特征选取和建模方法. 计算机应用与软件 08(2015):272-277.的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《大数据》2020年第6期目次摘要
- 下一篇: 专题导读:大数据异构并行系统