基本概念
-
Path,路徑
對於圖G=(V,E),一個行程(walk)中,如果沒有重複經過同一個節點v和邊e,稱爲路徑。 -
Cycle,循環
對於圖G=(V,E),增加新的邊使得行程中的點與連通,整個行程形成一個環路。 -
Cycle Basis,基礎循環
經過圖中每一條邊且只經過一次的最小閉合稱作歐拉子圖。無向圖的循環空間是它的歐拉子圖的集合。一個基礎循環是指循環的最小集合,其中的歐拉子圖互斥。 -
The average shortest-path length,APSL,平均最短距離
令F爲所有連通的節點對的集合,則,其中是兩節點之間的邊數。 -
圖G的連通分量是G的一個子圖,中的任意兩個節點均連通。
方法
本文提出的是基於字典的詞圖(WordGraph)方法。
域名集合既含有正常域名,也含有Dictionary-AGD域名,本算法的目標是區分C中的Dictionary-AGD域名。
- 從域名中提取單詞:
提取在至少兩個SLD中出現至少m(m=3)次的單詞構造字典。例如對於集合[“facetype.com”, “facetime.com”, “bedtime.com”, “faceboard.com”, “bedboard.com”, “bedding.com”]
提取的字典爲D={“face”, “time”, “bed”, “board”, “facet”}
- 詞圖構造:
- 先按照TLD將C劃分爲多個子集。這樣劃分可以有效控制噪聲和圖的大小。
- 在每一子集內定義圖G:
節點:中至少出現一次的單詞
邊 :同一域名的單詞兩兩之間建立連接
上圖爲理想狀態下的惡意域名詞圖和正常域名詞圖。但是在實際應用中,一些正常域名也會在惡意域名較多的子集中,於是實際獲得的詞圖並不像圖中那樣邊界分明。
-
特徵向量:
對於G的每個子圖提取一下特徵:
–:平均頂點深度
–:最大頂點深度
–:基本循環的基數
–:C/|V|,其中V爲頂點數
–ASPL:的平均最短路徑長度 -
基於字典的圖搜索:
實驗
進行三種模式的對比實驗(對比算法爲隨機森林RF和CNN):
–訓練集和測試集使用相同的字典生成域名
–訓練集和測試集使用不同的字典生成域名
–使用很少的惡意樣本進行訓練
- 數據集
- labeled ground truth data : DGArchive(a web database for DGA domains from various families, and from the Alexa top 1 million domains)
- 惡意流量:根據三個不同的字典使用Dictionary-based DGA Suppobox生成的域名。
- 真實流量:ISP
-
數據大小
-
數據處理
由於CNN需要定長輸入,所以設置長度爲75,長度不足75的域名左邊以0填充。RF和WordGraph均不需要做特殊處理。
–RF:
使用11個特徵:1.信息熵;2.2-gram中位數;3.3-gram中位數;4.符號字符比;5.十六進制字符比;6.元音字符比;7.域名長度;8.gini字符索引;9.字符分類錯誤;10.頂級域名散列值;11.第一個數字
每個森林包含100棵樹。
–CNN:
卷積神經網絡由一個嵌入層,一個卷積層,兩個隱藏層和一個輸出層組成。 -
結果
-
侷限性:
—如果惡意軟件將DGA作爲C2階段的輔助工具,將通信地址硬編碼在軟件內部,則該惡意軟件不會產生過多的DGA域名訪問,例如Matsnu,WordGraph將無法很好地檢測。
—假設攻擊者知道檢測字典,那麼可以專門構造繞過字典的檢測