---
# System prepended metadata

title: 利用三階段行為分析來偵測和分類已知與未知的惡意程式
tags: ['2012', 論文研討]

---

# 利用三階段行為分析來偵測和分類已知與未知的惡意程式
- 交大碩論
###### tags: `論文研討` `2012`

---
## 第一階段:利用GFI沙盒系統和類神經網路為每一個程式算出惡意程度的值。
:::info
Speciality
 - external observation to calculate **MDF**
 - coarse-grained inspection
:::
 
### (一)訓練階段
- 使用ANN 機器學習模型，放進Benign and Malware samples訓練模型。
![](https://i.imgur.com/xw64FTp.png)

---

### (二)判斷階段
1. 使用訓練好的模型，判斷Detected Program的MD值
2. 依模型算出之MD值判斷是否為惡意程式:
    - MD值小於lower bound則判斷為Benign program
    - MD值大於upper bound則判斷為Malware program
    - MD值介於lower bound和upper bound(Ambiguous area)之間則送入SCDM實施判斷。

![](https://i.imgur.com/E3u5jZd.png)
:::success
**Reference:**
![](https://i.imgur.com/BFjT2q7.png)
:::

---

## 第二階段:從惡意程式所產生系統呼叫序列中找出所有共同子字串，再套用貝式機率模型留下惡意行為，再利用這些惡意行為作字串比對來偵測。

![](https://i.imgur.com/hybjVce.png)

:::success
**Reference:**
![](https://i.imgur.com/sNmGcXo.png)
- Forrest at al's [1]
蒐集大量正常程式的system call series 然後建立database
- Mutz et al.'s [2]
system call's argument 字串很少超過100個字元，且都包含可視字元
- 方法[1][2] 皆須建立大量資料庫，不然容易產生 false-positive的結果
- Rozenberg et al.'s [6] 
- Mehdi et al. 's [10]
- 方法 [6][10]的問題在於只搜尋固定長度的system call sequences

:::

---

## 第三階段:定義惡意程式類別向量，透過餘弦相似定理計算出該樣本的相似度，再以最高相似度那個向量所代表的類別來做分類