基于字典的域名检测方法
背景
论文背景:
随着网络设备数量的增加,网络攻击者利用域名生成算法(DGAs)生成恶意域名,为了有效打击这些恶意域名,本研究探索了字典恶意域名生成算法,并提出了一种新的检测方法。
过去方案:
以前的检测方法对字典恶意域名效果不佳,传统的检测方法主要基于分布、机器学习和深度学习技术,但在字典恶意域名检测方面表现不佳。
论文动机:
随着越来越多的僵尸网络开始使用字典恶意域名,如何有效检测这些域名成为网络安全领域的关键问题,本研究旨在解决这一问题。
AGDB算法结构
AGDB剖析
AGDB主要由两部分组成:基于上下文的模型和AGDGraph
基于上下文的模型
对域名进行分词,然后使用模型进行编码得到特征表示,论文使用的模型是BERT-Small。
BERT论文链接:https://arxiv.org/pdf/1810.04805
模型下载地址:https://storage.googleapis.com/bert_models/2020_02_20/uncased_L-4_H-512_A-8.zip
AGDGraph
AGDGraph是在Pereira等人提出的WordGraph上进行改进。因此就得先搞清楚WordGraph是怎么做的。
WordGraph
这篇论文的详细解读在此就不一一展开,主要关注于它如何构建这个网络图。
- 首先是按顶级域名划分,对域名集划分为多个域名子集,每个子集具有相同的顶级域名,每个域名子集对应了一个图。
- 对于一个图的节点是在单词集中至少出现一次的单词,边是在这个域名子集中如果两个单词出现在同一域名中则这两个单词间就有一条边。
**在此单词的准确含义应该是指共同子串,而不是说完整的有含义的一个英文单词
- 单词集是如何构造的:
- 首先置
- 对于一个域名集中的两个域名,如果他们的最长共同子串满足,就将添加到单词集中
- 图构建完成后,对于的每个连通子图,定义了一下特征:
:的平均顶点度
:的最大顶点度
:的基础循环基的基数(个数)
**基础循环基:
出自:https://en.wikipedia.org/wiki/Cycle_basis
:,其中是的顶点集
:的平均最短路径长度
AGDGraph
说回AGDGraph,对于一个域名,有特征、、、、,不过是将这个域名所包含的单词所属于的每个连通子图中的特征值的均值作为这个域名的特征值。
在WordGraph中的特征值基础上,AGDGraph还加入了下面几个特征:
- :域名包含的单词中的平均顶点度
- :域名包含的单词中的最大顶点度
- :域名包含的单词中顶点度的标准差
特征融合
最后便是将两部分的特征进行融合,接全连接层进行分类输出。
实验
数据集
良性样本:Alexa
恶性样本:suppobox、matsnu家族
各抽取100k进行评估
实验结果
疑问
原文实验部分的最后一段提到表三的实验结果是展示了训练集和测试集的比例关系,但原文的表三是四个方法的F1比较,怀疑是作者放错图了。