一种基于DGA异常域名的事件检测系统及方法与流程

文档序号:19901983发布日期:2020-02-11 13:59阅读:664来源:国知局
一种基于DGA异常域名的事件检测系统及方法与流程

本发明涉及网络安全、人工智能领域,尤其涉及一种基于dga(domaingenerationalgorithm,域名生成算法)异常域名的事件检测系统及方法。



背景技术:

现代僵尸网络如conficker、kraken和torpig,为绕过黑名单检测,已经使用基于域名生成算法(dga)生成的域名而不是固定域名或固定ip。由于通过可解析的dga异常域名能找到僵尸网络c&c服务器的域名,因此,基于dga异常域名的事件检测发现僵尸网络是一种有效的方法。dnsqueryflood是对dns服务器发起的域名请求攻击,一般使用ddos攻击方式,攻击者通过控制多台机器向dns服务器发起上千个的随机不可解析域名,造成dns服务器服务质量下降。这种随机不可解析域名由于与dga异常域名一样由随机字符串构成,因此通过dga异常域名检测模型也能检测出来。

目前出现了一些针对dga异常域名检测的研究工作,但由于dga算法众多并且真实环境下有些正常域名也具有随机特征,会导致dga异常域名检测模型在实际环境中误报率比较高。另外,如何基于dga异常域名检测结果进行进一步的攻击事件分析,也是需要研究的问题。

目前有不少通过分析被动dns流量检测僵尸网络中的dga异常域名和其他恶意域名的方法。其中,对dga恶意域名检测的方法,大都利用机器学习模型,在数据集上有比较高的检测率。而基于dga异常域名进行僵尸网络dga远控、ddos攻击等相关事件检测,需要进一步结合流量的多方面特征进行综合分析,相关研究还比较少见。另外,在实际应用中,内容分发网络(cdn)服务商(如amazoncloudfront,chinanetcenter)会生成大量带有随机字符串的正常域名以提高网络传输质量和速度。因此若将dga异常域名检测模型应用于实际流量中的域名检测,将由于实际数据分布与数据集中的数据分布相差比较大,使得dga异常域名检测算法在真实环境中准确率下降。



技术实现要素:

本发明技术解决问题:克服现有技术的不足,提供一种基于dga异常域名的事件检测系统及方法,基于聚类和客户端与服务器端连接分析过滤dga异常域名检测结果中误报的正常域名、建立攻击事件抽象模型检测攻击事件、使用阈值进行事件判定,实现对dns攻击事件的准确检测。

针对上述问题,本发明提出了一个基于dga异常域名的dns攻击事件检测方法,对dga异常域名检测模型判定的可疑dga异常域名建立基于聚类和客户端与服务器端连接分析模型进行正常域名过滤,并进一步根据僵尸网络dga远控和ddos攻击的流量特征,建立事件抽象模型检测攻击事件,设定阈值对攻击事件进行判定,检测僵尸网络dga远控和ddos攻击事件。本发明的创新点包括:

(1)提出一种基于dga异常域名的僵尸网络dga远控和ddos攻击事件检测系统;

本发明提出基于dga异常域名的事件检测系统,对dga异常域名检测模型判定的流量进行事件分析和判定。系统包括建立了僵尸网络dga远控和ddos攻击两种攻击事件抽象模型检测攻击事件,设定阈值进行事件判定,方法在实际环境中进行了检验,取得了良好效果。

(2)提出一种基于聚类和客户端与服务器端连接分析的dga异常域名中正常域名的过滤方法。

本发明首先根据具有随机性正常域名中包含有语义的字符串,而dga异常域名无语义的特点,使用聚类模型将具有随机性的正常域名与dga异常域名区分开。再根据正常域名大多是可解析域名,而dga异常域名基本不可解析的特征,判断聚类得到的域名簇是否是正常域名,从而实现正常域名的过滤。

本发明采用的技术方案为:一种基于dga异常域名的事件检测系统,包括:域名过滤模块、攻击事件建模模块、事件生成模块和事件判断模块;

域名过滤模块:对dga(domaingenerationalgorithm,域名生成算法)异常域名检测模型判定的可疑dga异常域名进行过滤,首先采用基于聚类和客户端与服务器端连接分析方法过滤dga异常域名中的正常域名,然后根据外部知识库进行筛选,得到僵尸网络dga远控相关域名和ddos攻击相关域名,其中外部知识库保存出现在可疑dga异常域名中的由外部网站证明的权威网站二级域名,ddos攻击是指对域名服务器的ddos攻击;

攻击事件建模模块:分析僵尸网络dga远控和ddos攻击两种攻击事件流量特征并建立两种攻击事件抽象模型,使用五元组来表示攻击事件抽象模型;

事件生成模块:将域名过滤模块得到的僵尸网络dga远控和ddos攻击两种攻击事件的相关域名流量信息输入至两种攻击事件抽象模型中进行检测,最后得到两种可疑攻击事件;

事件判断模块:通过设定阈值对事件生成模块的攻击事件进行判断,最后得到事件判定结果,最终完成事件的检测。

所述攻击事件建模模块中,两种攻击事件抽象模型,即僵尸网络dga远控事件模型和ddos攻击事件模型具体如下:

通过分析这两种攻击事件的特征,其中僵尸网络中受远控的bot周期性发出大量dga异常域名请求,并且基本不可解析,ddos攻击中多个主机在一段时间内发出请求相同域名服务器的成千上万条dns流量,且请求域名均不可解析,将僵尸网络dga远控事件和ddos攻击事件抽象为一个五元组e来描述:

e=(etype,einit,evictim,etime,econd)(1)

其中etype为攻击事件的类型;einit为事件的发起者,evictim为事件的受害者,einit、evictim可以用ip或域名表示;econd为事件的基本特征或判定条件,通过一个布尔表达式表示。

对于僵尸网络dga远控和ddos攻击事件,事件类型etype为分别用dgacc和ddos表示。

(i)dgacc模型

依据式(1),僵尸网络dga远控事件定义如下:

edga=(dgacc,dgacc_init,dgacc_victim,dgacc_time,dgacc_cond)(2)

式(2)中,dgacc_init表示攻击的发起者,在dga远控事件中是指cc,取值为cc的ip;dgacc_victim表示受害者,在dga远控中是指被控bot,取值是bot的ip;dgacc_time是攻击持续的时间区间;dgacc_cond是该类事件具有的基本特征,由式(3)定义:

dgacc_cond=ip_dn(sourceip,domainnum_dga)∧ip_rn(sourceip,resolnum_dga)∧reg_dga(period,ruledga)(3)

式(3)中,二元逻辑断言ip_dn(sourceip,domainnum_dga)表示主机sourceip请求的dga异常域名数量不少于domainnum_dga,ip_rn(sourceip,resolnum_dga)表示主机sourceip请求的可解析域名数量不超过resolnum_dga,reg_dga(period,ruledga)表示在一段时间period内攻击时间规律为ruledga,ruledga表示dga远控事件存在周期性。

综上,由式2和式3得dgacc的抽象模型定义为:

(ii)ddos模型

依据式(1),ddos攻击事件定义如下:

eddos=(ddos,ddosinit,ddosvictim,ddostime,ddoscond)(5)

式(5)中,ddosinit是ddos攻击事件的发起者,取值为事件相关流量的源ip;ddosvictim是被攻击者,是某一级的域名服务器,取值可以用服务器的域名,一般是一个二级域名sld;ddostime表示攻击持续的时间区间;ddoscond是该类事件具有的基本特征,由式(6)定义:

ddoscond=sld_qn(sld,querynum_ddos)∧sld_rn(sld,resolnum_ddos)∧reg_ddos(period,ruleddos)(6)

式(6)中,二元逻辑断言sld_qn(sld,querynum_ddos)表示二级域名sld服务器被攻击次数不少于querynum_ddos,sld_rn(sld,resolnum_ddos)示可解析域名数量不超过resolnum_ddos,reg_ddos(period,ruleddos)表示在一段时间period内攻击时间规律为ruleddos,ruleddos表示ddos攻击事件存在连续性。

综上,由式5和式6得ddos攻击事件的抽象模型定义为:

eddos=(ddos,ddosinit,ddosvictim,ddostime,sld_qn(sld,querynum_ddos)∧sld_rn(sld,resolnum_ddos)∧reg_ddos(period,ruleddos))

(7)

所述攻击事件过滤模块中,采用基于聚类和客户端服务器端连接分析方法过滤dga异常域名中的正常域名,并根据外部知识库进行筛选,得到僵尸网络dga远控相关域名和ddos攻击相关域名具体过程如下:

dga异常域名检测模型根据域名随机性特征判定可疑dga异常域名,而随机性域名也存在于正常域名中,dga异常域名检测结果包含部分被误判的正常域名。正常域名大多包含一部分有意义的字符串,而dga异常域名组成字符基本无意义。并且正常域名有解析ip,而dga异常域名大多没有解析ip。采用基于聚类和客户端与服务器端连接分析判断,将正常的域名与dga异常域名区分开。可疑dga异常域名通过基于密度的聚类后,生成聚类簇和离群点,然后使用客户端与服务器端连接分析对聚类结果判定。

判定流程为首先将可疑dga异常域名流量按照客户端与服务器端连接分组,将组内不可解析域名比例不低于75%的组作为“标记域名”,即将这些域名标记为dga异常域名,然后对每个聚类簇进行分析,若聚类簇中包含“标记域名”的比例不低于70%,则将聚类簇的域名判为dga异常域名,否则将聚类簇的域名作为正常域名,不再进入下一个阶段分析,将离群点直接判为dga异常域名。对可疑dga异常域名所属的类别数未知,聚类算法选择dbscan聚类算法。域名由字母数字组成,使用word2vec表示域名的特征。

本发明的一种基于dga异常域名的事件检测方法,dga异常域名模型检测的dns可疑域名首先基于聚类和客户端与服务器端连接分析去除正常域名,再根据外部知识库得到僵尸网络dga远控事件异常域名和ddos攻击事件异常域名;然后将两种异常域名的流量信息分别根据两种攻击事件抽象模型检测并生成相应的攻击事件,最后经过阈值判定僵尸网络dga远控和ddos攻击事件,得到事件判定结果,完成dns异常事件的检测,具体步骤如下:

第一步,在攻击事件建模模块中,分析僵尸网络dga远控和ddos攻击两种攻击事件流量特征并建立两种攻击事件抽象模型;

第二步,在域名过滤模块中,对dga异常域名检测模型判定的可疑dga异常域名进行过滤,得到僵尸网络dga远控和ddos攻击事件相关域名;

第三步,将第二步得到的两种攻击事件相关域名的流量信息分别输入根据第一步得到的两种攻击事件抽象模型进行检测,生成僵尸网络dga远控和ddos攻击事件,僵尸网络dga远控事件生成项包括c&c服务器域名,受害主机ip,攻击时间,请求dga异常域名数量,解析成功的域名数量和攻击时间规律;ddos攻击事件生成项包括攻击者ip,被攻击域名服务器域名sld,攻击时间,攻击次数,解析成功的域名数量和攻击时间规律;

第四步,最后设定dga远控事件生成项中请求dga异常域名数量、解析成功的域名数量阈值判断第三步得到的dga远控事件,如果以天为单位进行检测,则请求dga异常域名数量设为200,解析成功的域名数量设为10,设定ddos攻击事件生成项中攻击次数、解析成功的域名数量阈值判断第三步得到的ddos攻击事件,如果以天为单位进行检测,则攻击次数设为1000,解析成功的域名数量设为0。阈值的确定是根据日常流量进行判断,以下说明阈值选取方法,正常域名由人请求,请求时间没有规律,域名有一定重复性且可解析,假设每天由人请求的域名以10次每小时计算,约100个域名,dga每天能生成几百个域名,但是只选择几个作为远控域名,域名服务器被ddos攻击,收到成千上万条域名请求,且都不可解析。

本发明与现有方法相比的主要优点在于:本发明使用现有dga异常域名检测技术的检测结果中存在误报的正常域名和ddos攻击域名,根据正常域名和dga异常域名的字符组成和解析情况不同,使用基于聚类和客户端与服务器端连接分析过滤正常域名,并根据ddos攻击域名和dga异常域名的二级域名不同,建立外部知识库对dga异常域名和ddos攻击域名进行过滤。本发明设计了僵尸网络dga远控和ddos攻击事件抽象模型,建立了一个基于dga异常域名的事件检测系统,将dga异常域名过滤后的结果根据两种攻击事件抽象模型检测得到两种攻击事件,通过设定阈值对攻击事件进行判定,最终实现了僵尸网络dga远控和ddos攻击事件的准确检测。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。在附图中:

图1示出了本发明的异常事件检测框架图;

图2示出了本发明的基于聚类结果的正常域名过滤流程图。

具体实施方式

下面参考附图,对本发明的实施例进行详细的说明。

首先对本发明的方法全过程进行说明。

图1示出了本发明示例的基本框架图,本发明的系统如下:包括:域名过滤模块、攻击事件建模模块、事件生成模块和事件判断模块;

域名过滤模块:本模块对dga(domaingenerationalgorithm,域名生成算法)异常域名检测模型判定的可疑dga异常域名进行过滤,首先采用基于聚类和客户端与服务器端连接分析方法过滤dga异常域名中的正常域名,然后根据外部知识库进行筛选,得到僵尸网络dga远控相关域名和ddos攻击相关域名,其中外部知识库保存出现在可疑dga异常域名中的由外部网站证明的权威网站二级域名,ddos攻击是指对域名服务器的ddos攻击。

攻击事件建模模块:本模块分析僵尸网络dga远控和ddos攻击两种攻击事件流量特征并建立两种攻击事件抽象模型,使用五元组来表示攻击事件抽象模型,至事件生成模块。

事件生成模块:本模块将域名过滤模块得到的僵尸网络dga远控和ddos攻击两种攻击事件的相关域名流量信息输入至两种攻击事件抽象模型中进行检测,最后得到两种可疑攻击事件。

事件判断模块:本模块将事件生成模块的攻击事件集合通过设定的阈值进行判断,最后得到事件判定结果,从而完成事件的检测。

所述攻击事件建模模块中,两种攻击事件抽象模型,即僵尸网络dga远控事件模型和ddos攻击事件模型具体如下:

通过分析这两种攻击事件的特征,其中僵尸网络中受远控的bot周期性发出大量dga异常域名请求,并且基本不可解析,ddos攻击中多个主机在一段时间内发出请求相同域名服务器的成千上万条dns流量,且请求域名均不可解析,将僵尸网络dga远控事件和ddos攻击事件抽象为一个五元组e来描述:

e=(etype,einit,evictim,etime,econd)(1)

其中etype为攻击事件的类型;einit为事件的发起者,evictim为事件的受害者,einit、evictim可以用ip或域名表示;econd为事件的基本特征或判定条件,通过一个布尔表达式表示。

对于僵尸网络dga远控和ddos攻击事件,事件类型etype为分别用dgacc和ddos表示。

(i)dgacc模型

依据式(1),僵尸网络dga远控事件定义如下:

edga=(dgacc,dgacc_init,dgacc_victim,dgacc_time,dgacc_cond)(2)

式(2)中,dgacc_init表示攻击的发起者,在dga远控事件中是指cc,取值为cc的ip;dgacc_victim表示受害者,在dga远控中是指被控bot,取值是bot的ip;dgacc_time是攻击持续的时间区间;dgacc_cond是该类事件具有的基本特征,由式(3)定义:

dgacc_cond=ip_dn(sourceip,domainnum_dga)∧ip_rn(sourceip,resolnum_dga)∧reg_dga(period,ruledga)(3)

式(3)中,二元逻辑断言ip_dn(sourceip,domainnum_dga)表示主机sourceip请求的dga异常域名数量不少于domainnum_dga,ip_rn(sourceip,resolnum_dga)表示主机sourceip请求的可解析域名数量不超过resolnum_dga,reg_dga(period,ruledga)表示在一段时间period内攻击时间规律为ruledga,ruledga表示僵尸网络dga远控事件存在周期性。

综上,由式2和式3得dgacc的抽象模型定义为:

(ii)ddos模型

依据式(1),ddos攻击事件定义如下:

eddos=(ddos,ddosinit,ddosvictim,ddostime,ddoscond)(5)

式(5)中,ddosinit是ddos攻击事件的发起者,取值为事件相关流量的源ip;ddosvictim是被攻击者,是某一级的域名服务器,取值可以用服务器的域名,一般是一个二级域名sld;ddostime表示攻击持续的时间区间;ddoscond是该类事件具有的基本特征,由式(6)定义:

ddoscond=sld_qn(sld,querynum_ddos)∧sld_rn(sld,resolnum_ddos)∧reg_ddos(period,ruleddos)(6)

式(6)中,二元逻辑断言sld_qn(sld,querynum_ddos)表示二级域名sld服务器被攻击次数不少于querynum_ddos,sld_rn(sld,resolnum_ddos)示可解析域名数量不超过resolnum_ddos,reg_ddos(period,ruleddos)表示在一段时间period内攻击时间规律为ruleddos,ruleddos表示ddos攻击事件存在连续性。

综上,由式5和式6得ddos攻击事件的抽象模型定义为:

eddos=(ddos,ddosinit,ddosvictim,ddostime,sld_qn(sld,querynum_ddos)∧sld_rn(sld,resolnum_ddos)∧reg_ddos(period,ruleddos))

(7)

所述攻击事件过滤模块中,采用基于聚类和客户端服务器端连接分析方法过滤dga异常域名中的正常域名,并根据外部知识库进行筛选,得到僵尸网络dga远控相关域名和ddos攻击相关域名具体过程如下:

dga异常域名检测模型根据域名随机性特征判定可疑dga异常域名,而随机性域名也存在于正常域名中,dga异常域名检测结果包含部分被误判的正常域名。正常域名大多包含一部分有意义的字符串,而dga异常域名组成字符基本无意义。并且正常域名有解析ip,而dga异常域名大多没有解析ip。采用基于聚类和客户端与服务器端连接分析判断,将正常的域名与dga异常域名区分开。可疑dga异常域名通过基于密度的聚类后,生成聚类簇和离群点,然后使用客户端与服务器端连接分析对聚类结果判定。

下面介绍正常域名过滤方法,图2示出了本发明实施例的基于聚类结果的过滤流程图。

从图2中可以看出dga可疑域名通过基于密度的聚类后,生成聚类簇和离群点,然后使用客户端与服务器端连接分析对聚类结果判定。判定流程为首先将可疑dga异常域名流量按照客户端与服务器端连接分组,将组内不可解析域名比例不低于75%的组作为“标记域名”,即将这些域名标记为dga异常域名,然后对每个聚类簇进行分析,若聚类簇中包含“标记域名”的比例不低于70%,则将聚类簇的域名判为dga异常域名,否则将聚类簇的域名作为正常域名,不再进入下一个阶段分析,将离群点直接判为dga异常域名。对可疑dga异常域名所属的类别数未知,聚类算法选择dbscan聚类算法。域名由字母数字组成,使用word2vec表示域名的特征。

下面对外部知识库做一下介绍,外部知识库保存了出现在dga异常域名检测模型判定的可疑dga异常域名中的由外部网站证明的权威网站二级域名。在权威二级域名下注册域名的成本较高,僵尸网络不会选择权威二级域名注册c&c域名。另一方面,检测结果中权威二级域名下有上千个随机域名。考虑存在对权威二级域名服务器的ddos攻击可能性,建立这样的外部知识库,能够将dga异常域名检测模型输出的具有随机性域名用该知识库进行过滤,分为僵尸网络dga远控事件相关域名以及ddos攻击事件相关域名。外部知识库的建立方式为通过向外部网站查证出现在可疑dga异常域名的二级域名是否为权威网站的二级域名,将其中是权威网站的二级域名存入外部知识库中。

本发明的一种基于dga异常域名的事件检测方法,dga异常域名模型检测的dns可疑域名首先基于聚类和客户端与服务器端连接分析去除正常域名,再根据外部知识库得到僵尸网络dga远控事件异常域名和ddos攻击事件异常域名;然后将两种异常域名的流量信息分别根据两种攻击事件抽象模型检测并生成相应的攻击事件,最后经过阈值判定僵尸网络dga远控和ddos攻击事件,得到事件判定结果,完成dns异常事件的检测,具体步骤如下:

第一步,在攻击事件建模模块中,分析僵尸网络dga远控和ddos攻击两种攻击事件流量特征并建立两种攻击事件抽象模型;

第二步,在域名过滤模块中,对dga异常域名检测模型判定的可疑dga异常域名进行过滤,得到僵尸网络dga远控和ddos攻击事件相关域名;

第三步,将第二步得到的僵尸网络dga远控和ddos攻击两种攻击事件的相关域名流量信息输入至两种攻击事件抽象模型中进行检测,生成僵尸网络dga远控和ddos攻击事件,僵尸网络dga远控事件生成项包括c&c服务器域名,受害主机ip,攻击时间,请求dga异常域名数量,解析成功的域名数量和攻击时间规律;ddos攻击事件生成项包括攻击者ip,被攻击域名服务器域名sld,攻击时间,攻击次数,解析成功的域名数量和攻击时间规律;

第四步,最后设定dga远控事件生成项中请求dga异常域名数量、解析成功的域名数量阈值判断第三步得到的dga远控事件,如果以天为单位进行检测,则请求dga异常域名数量设为200,解析成功的域名数量设为10,设定ddos攻击事件生成项中攻击次数、解析成功的域名数量阈值判断第三步得到的ddos攻击事件,如果以天为单位进行检测,则攻击次数设为1000,解析成功的域名数量设为0。阈值的确定是根据日常流量进行判断,以下说明阈值选取方法,正常域名由人请求,请求时间没有规律,域名有一定重复性且可解析,假设每天由人请求的域名以10次每小时计算,约100个域名,dga每天能生成几百个域名,但是只选择几个作为远控域名,域名服务器被ddos攻击,收到成千上万条域名请求,且都不可解析。

综上所述,本发明提供的一种基于dga异常域名的事件检测方法,通过基于聚类的连接分析过滤正常域名,对基于dga异常域名两种攻击事件构建攻击事件抽象模型进行事件检测和生成,设定阈值判定攻击事件,得到事件判定结果,从而实现了对基于dga异常域名的事件检测和判定。

通过以上的实施方式的描述,本领域的普通技术人员可显而易见地得出其他优点和修改。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的保护范围应由权利要求限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1