基于深度学习的虚假域名检测

2022-03-14 11:36:56刘子雁王云霄孔汉章
济南大学学报(自然科学版) 2022年2期
关键词:域名字符注意力

刘子雁,李 宁,张 丞,崔 博,王云霄,孔汉章

(国网山东省电力公司信息通信公司,山东 济南 250021)

互联网信息技术的普及为社会提供了极大的便利,但是开放的网络和标准化的软、硬件设施也给人们带来了诸多潜在的安全威胁。比较常见的恶意程序,如病毒、蠕虫和木马等,会窃取个人用户数据,破坏系统程序,攻击网络设备[1]。恶意程序进入目标系统后,通过感染大量设备形成僵尸网络,利用域名生成算法(domain generation algorithm,DGA)随机产生一系列虚假域名。僵尸网络通过不断查询虚假域名,接受来自指挥和控制中心的进一步破坏指令,对个人和企业的信息安全构成严重威胁。虚假域名检测是在众多域名中识别出用于僵尸网络与控制中心通信的虚假域名,通过对虚假域名进行检测和有针对性的防御,切断恶意程序与控制中心的连接,阻止恶意程序对系统的进一步破坏。随着机器学习以及深度学习技术的不断发展,通过数据挖掘的方法进行虚假域名检测成为近年来的研究热点[2-6]。现有基于深度学习的虚假域名检测方法大多直接将域名字符序列输入到相应模型中,没有充分挖掘域名字符序列中的局部和全局特征,导致虚假域名检测率不高,虚假域名无法被有效识别等问题。

为了实现基于深度学习的虚假域名检测,提高虚域名检测的准确性,本文中提出一种基于一维卷积神经网络和自注意力机制的虚假域名检测模型。该模型将输入域名拆分成字符序列,通过字符嵌入层将字符编码序列转换为字符向量序列;将字符向量序列分别输入到一维卷积神经网络和注意力机制网络中,分别提取字符向量序列的局部特征和全局特征;将局部和全局特征向量拼接,输入到多层感知机当中,得到该域名属于不同虚假域名种类的概率分布向量,最终实现虚假域名的多分类检测。

1 虚假域名检测

虚假域名检测已成为当前的研究热点。根据所用方法和技术的不同,现有检测方法大致可分为2类,即基于特征工程的机器学习方法和基于深度学习的字符序列建模方法。

1.1 基于特征工程的虚假域名检测

文献[7]中从域名系统(domain name system,DNS)数据中提取时间相关特征、DNS响应特征、生存时间(time to live,TTL)特征、域名文本特征等19种特征,并基于J48决策树构建了一种域名分类检测模型。文献[8]中通过对Alexa数据集中的10万个正常域名进行词法模式和发音规则分析,提取了字符分布模板、字符结构模板和单词发音等相关特征,随后基于随机森林实现对虚假域名的检测。与上述2种方法不同的是,文献[9]在以上构建的特征基础上,借助谷歌搜索引擎另外构建了网络搜索相关特征,将域名作为请求地址在谷歌浏览器中执行,统计前50个搜索结果中出现该域名的个数,并根据构建的词法特征和网络检索特征,构建以随机森林为基础的域名检测模型。文献[10]中详细分析了虚假域名和合法域名在字符分布上的不同,提出了多种字符特征提取规则,包括Kullback-Leibler(KL)距离、Jaccard指数(JI)和Edit距离,根据提取的特征,训练基于逻辑回归算法的域名分类器,实现对虚假域名的识别和检测。除了使用虚假域名的统计学特征,研究人员尝试通过引入辅助信息,如域名查询服务特征(WHOIS features)[11]、域名存在状态特征等,将这些特征作为补充信息输入到分类器中以优化域名检测算法的性能。

1.2 基于深度学习的虚假域名检测

近年来,深度学习算法在众多领域取得了突破性的进展。相比于基于特征工程的域名检测算法,深度学习算法能够自动地实现域名特征提取,避免了人为选择特征对检测结果的扰动,因此,众多学者尝试将深度学习算法引入到虚假域名检测模型中,例如文献[12]中提出将长短期记忆神经网络(long short-term memory networks, LSTM)应用到域名检测中。通过对域名进行字符级别的分词、嵌入,将域名中的字符转换成稠密向量,之后将字符向量序列输入到LSTM当中,得到域名表示向量,最后通过全连接层得到输出概率,以此概率值实现虚假域名检测,实验结果表明,LSTM算法在域名检测任务中取得了较好的结果。进一步地,文献[13]中将注意力机制应用到LSTM输出序列上,用来判断域名中的各个字符对检测结果的影响程度,实验结果表明,相对于单纯LSTM模型,LSTM和注意力机制相结合的深度模型检测结果更好。除了LSTM,一维卷积神经网络(1-dimensional convolutional neural network, Conv1D)以其强大的序列局部特征提取能力,在虚假域名检测任务中得到了广泛应用,例如文献[14]中提出一种基于一维卷积神经网络的域名检测模型,在特定数据集上,一维卷积神经网络检测算法取得了较好的实验效果。按照域名生成策略的不同,虚假域名分为不同的种类。相比于字符随机组合生成的域名(如iagoeama.com、adfmgnn.com),基于单词随机组合策略生成的域名(如yeahduck.com、lifthiddenlook.com)具有更强的欺骗性,检测难度更大,因此文献[15]中提出一种LSTM和一维卷积神经网络相结合的深度学习模型,提高了基于单词随机组合策略生成的虚假域名的检测性能。除此之外,其他形式的深度学习算法也被用于虚假域名检测[16-18]。

2 模型设计

本文中提出的基于深度学习的虚假域名检测模型如图1所示。该模型是一种端到端的深度学习模型,主要包含输入、数据预处理、字符嵌入、一维卷积神经网络、自注意力机制、多层感知机及输出共7个模块。其中一维卷积神经网络模块用来提取域名字符序列中的局部特征,自注意力机制模块用来提取域名字符序列中的全局特征。将两者拼接之后输入到多层感知机中,得到最终的预测概率值。

图1 基于深度学习的虚假域名检测模型

2.1 输入模块

模型输入为待检测域名字符串,例如合法域名www.baidu.com、www.tencent.com以及虚假域名jbaafin.com、ychxrucxi.info。

2.2 数据预处理模块

数据预处理模块将域名字符串处理成模型要求输入的形式。具体地,首先将域名字符串拆分成字符序列;然后根据构建的字符-索引字典,将字符序列转换成字符的索引序列;最后通过填充操作,将变长序列的相应位置填补成0。数据预处理之后的字符序列可表示为X={x0,x1,x2,…,xN},xi表示字符序列中的第i(0≤i≤N)个字符,N表示字符序列的最大长度。

2.3 字符嵌入模块

根据字符-索引字典,构建字符嵌入表(character embedding table)。通过查表的方式将以上字符序列表示为字符嵌入向量序列X=(x0,x1,x2,…,xN),xi∈D,其中D为字符嵌入向量特征维度。

2.4 一维卷积神经网络模块

该模块利用一维卷积神经网络实现域名字符序列局部特征提取。具体地,对X=(x0,x1,x2,…,xN)∈N×D进行卷积操作,

ci=f(W·Xi∶i+h-1+b),

(1)

式中:ci为特征值;f为sigmoid激活函数;W∈d×h为卷积核,其中该卷积核的宽度为d,高度为h;Xi∶i+h-1为第i个滑动窗口内的字符向量序列,i∶i+h-1表示字符向量序列的索引范围;b为偏置项。

经过卷积核的不断滑动,得到该卷积核下的特征映射向量c=(c0,c1,…,cn-h+1)。将该特征映射向量c输入到最大池化层,提取特征映射向量中的最大值,以保留显著特征,具体表示如下:

cmax=MaxPooling(c),

(2)

式中cmax为使用卷积核W提取到的字符序列中的最显著特征值,MaxPooling为最大池化操作。

为了提取字符序列中更加丰富多样的特征,本文中设计了如表1所示的一维卷积神经网络结构。利用不同高度h的卷积核,提取字符序列中不同的局部特征。通过将不同卷积核最大池化层输出特征拼接在一起,得到该卷积核尺寸下的输出向量oh。

表1 一维卷积神经网络结构

最后,将不同卷积核尺寸下的输出向量拼接在一起,得到最终的一维卷积神经网络输出向量oconv,

oconv=o2⨁o3⨁o4⨁o5,

(3)

式中⨁表示向量拼接符号。

2.5 自注意力机制模块

基于卷积神经网络的序列编码是一种局部的编码方式,只是对输入信息的局部依赖关系进行建模。虽然循环网络理论上可以建立长距离依赖关系;但是,由于存在信息传递的容量以及梯度消失问题,因此只能建立短距离依赖关系。自注意力机制用来计算输入序列中各个元素之间的注意力权重,然后根据该权重值的大小确定序列中其他元素对该元素表示的贡献大小,为此,本文中提出利用自注意力机制实现字符序列的全局特征提取。

为了提高模型性能,自注意力模型采用查询-键-值(query-key-value, QKV)模式进行注意力得分计算。与局部特征提取相同的是,全局特征提取模块输入序列也为X=(x0,x1,x2,…,xN)。对于该输入序列X,通过不同方式可将其映射到不同的向量空间中,即

Q=WqX∈Dq×N,

(4)

K=WkX∈Dk×N,

(5)

V=WvX∈Dv×N,

(6)

式中:Wq∈Dq×D、Wk∈Dk×D、Wv∈Dv×D分别为查询-键-值的线性映射参数矩阵,Dq、Dk、Dv为对应矩阵的维度;Q=(q0,q1,…,qN)、K=(k0,k1,…,kN)、V=(v0,v1,…,vN)分别为由查询向量、键向量和值向量组成的矩阵。

对于每一个查询向量qt∈Q,利用公式可得到对应的输出向量,即

(7)

式中:αti为注意力权重;hi∈H为基于注意力权重的加权输出向量;s(·)为注意力得分函数,本文中采用缩放点积的形式计算注意力得分,即

(8)

其中H=(h0,h1,…,hN)为自注意力机制输出向量序列。

将以上输出序列中的所有向量进行拼接,得到最终的自注意力神经网络输出向量osa,即

osa=h0⨁h1⨁…⨁hN。

(9)

2.6 多层感知机模块

将一维卷积神经网络的局部特征输出向量oconv和自注意力神经网络的全局特征输出向量osa进行拼接,得到聚合特征向量oagg=oconv⨁osa。将该聚合特征向量输入到多层感知机中,最终得到对应类别的概率分布。多层感知机模块结构如图2所示,该模块由输入层、第1层、第2层、第3层、输出层组成,其中第1层、第2层、第3层的神经元个数分别为512、256、64,各层神经元的激活函数是Sigmoid函数。经过多层感知机模块之后,得到待检测域名的输出向量。

表示向量oagg中的第i个元素值;yi表示该输入域名对应第i个域名类别的概率值。

2.7 输出模块

本文中提出的虚假域名检测模型是一种多分类模型,需要将待检测的域名分类到对应类别中,因此多层感知机中的输出层神经元个数与数据集中的域名类别个数是相同的。通过softmax激活函数,使输出层中的各个神经元输出值对应输入域名属于某一类别域名的概率分布。

3 实验

3.1 数据集

实验所用数据集来源于公开数据集。该数据集包含合法域名和虚假域名2个部分。合法域名来源于Alexa网站,该网站提供了互联网常用的域名列表,本文中从中抽取数据。虚假域名包含20种不同的类别(如nymaim、gameover、symmi等)。表2给出了部分合法域名和虚假域名的示例,其中合法域名共包含832 271个数据,虚假域名包含603 387个数据,数据集总量为1 435 658个。本文中提出的虚假域名检测模型可以将虚假域名分类到具体类别中。

表2 合法域名和虚假域名示例

实验中设置训练集、验证集和测试集的分割比例为8∶1∶1,训练集用来进行模型训练,验证集用来选择模型超参数,测试集用来对模型的检测性能进行测试。

3.2 评价指标

虚假域名检测属于多分类任务,需要将待检测域名分类成对应的类别。针对该多分类任务,采用表示被分为正例的样本中实际为正例比例的精确率P、表示预测出的正例占所有正例比例的召回率R以及用于综合衡量模型整体性能的精确率与召回率的加权调和平均值F1等指标来评价模型的性能。

式中:TP为真阳性,表示预测为正例,实际也为正例;FP为假阳性,表示预测为正例,实际为负例;FN为假阴性,表示预测为负例,实际为正例。

此外,在不考虑各个类别的数据量不平衡的情况下,采用宏平均对不同类别的评价指标进行算术平均。与宏平均不同的是,加权平均考虑了数据集中各个类别数据的不均衡问题,该指标更能反映出模型在数据不平衡情况下的模型性能。

3.3 实验设置

实验的运行环境如下:操作系统为Ubuntu 18.04.3 LTS;随机存储器(RAM)为128 GB DDR4@3200MHz;中央处理器(CPU)为Intel(R)Core(TM)i9-9980XE CPU@3.00 GHz;图形处理器(GPU)为2*NVIDIA TITAN RTX;主要环境库为Scikit-learn 0.22、TensorFlow 2.2.0。

实验的主要超参数包括训练批数、字符向量嵌入维度、模型迭代次数、模型学习率以及自注意力神经网络神经元个数,具体数值如表3所示。

表3 实验超参数设置

3.4 结果分析

实验选择常用的双向LSTM和多层感知机与本文所提出的模型(简称本文模型)进行对比。模型训练过程中的损失函数值变化如图3所示。可以看出,当模型训练达到37轮的时候,损失函数值达到最小,此时的模型测试结果如表4所示。从实验结果可以看出,由于多层感知机无法有效获取序列中的相互依赖特征,因此实验效果最差。双向LSTM理论上能够捕获序列中的依赖特征;但是,由于信息传递的容量以及梯度消失问题,对于虚假域名检测任务下的长字符序列而言,双向LSTM无法有效捕获序列中的长期依赖信息,因此实验效果次之。本文模型融合了一维卷积神经网络和自注意力机制在捕获局部及全局特征时的优点,因此整体上优于多层感知机和双向LSTM。本文模型的精确率、召回率和F1值的宏平均值分别为0.847、0.795和0.805,加权平均值分别为0.962、0.964和0.961,检测性能明显提升。

表4 不同模型的域名检测实验结果

图3 本文模型训练损失值变化曲线

4 结语

为了提高虚假域名检测的准确性,本文中提出了一种基于深度学习的虚假域名检测模型。该模型主要包含一维卷积神经网络模块和自注意力机制模块,其中一维卷积神经网络模块用于捕获字符序列中的局部特征,自注意力机制用于捕获字符序列中的全局特征。通过将2种特征进行融合,输入到多层感知机中,最终得到待检测域名对应各个类别的概率分布向量。实验结果表明,相比于常用的多层感知机和双向LSTM算法,本文模型具有较好的虚假域名检测性能。

猜你喜欢
域名字符注意力
寻找更强的字符映射管理器
让注意力“飞”回来
字符代表几
一种USB接口字符液晶控制器设计
电子制作(2019年19期)2019-11-23 08:41:50
消失的殖民村庄和神秘字符
如何购买WordPress网站域名及绑定域名
“扬眼”APP:让注意力“变现”
传媒评论(2017年3期)2017-06-13 09:18:10
A Beautiful Way Of Looking At Things
腾讯八百万美元收购域名
顶级域名争夺战:ICANN放出1930个通用顶级域名,申请者有上千家
互联网天地(2012年6期)2012-03-24 07:52:48