一种随机子域名DDoS攻击检测方法与流程

文档序号:15700906发布日期:2018-10-19 19:49阅读:388来源:国知局

本发明属于网络安全技术领域,具体涉及一种利用随机子域名对域名所属的权威DNS服务器的DDoS攻击检测方法。主要应用于流量运营商或者大型服务提供商、内容提供商的DNS流量防护。



背景技术:

DNS协议是十分重要的网络协议。DNS服务器是网络环境中重要的公共基础设施。正是由于DNS提供Internet上的基本服务,安全防护系统不会对查询进行任何限制,所以对DNS的攻击都可以伪装成正常的查询访问。DNS服务器完全暴露在攻击之下,基本无法受到一些安全防护系统如防火墙、IDS的保护。而且DNS缺乏认证机制,数据传送时未加密,容易被截获和篡改,请求端无法验证数据完整性。数据包欺骗攻击、缓存中毒攻击、DDoS攻击、DNS放大攻击等都是针对或者利用DNS发起的攻击形式。DDoS是尤为重要的一种攻击。为了让DNS无法正常工作,恶意攻击者向允许递归查询的开放DNS服务器发送大量伪造的查询请求,通过耗尽DNS服务器的计算资源与带宽来使得DNS服务器无法响应正常请求。

目前针对DNS公共基础设施的DDoS攻击的检测预防还缺乏成熟高效的防御手段,常见的方法主要包括采取高性能的网络设备、保证充足的网络带宽以及通过IP黑名单进行流量清洗。这些防御方式资源利用效率低,而且难以应对新的攻击类型。而且当前对于随机子域名攻击的检测方法更是少见。如公开号为CN102291411A的专利与CN101572701B的专利,主要核心思路在于以流量大小作为判断是否发生DDoS攻击的核心依据。这种思路没有考虑攻击的具体目标,也没有考虑到随机子域名攻击的特征。本发明针对的随机子域名的DDoS攻击检测方法。

另外,翟、高(翟光群,高凯楠.DNS服务器的DDoS攻击检测系统的研究[J].计算机工程与应用,2011,47(33):94-97.)二人提出的方法结合了优化领域经典算法遗传算法与近些年火热的深度学习领域的基础BP网络结构建立模型,对数据包中的流量特征建立模型进行分类。这两种模型的结合在近些年国内的研究生论文中也屡见不鲜,但是这种模型的结合应用在DDoS领域不适合的一点是,神经网络是一种体量较大的模型,适用于大规模数据的非结构化数据、通常以离线训练的方式使用,在线使用的话会有模型较大以至于消耗较大存储空间,且训练时间长以至于难以在线更新的问题。在本方法中,使用了较小的分类器模型,每个模型只需要存储四个参数,另外,受到深度学习领域优化方法,如Adam算法(Adam:A Method for Stochastic Optimization arXiv:1412.6980[cs.LG])的启发,将EWMA算法应用至攻击检测模型的更新中。

余(余园芝.DNS服务器DDoS防御方法研究[D].华中科技大学,2011.)提出的方法考虑到了服务器上的性能问题,使用过滤器进行作为内存集合的替代方式,用可以接受的正确率的下降去节省大量的存储开销。然而该方法十分依赖于对跳数的估计,在最终的目标服务器处使用TTL字段推算得到,然而TTL的初始值是一个未知数也就是的估计的结果不能给出可靠的保证。布隆过滤器也存在一定的误报率。两两结合,在以安全为主的DDoS攻击检测目的来看,该方法存在一定风险。针对于随机子域名DDoS的攻击检测方案的设计准则应该是安全、可靠、弹性、轻量级。

而申请人解决的问题集中于一种新的针对DNS服务器的攻击类型,即针对目标域名的权威服务器通过其控制的僵尸网络发送大量针对目标域名的带有随机子域名的域名解析请求。递归服务器无法解析时会转发至权威DNS服务器。这样的话就会给带宽造成很大压力,而如果简单的采取黑名单方式,不但效率低,还有可能对正常访问的流量造成很大的影响。

申请人针对性的提出了一种应对上述DDoS攻击的检测方法,该方法能动态的几乎实时的检测到这种DDoS攻击,还能够确认本次DDoS攻击具体的攻击目标域名,在此基础上可以进行后续的防御工作。



技术实现要素:

本发明技术解决问题:克服现有技术的不足,提供一种随机子域名DDoS攻击检测方法,能动态的几乎实时的检测到这种DDoS攻击,还能够确认本次DDoS攻击具体的攻击目标域名,在此基础上可以进行后续的防御工作。

本发明与现有技术相比的优点在于:一种随机子域名DDoS攻击检测方法,包括以下步骤:

(1)根据原始DNS日志进行处理数据预处理,将原始DNS日志中切片后,每一条记录过滤后转化为DNS请求失败的关键数据帧,格式为<解析域名的二级域名,源IP,随机子域名>的元组;

(2)数据聚合,对步骤(1)中的关键数据帧进行数据聚合与统计,以“解析域名的二级域名”为数据键,以对拥有相同数据键的关键数据帧中的<源IP,随机子域名>数据聚合为集合,对所有的解析域名的二级域名进行如上处理后得到:以<解析域名的二级域名:源IP集合,随机子域名集合>结构为基本单元的键值对列表;

(3)攻击检测,根据步骤(2)得到的每个解析域名的二级域名对应的关键数据集合进行统计学计算,得到统计画像和当前阈值向量,针对统计画像和当前阈值向量建立攻击检测分类器,对检测分类器中为负类的域名进行DDoS攻击告警,将正类数据的统计画像以在线学习的方式更新至阈值向量。

所述数据预处理具体实现如下:

(1)以滑动长度为T的时间窗的方式对原始数据进行切片处理,当前切片作为一个时间片批处理数据向后传递以达到准实时监测模型;

(2)对上一步骤得到的时间片批处理数据进行域名解析处理,具体描述如下:从时间片批处理的每一条记录中抽取出解析域名并根据顶级域名列表处理为解析域名的二级域名,将解析域名中除去解析域名的二级域名的剩余部分作为随机子域名,然后从时间片批处理数据中简单的保留原始源IP字段,得到格式为<解析域名的二级域名,源IP,随机子域名>的关键数据帧;

(3)对上一步得到的关键数据帧进行过滤,对所有的关键数据帧如下过滤,过滤掉以in-addr.arpa结尾的DNS反向查询、源IP为DNS递归服务器IP地址的DNS递归查询和返回IP字段不为空的正常DNS查询,剩余内容是DNS处理失败的日志记录,最后输出DNS请求失败的关键数据帧

所述数据聚合具体实现如下:

(1)对得到的DNS请求失败的关键数据帧进行分组聚合操作,分组聚合操作的数据键是权利要求2提取出的关键数据帧中的解析域名的二级域名字段,进行分组聚合操作的数据值是源IP字段,将所有拥有相同的“解析域名的二级域名”字段的关键数据帧中的源IP字段组合成集合,聚合结果为:以<解析域名的二级域名:源IP集合>结构为基本单元的的键值对列表;

(2)类似于上一步,对得到的DNS请求失败的关键数据帧进行分组聚合操作,分组聚合操作的数据键是提取出的关键数据帧中的解析域名的二级域名字段,进行分组聚合操作的数据值是随机子域名字段,将所有拥有相同的“解析域名的二级域名”字段的关键数据帧中的随机子域名字段组合成集合,聚合结果为:以<解析域名的二级域名:随机子域名集合>结构为基本单元的的键值对列表;

(3)对前两步得到的两个键值对列表进行分组聚合,依然以解析域名的二级域名为键,对拥有相同解析域名的二级域名的源IP集合和随机子域名集合进行聚合,得到结果:以<解析域名的二级域名:源IP集合,随机子域名集合>结构为基本单元的键值对列表。

所述攻击检测具体实现如下:

(1)对上一步得到的以<解析域名的二级域名:源IP集合,随机子域名集合>结构为基本单元的键值对列表进行统计学处理。具体处理方法是,分别对于解析域名的二级域名的对应的源IP列表和随机子域名列表计算各自的熵和长度,得到四个特征值,构成的特征向量作为解析域名的二级域名当前的统计画像,将初始阈值向量设置为解析域名的二级域名的统计画像的k倍(k表示系统对于随机子域名DDoS攻击的敏感程度,在我们的实验中,k=5时效果较好);

(2)对上一步中得到的统计画像和阈值进行简单的比较,即使用简单的向量运算作为这里使用的分类器,这样可以有效地提高分类效率而不会显著地降低分类正确率。若统计画像中的任意一个特征值大于阈值向量中对应的阈值,则认为发生了对当前解析域名的二级域名的随机子域名DDoS攻击;

(3)上一步如果检测结果为真,即存在统计画像中的任意一个特征值大于阈值向量中对应的阈值的情况,则系统给出告警,否则,认为当前时间片内的流量正常,则在当前时间窗片检测结束更新阈值,更新后的阈值用于下一个时间片的阈值判别,阈值向量更新的方法采用动态自适应调节法,动态自适应调节法使用指数加权移动平均法(Exponentially Weighted Moving Average:EWMA)的改进形式自适应调整阈值,阈值更新后,针对下一个时间片的批处理数据,应用整个流程,进行处理。

本发明与现有技术相比的优点在于:

(1)本发明对于针对某个域名的利用随机子域名的DDoS攻击流量具有显著有效的检测效果。检测结果不仅给出是否发生攻击,还可以判断攻击目标,从而进行针对性的处理。与传统的的基于流量的检测技术相比,对于随机子域名攻击流量更加敏感,由于针对不同的域名进行攻击检测前进行了数据聚合操作,可以针对具体域名进行攻击检测,也使得之后的防护与过滤更加具有弹性,可以对受到攻击的域名单独进行处理。

(2)简单鲁棒的分类器。分类器模型简单高效,使用阈值分类器,单一阈值即可触发告警,每一域名对应的分类器只需要维护四个变量,因此即使每一个域名维护一个单独的分类器也不会对服务器造成过大的负担。另外,聚合操作是计算资源消耗较大的一个步骤,通过数据预处理中的时间切片,也可以有效的将聚合的计算量降下来,从而在空间和时间上优于现有的DDoS检测方法。

(3)具有自适应更新的优点。针对网络流量每天、每周的周期性变化以及节假日的突发流量,分类器也要针对性的进行更新。与已有的基于分类器的DNS流量DDoS攻击检测方案相比,本方法使用EWMA算法更新分类器阈值参数,极大地提高了攻击检测的自适应性与准确率。避免高峰时段的误报率提高与低谷时段的漏报率提高。

附图说明

图1为整体针对随机子域名攻击的检测流程;

图2为数据预处理子模块的处理流程;

图3为攻击检测子模块的处理流程。

具体实施方式

下面结合附图和实施示例,对本发明的具体实施方式作进一步详细描述。以下实施示例用于说明本发明,但不限制本发明的范围。

本发明提供一种随机子域名DDoS攻击检测方法,基于DNS日志访问模式的统计特征进行建模,通过自适应的手段检测可能含有DDoS攻击的流量并对指定域名的解析请求进行过滤。具体方式如下:

(1)数据预处理:该步骤包括时间窗截取、字段选择、解析域名的二级域名与随机子域名提取、数据清洗,得到DNS解析失败的关键数据帧。

(2)数据聚合。以解析域名的二级域名为数据键的DNS记录进行聚合,得到分组聚合数据,即解析域名的二级域名对应的源IP列表和随机子域名列表。

(3)攻击检测。通过对上一步骤数据聚合得到的结果进行检测。对检测步骤具体进行如下说明:

i.统计量计算:对二级域名对应的源IP列表与随机子域名列表进行数据统计与分析,计算得到分别的熵和长度,将这四个特征构成当前时间片流量的统计画像。

ii.阈值判别:对每个统计量维护对应的阈值,所有的阈值构成阈值向量。如果源IP与随机子域名的熵任意一个大于对应的熵阈值或者源IP与随机子域名和源IP的总数任意一个大于对应的长度阈值,则认为发生针对该解析域名的二级域名的随机子域名DDoS攻击。

iii.阈值更新:在对本时间窗内数据检测完成后,如果没有检测到攻击,则对阈值向量进行更新,将更新后的阈值向量用于下一个时间窗的阈值判别子步骤。

对于上述处理流程进行展开说明:

对于本检测方法,需要的输入数据为DNS日志数据,检测方法中所必须的字段为时间戳、源IP、解析域名、返回IP。

对于前述数据预处理步骤的主要流程为:

(1)时间窗截取:关键步骤在于设定一个时间处理窗口T,以T为周期进行选择数据截取,时间戳位于[当前时间-T,当前时间]范围内的所有DNS日志数据,作为本次处理的数据内容。

(2)字段选择:关键步骤在于选择DNS服务器日志中的时间戳、源IP、解析域名、返回IP作为关键字段。上述字段为检测方法需要字段的最小集合,缺一不可。

(3)解析域名的二级域名与随机子域名提取:关键步骤在于从日志中的解析域名字段提取出解析域名的二级域名与随机子域名。这一步骤将可能存在的通过伪随机算法生成的随机子域名与正常域名在这一步骤中分离。分离方法为:

i.将解析域名以点号分割,得到域名各部分组成的字符串列表s。

ii.检查s中最后两个子串被点号连接后是否属于顶级域名列表,如果是,进入步骤(iii),如果否,检查s中最后一个子串是否属于顶级域名列表,如果是,进入步骤(iv),否则解析失败。

iii.检查s长度。如果s长度大于等于4,返回s后三个子串被点号连接得到的字符串作为解析域名的二级域名,s中第一个子串作为随机子域名,否则解析失败。

iv.检查s长度。如果s长度大于等于3,返回s后两个子串被点号连接得到的字符串作为解析域名的二级域名,s中第一个子串作为随机子域名,否则解析失败。

(4)数据清洗:关键步骤为依次对日志进行脏数据过滤、冗余数据过滤、无用数据过滤。具体说明如下:

i.脏数据过滤。移除解析域名字段以in-addr.arpa结尾的DNS反向查询。

ii.冗余数据过滤。移除源IP为DNS递归服务器IP地址的递归请求日志。

iii.无用数据过滤。移除返回IP字段不为空的DNS记录,对与返回IP字段为空的记录,只移除该字段。

经过上述步骤,日志数据被转化为主机发送给DNS服务器的解析失败的DNS请求数据,格式为<解析域名的二级域名,源IP,随机子域名>的关键数据帧。

对于前述数据聚合步骤的主要流程为:

(1)源IP聚合。其关键在于分组聚合操作的数据键是解析域名的二级域名,分组聚合操作的数据值是DNS请求源IP,聚合为<解析域名的二级域名:源IP列表>的键值对。

(2)随机子域名聚合。其关键在于分组聚合操作的数据键是解析域名的二级域名,分组聚合操作的数据值是DNS请求源IP,聚合为<解析域名的二级域名,随机子域名列表>的键值对。然后将其与源IP聚合列表进行整合。

对于前述攻击检测步骤的主要流程为:

(1)统计量计算。分别对于某解析域名的二级域名的源IP列表和随机子域名列表计算各自的熵和长度。其中熵的计算方式为:

(2)阈值判别:分别维护四个阈值(源IP长度阈值,源IP熵阈值,随机子域名长度阈值,随机子域名熵阈值),初始的阈值设定可以根据人工经验手动设置。将步骤(1)统计量计算得到的四个统计量与阈值进行比较,若任意一个大于阈值,则认为发生针对该解析域名的二级域名的随机子域名DDoS攻击。

(3)阈值更新:特征在于在每一个时间窗检测结束时,使用未发生攻击的统计画像去更新阈值向量,更新后的阈值用于下一个周期的攻击检测。阈值的设定采用动态自适应调节法,动态自适应调节法使用指数加权移动平均法(Exponentially Weighted Moving Average:EWMA)的改进形式自适应调整阈值,计算公式为:

EWMA(t)=kaY(t)+(1-a)EWMA(t-1)

其中Y(t)是在本次统计算步骤中得到的统计量。当未检测到攻击存在的时候,更新阈值,若检测到发生攻击,不进行阈值更新。其中参数a是一个0到1之间的小数,该参数决定自学习的速率,即调节长期性与短期性的权衡,该参数越小说明越注重历史数据,拟合的越平滑,但是会产生一定的延迟性,该参数越小对于当前变化越敏感,但是容易产生过拟合的效果。参数k决定对正常流量峰值的容忍度。根据实践经验,当a=0.1,k=5时,效果较好。

实施例1,本发明实施例输入数据来自于某网关采集到的DNS数据,数据为真实数据,已进行脱敏处理,下面用10条DNS日志记录用于解释说明。

字段提取后数据为:

经过数据预处理,过滤数据,解析域名的二级域名提取后,转化为键值对类型数据格式,数据为:

对经过数据预处理的数据,进行数据聚合步骤:

数据聚合完成后,进行统计量计算步骤,得到如下结果:

然后进行阈值判别通过上例可以看出选定的两个统计特征在攻击流量与正常流量之前具有较强的可区分行,在上例中假定初始设置所有域名的检测器熵阈值为1.5,量阈值为5的时候可以将正常流量区分开。

举例讲解使用EWMA方法的阈值更新计算方式,在本例中EWMA的参数a为0.1,k为5。

假设第二次结果为:

通过EWMA方法调节参数为:

EWMA方法的特点在发明内容中已经说明。采取该方法能够在一定程度上具有自适应性的应对流量正常的周期性变化。

以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴。

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