ddos攻击原理与防御 *** _熵ddos攻击sdn

hacker|
164

什么是DDoS流量攻击,主要的防御方式 *** 有哪些?

DDoS流量攻击全称:Distributed denial of service attack,中文翻译为分布式拒绝服务攻击,根据首字母简称为DDoS,因为DDoS流量攻击来势凶猛,持续不断,连绵不绝,因此在中国又叫洪水攻击。DDoS流量攻击是目前 *** 上最常见的手段,主要是公共分布式合理服务请求来昂被攻击者的服务器资源消耗殆尽,导致服务器服务提供正常的服务,这种方式说白了就是增大服务器的访问量,使其过载而导致服务器崩溃或者瘫痪。好比双十一期间大量的用户使用 *** ,使用的人数过多导致 *** 无法快速运转,并且出现页面瘫痪的情况。

DDoS流量攻击,可以分为,带宽消耗型和资源消耗型两种大的层次,从 *** 占用到目标硬件性能占用,以达到目标服务器 *** 瘫痪、系统崩溃的最终目的。下面为大家列举一些比较常用的DDoS流量攻击的方式。

死亡之PING:

死亡之PING即是ping of death,或者叫做死亡之平,也被翻译为死亡天平,这种攻击方式主要以通过TCP/IP协议进行DDoS流量攻击,这种类型的攻击方式主要是通过向服务器发送数据包片段大小超过TCP/IP协议的规定大小的数据包,让服务器系统无法正常进行处理从而导致崩溃,而这些数据包更大字节为6,5535字节。

CC攻击:

CC(Challenge Collapsar),意为挑战黑洞,利用大量的肉鸡(免费 *** 服务器)向目标服务器发送大量看似合法的的请求,从而不断利用被攻击服务器的资源进行重来这边请求,让其资源不断被消耗,当服务器的资源被消耗殆尽用户就无法正常访问服务器获取服务器的响应,在cc攻击过程中,能够感觉到服务器的稳定性在不断的变差直至服务器瘫痪。应。

UDP洪水攻击:

UDP:用户数据包协议(User Datagram Protocol floods),一种无连接协议,主要是通过信息交换过程中的握手原则来实现攻击,当通通过UDP发送数据时,三次的数据握手验证无法正常进行,导致大量数据包发送给目标系统时无法进行正常的握手验证,从而导致带宽被占满而无法让正常用户进行访问,导致服务器瘫痪或者崩溃。

而目前市场上常用来对付这些DDoS流量攻击的防护方式有以下几种:

目前常见的DDoS流量攻击防护是利用多重验证。入侵检测以及流量过滤等方式对因为攻击造成堵塞的带宽进行流量过滤让正常的流量能够正常的访问到目标服务器,从而维持服务器的正常运行。

流量清洗也就是让服务器所有的访问流量通过高防DDoS攻击流量清洗中心,通过高防的各种防护策略对正常流量和恶意流量被区分清洗过滤,将恶意流量阻挡住在服务器之外,让正常流量能够正常的访问,恶意流量则被禁止从而实现过滤。

防火墙是最常见DDoS流量攻击防护装置,防火墙的访问规则能够灵活定义,通过修改规则以实现允许或拒绝特定的通讯协议进入服务器,无论是端口还是IP地址,发现目标IP出现异常,那么直接阻断IP源的一切通信,即便是较为复杂的端口遭受到攻击,依旧能够有效的进行DDoS流量攻击防护。

锐速云告诉大家虽然近些年DDoS流量攻击呈现下降的趋势,但是不可否认目前仍是一个非常大的 *** 安全威胁,并且随着技术的发展,一些新型的DDoS流量攻击,仍在 *** 安全的战场上活跃着,如认为是一种Mirai变体的0x-booter。随着新的互联网技术和设备的变革和投入,不少黑客仍不断的更新完善DDoS流量攻击,因此在这个DDoS流量攻击防护的战场上,作为 *** 安全防护人员技术仍需要不断的更新变革。

DDoS的原理及危害

DDoS:拒绝服务攻击的目标大多采用包括以SYNFlood和PingFlood为主的技术,其主要方式是通过使关键系统资源过载,如目标网站的通信端口与记忆缓冲区溢出,导致 *** 或服务器的资源被大量占用,甚至造成 *** 或服务器的全面瘫痪,而达到阻止合法信息上链接服务要求的接收。形象的解释是,DDoS攻击就好比 *** 点歌的时候,从各个角落在同一时间有大量的 *** 挂入点播台,而点播台的服务能力有限,这时出现的现象就是打 *** 的人只能听到 *** 忙音,意味着点播台无法为听众提供服务。这种类型的袭击日趋增多,因为实施这种攻击的 *** 与程序源代码现已在黑客网站上公开。另外,这种袭击 *** 非常难以追查,因为他们运用了诸如IP地址欺骗法之类所谓网上的“隐身技术”,而且现在互联网服务供应商(ISP)的过剩,也使作恶者很容易得到IP地址。拒绝服务攻击的一个更具代表性的攻击方式是分布式拒绝服务攻击(DistributedDenialofService,DDoS),它是一种令众多的互联网服务提供商和各国 *** 非常头疼的黑客攻击 *** ,最早出现于1999年夏天,当时还只是在黑客站点上进行的一种理论上的探讨。从2000年2月开始,这种攻击 *** 开始大行其道,在2月7日到11日的短短几天内,黑客连续攻击了包括Yahoo,Buy.com,eBay,Amazon,CNN等许多知名网站,致使有的站点停止服务达几个小时甚至几十个小时之久。国内的新浪等站点也遭到同样的攻击,这次的攻击浪潮在媒体上造成了巨大的影响,以至于美国总统都不得不亲自过问。

分布式拒绝服务攻击采用了一种比较特别的体系结构,从许多分布的主机同时攻击一个目标。从而导致目标瘫痪。目前所使用的入侵监测和过滤 *** 对这种类型的入侵都不起作用。所以,对这种攻击还不能做到完全防止。

DDoS通常采用一种跳台式三层结构。如图10—7所示:图10—7最下层是攻击的执行者。这一层由许多 *** 主机构成,其中包括Unix,Linux,Mac等各种各样的操作系统。攻击者通过各种办法获得主机的登录权限,并在上面安装攻击器程序。这些攻击器程序中一般内置了上面一层的某一个或某几个攻击服务器的地址,其攻击行为受到攻击服务器的直接控制。

攻击服务器。攻击服务器的主要任务是将控制台的命令发布到攻击执行器上。

这些服务器与攻击执行器一样,安装在一些被侵入的无关主机上。

攻击主控台。攻击主控台可以是 *** 上的任何一台主机,甚至可以是一个活动的便携机。它的作用就是向第二层的攻击服务器发布攻击命令。

有许多无关主机可以支配是整个攻击的前提。当然,这些主机与目标主机之间的联系越紧密, *** 带宽越宽,攻击效果越好。通常来说,至少要有数百台甚至上千台主机才能达到满意的效果。例如,据估计,攻击Yahoo!站点的主机数目达到了3000台以上,而 *** 攻击数据流量达到了1GB秒。通常来说,攻击者是通过常规 *** ,例如系统服务的漏洞或者管理员的配置错误等 *** 来进入这些主机的。一些安全措施较差的小型站点以及单位中的服务器往往是攻击者的首选目标。这些主机上的系统或服务程序往往得不到及时更新,从而将系统暴露在攻击者面前。在成功侵入后,攻击者照例要安装一些特殊的后门程序,以便自己以后可以轻易进入系统,随着越来越多的主机被侵入,攻击者也就有了更大的舞台。他们可以通过 *** 监听等 *** 进一步扩充被侵入的主机群。

黑客所作的第二步是在所侵入的主机上安装攻击软件。这里,攻击软件包括攻击服务器和攻击执行器。其中攻击服务器仅占总数的很小一部分,一般只有几台到几十台左右。设置攻击服务器的目的是隔离 *** 联系,保护攻击者,使其不会在攻击进行时受到监控系统的跟踪,同时也能够更好的协调进攻。因为攻击执行器的数目太多,同时由一个系统来发布命令会造成控制系统的 *** 阻塞,影响攻击的突然性和协同性。而且,流量的突然增大也容易暴露攻击者的位置和意图。剩下的主机都被用来充当攻击执行器。执行器都是一些相对简单的程序,它们可以连续向目标发出大量的链接请求而不作任何回答。现在已知的能够执行这种任务的程序主要包括trin00,TFN(TribeFloodNetwork)、randomizer以及它们的一些改进版本,如TFN2k等。

黑客所作的最后一步,就是从攻击控制台向各个攻击服务器发出对特定目标的攻击命令。由于攻击主控台的位置非常灵活,而且发布命令的时间很短,所以非常隐蔽,难以定位。一旦攻击的命令传送到服务器,主控台就可以关闭或脱离 *** ,以逃避追踪。接着,攻击服务器将命令发布到各个攻击器。在攻击器接到攻击命令后,就开始向目标主机发出大量的服务请求数据包,这些数据包经过伪装,无法识别它的来源。而且,这些数据包所请求的服务往往要消耗较大的系统资源,如CPU或 *** 带宽。如果数百台甚至上千台攻击器同时攻击一个目标,就会导致目标主机 *** 和系统资源的耗尽,从而停止服务。有时,甚至会导致系统崩溃。另外,这样还可以阻塞目标 *** 的防火墙和路由器等 *** 设备,进一步加重 *** 拥塞状况。这样,目标主机根本无法为用户提供任何服务。攻击者所用的协议都是一些非常常见的协议和服务。这样,系统管理员就难于区分恶意请求和正常链接请求,从而无法有效分离出攻击数据包。

除了上述类型的攻击以外,其他种类的拒绝服务袭击有,从电脑中删除启动文件,使之无法启动,或删除某个 *** 服务器的网页等。为什么有人要发起这种类型的袭击呢?因为他们所闯入的服务器并没有什么秘密数据。其实,这种袭击也是出于各种原因,有政治的,不正当商业竞争为原因的、也有的是作为一种大规模袭击的一个组成部分。比如,巴勒斯坦的黑客为了 *** 以色列的犹太人政权而发起的对以色列 *** 网站的攻击;某恶意电子商务网站为争夺客户而发起的针对竞争对手的拒绝服务攻击。拒绝服务袭击也可以用来关闭某位黑客想要欺诈的服务器。比如,黑客可能会为了获得客户PIN码或信用卡号码而对一家银行的服务器进行攻击等,这类袭击是“比其他类型的袭击要突出得多的、最普遍的安全隐患”。当然,这种袭击的主要损失是系统不能正常运行而耽误的时间,而且系统很容易就可以通过重新启动的方式而恢复运行。然而,任何注重品牌声誉的企业都明白,在互联网世界中,品牌声誉可能会因一次安全性攻击而毁于一旦,因此,黑客攻击行为(尤其是拒绝服务攻击)已成为当今企业所面临的更大威胁中的一部分。

一个企业的网上服务即使没有遭到拒绝服务的攻击,它还会面临另外一种风险,即成为攻击者的跳台的危险。在实际发生的大规模拒绝服务攻击的案例当中,往往是那些 *** 安全管理不严格的企业或组织的系统,被黑客侵入,在系统内被植入攻击时使用的黑客程序。而攻击犯罪发生以后,由于黑客的消踪灭迹的手段很高明,所以最后被侦破机关追索到的攻击源往往是那些成为攻击跳台的 *** 。虽然,企业本身没有遭到损失,但是由于成为攻击跳台,而带来的合作伙伴的疑虑和商业信用的损失却是无法估计的。

什么是 DDoS 攻击?

DDoS 攻击全称Distributed Denial of Service,中文意思为“分布式拒绝服务”,就是利用大量合法的分布式服务器对目标发送请求,从而导致正常合法用户无法获得服务。

通俗点讲就是利用 *** 节点资源如:IDC服务器、个人PC、手机、智能设备、打印机、摄像头等对目标发起大量攻击请求,从而导致服务器拥塞而无法对外提供正常服务,只能宣布game over,详细描述如下图所示:

DDoS的攻击方式

一种服务需要面向大众就需要提供用户访问接口,这些接口恰恰就给了黑客有可乘之机,如:可以利用TCP/IP协议握手缺陷消耗服务端的链接资源,可以利用UDP协议无状态的机制伪造大量的UDP数据包阻塞通信信道……

可以说,互联网的世界自诞生之日起就不缺乏被DDoS利用的攻击点,从TCP/IP协议机制到CC、DNS、NTP反射类攻击,更有甚者利用各种应用漏洞发起更高级更精确的攻击。

什么是 DDoS 攻击

拒绝服务(DDoS)攻击和分布式拒绝服务(DDoS)攻击都是恶意的行为,利用大量互联网流量淹没目标服务器、服务或 *** ,破坏它们的正常运作。

DoS 攻击通过从单一机器(通常是一台计算机)发送恶意流量来实现这种破坏。形式可以非常简单;通过向目标服务器发送数量超过其有效处理和响应能力的ICMP(Ping)请求,发动基本的 Ping 洪水攻击。

另一方面,DDoS 攻击使用一台以上的机器向目标发送恶意流量。这些机器通常是僵尸 *** (感染了恶意软件的计算机或其他设备的 *** )的一部分,因而可以由单个攻击者进行远程控制。在其他情形中,多名个体攻击者可以串通起来,一起从各自的个体计算机发送流量来发动 DDoS 攻击。

DDoS 攻击在现代互联网中更为普遍,破坏性也更强,原因有二。首先,现代安全工具已经发展为能够阻止一些普通的 DoS 攻击。其次,DDoS 攻击工具已经变得相对廉价且易于操作。

如何防御 DoS/DDoS 工具?

既然 DoS 和 DDoS 攻击采取多种不同的形式,缓解它们也需要不同的策略。阻止 DDoS 攻击的常见策略有:

速率限制:限制服务器在特定时间范围内接受的请求数量

Web 应用程序防火墙:使用工具来基于一系列规则过滤 Web 流量

CDN *** 扩散:在服务器和传入流量之间置入一个大型分布式云 *** ,以提供额外的计算资源来响应请求。

百度云加速应用了所有这些及其他策略,来防御更大、最复杂的 DoS 和 DDoS 攻击。

相关链接

我的笔记本联网的时候显示dns服务器异常,这是 *** 服务商的问题还是我的本设置有问题?

、背景

域名系统(Domain Name System,DNS)是互联网的重要基础设施之一,负责提供域名和IP地址之间的映射和解析,是网页浏览、电子邮件等几乎所有互联网应用中的关键环节。因此,域名系统的稳定运行是实现互联网正常服务的前提。近年来,针对域名系统的 *** 攻击行为日益猖獗,DNS滥用现象层出不穷,再加上DNS协议本身固有的局限性,域名系统的安全问题正面临着严峻的考验。如何快速有效的检测域名系统的行为异常,避免灾难性事件的发生,是当今域名系统乃至整个互联网所面临的一个重要议题。

DNS服务器通过对其所接收的DNS查询请求进行应答来实现对外域名解析服务,因此DNS查询数据流直接反映了DNS服务器对外服务的整个过程,通过对DNS流量异常情况的检测可以对DNS服务器服务状况进行有效的评估。由于导致DNS流量异常的原因是多方面的,有些是由针对DNS服务器的 *** 攻击导致的,有些是由于DNS服务系统的软件缺陷或配置错误造成的。不同的原因所引起的DNS流量异常所具备的特征也各不相同,这给DNS流量异常检测带来了诸多困难。

目前,在DNS异常流量检测方面,比较传统的 *** 是对发往DNS服务器端的DNS查询请求数据流中的一个或多个测量指标进行实时检测,一旦某时刻某一指标超过规定的阈值,即做出流量异常报警。这种 *** 虽然实现简单,但是仅仅通过对这些指标的独立测量来判定流量是否异常过于片面,误报率通常也很高,不能有效的实现异常流量的检测。

近年来,随着模式识别、数据挖掘技术的发展,开始有越来越多的数据模型被引入到DNS异常流量检测领域,如在[Tracking]中,研究人员通过一种基于关联特征分析的检测 *** ,来实现对异常DNS服务器的识别和定位;[Context]则引入了一种上下文相关聚类的 *** ,用于DNS数据流的不同类别的划分;此外,像贝叶斯分类[Bayesian]、时间序列分析[Similarity]等 *** 也被先后引入到DNS异常流量检测中来。

不难发现,目前在DNS异常流量检测方面,已有诸多可供参考利用的 *** 。但是,每种 *** 所对应的应用场合往往各不相同,通常都是面向某种特定的 *** 攻击活动的检测。此外,每种 *** 所采用的数据模型往往也比较复杂,存在计算代价大,部署成本高的弊端。基于目前DNS异常流量检测领域的技术现状,本文给出了两种新型的DNS流量异常检测 *** 。该两种 *** 能够有效的克服目前DNS异常流量检测技术所存在的弊端,经验证,它们都能够对DNS流量异常实施有效的检测。

2、具体技术方案

1)利用Heap’sLaw检测DNS流量异常

之一种 *** 是通过利用Heap’s定律来实现DNS流量异常检测。该 *** 创新性的将DNS数据流的多个测量指标进行联合分析,发现它们在正常 *** 状况下所表现出来的堆积定律的特性,然后根据这种特性对未来的流量特征进行预测,通过预测值和实际观测值的比较,实现 *** 异常流量实时检测的目的。该 *** 避免了因为采用某些独立测量指标进行检测所导致的片面性和误报率高的缺点,同时,该 *** 具有计算量小,部署成本低的特点,特别适合部署在大型DNS服务器上。

堆积定律(Heap’sLaw)[Heap’s]最早起源于计算语言学中,用于描述文档 *** 中所含单词总量与不同单词个数之间的关系:即通过对大量的英文文档进行统计发现,对于给定的语料,其独立的单词数(vocabulary的size)V大致是语料大小N的一个指数函数。随着文本数量的增加,其中涉及的独立单词(vocabulary)的个数占语料大小的比例先是突然增大然后增速放缓但是一直在提高,即随着观察到的文本越来越多,新单词一直在出现,但发现整个字典的可能性在降低。

DNS服务器通过对其所接收的DNS查询请求进行应答来实现对外域名解析服务。一个典型的DNS查询请求包由时间戳,来源IP地址,端口号,查询域名,资源类型等字段构成。我们发现,在正常 *** 状况下,某时间段内DNS服务器端所接收的DNS查询请求数和查询域名 *** 的大小两者间遵循堆积定律的特性,同样的,DNS查询请求数和来源IP地址 *** 的大小两者间也存在这种特性。因此,如果在某个时刻这种增长关系发生突变,那么 *** 流量发生异常的概率也会比较高。由于在正常 *** 状况下DNS服务器端所接收的查询域名 *** 的大小可以根据这种增长关系由DNS查询请求数推算得到。通过将推算得到的查询域名 *** 大小与实际观测到的查询域名 *** 的大小进行对比,如果两者的差值超过一定的阈值,则可以认为有流量异常情况的发生,从而做出预警。类似的,通过将推算得到的来源IP地址 *** 大小与实际观测到的来源IP地址 *** 的大小进行对比,同样可以达到异常流量检测的目的。

由于DNS流量异常发生时,DNS服务器端接收的DNS查询请求通常会异常增多,但是单纯凭此就做出流量异常的警报很可能会导致误报的发生。此时就可以根据观测查询域名空间大小的相应变化情况来做出判断。如果观测到的域名空间大小与推算得到的预测值的差值在允许的阈值范围之内,则可以认定DNS查询请求量的增多是由于DNS业务量的正常增长所致。相反,如果观测到的域名空间大小未发生相应比例的增长,或者增长的幅度异常加大,则做出流量异常报警。例如,当拒绝服务攻击(DenialofService)发生时,攻击方为了降低本地DNS缓存命中率,提高攻击效果,发往攻击对象的查询域名往往是随机生成的任意域名,这些域名通常情况下不存在。因此当该类攻击发生时,会导致所攻击的DNS服务器端当前实际查询域名空间大小异常增大,与根据堆积定律所推算出预测值会存在较大的差距,即原先的增长关系会发生突变。如果两者间的差距超过一定的阈值,就可以据此做出流量异常报警。

通过在真实数据上的测试和 *** 攻击实验的模拟验证得知,该 *** 能够对常见的流量异常情况进行实时高效的检测。

2)利用熵分析检测DDoS攻击

通过分析各种 *** 攻击数据包的特征,我们可以看出:不论DDoS攻击的手段如何改进,一般来说,各种DDoS工具软件所制造出的攻击都要符合如下两个基本规律:

1、攻击者制造的攻击数据包会或多或少地修改包中的信息;

2、攻击手段产生的攻击流量的统计特征不可能与正常流量一模一样。

因此,我们可以做出一个大胆的假设:利用一些相对比较简单的统计 *** ,可以检测出专门针对DNS服务器的DDoS攻击,并且这中检测 *** 也可以具有比较理想的精确度。

“熵”(Entropy)是德国物理学家克劳修斯(RudolfClausius,1822~1888)在1850年提出的一个术语,用来表示任何一种能量在空间中分布的均匀程度,也可以用来表示系统的混乱、无序程度。信息理论创始人香农(ClaudeElwoodShannon,1916~2001)在1948年将熵的概念引入到信息论中,并在其经典著作《通信的数学原理》中提出了建立在概率统计模型上的信息度量,也就是“信息熵”。熵在信息论中的定义如下:

如果在一个系统S中存在一个事件 *** E={E1,E2,…,En},且每个事件的概率分布P={P1,P2,…,Pn},则每个事件本身所具有的信息量可由公式(1)表示如下:

熵表示整个系统S的平均信息量,其计算 *** 如公式(2)所示:

在信息论中,熵表示的是信息的不确定性,具有高信息度的系统信息熵是很低的,反过来低信息度系统则具有较高的熵值。具体说来,凡是导致随机事件 *** 的肯定性,组织性,法则性或有序性等增加或减少的活动过程,都可以用信息熵的改变量这个统一的标尺来度量。熵值表示了系统的稳定情况,熵值越小,表示系统越稳定,反之,当系统中出现的不确定因素增多时,熵值也会升高。如果某个随机变量的取值与系统的异常情况具有很强的相关性,那么系统异常时刻该随机变量的平均信息量就会与系统稳定时刻不同。如果某一时刻该异常情况大量出现,则系统的熵值会出现较大幅度的变化。这就使我们有可能通过系统熵值的变化情况检测系统中是否存在异常现象,而且这种强相关性也使得检测 *** 能够具有相对较高的准确度。

将熵的理论运用到DNS系统的DDoS攻击检测中来,就是通过测量DNS数据包的某些特定属性的统计特性(熵),从而判断系统是否正在遭受攻击。这里的熵值提供了一种对DNS的查询数据属性的描述。这些属性包括目标域名长度、查询类型、各种错误查询的分布以及源IP地址的分布,等等。熵值越大,表示这些属性的分布越随机;相反,熵值越小,属性分布范围越小,某些属性值出现的概率高。在正常稳定运行的DNS系统中,如果把查询数据作为信息流,以每条DNS查询请求中的某种查询类型的出现作为随机事件,那么在一段时间之内,查询类型这个随机变量的熵应该是一个比较稳定的值,当攻击者利用DNS查询发起DDoS攻击时, *** 中会出现大量的攻击数据包,势必引起与查询类型、查询源地址等相关属性的统计特性发生变化。即便是黑客在发动攻击时,对于发送的查询请求的类型和数量进行过精心设计,可以使从攻击者到目标服务器之间某一路径上的熵值维持在稳定的水平,但绝不可能在所有的路径上都做到这一点。因此通过检测熵值的变化情况来检测DNS系统中异常状况的发生,不仅是一种简便可行的方案,而且还可以具有很好的检测效果。

DNS系统是通过资源记录(ResourceRecord,RR)来记录域名和IP地址信息的,每个资源记录都有一个记录类型(QType),用来标识资源记录所包含的信息种类,如A记录表示该资源记录是域名到IP地址的映射,PTR记录IP地址到域名的映射,NS记录表示域名的授权信息等,用户在查询DNS相关信息时,需要指定相应的查询类型。按照前述思想,我们可以采用DNS查询数据中查询类型的出现情况作为随机事件来计算熵的变化情况,从而检测DDoS攻击是否存在。检测 *** 的主要内容如图1所示。可以看出,通过比较H1和H2之间的差别是否大于某一个设定的阈值,可以判定系统是否正在遭受DDoS攻击。随着查询量窗口的不断滑动,这种比较会随着数据的不断更新而不断继续下去。检测算法的具体步骤如下所示:

1、设定一个查询量窗口,大小为W,表示窗口覆盖了W条记录。

2、统计窗口中出现的所有查询类型及其在所属窗口中出现的概率,根据公式(2)计算出该窗口的熵H1。 

图1熵分析检测 ***

3、获取当前窗口中之一条查询记录所属的查询类型出现的概率,求出该类型所对应的增量

4、将窗口向后滑动一条记录,此时新窗口中的之一条记录为窗口滑动前的第二条记录。

5、获得窗口移动过程中加入的最后一条记录所代表的查询类型在原窗口中出现的概率以及对应的增量

6、计算新窗口中之一条记录所对应的查询类型出现在新窗口中出现的概率,以及对应的增量

7、计算新窗口中最后一条记录所属的查询类型在当前窗口出现的概率以及对应的增量

8、根据前面的结果计算窗口移动后的熵:

重复步骤2至步骤8的过程,得到一系列的熵值,观察熵值的变化曲线,当熵值曲线出现剧烈波动时,可以断定此时的DNS查询中出现了异常。

窗口的设定是影响检测算法的一个重要因素,窗口越大,熵值的变化越平缓,能够有效降低误检测的情况发生,但同时也降低了对异常的敏感度,漏检率上升;反之,能够增加检测的灵敏度,但准确性相应的会降低。因此,窗口大小的选择,需要根据实际中查询速率的大小进行调整。

2009年5月19日,多省市的递归服务器由于收到超负荷的DNS查询而失效,中国互联网出现了大范围的 *** 瘫痪事故,这起事故可以看作是一起典型的利用DNS查询发起的分布式拒绝服务攻击,这种突发的大量异常查询混入到正常的DNS查询中,必然会使DNS查询中查询类型的组成发生变化。我们利用从某顶级结点的DNS权威服务器上采集到的2009年5月19日9:00-24:00之间的查询日志,来检验算法是否能够对DNS中的异常行为做出反应。图2和图3分别是窗口大小为1,000和10,000时所得到的熵变化曲线,图4是该节点的查询率曲线。 

图2窗口大小为1,000时熵的变化情况

图3窗口大小为10,000时熵的变化情况

图4查询率曲线

从图2和图3中可以发现,大约从16:00时开始,熵值剧烈上升,这是由于此时系统中查询类型为A和NS的查询请求大量涌入,打破了系统原有的稳定态势,在经历较大的波动之后,又回复到一个稳定值。随着系统中缓存失效的递归服务器不断增多,该根服务器收到的异常数据量逐渐增大,在16:45左右熵值达到一个较低点,此时系统中已经混入了大量的异常查询数据。由于各省递归服务器的缓存设置的不一致,不断的有递归服务器崩溃,同时不断缓存失效的递归服务器加入,一直到21:00左右,这种异常查询量到达峰值,表现为熵值到达一个极低的位置,随着大批递归服务器在巨大的压力下瘫痪,查询数据的组成再次发生剧烈波动,接下来随着大面积断网的发生,异常查询无法到达该根服务器,熵值在经历波动之后又重新回到较稳定的状态,图4中的流量变化也证实了这一点。

图2和图3分别将查询窗口设为1,000和10,000,对比两图可以看出,图2中的熵值变化较为频繁,反映出对DNS异常更加敏感,但同时误检测的几率也较高,图3中熵值的变化相对平缓,对异常情况敏感程度较低,同时误检率也相对较低。

上述例子表明该 *** 能够及时发现DNS查询中针对DNS服务器的DDoS攻击。将该算法应用到DNS查询流量的实时监测中,可以做到准实时的发现DNS异常从而能够及早采取应对措施。此外,结合使用错误查询类型或者源IP地址等其他属性的分布来计算熵,或是采用时间窗口划分流量等,可以进一步提高异常检测的准确率。

3)利用人工神经 *** 分类器检测DDoS攻击

针对DDoS攻击检测这样一个典型的入侵检测问题,可以转换为模式识别中的二元分类问题。利用人工神经 *** 分类器和DNS查询数据可以有效检测针对DNS名字服务器的DDoS攻击。通过分析DNS权威或者递归服务器的查询数据,针对DDoS攻击在日志中所表现出来的特性,提取出若干特征向量,这些特征向量用作分类器的输入向量。分类器选择使用多层感知器,属于神经 *** 中的多层前馈神经 *** 。人工神经 *** 在用于DDoS攻击检测时具有以下显著优点:

1、灵活性。能够处理不完整的、畸变的、甚至非线性数据。由于DDoS攻击是由许多攻击者联手实施的,因此以非线性的方式处理来自多个数据源的数据显得尤其重要;

2、处理速度。神经 *** *** 的这一固有优势使得入侵响应可以在被保护系统遭到毁灭性破坏之前发出,甚至对入侵行为进行预测;

3、学习性。该分类器的更大优点是能够通过学习总结各种攻击行为的特征,并能识别出与当前正常行为模式不匹配的各种行为。

由于多层感知器具有上述不可替代的优点,因此选择它作为分类器。分类器的输出分为“服务正常”和“遭受攻击”两个结果,这个结果直接反应出DNS服务器是否将要或者正在遭受DDoS攻击。如果检测结果是“遭受攻击”,则相关人员可以及时采取措施,避免攻击行为的进一步发展。

图5DDoS攻击检测

如图5所示,本检测 *** 主要分为特征提取、模型训练和线上分类三个阶段。在特征提取阶段,需要利用DNS查询数据中已有的信息,结合各种DNSDDoS攻击的特点,提取出对分类有用的特征。模型训练阶段是通过大量的特征数据,模拟出上百甚至上千的DDoS攻击序列,对多层感知器进行训练,多层感知器在训练过程中学习攻击行为的特征,增强识别率。线上分类属于应用阶段,利用软件实现将本 *** 部署在DNS权威或递归服务器上。通过实时读取DNS查询数据,并将经过提取的特征输入到多层感知器中,就可以快速地识别出本服务器是否将要或正在遭受DDoS攻击,以便采取进一步防范措施。

多层感知器分类的精确率,在很大程度上取决于作为输入的特征向量是否能够真正概括、体现出DDoS攻击的特征。本 *** 通过仔细分析各种DNSDDoS攻击,以分钟为时间粒度提取出八种能够单独或者联合反映出攻击的特征:

1、每秒钟DNS查询量。这个特征通过对每分钟查询量进行平均获得;

2、每分钟时间窗口内查询率的标准差。公式如下:

其中,n表示每分钟内查询数据中记录的秒数,Xi表示某一秒钟的查询量,m表示一分钟内每秒钟查询量的均值;

3、IP空间大小。表示一分钟内有多少个主机发出了DNS查询请求;

4、域名空间大小。表示一分钟内有多少域名被访问;

5、源端口设置为53的查询数量。由于某些针对DNS的DDoS攻击将源端口设置为53,因此对这一设置进行跟踪十分必要;

6、查询记录类型的熵的变化情况。公式如下:

其中n表示时间窗口内记录类型的种类数,Pi表示某种记录类型出现的概率,Xi表示某种记录类型。

7、设置递归查询的比例。由于某些DDoS攻击会通过将查询设置为递归查询来增大攻击效果,因此对这一设置进行跟踪十分必要;

8、域名的平均长度。由于某些DDoS攻击所查询的域名是由程序随机产生的,这必然在查询数据上引起域名平均长度的变化,因此对域名的平均长度进行跟踪也很有意义。

图6人工神经 *** 分类器的结构

神经 *** 分类器的大致结构如图6所示。如图中所示,本分类器分为三个层次,一个输入层,一个隐藏层,一个输出层。输入层包含八个单元,隐藏层包含20个单元,按照神经 *** 理论[3],隐藏层的单元数和输入层的单元数应满足以下关系:

 

H表示隐藏层单元数,N表示输入层单元数。输出层只含有一个单元,输出值包含两个:“1”表示“遭受攻击”,“0”表示“服务正常”。

本检测 *** 的关键技术点包括以下两个方面:

1、特征的抽取。这些特征必须能够充分、足够地反映DDos攻击发生时带来的查询状况的改变;

2、学习、分类 *** 。选取多层感知器作为分类器,设计调整了该分类器的具体结构和相关参数,并利用后向传播算法对分类器进行训练。通过将DDoS攻击检测问题转化为包含“服务正常”和“遭受攻击”两种类别的二元分类问题,能够有效地对DNSDDoS攻击进行实时检测。

0条大神的评论

发表评论