基于LSTM的DGA域名检测算法研究与应用

基于LSTM的DGA域名检测算法研究与应用

2023年7月27日发(作者:)

基于LSTM的DGA域名检测算法研究与应用

作者:***

来源:《电脑知识与技术》2021年第22期 摘要:随着互联网技术的快速发展,网络服务于各类行业,域名数量与日俱增的同时恶意域名的检测也变得愈来愈困难且更加重要。恶意服务常利用域名生成算法(DGA)逃避域名检测,DGA域名常见于一些僵尸网络和APT攻击中,针对DGA域名可以轻易地绕过传统防火墙和入侵检测设备、现有方法检测速度慢、实用性不强等问题,采用深度学习技术,基于LSTM设计了DGA域名检测方法,从海量域名样本中分辨出异常域名,借助机器代替人力完成这样重复性的工作。经实验结果证明,该方法检测准确率高达99.1%以上,是有效可行的。同时结合流量探针构建实时监测系统,实时准确地监测流量中的DGA域名,提高网络空间安全性。

关键词:域名生成算法;僵尸网络;深度学习;LSTM;网络空间安全

Abstract: With the rapid development of Internet technology, the network had served various

industries, While the number of domain names is increasing day by day, the detection of malicious

domain names has become more and more difficult and more important. Domain Generate Algorithm

(DGA) was used by malicious services to evade domain detection. DGA was common in some

botnets and APT attacks, aiming at the problem of DGA domain can easily bypass traditional

firewalls and intrusion detection devices, slow detection speed and poor real-time performance in

existing detection methods. a DGA domain detection algorithm based on Long Short-Term Memory

(LSTM) model was designed by using deep learning, which candistinguish abnormal domain

names from a large number of domain name samples, and use machines to replace humans to

complete such repetitive tasks. The experimental results prove that the detection accuracy of this

method is as high as 99.1%, which is effective and feasible. Meanwhile, a Real-time Monitoring

System for DGA Domain based on LSTM was proposed in combination with flow probe to monitor

network traffic in real time and improve cyberspace protection capabilities. Key words: domain generation algorithm; botnet; deep learning; LSTM; cyberspace security

1引言

目前,网络安全问题日益突出。网络攻击、网络恐怖主义等安全事件时有发生。随着公共云、私有云和大型局域网在企业、军队和学校的广泛使用,用户在互联网上的各种操作和行为每天都会产生大量的信息,不法分子也一直想通过网络攻击等手段获取机密信息和情报。

恶意软件经常使用DGA域名来提高其与C&C服务器通信的可靠性,从而避免常规的黑名单检测。從大量域名样本中识别异常域名的任务应该由机器来完成,而不是由人工来完成。传统的DGA域检测方法通常有很大的缺点。黑名单过滤方法[1]虽然准确率高,但需要手工补充黑名单之外的DGA域名,难以解决DGA域名快速增长带来的问题。机器学习检测方法[2-7]需要通过技术人员的实验构造特征值,并设计检测算法,实现对未知DGA域名的检测,但是也存在一些问题,如手工特征提取工作量大,无法准确提取出所需的全部特征,检测速度慢,检测精度低等。

近几年深度学习[8]在自然语言处理有很好的表现,比传统的机器学习更有优势。它能自动提取特征,并通过训练大量样本获得较高的精度。经典的循环神经网络(RNN)能很好地保留语言处理中的上下文信息。但是,随着训练过程中时间和输入数据的增加,RNN对语句中上下文信息的感知能力就会下降,导致梯度的消失或爆炸。而在RNN基础上改进的LSTM[9-11]可以解决上述问题,并在DGA域名检测中取得良好的结果。基于此并结合流量探测器,设计了基于LSTM的DGA域名实时监测系统。为保证该算法的良好检测性能,本文选择360和Alexa分别提供的DGA域名和合法域名进行合理的建模和评估,以获得最优的检测算法。

2基于LSTM的DGA域名检测算法

基于LSTM的DGA域名检测算法包括域名向量化、上下文信息提取、分类输出等三个步骤。

2.1 域名向量化

在输入一个域名作为模型之前,有必要对域名进行向量化。常用的向量化方法有bag of

words(BoW)、One hot和n-gram(n元语法)。由于域名字符串中没有语法和词序元素,我们选择Bow模型从统计数据集中的所有字符生成一个字符字典,并以键值对('a':2)的形式存储。

基于所生成的字符字典将域名(string)转换为字符向量,以同时为确保模型的输入形状统一,我们选择将在小于L长的域名向量前填充0至L长,其中L是数据集中最长的域名长度,本文为59。 2.2 上下文信息提取

词嵌入层(Embedding)[12]将字符向量映射为字符向量序列,其中[w1:L=w1,w2,w3,…,w4],[wL∈Rd],d为嵌入层维度,在本研究中,将d设置为128[13],以保留足够的上下文信息,以便后续提取信息特征[14]。

通过将映射后的字符向量序列输入LSTM,提取域名上下文信息,解决了传统RNN长期依赖和梯度消失的问题。LSTM与传统RNN相比采用了多门控制,每个门都有相应的计算公式:

假设域名[A='a1a2…an'],首先通过向量化得到域名向量V(A);然后经Embedding映射到字符向量序列W;最后通过LSTM对向量序列W进行上下文信息特征提取,其提取上下文信息特征计算方法将如给式(1-6)所示,其中xt=Wt。随着时间步长t的增加,LSTM不断将此刻输入及上一时刻的自身状态同时作为输入,将提取到丰富的上下文信息特征用于域名分类。

2.3 域名分类

域名分类过程如图1所示:

字符向量化以及Embedding层的作用在上两节已经介绍,本文算法在Embedding层后添加一层LSTM,隐层大小为128,默认激活函数tanh。通过隐藏层提取域名上下文信息特征以式(7)形式输出,具体提取过程见第2.2节上下文信息提取。

Wt表示时间步长为t时的LSTM输入;ht表示时间步长为t时的LSTM输出;Dense层实现特征的非线性组合,同时,在Dense与LSTM之间使用 Dropout, 暂时丢弃一部分神经元及其连接来控制过拟合问题,本文方法将神经元被丢弃概率设置为0.5[15]。最终模型的输出是从全连接层直接输入到二分类函数Sigmoid,输出即为域名被检测为恶意的概率。

3实验结果

3.1 实验环境

本文实验基于Tensorflow实现。具体实验环境如表1所示:

3.2 实验数据

本文实验数据选择从实时更新的Netlab360[16]和Alexa[17]抽取以保证最有效性,分别抽取50万DGA域名、50万合法域名,其中DGA域名标签设置为1,合法域名标签设置为0,共100万对的域名和标记作为数据集训练LSTM检测模型。 3.3 评价指标

根据实验目标设计,选取Accuracy、Precision、Recall、F1作为本文实验评价指标。

3.4 实验结果

在反复实验后确定最优参数,在最优参数控制下最终模型的性能如表2所示。

4系统设计

系统首先通过流量探测器监视机器的网卡,捕获实时流入和流出的流量进而进行提取分析得到域名,然后利用基于LSTM的DGA域名检测算法来检测所捕获的域名,检测输出结果即为该域名是恶意域名的可能性。当检测概率超过设置的阈值时就会发出警告(此系统设置为0.5)。最后,将域名和检测结果保存至数据库中并实时显示出来,以达到实时监控的效果。系统流程图如图2所示。

5系统实现

5.1 数据库实现

系统实时监视的数据需要在数据库支持下保存、查询监测数据,从而动态显示。数据表结构包括相应流量的ID、域名(Domain)、时间(Time)、源地址(Src)、目的地址(Dst)、类型(Type)、检测结果(Result)等,其中ID设置为自增主键,Time是根据数据插入时间自动生成。

5.2 功能实现

5.2.1 流量提取技术

为了更好地将流量探针技术应用于我们的系统,我们选择了Scapy库进行流量捕获。之所以选择Scapy[18-19],是因为用户能通过一个简单的Sniff命令和相应的过滤条件轻松地嗅探网络数据包,并且其内部提供了大量解析协议数据包的方法,足以满足我们系统的需求。

由于DNS使用端口为53,因此域名解析通常是通过在UDP上完成的,因此我们将过滤条件设置为“UDP port 53”[20]。表3给出了该系统使用Scapy捕获的一条请求流量数据的部分解析结果。

我们只需要表2中的DST,SRC,QR和QNAME,首先根据QR确定请求或响应流,然后使用基于LSTM的DGA域名检测算法来检测QNAME,得到检测结果。 5.2.2 Web开发技术

本系统最终以Web形式提供服务,运行效果图如图3所示。使用者只需要点击按钮即可使用;当开启监测功能后,页面每5s自动刷新一次,使用者也可根据实际需要选择刷新、停止、删除等功能。

6结论

随着深度学习被应用在越来越多自的然语言处理任务中且取得显著成果,流量作为自然语言的一种表示形式,利用深度学习处理流量为网络安全防护提供了新的思路。本文提出了基于LSTM的DGA域名实时监测系统,利用流量探针和基于LSTM的DGA域名检测算法,我们可以实时监测机器网卡上的流入流出数据流量,并对流量中域名进行分类,使机器具备一定的网络防护能力。我们选取360和Alexa的域名数据对本文算法测试,经测试,检测算法准确率高达99.17%,证明了本文算法是有效可行的。在后續的工作中,我们一方面将继续完善数据数量与多样性,提高检测算法性能;另一方面,我们准备基于上述技术开发恶意URL实时监测功能,为网络安全防护提供更多的技术支持。

参考文献:

[1] Sato K,IshibashiK,Toyono T,et ing black domain name list by using co-occurrence relation between DNS queries[J].IEICE Transactions on Communications,2012,E95-B(3):794-802.

基于所生成的字符字典将域名(string)转换为字符向量,以同时为确保模型的输入形状统一,我们选择将在小于L长的域名向量前填充0至L长,其中L是数据集中最长的域名长度,本文为59。

2.2 上下文信息提取

词嵌入层(Embedding)[12]将字符向量映射为字符向量序列,其中[w1:L=w1,w2,w3,…,w4],[wL∈Rd],d为嵌入层维度,在本研究中,将d设置为128[13],以保留足够的上下文信息,以便后续提取信息特征[14]。

通过将映射后的字符向量序列输入LSTM,提取域名上下文信息,解决了传统RNN长期依赖和梯度消失的问题。LSTM与传统RNN相比采用了多门控制,每个门都有相应的计算公式:

假设域名[A='a1a2…an'],首先通过向量化得到域名向量V(A);然后经Embedding映射到字符向量序列W;最后通过LSTM对向量序列W进行上下文信息特征提取,其提取上下文信息特征计算方法将如给式(1-6)所示,其中xt=Wt。随着时间步长t的增加,LSTM不断将此刻输入及上一时刻的自身状态同时作为输入,将提取到丰富的上下文信息特征用于域名分类。

2.3 域名分类

域名分类过程如图1所示:

字符向量化以及Embedding层的作用在上两节已经介绍,本文算法在Embedding层后添加一层LSTM,隐层大小为128,默认激活函数tanh。通过隐藏层提取域名上下文信息特征以式(7)形式输出,具体提取过程见第2.2节上下文信息提取。

Wt表示时间步长为t时的LSTM输入;ht表示时间步长为t时的LSTM输出;Dense层实现特征的非线性组合,同时,在Dense与LSTM之间使用 Dropout, 暂时丢弃一部分神经元及其连接来控制过拟合问题,本文方法将神经元被丢弃概率设置为0.5[15]。最终模型的输出是从全连接层直接输入到二分类函数Sigmoid,输出即为域名被检测为恶意的概率。

3實验结果

3.1 实验环境

本文实验基于Tensorflow实现。具体实验环境如表1所示:

3.2 实验数据

本文实验数据选择从实时更新的Netlab360[16]和Alexa[17]抽取以保证最有效性,分别抽取50万DGA域名、50万合法域名,其中DGA域名标签设置为1,合法域名标签设置为0,共100万对的域名和标记作为数据集训练LSTM检测模型。

3.3 评价指标

根据实验目标设计,选取Accuracy、Precision、Recall、F1作为本文实验评价指标。

3.4 实验结果

在反复实验后确定最优参数,在最优参数控制下最终模型的性能如表2所示。

4系统设计

系统首先通过流量探测器监视机器的网卡,捕获实时流入和流出的流量进而进行提取分析得到域名,然后利用基于LSTM的DGA域名检测算法来检测所捕获的域名,检测输出结果即为该域名是恶意域名的可能性。当检测概率超过设置的阈值时就会发出警告(此系统设置为0.5)。最后,将域名和检测结果保存至数据库中并实时显示出来,以达到实时监控的效果。系统流程图如图2所示。

5系统实现

5.1 数据库实现

系统实时监视的数据需要在数据库支持下保存、查询监测数据,从而动态显示。数据表结构包括相应流量的ID、域名(Domain)、时间(Time)、源地址(Src)、目的地址(Dst)、类型(Type)、检测结果(Result)等,其中ID设置为自增主键,Time是根据数据插入时间自动生成。

5.2 功能实现

5.2.1 流量提取技术

为了更好地将流量探针技术应用于我们的系统,我们选择了Scapy库进行流量捕获。之所以选择Scapy[18-19],是因为用户能通过一个简单的Sniff命令和相应的过滤条件轻松地嗅探网络数据包,并且其内部提供了大量解析协议数据包的方法,足以满足我们系统的需求。

由于DNS使用端口为53,因此域名解析通常是通过在UDP上完成的,因此我们将过滤条件设置为“UDP port 53”[20]。表3给出了该系统使用Scapy捕获的一条请求流量数据的部分解析结果。

我们只需要表2中的DST,SRC,QR和QNAME,首先根据QR确定请求或响应流,然后使用基于LSTM的DGA域名检测算法来检测QNAME,得到检测结果。

5.2.2 Web开发技术

本系统最终以Web形式提供服务,运行效果图如图3所示。使用者只需要点击按钮即可使用;当开启监测功能后,页面每5s自动刷新一次,使用者也可根据实际需要选择刷新、停止、删除等功能。

6结论

随着深度学习被应用在越来越多自的然语言处理任务中且取得显著成果,流量作为自然语言的一种表示形式,利用深度学习处理流量为网络安全防护提供了新的思路。本文提出了基于LSTM的DGA域名实时监测系统,利用流量探针和基于LSTM的DGA域名检测算法,我们可以实时监测机器网卡上的流入流出数据流量,并对流量中域名进行分类,使机器具备一定的网络防护能力。我们选取360和Alexa的域名数据对本文算法测试,经测试,检测算法准确率高达99.17%,证明了本文算法是有效可行的。在后续的工作中,我们一方面将继续完善数据数量与多样性,提高检测算法性能;另一方面,我们准备基于上述技术开发恶意URL实时监测功能,为网络安全防护提供更多的技术支持。

参考文献:

[1] Sato K,IshibashiK,Toyono T,et ing black domain name list by using co-occurrence relation between DNS queries[J].IEICE Transactions on Communications,2012,E95-B(3):794-802.

发布者:admin,转转请注明出处:http://www.yc00.com/news/1690423045a347755.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信