恶意域名检测研究与应用综述

2019-09-13 03:39:04王媛媛吴春江刘启和周世杰
计算机应用与软件 2019年9期
关键词:域名神经网络样本

王媛媛 吴春江 刘启和 谭 浩 周世杰

(电子科技大学信息与软件工程学院 四川 成都 610054)

0 引 言

域名系统协议是互联网的重要组成部分,它将难以记忆的互联网协议地址映射到易于记忆的域名[1-2]。大量的网络服务依赖于域名服务来展开。由于域名系统并不对依托于其开展的服务行为进行检测,DNS服务被滥用于各种恶意活动:传播恶意软件、促进命令和控制(Command and Control,C&C)服务器[3]通信,发送垃圾邮件、托管诈骗和网络钓鱼网页[4]等。

恶意软件控制器或僵尸程序利用恶意软件进行各种未经授权的恶意活动。为了成功实现其目标,恶意软件与命令和控制中心的连接至关重要。因此,以恶意域名解析的连接方式成为网路恶意攻击的主要手段。所谓恶意域名解析,是指用户的正常DNS解析请求解析到他人的服务器上或是攻击者的恶意服务器上,而被解析的服务器上实际没有相应的站点[5]。以域名为依托的网络攻击方式的发展变化如图1所示。

图1 域名攻击发展变化

最初,攻击者通过对恶意软件(如僵尸网络程序)内部的IP地址进行硬编码,建立了与C&C中心的通信通道。当恶意软件的可疑IP被发现,网络安全管理员就可以针对IP进行流量阻断,以阻止恶意软件与攻击者的连接。为了应对IP封锁,攻击者使用DNS域名解析来定位C&C服务器。通过将注册的域名写入恶意程序中,然后恶意程序利用域名解析得到攻击者的命令控制服务器C&C的IP地址,以进行连接通信。即使IP地址被查了出来,攻击者通过更换域名的IP地址就可以继续保持与恶意程序的通信[6]。但这种方式不能抵抗安全人员逆向分析的域名黑名单,为应对黑名单的域名防御机制,攻击者引入域名算法生成技术,利用特定的域名生成算法(Domain Generation Algorithms,DGA),生成大量域名用于自身的组织和控制。攻击者从算法生成的大量域名中,选取几十个或几百个域名进行注册来掩护真正的C&C服务器的域名。而网络安全管理员为应对DGA域名,也相应提出了基于DGA域名的检测方法。

使用DGA的优势在于模糊了控制服务器的节点位置,该方法的灵活性还让网络安全管理员无法阻止所有可能的域名,并且注册一些域名对攻击者来说成本很低。利用DGA域名实施的攻击是网络安全中重要的攻击形式。因此,捕获由恶意软件生成的域名已成为信息安全的核心主题。

1 域名生成算法

域名生成算法是指通过输入的随机种子,利用加密算法,比如MD5、异或操作等,生成一系列的伪随机字符串[7],即域名列表。攻击者通过与恶意软件共享DGA的随机种子,知道对方可能使用的域名,然后使用这些域名不断尝试连接直到连接成功。DGA使用的随机种子主要分为三类:时间无关和确定性种子,时间依赖性和确定性种子以及时间依赖性和非确定性种子。随着DGA域名的僵尸网络的检测方法在不断地改进与完善,但在检测已有的DGA域名的同时,新的DGA家族变体也在出现。迄今为止,基于360netlab公开的DGA域名家族共有40个。

由于DGA家族众多,这里我们主要介绍几类常用的DGA域名。表1中列出了5类常见DGA家族域名的样例。

表1 常见DGA域名实例

Conficker[8-9]是针对Microsoft Windows操作系统的计算机蠕虫,最初于2008年末被发现。它使用Windows操作系统软件中的缺陷和对管理员密码的字典攻击在形成僵尸网络时传播。几乎所有以Conficker为依托的高级恶意软件技术都已被研究人员所熟知,但这种病毒的综合使用使得它难以根除。

CryptoLocker[10]勒索软件攻击是一种针对运行Microsoft Windows的计算机的木马,它通过受感染的电子邮件附件以及现有的Gameover Zeus[11]僵尸网络传播。它使用DGA从英文字母表a~y中随机选取生成字符串长度为12至15的二级域名,每周大约生成1 000个域名。

Ramnit[12]是一种类似Zeus的恶意软件。它使用DGA与其C2服务器通信。感染后,样本开始快速连续地对许多不同的域进行DNS查询。DGA使用随机数生成器首先通过均匀地选择8到19个字符之间的长度来确定第二级域的长度。接下来,DGA通过从“a”到“x”统一选取字母来确定第二级域(字母“z”不能被选中),然后附加静态顶级域“.com”。

与著名的conficker相比,symmi[13]的所有随机方面都是真正的伪随机,它通过当前的日期和编码常量,利用随机数生成器生成种子。它包含三级域名,在第三级域中,除字母“j”之外,从元音和辅音中随机交替的挑选字母,因此随后的字母总是来自其他字符类,这样选取的字符组成的域名几乎是可读的。生成第三级域后,DGA会附加配置的第二级和顶级字符串,如“.ddns.net”。

Suppobox[14]与现有的大部分DGA都是利用伪随机字符串生成的域名家族不同,它利用英文单词列表,从英文单词列表中随机选择两个单词连接在一起生成恶意域名。

随着针对DGA检测技术的不断提高,传统的DGA技术的复杂性从简单的随机绘制字符的方法到尝试模拟真实域中的字符或单词分布的方法。例如:ramnit使用从随机种子开始的乘法、除法和模数的组合来创建域名;symmi为了能够生成几乎可发音的域名,随机交替选择元音或辅音类。另一方面,suppobox通过连接两个伪随机选择的英语词典单词来创建域。

2 DGA域名检测的研究与应用

DGA的灵活性及低成本使恶意软件大量利用DGA来生成恶意域名以连接控制和命令服务器。为针对以DGA生成的域名的检测研究最先是从DGA生成算法入手的。文献[15]通过逆向恶意样本的DGA算法,提前抢注域名来控制恶意软件与C&C通信。虽然逆向技术可以深入了解恶意样本采用的域名生成算法以及对域名的使用机制,但这种方法所消耗的人力资源过大且应用受限。因此后续在异常域名检测识别方面研究主要包括基于网络流量上下文特征提取的机器学习方法的检测、基于无特征提取的深度学习方法的检测和基于附加条件的深度学习方法的检测。

2.1 基于特征提取的机器学习方法的检测

通过特征提取的恶意域名检测方法主要分为两类:一是根据域名字符统计特征的检测,二是根据DNS流量信息的检测。

2.1.1域名字符统计特征的检测

域名在构造上可以分为主机名和域名(包含顶级域名和可能存在的二级和三级域名)。由于域名部分数据相对固定,变化较少,因此大部分对域名的研究处理是针对主机名的处理,以下提及的域名都是指域名的主机名。

利用合法域名与DGA域名在字符分布上有明显的差异,Davuth等[16]以域名的bigram作为特征,通过人工阈值的方式过滤出现频率较低的bigram,采用支持向量机分类器检测随机域名。Yadav等[17]通过查看同一组IP地址的所有域中的unigram和bigram特征分布,查找算法生成的域名的固有模式来检测DNS流量中的域名。在域名长度上,Mowbray等[18]在域名查询服务中通过使用不寻常的字符串长度分布来检测恶意域名。王红凯等[19]提出了一种基于随机森林的随机域名检测方法。该方法以人工提取的域名长度、域名字符信息熵分布,元音辅音比、有意义的字符比率等特征来构建随机森林模型训练分类,实现对随机域名的检测。随后Agyepong等[20]也利用算法生成域名与正常域名的字符分布的不同,分别利用域名K-L距离、编辑距离、Jaccard系数分别作为特征向量的识别效果。除了利用域名传统定量的域名特征之外,文献[21]使用分词算法将域名分割成单个词,来扩展特征集的大小以提高检测恶意域名的能力。

2.1.2DNS流量信息的检测

在DNS流量分析上面,文献[22]提出了一种依赖于fast-flux僵尸网络的三个特征:委托代理模式、恶意活动的执行者和硬件性能,来检测Web服务是否被fast-flux僵尸网络实时托管。Bilge等[23]介绍了一个名为Exposure的系统,它利用DNS分析技术来检测涉及恶意活动的域,通过从DNS流量中提取15个特征来描述DNS名称的不同属性以及查询它们的方式。与之前的DNS流量分析不同,Antonakakis等[24]通过分析因名称错误响应的域名的DNS查询,也称为NXDOMAIN响应,即不存在IP地址的域名,并设计了一个名为Pleisdes的系统来检测DGA生成的域。它主要利用由DGA生成的域名中,只有相对较少的域名成功解析为C&C服务器的地址的特点。当Pleiades找到一组NXDOMAIN时,它应用统计学习技术构建DGA模型,然后用它来检测用同一种DGA算法的受感染的主机,并检测与DGA看起来类似的活动域名,因为其有可能指向僵尸网络C&C服务器的地址。Pleiades具有能够发现和建模新的DGA而无需劳动密集型恶意软件逆向工程的优势。另外Pleiades通过监控本地网络中的DNS流量来实现这些目标,而无需大规模部署先前工作所需的DNS分析工具。文献[25]也通过分析NXDOMAIN响应来检测DGA域名。此外,文献[26-27]通过DNS数据源及其丰富度、数据分析方法以及评估策略和度量,对近年来使用DNS数据的恶意域名检测技术的一般框架分类,并就DNS领域下的检测提出了一些挑战:大规模的真实DNS数据日志很少公开可用,恶意域的特征弹性以及缺少评估的具体方案。

通过网络的DNS流量的上下文信息及域名的统计特征对潜在的DGA分类有一定的成果,但是这些不能满足实时检测和预防的现实安全应用的需求。为满足实时检测的要求,诸多的实时方法都使用手工挑选的特征(例如:熵、字符串长度、元音比、辅音比等)。机器学习模型,例如随机深林分类器[19]就是比较典型的一个。然而,这些依赖人工提取特征检测方法存在着误报率较高、整体检测率低的问题。主要原因有两方面:一方面,大多数现有的基于网络的僵尸网络检测方法仅限于数据包检测级别,大多数方法也主要关注网络流的部分特征,不能完全表征僵尸网络的异常行为;另一方面,僵尸网络与时俱进,利用先进的思想和技术来逃避检测。特别是为了应对人工提取的特征检测,攻击者可以设计新的DGA算法以绕过某些固定的特征。随着检测技术的不断发展,僵尸网络变得越来越复杂和智能化,在一定程度上表现出复杂性和对抗性,这使得网络安全形势依然严峻。

2.2 基于无特征提取的深度学习方法的检测

在以往依赖手工提取的特征来检测恶意域名有两个主要的缺点:手工提取的特征容易规避,手工提取特征耗时。Antonakakis等[28]提出了无特征的实时技术隐马尔可夫模型(HMM)。但HMM在检测DGA方面表现不佳。深度学习方法是传统机器学习机制的复杂模型,具有将输入信息提取为最佳特征表示的巨大能力,在语音识别和图像识别领域取得了显著的成果,也为恶意域名检测技术提供了一个全新的思路。近年的多数研究采用深度学习方法,如文献[29]提出了一种基于word-hashing技术的深度学习网络对域名进行分类,其不仅避免了手工提取特征还发现了传统统计方法无法发现的特征。接下来我们介绍两种主要的神经网络模型在恶意域名检测上的应用。

2.2.1RNN在域名检测的应用

循环神经网络[30](RNN)因其能捕获序列之间有意义的时间关系被应用于各种自然语言任务中。因此,初期主要应用循环神经网络、递归神经网络来检测伪域名。但RNN在长链操作中易导致梯度消失问题,不具备学习长期依赖信息的能力。LSTM[31-32]在RNN的基础上增加一个状态信息使其能够学习长期依赖信息,在长时间的学习模式方面非常擅长文本和言语处理,因此被广泛应用。Woodbridge等[33]利用长短期记忆网络实现对DGA的实时预测,而无需上下文信息或手动创建的特征。其模型框架如图2所示,包括一个嵌入层,一个基本上用作特征提取器的LSTM层以及一个逻辑回归分类器。基于RNN的DGA检测模型都是类似于此模型框架。另外其所提出的技术可以准确地执行多种分类,从而能够将DGA生成的域归属于特定的DGA家族。

图2 基于LSTM的DGA域名检测模型

Yu等[34]为了比较深度学习方法的优势,以传统的机器学习方法中比较有效的基于特征构建的随机森林模型作为基准实验,利用LSTM网络和CNN网络进行域名检测分类比较。在整体检测率上,CNN和LSTM模型相对于随机森林有突出的表现,但在个别DGA上表现不佳。存在的原因大概有两方面:一是因数据不平衡导致检测率低或识别误差大;二是传统的DGA和基于字典的DGA之间存在偏差的样本分布。为解决DGA家族中个体识别率低,Tran等[35]提出了一种改进的成本敏感的LSTM算法来应对DGA域名数据多类不平衡的问题,相对原始敏感LSTM算法,具有较高的准确率。

之后,Vinayakumar等[36]也比较了几种常见的神经网络模型。他们对递归神经网络(RNN)、身份-递归神经网络(I-RNN)、长期短期记忆(LSTM)、卷积神经网络(CNN)和卷积神经网络长短期内存(CNN-LSTM)体系结构五类神经网络进行实验比较。结果表明,深度学习方法,特别是递归神经网络系列和混合网络显示出优越的性能,最高检测率分别为0.994 5和0.987 9。主要原因是深度学习方法具有捕获层次特征提取和序列输入中的长期依赖性的固有机制。

以循环神经网络为基本框架的检测模型对随机性高的DGA域名检测准确率高,但对随机性低的DGA域名识别率低,导致对正常域名产生较高的误报。因此,此类网络在低随机性和基于字典的DGA域名成为其未来的主要发展点。

2.2.2GAN在域名检测的应用

Goodfellow等[37]在2014年提出的生成对抗网络(GAN)是一种深度学习[38]模型,为生成模型提供了一个新的框架。它借鉴博弈论中的纳什均衡思想[39],使生成器和鉴别器相互学习以生成模拟数据。生成器捕获实际数据的分布,而鉴别器估计样本来自训练集的概率。Anderson等[40]利用了生成对抗网络的思想,构建了基于深度学习的DGA域名生成对抗样本方法。在一系列的对抗轮回中,生成器学习生成检测器越来越难以检测的域名。相反地,检测器通过更新其参数以提高检测。其提出的生成对抗网络是基于预先训练的自动编码器(编码器+解码器),其中自动编码器先在Alexa的一百万个域中训练,以生成看起来更像真实域名的域。然后在生成对抗网络中竞争性地重新组装编码器和解码器,模型框架大致如图3所示。由于编解码器是预训练好的,因此,在对抗训练中,只训练生成模型的生成层和判别模型的逻辑回归层。最后用随机森林DGA分类器来验证生成的对抗样本的表现力。

图3 基于生成对抗网络的域名对抗样本生成模型

虽然在基于人工特征提取的随机森林DGA分类器上,对抗样本表现良好,但实验对比较少,只验证了在随机森林模型上的检测效果。之后,文献[41]也采用了GAN的思想来生成恶意域名对抗样本,不同之处在于编码器部分的设计,后者设计了基于的Ascall编码方式定义域名编、解码器对域名字符进行向量映射及逆映射,然后将处理好的数据输入对抗网络。接着用生成的样本与真实的数据的检测率作对比实验,以验证生成的对抗样本的有效性。

然而,我们知道GAN在自然图像分类处理上取得了较好的成果,但是朴素GAN在处理像序列这种离散数据上存在两个问题:一是生成器难以传递梯度更新;二是鉴别器难以评估非常完整的序列。因此由于域名数据的序列性,利用GAN生成域名数据应用上的研究较少。

在GAN研究应用上,大多数研究更多地关注生成模型,如图像超分辨率[42]、文本到图像合成[43],图像到图像翻译和语音增强[44]等。与其他的GAN变体不同,文献[45]将视角放在了鉴别器上,提出了一种基于生成对抗网络的僵尸网络检测增强框架,该网络通过生成器连续生成“假”样本,并扩展标记的数量,以帮助原始模型进行僵尸网络检测和分类。

2.3 基于附加条件的深度学习方法的检测

单纯的深度学习的检测方法在应对越来越智能的DGA域名上的表现不佳,为此后面的研究都在深度学习方法的基础上增加了附加条件以提高检测率。

LSTM在域名很长时,很难学会合理的表达,因此文献[46]提出了一个结合注意机制的LSTM模型。该模型将注意力集中在域中更重要的子串并改善域的表达,并在DGA检测中实现更好的性能,尤其是对于长域。在二元分类中,其误报率分别低至1.29%和假负率0.76%。陈立皇等[47]也提出了一种基于注意力机制的深度学习模型,不同的是,他们提出一种域名的多字符随机性提取方法,提升了识别低随机DGA域名的有效性。Satoh等[48]通过词法分析和Web搜索来估计域名随机性,但该方法对域名长度较短时,无法区分,不包含在字典中的域名会被误判。

为了逃避应用神经网络的检测技术,恶意域名已升级为多个单词的组合来欺骗神经网络的检测。为此,Curtin等[49]提出了smash分数来评估DGA域名像英文单词的程度,然后设计了一种新的模型:递归神经网络架构与域注册信息的组合。虽然实验在对matsnu和suppobox这种看起来像自然域名的家族的检测效果好,但是在那些看起来不像自然域名DGA系列表现效果欠佳。

3 结 语

以互联网为依托的经济贸易圈日益增大,网络信息安全成为了近年来关注的热点。以域名欺骗技术为首的网络攻击方式也在不断更新迭代。通过国内外在恶意域名特别是算法生成的域名上的检测研究分析,在恶意域名检测的对抗环境中,恶意软件从简单的利用域名生成算法生成伪随机字符串的域名来和控制与命令服务器连接,发展到为躲避神经网络检测的更智能化的域名,即由英语单词构成的域名。与之对抗的,网络安全研究人员也从手工提取域名字符特征、DNS流量特征的机器学习方法发展到利用神经网路自动学习特征的转变和改进来提高模型的检测率与性能。

大多数研究是基于域名字符特征的规律来识别合法域名与伪域名。由于DGA域名生成算法在不断地更新,新的DGA家族变体在不断涌现,特别是目前对由英语单词拼接的域名检测上效果不佳。DGA家族因其算法实现不同,不同家族生成的域名数据量不一,导致训练数据过少、识别率低等问题。虽然有研究提出了解决多类不平衡的算法,在一定程度上提高了检测率,但没有从根本上解决数据源的问题。另外现有的检测模型都是基于某一类问题而提出的,例如文献[49]提出的检测模型只针对像matsnu这样难以检测的家族,而在一般DGA家族的检测表现欠佳。针对以上问题,DGA域名的检测可以从以下三方面展开研究:

(1) DGA域名变体的研究 DGA域名变体生成的域名大多数为了躲避基于字符特征的模型检测,利用英语单词列表随机生成。虽然这类伪域名从马尔可夫模型或是n-gram分布的角度来看,都和正常域名没有太大的区别。但是通过观察这些域名可以看出域名的长度与正常域名相差较大,以及这些域名都是由几个毫无关联的单词拼凑而成,因此可以针对这两个角度对这类域名检测。

(2) 恶意域名对抗样本的生成方法研究 现有的伪随机域名生成方式大概分为两类:一类是通过逆向工程等手段破解DGA生成算法,还原DGA算法生成伪随机域名,但这类生成的域名大都具有固定模式,在有限数据集上训练的模型缺乏对新的DGA变体的预测。另一类就是通过生成对抗网络来生成对抗样本,文献[21]利用GAN生成了域名的对抗样本,并用实验证明了对抗样本在充当恶意域名数据及预测未知DGA家族上有可观的表现。但由于GAN主要是处理连续数据,对离散序列数据的上表现较差,所以针对文本序列数据处理,文献[50]提出了SeqGAN(Sequence Generative Adversarial)来解决朴素GAN在离散数据处理上的问题,并在语言文本上[51]有不错的表现。相信未来通过SeqGAN生成的域名对抗样本会有更高的质量。

因此,研究DGA恶意域名对抗样本的生成方法有助于预测未来可能出现的DGA变体域名。另外,通过训练恶意域名对抗样本也有益于解决由于DGA家族存在数据不平衡导致恶意域名检测识别差的问题。

(3) 恶意域名的检测模型 基于现有的检测模型,如何设计一个高效的检测模型是一个难点,因为伪域名越来越智能化,可以逃避一般的神经网络模型的检测。同时如何将模型设计成为一个既可以作为单独的模型,也可以作为更大的DGA检测系统的一部分,还可以包含网络流量,运用到实时的网络安全系统中也是未来的可发展点。

猜你喜欢
域名神经网络样本
用样本估计总体复习点拨
神经网络抑制无线通信干扰探究
电子制作(2019年19期)2019-11-23 08:42:00
推动医改的“直销样本”
如何购买WordPress网站域名及绑定域名
随机微分方程的样本Lyapunov二次型估计
基于神经网络的拉矫机控制模型建立
重型机械(2016年1期)2016-03-01 03:42:04
村企共赢的样本
复数神经网络在基于WiFi的室内LBS应用
腾讯八百万美元收购域名
基于支持向量机回归和RBF神经网络的PID整定