概述:统计特征+机器学习进行DGA检测最新的权威模型,选用的特征大多为比较鲁棒且高效的模型。
效果:在非常低的误报的情况下可达99%准确率(实验数据集),在实际环境中使用发现了10个未包含在训练集的DGA家族
效率:
- 训练:5.66min(92192个样本)
- 预测:0.0025s/sample
正常NXDomain类型:错误输入、错误配置、误用
项目开源:https://github.com/fanci-dga-detection/fanci
系统设计
训练模块
数据来源:
- DGArchive(DGA来源)
- 大学网络(正常样本来源)
- 公司内网(正常样本来源)
模型:XGB
分类模块
使用训练模块训练好的模型模型对NXDomain进行分类。
情报模块
目标:根据分类模型提供的分类结果找出感染设备并识别新的DGA家族或新的种子。
输入:
- NXdomain
- 源IP、目的IP、每个NXDomain响应的时间戳(为了能够将DGA域名映射回感染设备)
预处理:提取域名和对应NXDomain response中的有用信息。
后处理:如果NXDomain与两个白名单进行比对,如果NXDomain以whitelist中的域名结尾,则将该域名移入正常域名
白名单1:Alexa top N
白名单2:本地网络白名单
经过情报模块的聚合以后,输出展示结果供分析人员分析,可以以设备、域名等为单位在不同角度进行分析。
特征
FANCI的特征全都使用了比较轻量级的特征,不需要预计算,依赖于指定的自然语言,并且全部特征可以从单个域名中进行提取。
1. 结构特征
下表中显示FANCI中使用的全部结构特征,共12个。
其中比较难以理解的特征有:
- 域名含有重复的前缀(#7):子域名中的字符串序列在其他级别的子域名中出现了至少一次上。例如:rwth-aachen.derwth-aachen.de则为1.
- 独立数字子域名的比例(#9):纯数字组成的子域名占全部子域名数量的比例(不包含公共后缀)。例如:123.itsec.rwth-aachen.de,值为1/3
- 是否包含IP地址(#12):域名中是否包含IPv4、IPv6地址。
2. 语言特征
从语言的角度来显示DGA域名与正常域名中的语言特性的不同,共包含7个语言特征。
其中比较难以理解的特征有:
- 字符重复率(#17):域名中重复的字符占域名中(不包含公共前缀)包含的字符比率。例如:bnxd.rwth-aachen.de,字符重复率为3/12,其中重复字符为n、a、h。
- 连续辅音比率(#18):计算域名中连续字符长母大于2的全部字符串长度和占域名总长度(不包含公共前缀)的比例。例如:bnxd.rwth-aachen.de对应的连续辅音比率为(8+2)/15 = 0.67,其中连续字母的长度大于2的子串有:bnxdrwth and ch.
- 连续数字比率(#19):与连续辅音比率类似
3. 统计特征
统计特征包括交叉熵和