基于词向量的DGA域名检测深度学习模型与算法研究
发布时间:2020-11-16 11:05
网络安全的主要威胁之一是僵尸网络。僵尸网络的命令与控制服务器常使用域名生成算法(Domain Generation Algorithm,DGA)生成海量的短生命周期的DGA域名,僵尸网络的控制者通过DGA域名访问命令与控制服务器,对僵尸网络下达攻击指令。为了防范僵尸网络,网络安全研究者需要对DGA域名进行检测与分类。正确高效地检测DGA域名,将有助于研究者使僵尸网络的控制信道失效,进而达到防范僵尸网络的目的。因此DGA域名的自动检测成为信息安全领域的重要研究内容。近年来,机器学习方法广泛应用于DGA域名检测任务中,特别是随着深度学习的飞速发展,基于深度学习的DGA域名检测算法取得了一定的进步。但当前方法的分类模型较简单,对域名这类短文本的信息利用能力与特征提取能力有限,特别是在对DGA域名多分类的问题中,分类精度仍有较大的提升空间。本文从基于词向量的DGA域名深度学习模型与算法入手,结合词向量与深度学习模型等手段,对DGA域名检测算法进行多个方面的研究,提高域名分类精度。本文主要研究内容如下:(1)研究混合词向量深度学习模型的DGA域名检测方法。分析了基于字符和双字符组级别的混合词向量,以提高域名字符串的信息利用度,并建立了基于混合词向量方法的深度学习模型。最后设计了包含多种对比模型的实验,对混合词向量的有效性进行验证。实验结果表明基于混合词向量的深度学习模型在DGA域名检测与分类任务中相比只基于字符级词向量的模型有更好的分类性能,特别是在样本数量较少的DGA域名类别上的分类性能更优,证明了该模型的有效性。(2)研究基于混合词向量Transformer网络的DGA域名检测方法。构建了改进Transformer网络作为域名分类指示特征的提取网络,提高域名字符串有效特征的提取能力,并建立了基于混合词向量方法的改进Transformer网络DGA域名检测模型。最后进行了包含多种模型的DGA域名检测与分类对比实验,在OSINT和Alexa公开数据集上进行实验,将提出的算法与前沿DGA域名检测与分类算法进行对比,实验结果表明本文提出算法在DGA域名检测与分类任务上更为准确,验证了提出算法的有效性。本论文有图14幅,表10个,参考文献103篇。
【学位单位】:中国矿业大学
【学位级别】:硕士
【学位年份】:2020
【中图分类】:TP18;TP391.1
【部分图文】:
硕士学位论文122基本理论2BasicTheory本章介绍本文研究相关内容的基本理论。基于词向量的DGA域名检测深度学习模型与算法主要包含两部分内容,DGA域名的词向量表示与适用于DGA域名检测的深度学习模型与算法。为了使本文研究内容更易理解,本章主要介绍国内外研究现状中DGA域名识别使用的深度学习模型与算法的基本理论,与词向量表示的相关基本理论。2.1深度学习概述(IntroductionofDeepLearning)在第一章中本文介绍了若干种基于深度学习的DGA域名检测算法。由于深度学习具有自动发现特征、算法健壮性强、实时性高等优点,基于深度学习的DGA域名检测算法已普遍优于采用传统机器学习方法的DGA域名检测算法。深度学习算法是机器学习算法的一个子集,是监督学习算法。深度学习的基本模型由人工神经网络[60-62](ArtificialNeuralNetwork)构成。人工神经网络(以下简称神经网络)受到人们对大脑结构观察的启发,由多层人工神经元模型层层堆叠而成。人工神经元模型是参数化表示的可微分函数,神经网络包含多层神经元,每层神经元通过与前一层和后一层的连接相互作用,输入信号逐层作用到神经网络上,层数逐渐加深,人们受此启发提出深度学习的概念。人工神经网络结构如图2-1所示。图2-1人工神经网络结构示意图Figure2-1Structureofartificialneuralnetwork
硕士学位论文14函数,常用的非线性激活函数有:sigmoid函数,tanh函数,ReLU函数[65]等。这些函数的公式如下所示。(2-3)(2-4)(2-5)对应的函数图像如图2-2所示。图2-2常用的非线性激活函数图像Figure2-2Commonlyusednon-linearactivationfunctionimages这些非线性激活函数使得整个神经网络不仅仅由线性变换构成,因此从理论上只要神经网络足够复杂,就可以拟合出任一种由输入序列到输出序列的映射。2.1.2训练过程深度学习的学习目标就是找到合适的函数,使得在输入后能够产生期望的输出。非线性激活函数中不包含参数,,但实际上在包含其他种类神经网络的深度学习模型中,还可包含其他的参数,在这里为了表示方便我们仅以和为例进行说明。因此在整个函数空间上的搜索就退化成在参数空间上的搜索。那么如何在参数空间中搜索找到合适的参数,使得神经网络接收一个输入能够尽可能的产生正确的输出结果,这就是一个最优化问题。我们将解决该最优化问题的过程称为神经网络的训练[66](Training)。为了训练一个深度学习模型,我们需要一个包含大量的数据的数据集(DataSet)。在监督学习问题中,这些数据包含标签(Label),在分类问题中,标签代表的数据的真实类别,也就是。为了使得训练过程能够正常进行并检验该网络的训练效果,我们通常将数据集划分为训练集(TrainingSet)和测试集(Test1sigmoid()1xxe-=+tanh()xxxxeexee---=+0,0ReLU(),0xxxxì£=í>xy1:1:(;)kky=FxQ1:kx1:kyQ=W,bQWbQ1:ky
2基本理论19循环神经网络通常作为构成大型网络的组件,使用循环神经网络作为组件的各种体系结构[88-89]。我们对循环神经网络进行抽象化表示。我们使用来表示输入向量序列。从高层面看,循环神经网络是将任意长度的有序序列,长度记为,维度为,输出到一个维度为的向量。(2-15)对于的前缀序列,由公式2-15隐式定义输出向量,对于每个前缀序列,都有一个与之对应。输出向量常被用于后续预测工作。循环神经网络提供了一个用于对整个历史信息的处理框架,同时不需要序列建模中传统使用的马尔可夫假设。循环神经网络是循环定义的。循环神经网络包含一个函数,来接收上一个状态的输入,即状态向量,和当前的输入向量,函数通过计算返回一个表示当前状态的新的状态向量。之后状态向量通过决策函数映射成输出向量。循环神经网络的初始状态向量作为输入,共同构成输入的一部分。在构造循环神经网络时,与构造其他前向神经网络一样,我们需要指定输入序列和输出向量的维度,状态向量的维度可以与输出向量的维度不同。循环神经网络的计算过程如下。(2-16)(2-17)(2-18)函数和在所有序列位置的计算过程中都是相同的,循环神经网络在计算过程中通过状态向量追踪不同序列位置的状态,最终给出输出向量。循环神经网络单元的结构如图2-3所示。图2-3循环神经网络单元Figure2-3RecurrentNeuralNetworkUnit循环神经网络计算流程如图2-4所示。1:nxnindindixRoutdoutdnyR1:RNN()nny=x1:nx1:ixiy1:ixiyny1,...,ixxRi-1sixRisisOiy0sixiyis1:01:RNN(;)nn¢xs=y()iiy=Os1(,)iiiR-s=sxROisny
【参考文献】
本文编号:2886106
【学位单位】:中国矿业大学
【学位级别】:硕士
【学位年份】:2020
【中图分类】:TP18;TP391.1
【部分图文】:
硕士学位论文122基本理论2BasicTheory本章介绍本文研究相关内容的基本理论。基于词向量的DGA域名检测深度学习模型与算法主要包含两部分内容,DGA域名的词向量表示与适用于DGA域名检测的深度学习模型与算法。为了使本文研究内容更易理解,本章主要介绍国内外研究现状中DGA域名识别使用的深度学习模型与算法的基本理论,与词向量表示的相关基本理论。2.1深度学习概述(IntroductionofDeepLearning)在第一章中本文介绍了若干种基于深度学习的DGA域名检测算法。由于深度学习具有自动发现特征、算法健壮性强、实时性高等优点,基于深度学习的DGA域名检测算法已普遍优于采用传统机器学习方法的DGA域名检测算法。深度学习算法是机器学习算法的一个子集,是监督学习算法。深度学习的基本模型由人工神经网络[60-62](ArtificialNeuralNetwork)构成。人工神经网络(以下简称神经网络)受到人们对大脑结构观察的启发,由多层人工神经元模型层层堆叠而成。人工神经元模型是参数化表示的可微分函数,神经网络包含多层神经元,每层神经元通过与前一层和后一层的连接相互作用,输入信号逐层作用到神经网络上,层数逐渐加深,人们受此启发提出深度学习的概念。人工神经网络结构如图2-1所示。图2-1人工神经网络结构示意图Figure2-1Structureofartificialneuralnetwork
硕士学位论文14函数,常用的非线性激活函数有:sigmoid函数,tanh函数,ReLU函数[65]等。这些函数的公式如下所示。(2-3)(2-4)(2-5)对应的函数图像如图2-2所示。图2-2常用的非线性激活函数图像Figure2-2Commonlyusednon-linearactivationfunctionimages这些非线性激活函数使得整个神经网络不仅仅由线性变换构成,因此从理论上只要神经网络足够复杂,就可以拟合出任一种由输入序列到输出序列的映射。2.1.2训练过程深度学习的学习目标就是找到合适的函数,使得在输入后能够产生期望的输出。非线性激活函数中不包含参数,,但实际上在包含其他种类神经网络的深度学习模型中,还可包含其他的参数,在这里为了表示方便我们仅以和为例进行说明。因此在整个函数空间上的搜索就退化成在参数空间上的搜索。那么如何在参数空间中搜索找到合适的参数,使得神经网络接收一个输入能够尽可能的产生正确的输出结果,这就是一个最优化问题。我们将解决该最优化问题的过程称为神经网络的训练[66](Training)。为了训练一个深度学习模型,我们需要一个包含大量的数据的数据集(DataSet)。在监督学习问题中,这些数据包含标签(Label),在分类问题中,标签代表的数据的真实类别,也就是。为了使得训练过程能够正常进行并检验该网络的训练效果,我们通常将数据集划分为训练集(TrainingSet)和测试集(Test1sigmoid()1xxe-=+tanh()xxxxeexee---=+0,0ReLU(),0xxxxì£=í>xy1:1:(;)kky=FxQ1:kx1:kyQ=W,bQWbQ1:ky
2基本理论19循环神经网络通常作为构成大型网络的组件,使用循环神经网络作为组件的各种体系结构[88-89]。我们对循环神经网络进行抽象化表示。我们使用来表示输入向量序列。从高层面看,循环神经网络是将任意长度的有序序列,长度记为,维度为,输出到一个维度为的向量。(2-15)对于的前缀序列,由公式2-15隐式定义输出向量,对于每个前缀序列,都有一个与之对应。输出向量常被用于后续预测工作。循环神经网络提供了一个用于对整个历史信息的处理框架,同时不需要序列建模中传统使用的马尔可夫假设。循环神经网络是循环定义的。循环神经网络包含一个函数,来接收上一个状态的输入,即状态向量,和当前的输入向量,函数通过计算返回一个表示当前状态的新的状态向量。之后状态向量通过决策函数映射成输出向量。循环神经网络的初始状态向量作为输入,共同构成输入的一部分。在构造循环神经网络时,与构造其他前向神经网络一样,我们需要指定输入序列和输出向量的维度,状态向量的维度可以与输出向量的维度不同。循环神经网络的计算过程如下。(2-16)(2-17)(2-18)函数和在所有序列位置的计算过程中都是相同的,循环神经网络在计算过程中通过状态向量追踪不同序列位置的状态,最终给出输出向量。循环神经网络单元的结构如图2-3所示。图2-3循环神经网络单元Figure2-3RecurrentNeuralNetworkUnit循环神经网络计算流程如图2-4所示。1:nxnindindixRoutdoutdnyR1:RNN()nny=x1:nx1:ixiy1:ixiyny1,...,ixxRi-1sixRisisOiy0sixiyis1:01:RNN(;)nn¢xs=y()iiy=Os1(,)iiiR-s=sxROisny
【参考文献】
相关期刊论文 前2条
1 王海龙;龚正虎;侯婕;;僵尸网络检测技术研究进展[J];计算机研究与发展;2010年12期
2 诸葛建伟;韩心慧;周勇林;叶志远;邹维;;僵尸网络研究[J];软件学报;2008年03期
本文编号:2886106
本文链接:https://www.wllwen.com/shoufeilunwen/xixikjs/2886106.html