基本概念
-
Path,路径
对于图G=(V,E),一个行程(walk) ( v 1 , e 1 , v 2 , e 2 , . . . , v n , e n , v n + 1 ) (v_{1}, e_{1}, v_{2}, e_{2}, ... ,v_{n}, e_{n},v_{n+1}) (v1,e1,v2,e2,...,vn,en,vn+1)中,如果没有重复经过同一个节点v和边e,称为路径。 -
Cycle,循环
对于图G=(V,E),增加新的边 e n + 1 e_{n+1} en+1使得行程 ( v 1 , e 1 , v 2 , e 2 , . . . , v n , e n , v n + 1 ) (v_{1}, e_{1}, v_{2}, e_{2}, ... ,v_{n}, e_{n},v_{n+1}) (v1,e1,v2,e2,...,vn,en,vn+1)中的点 v n + 1 v_{n+1} vn+1与 v 1 v_{1} v1连通,整个行程形成一个环路。 -
Cycle Basis,基础循环
经过图中每一条边且只经过一次的最小闭合称作欧拉子图。无向图的循环空间是它的欧拉子图的集合。一个基础循环是指循环的最小集合,其中的欧拉子图互斥。 -
The average shortest-path length,APSL,平均最短距离
令F为所有连通的节点对的集合,则 A S P L ( G ) = 1 ∣ F ∣ ∑ ( v i , v j ) ∈ F d i s t ( v i , v j ) ASPL(G)=\frac{1}{|F|}\sum_{(v_{i},v_{j})\in F}dist(v_{i},v_{j}) ASPL(G)=∣F∣1∑(vi,vj)∈Fdist(vi,vj),其中 d i s t ( v i , v j ) dist(v_{i},v_{j}) dist(vi,vj)是两节点之间的边数。 -
图G的连通分量 G ′ G^{'} G′是G的一个子图, G ′ G^{'} G′中的任意两个节点均连通。
方法
本文提出的是基于字典的词图(WordGraph)方法。
域名集合
C
=
c
1
,
c
2
,
.
.
.
,
c
q
C={c_{1},c_{2},...,c_{q}}
C=c1,c2,...,cq既含有正常域名,也含有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划分为多个子集 C 1 , C 2 , . . . , C r C_{1}, C_{2}, ..., C_{r} C1,C2,...,Cr。这样划分可以有效控制噪声和图的大小。
- 在每一子集内定义图G:
节点: C i C_{i} Ci中至少出现一次的单词
边 :同一域名的单词两两之间建立连接
上图为理想状态下的恶意域名词图和正常域名词图。但是在实际应用中,一些正常域名也会在恶意域名较多的子集中,于是实际获得的词图并不像图中那样边界分明。
-
特征向量:
对于G的每个子图 G j G_{j} Gj提取一下特征:
– D m e a n D_{mean} Dmean: G j G_{j} Gj平均顶点深度
– D m a x D_{max} Dmax: G j G_{j} Gj最大顶点深度
– C C C: G j G_{j} Gj基本循环的基数
– C V C_{V} CV:C/|V|,其中V为 G j G_{j} Gj顶点数
–ASPL: G j G_{j} Gj的平均最短路径长度 -
基于字典的图搜索:
实验
进行三种模式的对比实验(对比算法为随机森林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将无法很好地检测。
—假设攻击者知道检测字典,那么可以专门构造绕过字典的检测