您的当前位置:首页正文

一种基于DNS请求行为与域名构成特征相结合的僵尸网络检测法[发明专利]

2024-07-20 来源:爱go旅游网
(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号 CN 110324273 A(43)申请公布日 2019.10.11

(21)申请号 201810261814.9(22)申请日 2018.03.28

(71)申请人 蓝盾信息安全技术有限公司

地址 510665 广东省广州市广州高新技术

产业开发区东明二路5号A326房(72)发明人 杨育斌 尧涛 柯宗贵 (51)Int.Cl.

H04L 29/06(2006.01)H04L 29/12(2006.01)

权利要求书1页 说明书4页 附图1页

(54)发明名称

一种基于DNS请求行为与域名构成特征相结合的僵尸网络检测法(57)摘要

本发明公开了一种基于DNS请求行为与域名构成特征相结合的僵尸网络检测法,该发明通过分析DNS报文中主机的域名请求组行为,重点从域名自身特征出发,根据域名的一些特征(域名的随机性、信息熵、马尔科夫链、元/辅音概率、字符之间的连续性)建立特征工程,通过机器学习算法模型检测出DGA算法生成的域名,并提取出所有可疑的感染主机集合、恶意域名集合以及服务器IP地址集合。利用C&C服务器IP地址信息,建立IP黑名单,对感染主机与C&C服务器之间的通信进行封堵。CN 110324273 ACN 110324273 A

权 利 要 求 书

1/1页

1.一种基于DNS请求行为与域名构成特征相结合的僵尸网络检测法,该发明通过对ISP的DNS流量进行检测与分析,构建机器学习算法分类器模型的输入特征;通过采集网络中主机的域名请求信息,利用域名本身的字符特征,结合僵尸网络中主机请求组行为,通过机器学习算法分类器对集合内主机请求的失效域名进行检测,检测出感染主机集合及C&C服务器IP地址。

2.根据权利要求1所述的一种基于DNS请求行为与域名构成特征相结合的僵尸网络检测法,其特征在于构建机器学习算法分类器模型的输入特征包括:entropy(信息熵)、getdomainpro(基于马尔科夫链生成域名的概率)、length(域名长度)、reletterpro(重复字母概率)、vowelpro(元音概率)、digitpro(数字概率)、conti_consonantpro(连续辅音概率),conti_digitpro(连续数字概率)、time_accessfre(域名在短时间内被集中访问的频率)。

3.根据权利要求1所述的一种基于DNS请求行为与域名构成特征相结合的僵尸网络检测法,其特征在于,结合僵尸网络中主机请求组行为,过机器学习算法分类器对集合内主机请求的失效域名进行检测,检测出感染主机集合及C&C服务器IP地址。

2

CN 110324273 A

说 明 书

1/4页

一种基于DNS请求行为与域名构成特征相结合的僵尸网络检

测法

技术领域

[0001]本发明涉及一种互联网通信技术领域,特别涉及一种基于DNS请求行为与域名构成特征相结合的僵尸网络检测法。

背景技术

[0002]僵尸网络是攻击者出于某种目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道。一般僵尸网络融合了包括病毒、蠕虫、木马和后门工具等传统恶意代码的特点,逐渐发展成为一个复杂的网络平台。主要用于垃圾邮件推送、网络点击欺诈、钓鱼、窃取用户机密数据、发动分布式拒绝服务攻击等。僵尸网络与其他攻击方式相比,能够给攻击者提供一个高效可控的平台,同时由于多层级的控制结构,使得攻击行为难以准确追踪定位。

[0003]由于DNS自身缺少恶意行为检测能力,所以常常被利用进行各种恶意活动。Bot程序通过DNS服务器获取命令与控制(Comand and Control,C&C)服务器的IP地址,与C&C服务器建立连接。虽然针对这些恶意请求行为,可以通过域名黑名单快速发现,但现在的僵尸网络广泛才取了Domain Flux技术,通过特定的DGA算法定期产生新域名发送大量请求行为,来规避黑名单。以Conficker为例,Conficker.C以24h为周期,采用网络时间作为域名产生种子,保证所有感染主机每个周期内生成长达5万条的随机域名列表。由于每个周期生成的域名不同,而且数量巨大,DomainFlux技术有效地干扰了域名黑名单的检测。因此,为了防护僵尸网络的攻击行为,对DGA算法生成的域名检测已然成为网络安全研究的重要方向。发明内容

[0004]本发明通过对ISP的DNS流量进行检测与分析,发现感染主机为获取C&C服务器的IP地址,在域名请求行为上具有明显的组行为特征,即请求大量的新域名与失效域名。系统通过采集网络中主机的域名请求信息,将请求同一组新域名的主机集合作为检测对象,利用域名本身的字符特征,通过机器学习算法分类器对集合内主机请求的失效域名(域名解析中RCODE为“0X3,NXDOMAIN”)进行检测,有效地提取出感染主机集合、恶意域名集合和C&C服务器使用的IP地址集合。

[0005]本发明本发明技术方案带来的有益效果:

[0006]本发明可以有效地检测出DGA算法生成的域名;能进一步分析得到C&C服务器的IP地址;结合域名自身的特征和DNS请求行为,能快速检测僵尸网络的感染主机。附图说明

[0007]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以

3

CN 110324273 A

说 明 书

2/4页

根据这些附图获得其它的附图。[0008]图1是本发明的流程图;

具体实施方式

[0009]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0010]具体实施步骤如下:[0011]步骤一:数据预处理

[0012]根据系统自身域名黑白名单进行过滤。为了判断出一个域名在网络中是否有主机请求过,系统首先对网络中所有主机成功(域名解析中RCODE为“0,NoError”)请求过的域名进行收集,通过一段时间学习形成一个相对完善的域名库,建立检测基线。在检测阶段,如果网络中主机请求的域名不在域名基线库中,则认为主机请求了一个新域名。[0013]步骤二:特征工程

[0014]通过以下个几个特征构建机器学习算法分类器,对DGA算法生成域名进行检测。[0015]1.Entropy——香农熵

[0016]

选用信息熵来表示域名里各个字符出现的随机性,随机性越高,熵值越大。

[0018]信息熵可以很好的判别fryjntzfvti.biz和google.com、qq.com之间的区别,因为前者用了很多不重复字母而后者的重复字母比较多。

[0019]2.unigramAvgRank,bigramAvgRank,trigramAvgRank——基于Alexa前100万可信域名的n-gram模型(unigram,bigram,trigram)的平均排名[0020]对于字符串文本的机器学习,n-gram(unigram(单字)bigram(相邻双字)trigram(相邻三字))常常能提供重要的特征。举例来说,fryjntzfvti.biz的域名的bigram分解是以下12个:^f,fr,ry,yj,jn,nt,tz,zf,fv,vt,ti,i$这里^和$代表字符串的开头和结尾。C&C域名的随机算法产生的bigram和trigram比较分散,而合法域名喜欢用比较好念好见的组合。如果把正例反例出现的bigram按照出现频率进行排序会发现,合法域名的bigram在频率排序里的位置比较靠前,而随机C&C域名产生的比较分散而且bigram/trigram基本上频率都很低,所以bigram/trigram的平均排名也可以很好的区分C&C和合法域名。[0021]3.vowelpro,digitpro——域名中元音和数字的概率[0022]比如google yahoo baidu等等有元音字母之类好念的,而C&C域名为了随机性就不太好念,域名里元音字母占的比重可以是个很好的特征。[0023]4.reletterpro——域名中重复字母概率

[0024]5.conti_consonantpro,conti_digitpro——域名中连续辅音字母概率,连续数字概率

[0025]C&C域名的随机性也表现在连续出现的字母和数字上。一般随机生成的域名都不会出现大段连续的数字或者连续出现相同的字母。因为英文字母分布里辅音字母远多于元

4

[0017]

CN 110324273 A

说 明 书

3/4页

音字母,C&C更可能连续反复出现辅音字母,而合法域名为了好念多是元音辅音交替。[0026]6.getdomainpro——基于马尔科夫链生成域名的概率[0027]通过Alexa前100万域名训练隐含马尔可夫链,计算一下从A_i到A_i+1转换的概率。这个转换概率的分布对于正例有一些区别,也可以用来帮助区分。[0028]7.length——域名的长度[0029]比如C&C域名现在越来越长,因为短的域名都被抢光了,所以域名长度也可以是重要的特征。

[0030]8.time_accessfre——域名在短时间内被集中访问的频率[0031]将特定域名表示为D,设置5分钟为一个时间单位表示为T,将一天分为288个时间段,即从第一个时段T1到T288。用count(Ti)表示一个时间段内该域名被请求解析的次数。根据相关研究,一般的恶意域名活跃周期为半个小时左右,即为6个时间段之后就被弃用。则我们将请求解析次数最多的6个时间段的访问次数记为:MAX6(count(Ti)),每个域名一天内总共被请求解析的次数为Σcount(Ti)。用time_accessfre来代表特定域名的活跃时间分布情况,定义:

[0032]time_accessfre=MAX6(count(Ti))/Σcount(Ti)[0033]步骤三:感染主机分析

[0034]根据步骤二中的特征建立GradientBoostedTree模型分类器,判断主机请求的每个失效域名是否为DGA算法生成域名。系统默认周期为1d,在每个检测周期,首先对语法错误的失效域名进行过滤,并通过IP地址对每个主机进行标识,将请求的主机集合记为H={h1,h2,…,hk}。设主机hi请求的失效域名的数量为ni,其中分类器检测为DGA算法生成域名的数量为mi,则可疑感染主机判定条件为mi/ni>=β或mi>=M,其中β、M为检测阈值。[0035]步骤四:组行为分析

[0036]经过步骤一的数据预处理,将每个检测周期内主机成功解析的新域名集合为D={d1,d2,…,dn},Ri为域名di析返回的所有IP地址集合。由于感染主机通常随机访问DGA算法生成列表中的域名,从而导致感染主机成功连接C&C服务器所使用的域名不一定相同,但这些新生域名往往都指向相同的IP地址。定义域名间关系图G,图中节点i为域名di,对G中任意两个节点di,dj,如果

则认为两个节点间存在边,否则不存在边。对于G中任意

一个连通子图Gk称为域名关联集合Ck,Ck中所有域名对应的IP地址集合记为Ik,请求主机集合记为Qk(Qk中任意主机至少请求过Ck中一个域名)。通过连通子图特性可知,对于Ck中任意一个域名di,其满足如下关系:

通过对G的连通子图进行

分析,可有效地将网络中请求新域名的主机划分为不同的请求组,以便进一步分析每个请求组内主机的构成。为得到G中所有连通子图,可通过由下至上的层次聚类方法对D中域名进行聚类分析,聚类使用的距离函数定义如下:

[0037]

对于任意域名关联集合Ck,如果请求Ck的主机组Qk中大量主机为可疑感染主机,则Ck为Botnet使用的域名集合的可能性很高。据此,定义可疑度算子Sk=|Mk|/|Qk|,其中Mk为Qk中由感染主机分析过程判断为可疑感染主机的主机集合。由于Bot程序具有很强的传染能力,在一个网络内往往存在多台感染主机,因此判定Ck中域名为Botnet使用的域名集合

5

[0038]

CN 110324273 A

说 明 书

4/4页

条件为Qk≥r且Sk≥δ,其中r为Qk中主机数量阈值,δ为可疑度Sk阈值。[0039]步骤五:IP地址可信度计算

[0040]当Ck判定为Botnet使用的域名集合时,Ik不一定是C&C服务器的IP地址。例如:DGA算法生成域名与互联网已注册域名冲突时,则域名对应的IP地址并不是C&C服务器的IP地址。如果Ik为C&C服务器的IP地址,则所有解析返回的IP地址属于Ik的域名集合Xk中大量域名应为DGA算法生成域名。通过分类器对Pk进行检测,恶意地址的可信度定义为pk=Yk/Xk,其中Yk为Xk中判断时DGA算法生成的域名集合。pk>6,可认为Ik为C&C服务器所在的恶意IP地址。

[0041]以上对本发明实施例所提供的一种基于DNS请求行为与域名构成特征相结合的僵尸网络检测法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

6

CN 110324273 A

说 明 书 附 图

1/1页

图1

7

因篇幅问题不能全部显示,请点此查看更多更全内容