基于字典生成算法的域名检测方法

文章目录

  • 前言
  • 一、基于字典的DGA域名检测生成原理
  • 二、检测基于字典DGA的CL网络模型
    • 1.CNN
    • 2.LSTM
    • 3.CL网络模型
  • 总结


前言

僵尸网络、勒索病毒等恶意软件往往将命令与控制服务僵尸网络勒索病毒等恶意软件往往将命令与控制服务器(Cd d Cl SC&C)的连接信息(如域名的情报或从事其他恶意活动,严重威胁着国家安全和社会稳定,这种方式实现简单,但很容易被黑名单封堵。为躲避黑名定这种方式实现简单但很容易被黑名单封堵为躲避黑名单封堵很多 恶 意软件采用域名生成算法生成。

但随着网络对抗力度的加大,攻击者为了更好的躲避检测与封堵,一些僵尸网络采用基于字典的DGA算法,与早期基于随机字符的DGA算法不同,基于字符DGA算法通过从内嵌的单词列表中随机选取一个或多个单词组合生成域名,由于良性域名命名规则相近,生成恶意域名更不易检测。

一、基于字典的DGA域名检测生成原理

基于字典的 DGA 生成域名时,是以有意义的单词为单位,通常从一个或多个单词列表中抽取单词,组合生成域名,位通常从个或多个单词列表中抽取单词组合生成域名名时,先从动词列表中随机抽取单词,然后在名词列表中随机抽取单词,进行组合生成域名,如域名urlzt.com。先后从生成域名时单词列表中随机单词,组成生成域名,如qq-qq.com

虽然良性域名与基于字典的DGA域名命名规则相近,但虽然良性域名与基于字典的DGA域名命名规则相近但单词列表及从不同列表中取词的顺序,因此,可通过学习字典单词列表及从不同列表中取词的顺序因此可通过学习字典DGA 域名所有单词列表中的单词及不同列表


二、检测基于字典DGA的CL网络模型

1.CNN

CNN 是深度学习的代表算法之在图像识别领域取巨到广泛应用。在文本处理过程中,一维卷积窗口在文本上滑动,提取不同位置的单词序列特征。卷积核与词向量进行卷积计算,生成每个位置有效的特征映射:
基于字典生成算法的域名检测方法_第1张图片

2.LSTM

LSTM是种能够学习长期依赖性的网络模型广泛应用于自然语言处理领域LSTM主要通过“门”结构控制信息的输入与输出LSTM引入了3个门即输入门、遗忘门、和输出门。这三个门主要用于捕获各个状态的依赖关系。

3.CL网络模型

CL模型主要由字符切入层、特征提取层和全连接层三部分组成,网络模型如图所示:基于字典生成算法的域名检测方法_第2张图片
(1)嵌入层
嵌入层对输入域名的有效字符(小写字母、数字和连字字符)进行编码,每个祖父通过128维的向量表示。

(2)特征提取层
通过选取不同大小卷积核的CNN网络学习不同长度的grams特征,将CNN学习到的特征输入到LSTM中进行再次学习grams之间的上关系,最后将所有LSTM网络的输出进行Concatenate。

(2)全连接层
全连接层在神经网络中起到“分类器”的作用,将学习到的特征表示映射为样本标记的类别属性,即良性域名或恶意域名。使用binary_crossentropy熵衡量模型的损失,sigmoid作为模型的分类函数。

CL模型的伪代码:

#The author:www.urlzt.com 域名检测-罗晶
input = Input( )
#嵌人层
embedding = Embedding( )(input_ layer)
#特征提取层
lstms=[]
kernel_ sizes= [n,n,.,n]
for kernel_ size in kernel_ _sizes:
cnn =
Conv ID(filters, kernel_ size )( embedding)
lstm= LSTM( )(cnn)
lstms.append( lstm)
con = Concatenate( )(lstms)
#全连接层
dense= Dense( 128)(con)
output = Dense( 1 ,activation="sigmoid" )(dense)
model = Model( inputs, outputs)

总结

一种卷积神经网络与长短时记忆网络(CL)相结合的基于字典的DGA检测模型,该模型利用卷积神经网络与长短时记忆网络提取n-grams信息及其上下文特征。

你可能感兴趣的:(域名检测,php,html,html5,深度学习,算法)