首页> 中国专利> 基于RBL-CNN-MA的DGA域名家族多分类检测方法

基于RBL-CNN-MA的DGA域名家族多分类检测方法

摘要

本发明提供一种基于RBL‑CNN‑MA的DGA域名家族多分类检测方法。该方法包括:将待分类DAG域名数据输入至RoBERTa预训练模型,得到域名的句嵌入特征向量和字嵌入特征向量;将所述字嵌入特征向量输入至双向LSTM层来提取长距离特征,得到一个融合域名上下文关联性的文本矩阵;将所述文本矩阵输入至CNN层来提取局部特征;将CNN层的输出输入至多头注意力层以从多个维度进行特征提取;将多头自注意力层的输出与RoBERTa预训练模型输出的句嵌入特征向量进行融合,得到一个新的句嵌入特征向量;将所述新的句嵌入特征向量输入至全连接层,得到待分类DGA域名数据的分类结果。

著录项

  • 公开/公告号CN116644366A

    专利类型发明专利

  • 公开/公告日2023-08-25

    原文格式PDF

  • 申请/专利号CN202310527804.6

  • 申请日2023-05-09

  • 分类号G06F18/2431(2023.01);G06F18/25(2023.01);G06F18/213(2023.01);G06N3/045(2023.01);G06N3/0442(2023.01);G06N3/0464(2023.01);G06N3/08(2023.01);H04L9/40(2022.01);H04L61/4511(2022.01);

  • 代理机构郑州大通专利商标代理有限公司 41111;

  • 代理人刘莹莹

  • 地址 450000 河南省郑州市高新区科学大道62号

  • 入库时间 2024-01-17 01:24:51

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-09-12

    实质审查的生效 IPC(主分类):G06F18/2431 专利申请号:2023105278046 申请日:20230509

    实质审查的生效

说明书

技术领域

本发明涉及网络安全技术领域,尤其涉及一种基于RBL-CNN-MA的DGA域名家族多分类检测方法。

背景技术

攻击者为了隐藏其C&C服务器,大多数恶意软件通过通常使用多种域名生成算法(DGA)自动为C&C服务器生成与良性域名相似的DGA域名,以此来躲避检测。因此,学术界展开了对DGA检测的广泛研究。

根据《CNCERT互联网安全威胁报告》的数据显示,我国境内受僵尸网络控制的服务器IP近2万个,对DGA进行全面的测量研究发现这些僵尸网络使用了来自不同DGA家族的域名,为安全人员的溯源带来了极大的挑战。因此,准确地检测DGA域名并发现其所属的DGA家族,有利于安全人员对其溯源,及时地切断僵尸网络与C&C服务器的连接,保障人们的隐私和财产安全。

然而,现有的方法较容易被攻击者避开且针对单词DGA域名检测效果较好,但对于字符型DGA域名却检测效果不佳等问题,多数模型对于DGA域名家族的多分类检测准确率较低,无法实现对DGA家族的精准溯源。

发明内容

针对现有的域名检测方法对字符型DGA域名检测效果较差的问题,本发明提供一种基于RBL-CNN-MA的DGA域名家族多分类检测方法。

本发明提供的基于RBL-CNN-MA的DGA域名家族多分类检测方法,包括:

将待分类DAG域名数据输入至RoBERTa预训练模型,得到域名的句嵌入特征向量和字嵌入特征向量;

将所述字嵌入特征向量输入至双向LSTM层来提取长距离特征,得到一个融合域名上下文关联性的文本矩阵;

将所述文本矩阵输入至CNN层来提取局部特征;

将CNN层的输出输入至多头注意力层以从多个维度进行特征提取;

将多头自注意力层的输出与RoBERTa预训练模型输出的句嵌入特征向量进行融合,得到一个新的句嵌入特征向量;

将所述新的句嵌入特征向量输入至全连接层,得到待分类DGA域名数据的分类结果。

进一步地,所述文本矩阵的维度为[批大小,字典长度,Bi-LSTM层的隐藏单元数]。

进一步地,所述CNN层中设置有四个大小不同的卷积核。

进一步地,在所述CNN层中进行动态k-max池化。

进一步地,所述多头注意力层的头数为4。

本发明的有益效果:

(1)本发明基于RoBERTa预训练模型,提出了RBL-CNN-MA网络模型,将域名字符串看作一维文本序列,将域名检测任务转换为特殊的文本分类任务,同时结合RoBERTa预训练模型的两个输出,再结合多头注意力来学习域名之间的语义关系,实现DGA域名家族的多分类检测任务,可以有效检测字符型DGA域名,以及可以有效地区分各个DGA域名家族,实现更好的多分类检测溯源。

(2)与常见的深度神经网络模型相比,RBL-CNN-MA模型的优势在于将RoBERTa预训练模型和LSTM、CNN、多头注意力相结合,从多个维度抓住域名序列更重要的特征信息,从而提升了DGA域名家族多分类任务的检测溯源效果。在不同实验中,对比验证了RBL-CNN-MA模型对各个家族分类准确率的提升。

附图说明

图1为本发明实施例提供的基于RBL-CNN-MA的DGA域名家族多分类检测方法的流程示意图;

图2为本发明实施例提供的多头注意力结构图;

图3为本发明实施例提供的五种不同模型的查全率、查准率和F1指标;

图4为本发明实施例提供的多头注意力的不同头数下的对于RBL-MA模型的准确率Accuracy和查全率Recall曲线;

图5为本发明实施例提供的多头注意力的不同头数下的对于集成学习RCNN-BL-MA模型的准确率Accuracy和查全率Recall曲线;

图6为本发明实施例提供的多头注意力的不同头数下的对于RBL-CNN-MA模型的准确率Accuracy和查全率Recall曲线;

图7为本发明实施例提供的多头注意力的不同头数下对于三个模型的损失值Loss曲线;

图8为本发明实施例提供的基于RBL-CNN-MA模型的混淆矩阵图;

图9为本发明实施例提供的基于RoBERTa预训练模型的混淆矩阵图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

通过对基于RoBERTa多分类任务中检测准确率较低的DGA域名家族进行实验和结构分析,发现大部分识别准确率较低的家族域名数据量小以及域名组成非常杂乱,因此猜测RoBERTa模型无法完整学习到域名序列中所含有的隐式特征且数据量过小也会在一定程度上影响了检测的准确率。

例如,pykspa和ranbyus家族,它们均以时间为种子,进而构成连续或分散的随机字符序列;ud2、ud3、shifu家族域名长度较长且杂乱无章,序列中包含大量的隐式特征;pykspa、ud等家族域名数据集过小。而RoBERTa预训练模型可能没有学习到这些特征或者不能做到充分学习,导致句嵌入特征向量(pooler output)包含的整体特征无法准确地对各个DGA域名家族进行分类,所以在这些DGA域名家族上造成了分类准确率不高的问题。

实施例1

考虑到RoBERTa模型有两个输出,一个是包含域名序列整体特征的句嵌入特征向量pooler output,另一个是包含域名序列中所有字符特征的字嵌入特征向量sequenceoutput。同时,考虑到DGA是一种伪随机的生成算法,尽管不同的DGA家族域名差别巨大,但由于其各自生成算法的伪随机性,所以使得各个DGA家族域名其实都包含了丰富的隐式特征,这与自然语言处理任务十分相似。因此本发明实施例将域名字符串看作一维文本序列,将域名检测任务转换为特殊的文本分类任务,同时结合预训练模型的两个输出,再结合多头注意力来学习域名之间的语义关系,实现DGA域名家族的多分类检测任务。

如图1所示,本发明实施例提供一种基于RBL-CNN-MA的DGA域名家族多分类检测方法,包括以下步骤:

S101:将待分类DAG域名数据输入至RoBERTa预训练模型,得到域名的句嵌入特征向量和字嵌入特征向量;

S102:将所述字嵌入特征向量输入至双向LSTM(Bi-LSTM)层来提取长距离特征,得到一个融合域名上下文关联性的文本矩阵;

具体地,不同DGA家族的域名由于其生成算法的不同,所以在表现形式上也有所不同,但它们在字符组成与结构上仍然存在一定的依赖关系。因此,要充分挖掘域名序列上下文信息,得到一个包含域名序列整体特征的新向量。

对于DGA域名家族多分类任务而言,将预处理后的域名字符序列经过RoBERTa预训练模型得到其序列中所有字的字嵌入特征向量S

利用Bi-LSTM的特点从正反方向来获取长距离内每个域名字符所包含的显式和隐式的特征,这有利于更好地学习区分不同DGA域名家族的差异。

S103:将所述文本矩阵输入至CNN层来提取局部特征;

具体地,正常域名在结构特征上符合自然语言的特点,而字符DGA域名的组成形式呈现出发散状态。因此本实施例采用一维CNN,在Bi-LSTM层提取域名的全局特征的基础上获取新的局部语义特征,提高DGA域名家族多分类的准确率。

如图1所示,在CNN中设置了四个大小不同的卷积核,通过从多个特征维度提取DGA域名序列中的局部特征,进一步提取长距离特征下DGA域名字符间的隐式模式。

CNN关键的部分是进行卷积运算的卷积核,其维度大小为h*n。可以将输入的域名向量表示为矩阵H∈R

c

其中,c

卷积核用于对域名矩阵进行卷积操作,最终获取特征图c,具体表示为如下公式:

C=(c

其中,C为域名文本经过卷积核所形成的特征图,c∈R

S104:将CNN层的输出输入至多头注意力(Multihead-Attention)层以从多个维度进行特征提取;

具体地,多头注意力层负责接收一维CNN的输出,每一个头(head)就代表了一个特征子空间,其目的是通过不同的表征子空间学习域名序列中各个字符所代表的不同含义。

例如,单词bear既有熊的意思,又有忍受的意思,不同的含义就由不同的特征子空间进行学习。

因此,使用多头注意力来获取域名序列各个字符和单词的特征重要度,实现模型对各个字符和单词的注意力权重调配,分配较小的权重来降低对填充字符和不重要字符的关注度;反之,则分配较大的权重来增加对重要特征的关注度。

在实际应用中,Self-Attention机制通常采用缩放点积注意力机制。如图2所示,Q、K、V是固定的单值,其值先经过线性层和缩放点积注意力层(即多头),之后将向量进行拼接,然后进行线性变换,最终获取到注意力输出结果,计算公式如下所示:

其中Q∈R

多头注意力机制则是在缩放点积注意力基础上分成多个头,也就是在多个特征子空间上有多个Q、K、V以计算每个空间上的注意力输出,每个空间可能会侧重序列表达上的不同特征模式,最终将这些输出向量合并在一起,得到最终的输出。计算公式如下:

MultiHead(x)=Concat(head

head

其中W

在DGA域名家族多分类检测任务中,将一维CNN的输出分别经过三个线性层得到了多头注意力层的输入Q、K、V,并通过多头注意力层获取了域名数据X

S105:将多头自注意力层的输出与RoBERTa预训练模型输出的句嵌入特征向量进行融合,得到一个新的句嵌入特征向量;

S106:将所述新的句嵌入特征向量输入至全连接层(也称线性层),得到待分类DGA域名数据的分类结果。

实施例2

在上述实施例1的基础上,为了进一步缩小检测模型对分类任务而言相对不重要域名特征的关注,本发明实施例对CNN层作进一步改进,其余结构不变。

在池化层通过固定步长d对域名特征进行采样以删掉部分特征,一般采用最大池化操作,但这可能会丢失域名序列字符之间的位置信息,如果序列中存在某些转折或更复杂的关系模式,神经网络就无法学习到,所以在一维CNN中进行了动态k-max池化,其中k是进行动态计算得到的。在卷积的输出结果中,对句子长度这一维度进行池化操作,选择最大的k个值。池化之后将所得的特征拼接、融合后输入多头注意力层。

实施例3

为了证明RBL-CNN-MA模型对DGA域名家族的多分类效果,本实施例通过多组实验验证了RBL-CNN-MA模型与其他神经网络对比所具有的优势。同时为了更好的衡量模型性能,采用了宏平均(M-avg)、加权平均(W-avg)等评价指标量化模型的多分类准确率。

(1)数据集准备

实验中所采用的数据集来源分别为:(1)从Alexa网络所公开收集的访问量排名前1M的良性域名;(2)来自360和DGArchive公开数据源的DGA域名和BiGRU-ATT模型生成的DGA域名。

利用生成模型生成的DGA数据主要用来扩充数据量较小的新型变种DGA域名家族,以提高模型对这些新型变种DGA域名家族的学习能力。实验中共选择了29类来自不同家族的DGA域名,其中各个DGA域名家族和良性域名的数据量如表1所示,其中80%作为训练集,20%作为测试集,分别进行模型的训练与测试,寻找最优的模型参数,完成DGA域名家族的多分类任务。

表1实验数据集分布

(2)实验与超参数设置

为了测试RBL-CNN-MA模型的DGA域名家族多分类模型的性能,设计了如下实验:

实验1:CNN与Bi-LSTM在不同组合方式下的性能比较;

实验2:增加多头注意力机制后的神经网络性能比较;

实验3:基于RBL-CNN-MA模型的消融实验;

本实验经过不断调参优化,确定模型的超参数如表2所示。

表2模型超参数设置

(3)融合不同神经网络组合方式的DGA域名分类

在RoBERTa预训练模型的基础上,将RoBERTa预训练模型分别结合CNN、Bi-LSTM、CNN-BiLSTM、BiLSTM-CNN以及CNN-BiLSTM集成学习来进行DGA域名家族多分类检测任务,从中选出分类效果最好的三个模型进行后续的模型改进。因此,本节将首先分析各个模型的实现方式。

RCNN模型是在RoBERTa预训练模型后拼接一维CNN网络,具体来说就是将RoBERTa的字嵌入特征向量(squence output)直接传入CNN中,利用不同的卷积核从多个维度提取局部特征,最后将多个特征concat后再与RoBERTa预训练模型输出的句嵌入特征向量(pooler output)合并作为最后域名序列特征的输出。

RBiLSTM模型实现方式与RCNN模型类似,不同之处在于,将CNN替换为Bi-LSTM;

RCNN-BiLSTM模型同样是将RoBERTa的squence output直接传入CNN中,再将经过CNN得到的输出作为Bi-LSTM的输入,最后将Bi-LSTM的输出与pooler output合并作为进行多分类的特征向量。需要注意的是,在进行CNN时不应经过池化层,这样才能有效地保证域名文本后续的位置信息是可以学习到的;

RBiLSTM-CNN与RCNN-BiLSTM的实现方式是类似的,不同之处在于在RBiLSTM-CNN后面是可以接池化层的,因为Bi-LSTM在进行特征提取时已经将位置信息考虑在内,所以最后将经过池化层后得到的向量与pooler output合并作为进行多分类的特征向量;

集成学习RCNN-BiLSTM模型则是将RoBERTa的squence output分别输入CNN和LSTM中,之后将CNN和LSTM的输出进行合并,最后再将合并得到的向量与pooler output合并作为进行多分类的特征向量。

表3融合不同神经网络组合方式的DGA域名分类

在检测模型时,通过横向比较查全率、查准率和F1指标。实验结果见表3,整体上检测性能大致排列为模型分类准确率由高到低依次为RBiLSTM-CNN>集成学习RCNN-BiLSTM>RBiLSTM>RCNN-BiLSTM>RCNN。这个实验将为后续改进检测模型架构提升检测效果提供了基线对照。

通过对比图3中各项评价指标,由比较结果可以看出,RCNN的分类准确率最低,这可能是由于CNN对每个字嵌入的编码向量只进行了局部特征的提取,忽略了某些域名序列间的长距离和上下文方面的联系特征。RCNN-BiLSTM模型分类准确率仅高于RCNN,引起这个局限性的原因可能是在于CNN先学习了字嵌入编码向量的局部特征,之后在这些拼接的域名局部特征上再进行长距离的学习,这可能会忽略掉域名序列原本所存在的部分特征,因而导致模型效果不佳。RBiLSTM模型从正反向两个方向来分别学习域名序列的上下文语义联系,在一定程度上好于RCNN-BiLSTM模型。因此,为了更好地进行后续模型最佳性能的优化环节,选取了表现最佳的三个模型分别为RBiLSTM-CNN、集成学习RCNN-BiLSTM和RBiLSTM,之后将在这三个模型基础上结合多头注意力机制,以分析模型对DGA域名家族多分类的检测效果。

(4)融合多头注意力机制的DGA域名家族多分类

为了让模型减少对无用信息的关注度,增加对域名家族多分类重要特征的关注,本节在上节实验效果最优的三个模型的基础上,结合注意力机制以进行进一步的改进。最优的三个模型均采用了多头注意力机制,分别将其命名为RBL-CNN-MA(RoBERTa-LSTM-CNN-Multihead-Attention)、RBL-MA(RoBERTa-LSTM-Multihead-Attention)、集成学习RCNN-BL-MA(RoBERTa-集成学习CNN-LSTM-Multihead-Attention)。实验结果表明,所有模型均达到了不错的效果,证明了融合多头注意力机制的神经网络模型可以提升对DGA域名家族的多分类。

在实验中,将多头注意力层分别添加到了RBL模型中BiLSTM层之后、RBL-CNN模型中CNN层之后和集成学习RCNN-BL的BiLSTM层之后。为了使模型效果最优,首先对多头注意力的头数进行了调参,发现head的大小会影响模型的学习能力,只有选取适合的头数才能使模型达到最优的效果,但是有时选择的头数过多反而会影响模型性能。图4到图7所示为不同模型下其头数所对应的准确率、查全率及损失值的变化。

结果表明,如图4至图7所示,当head的数量为4时,评价指标值达到最优,当后续再增加头数时,模型的指标反而会略有下降。所以由此可以得出结论,增加过多head的数量是无法继续从新增的特征子空间中捕获到DGA域名字符间深层次的相关性,因此本节中选取4为模型头的数量。

在确定了头数后,将域名数据分别输入搭建好的三个神经网络模型中,最终得到分类效果如表4所示。从表4中可以看出三种方法在性能方面是各有优劣的,其中RBL-MA模型是训练速度最快的,而RBL-CNN-MA模型则是各项指标最高的。

表4测试的效果对比

从整个模型的训练过程来看,RBL-MA模型的训练速度更快但是其查准率一般,这可能是由于LSTM只提取了长距离序列的特征,无法完整的表达域名序列内部包含的所有细粒度层面的语义信息;而集成学习RCNN-BL-MA模型则将局部特征和长距离特征合并后进行多头注意力的处理,使模型对域名重要信息给予较大的关注度,从效果来看该模型分类准确率高于RBL-MA,但其需要时间较长,效率较低;RBL-CNN-MA模型在三个模型中取得了最优的效果。该模型首先利用BiLSTM提取域名序列的长距离特征,得到一个融合了上下文语义的新文本矩阵,随后将其输入CNN进行局部特征的提取,由于CNN较难实现对来自不同维度所提取的多个特征的重要度进行区分,所以使用多头注意力机制来增加域名文本位置信息的关联性表示,增强了模型的可解释性。如表4所示,从实验结果上来看,RBL-CNN-MA模型分类准确率最高,且训练速度在三个模型中排名第二,同时兼顾了准确率和效率。

基于RoBERTa预训练的DGA域名家族多分类检测模型的结果可知,部分域名家族的检测准确率低,如ranbyus家族和shifu家族等,所以为了证明RBL-CNN-MA模型对这些家族分类效果的提升,输出了该模型下各个家族域名的检测准确率。如表5所示为RBL-CNN-MA模型对各个DGA域名家族分类的指标,可以看出,RoBERTa预训练模型中识别准确率较低的conficker、pykspa等家族,在RBL-CNN-MA模型下其识别准确率得到了明显的提升,证明了该模型相比于其他神经网络模型可以更好地学习到DGA域名序列中包含的隐式与显式特征,RBL-CNN-MA模型不仅进一步提升了基于单词列表的DGA域名家族的识别性能,也增强了这些域名数据量小的新变体家族以及组成结构十分杂乱的域名家族的识别性能。

表5RBL-CNN-MA模型的整体分类性能

为了更详细地表现RBL-CNN-MA模型的预测性能,在图8中给出了该模型的混淆矩阵。在这个矩阵中,其中每一行代表的是已知域名对应的实际家族类别,每一列表示的是在基于RBL-CNN-MA深度学习模型下所预测的域名家族类别,并且每一小格的值都是通过对实际值和预测值的数量进行归一化后才得到的在[0,1]范围内的值。在右侧的图例中相对清晰地看到,当一个小格的数值越大,其对应的颜色就越深,也就是说模型的检测效果是较好的,反之亦然。

与图9中的基于RoBERTa预训练模型的DGA域名检测结果对比,基于RBL-CNN-MA模型在对角线上有更多深色的小格子。这也说明了提出的基于RBL-CNN-MA模型比基于RoBERTa预训练模型,其对单词型和字符型DGA域名家族的预测都相对更加准确,特别是对于数据较少的类和难以识别的复杂的类,基于RBL-CNN-MA模型也能很好地进行预测,以实现较好的检测结果。比如,相比于图9而言,在图8中的ranbyus家族conficker家族以及pykspa家族等,它们的预测结果是可以通过对角线的颜色来进行更加清晰的解释,在RBL-CNN-MA模型下这些DGA域名家族所对应的小格子呈现出相对更深的颜色色调,说明对这些DGA域名的分类相对更加准确,因此通过混淆矩阵来更直观地解释和确认所提出的RBL-CNN-MA模型的优越性。

通过上述实验可以得出结论,RBL-CNN-MA模型在DGA域名家族多分类任务中分类准确率最高,在一定程度上是可以应用在现实场景的DGA域名检测任务中,以进一步实现对DGA域名家族的溯源工作。

(5)模型消融实验

为了更有力地证明RBL-CNN-MA模型整体性能的有效性,本节对其进行消融验证以证明模型的架构组成之间是合理有效的,并且各个组成部分均在RBL-CNN-MA模型整体架构中发挥到相应的作用。实验中将RBL-CNN-MA模型拆分为各个小的组成部分,然后通过将各个部分分别进行DGA域名家族的多分类检测任务来判断它们对模型整体性能的影响程度。由于前两个实验已经证明了BiLSTM层、CNN层、多头注意力层对模型效果的提升,所以本节将RBL-CNN-MA模型拆分为句嵌入、字嵌入+BL-CNN-MA两个不同模块。通过对其中一个模块进行移除操作来判断这些模块对模型性能的影响程度,实验结果如表6所示。

表6模型消融实验

可以看出,移除句嵌入模块后的RBL-CNN-MA模型,其查准率下降了0.89%左右,查全率下降了0.943左右,F1

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号