◆林思明 陈腾跃 梁煜麓
基于BiLstm神经网络的DGA域名检测方法
◆林思明 陈腾跃 梁煜麓
(厦门安胜网络科技有限公司 福建 361008)
DGA域名检测是检测僵尸网络C&C通信的关键技术之一,传统的检测方法通常是基于黑名单过滤、统计特征。传统检测方法存在大量瓶颈,包括:特征提取繁琐,自动化程度低,编码实现难度较高,检测率偏低以及误报率偏高等。针对上述问题,提出一种基于BiLstm神经网络的DGA域名检测方法。首先,采用词袋模型对域名进行处理,将字符类型的域名转换为适合BiLstm神经网络的输入数据,然后基于BiLstm神经网络设计适合DGA域名检测的各层神经网络的参数,构建能够实现DGA域名的特征自主学习的最优检测模型,从而实现DGA域名的检测。所提方法能够自动提取DGA域名的特征,完全脱离人工特征提取;实现较高的检测率以及较低的误报率。
神经网络;域名检测
随着互联网使用不断的普及,以僵尸网络为代表的恶意域名攻击数量也在不断的增长。僵尸网络(BotNet)是指使用将大量僵尸主机(Bot)感染病毒,通过命令与控制服务器(Command and Control Server,C&C Server)形成一个可一对多控制的网络。攻击者通过使用多个域名链接到C&C服务器,以达到操作入侵设备的目的。2017年中国互联网网络安全报告指出联网智能设备恶意程序控制服务器IP地址约1.5万个,位于境外的IP地址占比约81.7%;被控联网智能设备IP地址约293.7万个,其中控制规模在1万个以上的僵尸网络39个,5万个以上的5个,其余的均为10到10000不等的僵尸网络。由此可见僵尸网络对网络安全运行和用户数据安全都是极具威胁的存在。
恶意域名的检测是遏制僵尸网络的主要手段之一,为了躲避域名黑名单检测技术手段,一种利用随机字符来生成C&C域名算法应运而生,简称DGA。因此DGA域名检测成为检测僵尸网络C&C通信的一个重要的环节。
传统的DGA域名检测通常是基于黑名单过滤、统计特征。传统的DGA检测方法存在特征提取繁琐,自动化程度低,编码实现难度较高,检测率偏低以及误报率偏高等瓶颈。针对上述问题,本文提出一种基于BiLstm神经网络的DGA域名检测方法。首先,采用词袋模型对域名进行处理,将字符类型的域名转换为适合BiLstm神经网络的输入数据,然后基于BiLstm神经网络设计适合DGA域名检测的各层神经网络的参数,构建能够实现DGA域名的特征自主学习的最优检测模型,从而实现DGA域名的检测。针对DGA域名检测实验表明,本文所提方法很好的解决了传统DGA域名检测存在的瓶颈,取得了较好的检测结果。
一个完整的域名由两个或者两个以上部分组成,各个部分使用英文的句号”.”分隔。至少包含一个顶级域名和一个二级域名。例如: baidu.com; 由一个顶级域名com和一个二级域名baidu组成。域名的最后一个"."的右边部分称为顶级域名或一级域名(TLD),最后一个"."的左边部分称为二级域名(SLD) ;以英文的句号”.”为分隔符,以此类推二级域名的左边部分为三级域名,三级域名的左边部分为四级域名。DGA域名是由字符和数字结合随机算法生成的顶级域名除外的部分。因此本文在后面提到的域名均是不考虑顶级域名部分,只对除了顶级域名外的部分进行特征提取。
由域名分析剔除顶级域名后,引入词袋模型对域名进行处理,构建适合BiLSTM神经网络的输入数据。
域名自身字符串包含丰富的词法特征,与自然语言非常相似,适合用自然语言的处理方式。而词袋(BoW)模型就是将自然语言中的词进行数学化的一种方式。
图 1 域名结构
BoW可以理解为一种直方图统计,是用于自然语言处理和信息检索中的一种简单的文档表示方法。 BoW模型忽略掉文档的语法和语序等要素,其只是作为若干词汇的集合,在文档中每个单词的出现都是独立的。
由域名分析可得到域名是由0到9;a到z;英文句号”.”;符号”_”及符号”-”组成,共38个符号,为此形成如下图2所示的词袋。
图 2 词袋
通过词袋模型,把域名转化为适合BiLstm神经网络的输入数据,转换原理如图3所示。转换过程中,域名的长度限制为100个字符;当域名长度不够100个字符时,转换时使用数值40进行填充。
图 3 转换原理
目前检测DGA域名的方法主要有传统的统计特征和基于深度学习。相比较于传统的统计特征,深度学习模型拥有优秀的自动特征提取能力。
LSTM 是深度学习模型中一种特殊的RNN模型,可用于学习长期依赖信息,处理序列数据,在文本分类、翻译等领域广泛使用。LSTM 通过刻意的设计来避免长期依赖问题,它是从左往右推进的,就像传送带一样,将信息从上一个单元传送到下一个单元,和其他部分只有很少的相互作用。图4为LSTM的推导图及计算公式,其整体的推导过程和RNN是一致的,唯一的区别在于LSTM的每个神经元。图5为LSTM每个神经元内部推导图及计算公式,LSTM巧妙的在每个神经元的内部增加了输入门限,遗忘门限和输出门限,使得自循环的权重发生变化。输入门限,一个Sigmoid层,观察ht−1和xt,对于神经元状态ct−1中的每一个元素,输出一个0~1之间的数,1表示完全保留该信息,0表示完全丢弃该信息。遗忘门限,一个Sigmoid层决定我们要更新哪些信息,并由一个tanh层创造了一个新的候选值,结果在(-1, 1)(−1,1)范围。输出门限,控制哪些信息需要输出。
图 4 LSTM的推导图及计算公式
图 5 LSTM每个神经元内部推导图及计算公式
BiLSTM是在LSTM的基础上演变而来的;与LSTM相比较,BiLSTM同时考虑了过去的特征和未来的特征,使用两个LSTM,一个正向输入序列,一个反向输入序列,再将两者的输出结合起来作为最终的结果。BiLSTM的隐藏层需要保存两个值,一个参数Ci参与正向计算,另一个参数C´i参与反向计算,最终输出的yi取决于Ci和C´i。图6为BiLSTM的推导图及计算公式。
在1.2节中,使用Bow模型处理DGA域名,使得域名中的每个字符变得独立,字符所在域名中的语法和语序被隐藏起来,而BiLstm可以很好的保留文档的过去特征、未来特征和时序特征,完美解决了该问题,使得DGA域名中的每个字符的语法和语序重新显现。
图 6 BiLSTM的推导图及计算公式
(1)实验数据集
本文实验数据集包含正域名样本和负域名样本,正域名样本主要来自于Alexa网站收集的前100万的域名;负域名样本使用360开源的前100万的DGA域名,并且给正负样本标注相应的分类标签。Alexa收集的前100万的域名为正样本,标注为0;360开放的前100万的DGA域名为负样本,标注为1。对所使用的域名数据集进行数据划分为训练集160万个、验证集20万个、测试集20万个;训练集、验证集和测试集的正负样本各一半。
(2)实验调参
本文使用的是Keras框架结合Tensorflow进行实验。经过反复的实验,最终选取最佳参数值为:学习率a=0.1;训练轮数epochs = 200;训练batch_size = 512;Dropout = 0.5;激活函数使用sigmoid;整个网络模型如图8所示。
图 8 网络模型
(3)实验结果分析
本文在相同的数据集的基础上进行了两组实验,两组实验的区别在于一个使用了LSTM一个使用BiLSTM;表1是两个模型训练检测率和测试检测率。
表1 两个模型训练检测率和测试检测率
从表1的实验结果可以得出BiLSTM的效果要明显优于LSTM。LSTM对域名的每个字符产生的向量的处理方式都是一样的,即使不同域名在不同位置的相同字符所产生的向量也是一样的。而BiLSTM把字符的位置及未来特征等都考虑在内;结合了位置关系的BiLSTM比没有结合位置关系的LSTM的识别率提高了0.07。
整个实验的过程中,仅仅是将实验数据进行标识和数据集划分,没有建立任何依赖人工提取特征的工程,完全实现自动提取DGA域名的特征。
实验使用的BiLSTM神经网络方法取得了较好的效果,训练检测率达到99.54%,测试检测率达到99.41%。
本文针对传统的DGA域名检测方法所存在的瓶颈,提出了基于BiLstm神经网络的DGA域名检测方法,并且对该方法进行了实验。通过实验的过程和实验结果验证了该方法能够有效的解决传统的DGA域名检测方法所存在的特征提取繁琐,自动化程度低,编码实现难度较高,检测率偏低以及误报率偏高的问题。
[1]Bidirectional LSTM-CRF Models for Sequence Tagging.
[2]End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF.
[3]QUIRK C,MOONEY R,GALLEY M.Language to code:Learning semantic parsers for if-this-then-that recipes[C]// Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics(ACL-15).Beijing, China:ACL,2015:878-888.
[4]J.Lafferty, A.McCallum,and F. Pereira.2001.Conditional random fields: Probabilistic models for segmenting and labeling sequence data. Proceedings of ICML.
[5]AlexGraves.SupervisedSequence Labelling with Recurrent Neural Networks.Textbook,Studies in Computational Intellige nce,Springer,2012.
[6]张维维.基于词素特征的轻量级域名检测算法[J].软件学报,2016.