logo资料库

一种DDoS攻击检测方法.pdf

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
http://www.paper.edu.cn 一种 DDoS 攻击检测方法 曲同胤 北京理工大学计算机科学与工程系(100081) email: qu_ty@126.com 摘 要:DDoS 是当今网络安全的最大威胁之一,研究防御 DDoS 攻击的技术非常重要。分析 了三类防御 DDoS 技术的不足,提出了一种新的检测方法来检测常见的几种 DDoS 攻击,最后 给出一个区分合法流量和攻击流量的方法。 关键词:DDoS;DoS;入侵检测 1. 引言 拒绝服务(Denial of Service,DoS)攻击是一种使服务器被动的拒绝为合法用户服务 的攻击方式,是当今网络安全的最大威胁之一。分布式拒绝服务(Distributed Denial of Service,DDoS),将 DoS 攻击分布化,加大了攻击的强度,提高了攻击者的隐蔽性。防御 DDoS 攻击的技术出现了很多,但这些技术不能有效的区分合法流量和攻击流量。此外,从 DDoS 诞生至今,经常出现的攻击种类只有少数几种。本文针对经常出现的 DDoS 攻击,提出 了一个能够有效区分合法流量和攻击流量检测方法。 2. 当前几种防御 DDoS 技术的分析 目前防御 DDoS 的技术主要分为攻击源定位,过滤和检测三类。 2.1. 攻击源定位 攻击源定位的思路是:确定攻击的源头,从源头停止 DDoS 的攻击。由于源地址可以伪 造,各级路由器不对源地址进行验证,因此,这种技术尽管出现了很多,但要精确的确定攻 击的源头还存在很多的问题。 目前的定位技术,需要修改 IP 协议,或者增加新的协议,需要升级路由器,在当前网 络已经发展到如此规模,要对网络的基础设施做过大的改动,很难实施。目前的定位技术还 只能定位到网络的边界,不能定位到主机,不能对反弹服务攻击的源头进行定位;定位是在 攻击后进行的,对正在进行的攻击无能为力;此外,需要收集大量的报文进行计算来还原出 攻击路径。对于 DDoS 攻击,即使定位到攻击的源头,也发现不了攻击者。攻击端成百上千, 给攻击路径的还原算法带来了很大的挑战,即使都定位出来了,也缺乏有效的方法停止这些 主机的攻击。 2.2. 过滤 过滤是对进入被攻击主机所在网络的数据包进行分析,使正常流量通过,过滤攻击流量。 早期的过滤方法比较简单,不能有效地区分合法流量和非法流量,一定程度上导致了对合法 用户的“拒绝服务”。最近的过滤技术结合了攻击源定位的特点,利用了网络中路由器提供 的信息和操作,提高了区分合法流量和攻击流量方法的有效性。但也带来了攻击源定位技术 存在的很难实施的缺点。 2.3. 检测 - 1 -
http://www.paper.edu.cn 检测技术不能直接制止 DDoS 攻击,但为进一步采取措施提供了依据,可作为其他防御 技术的补充。目前的检测技术可以分为基于统计和流量异常两大类方法。 1) 统计方法 统计某一类攻击报文的频度是否大于预先设置的阀值。若大于则表示攻击发 生,或者分析报文是否具有攻击报文的特征,来判断是否有攻击发生,这种方法对于已 知的攻击方法,检测准确率非常高,但不能检测未知的攻击。 2) 流量异常检测 对正常情况下的流量特征进行提取,然后实时检测当前的流量特征,与 正常流量的特征进行对比,若有明显差异,则表明可能受到了攻击。这种检测技术能够 检测未知的攻击方式,但误检率高。 3. 一种新的 DDoS 攻击检测方法 自 DDoS 出现以来,经常采取的攻击形式只有如下几种:SYN Flood,SYN ACK Flood, UDP Flood,ICMP Flood。对 SYN Flood 的防御,已经出现了很多的技术,比如,SYN Cookie 和防火墙代理等,本文仅针对 SYN ACK Flood,UDP Flood,ICMP Flood 这几种经常出现的 攻击形式提出一种新的检测方法。 3.1. SYN ACK Flood 的检测 SYN ACK Flood 是一种反弹拒绝服务攻击(DRDoS)方式。该攻击的特点是,被攻击网 络中充斥着大量的 SYN ACK 包。正常情况下,网络中传输的 SYN 包和 SYN ACK 包的数量是相 等的。即使考虑了一定的网络延迟,SYN 包和 SYN ACK 包的数量相差也不会很大。 检测方法如下:设定一个定时器 timer,计数器 syn_ack_counter 和阀值 alert,在每 一个时间片段开始,令 syn_ack_counter= 0;当收到一个 SYN 包,syn_ack_counter = syn_ack_counter -1;当收到一个 SYN ACK 包,syn_ack_counter = syn_ack_counter + 1, 同时,检测 syn_ack_counter 是否大于 alert,若大于,则表明有 TCP SYN ACK Flood 攻击 发生。 3.2. UDP Flood 的检测 UDP Flood 攻击是攻击者向被攻击主机发送大量的 UDP 包。Trinoo 中的 UDP Flood 攻击 的特点是使用真实的源地址,向攻击目标的任意端口发送 UDP 包。一般情况下,服务器打开 的 UDP 端口数量有限,对于大量的 UDP 包,服务器都要返回一个端口不可达的 ICMP 包,因 此,我们可以统计单位时间内从服务器来的到同一 IP 地址的端口不可达的 ICMP 包的数量是 否超过预先设定的一个阀值。因此,对于这种攻击的检测方法是: 设定一个计时器 timer,计数器 udp_counter 和阀值 alert。在每一个时间片断内,执 行以下操作: 在时间片段开始令 udp_counter = 0,然后每接受一个端口不可达的 ICMP 包,相应的 目的地址对应的 udp_counter 值增加 1,并检查 udp_counter 的值是否大于 alert,如果大 于,则表明有攻击发生。 对于每一个目的地址(被怀疑为进行 UDP Flood 攻击的主机)需要存储一个记录。使用 哈希表可以节省存储空间和提高检索的速度,哈希运算的索引使用目的地址。哈希表中每一 个记录只有一项:udp_counter,每一个记录对应一台攻击主机。一次规模比较大的 DDoS 攻击能够组织的攻击傀儡机一般是几千台。假设有 10000 台,那么需要的记录只有 10000 - 2 -
http://www.paper.edu.cn 条。 对于哈希表可能引起的冲突,可以不用考虑。因为冲突的地址都是进行攻击的主机。所 以,冲突的发生可以提高检测的效率。 Trinoo 中实施的 UDP Flood 攻击容易被发现,效率不高,现在很少使用。在 TFN、TFN2K 和 stacheldaht 中实施的 UDP Flood 做了很大的改进:伪造了源地址。因此,对于这种 UDP Flood 攻击的检测和预防就复杂一些。 但是,分析了 TFN、TFN2K 和 stacheldaht 的 UDP Flood 攻击代码后,我们发现了以下 几个明显的特征:在 TFN 和 stacheldraht 中,发送的 UDP 报文的源端口和目的端口的取值 范围为 1 到 9999,且两者之和为 10000;在 TFN2K 中,源端口和目的端口的取值范围为 1 到 65535,且两者之和为 65536。因此,针对这一特点,就可以大大简化检测方法: 设定一个计时器 timer,计数器 counter1,计数器 counter2 和阀值 alert。在每一个 时间片段的开始令 counter1 和 counter2 为 1,然后每收到一个 UDP 包,作如下处理: if ((1<=S_port<=9999)||(1<=D_port<=9999)||(S_port + D_port==10000)) counter1++; if (counter1 >= alert ) UDP Flood 发生; if ((1<= S_port <=65535)||(1<= D_port <=65535)||(S_port + D_port ==65536)) counter2++; if (counter1 >= alert ) 3.3. ICMP Flood 的检测 UDP Flood 发生; ICMP Flood 攻击是攻击守护进程向攻击目标发送大量的 ICMP_ECHOREQUEST 包,攻击特 点是被攻击网络中充斥着大量的 ICMP_ECHOREQUEST 包。因此对于这种攻击的检测方式比较 简单: 设定一个定时器 timer,计数器 icmp_counter 和阀值 alert,在每一个时间片段开始时 令 icmp_counter = 0;当收到一个 ICMP_ECHOREQUEST 包,icmp_counter = icmp_counter + 1,同时,检测 icmp_counter 是否大于 alert,若大于,则表明有 ICMP Flood 攻击发生。 从以上对各类攻击的检测可以看出,我们采用的是一个思路:根据各种攻击发送报文的 特征和流量特征,来计算每一种包发送的速率是否大于一个阀值。每一种检测方法中计时器 和阀值采用相同的值。因此,可以将这几种攻击的检测方法统一到一个框架中,如下所示: I. 在每一个时间片断的开始,所有的计数器清 0; II. 接收一个数据包 packet,判断 packet 的类型: a) 如果 packet 为 SYN 包,syn_ack_counter--; b) 如果 packet 为 SYN ACK 包,syn_ack_counter++; if (syn_ack_counter >= alert) SYN ACK Flood 发生; c) 如 果 packet 为 端 口 不 可 达 的 ICMP 包 , 以 目 的 地 址 进 行 哈 希 计 算 , 使 其 相 应 的 udp_counter++; if (udp_counter >= alert) 由 trinoo 发起的 UDP Flood 发生; d) 如果 packet 为 UDP 包: i. if ((1<=S_port<=9999)||(1<=D_port<=9999)||(S_port + D_port==10000)) counter1++; if (counter1 >= alert) UDP Flood 发生; - 3 -
ii. if ((1<= S_port <=65535)||(1<= D_port <=65535)||(S_port + D_port ==65536)) http://www.paper.edu.cn counter2++; if (counter2 >= alert) UDP Flood 发生; e) 如果 packet 为 ICMP_ECHOREQUEST 包,icmp_counter++; if (icmp_counter >= alert) ICMP Flood 发生 III.如果时间片断结束,转到Ⅰ,否则转到Ⅱ。 4. 正常流量和攻击流量的区分方法 从以上对常见的 DDoS 攻击程序所采用的流量攻击方法的特征分析和检测方法来看,每 一种攻击形式都有明显的特征,下面依次介绍对每一种攻击方法所产生的流量和正常流量进 行区分的方法。 4.1. SYN ACK Flood 流量的识别 客户端在返回一个 SYN ACK 包前,一定有一个来自于服务器的 SYN 包。因此,我们可以 记录所有来自于服务器的 SYN 包信息。使用哈希表可以节省存储空间和提高检索效率,我们 以 SYN 包的 IP 头的部分字段,包括源地址,目的地址,源端口和目的端口,作为哈希表的 索引。该哈希表的每一个记录只需要 1bit 就够了,值为 1 表明收到了一个 SYN 包,为 0 表 示没有。 当收到一个 SYN ACK 包,将其 IP 头中的部分字段,包括目的地址,源地址,目的端口 和源端口,作为索引,检索上面的哈希表,若相应位置为 1,则表明前面有一个来自于服务 器的 SYN 包,该 SYN ACK 包是正常流量,然后将该位置 0,反之,则是 SYN ACK Flood 流量。 4.2. UDP Flood 流量的识别 前面在检测 UDP Flood 时,可以看出,UDP Flood 流量已经有了明显的特征。 当检测出 trinoo 发起的 UDP 时,那么就立即识别出攻击发起的主机地址。因此,直到 检测到 UDP Flood 攻击结束前,从该主机发送来的所有 UDP 包都是 UDP Flood 流量。 当检测到 TFN、TFN2K 和 stacheldaht 的 UDP Flood 攻击发生时,根据数据包的源端口 和目的端口的特征就可以区分出 UDP Flood 流量。 4.3. ICMP Flood 流量的识别 虽然 ICMP Flood 攻击非常容易检测,但是 ICMP Flood 攻击流量和正常流量却没有明显 的差别,因为 ICMP Flood 是对正常协议的滥用。尽管如此,由于 ICMP 协议只是 IP 协议的 辅助协议,作用不是很大,因此,当检测到有 ICMP Flood 攻击时,我们可以过滤掉所有的 ICMP_ECHOREQUEST 包。 有了对各种攻击的检测和攻击流量的识别后,为我们进一步过滤这些恶意报文提供了依 据。当检测到某种攻击发生时,就根据区分相应攻击流的方法,启动相应的过滤器过滤恶意 流量,直到攻击结束。 5. 小结 本文在简要分析了现有的防御 DDoS 技术存在的问题后,提出了一种新的针对常见的几 种攻击方式的检测方法,随后给出了一个区分合法流量和攻击流量的方法。但是,DDoS 攻 击形式多种多样,需要进一步作的工作是加入对更多种 DDoS 攻击形式的防御。 - 4 -
http://www.paper.edu.cn 参考文献 [1] P. Ferguson. Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing[S]. RFC2267,January 1998 [2] 薛 东,赵国庆等. 对拒绝服务网络攻击路由的反向追踪算法[J]. 电子对抗技术,2002 [3] 薛丽军,第文军等. 一种新的网络流量异常检测方法[J]. 燃气涡轮实验与研究,2003 [4] 周 伟,王丽娜等. 一种新的 DDoS 攻击方法及对策[J]. 计算机工程与应用,2003. [5] Steve Gibson. The Attacks Against GRC.COM [ EB/OL ] . http://grc.com/dos/drdos.htm, 2003-10-06/2004-03-02 [6] 孙 曦,朱晓妍,王育民. DDoS 下的 TCP 洪流攻击与对策[J]. 网络安全技术与应用,2004. A DDoS intrusion detection method QU Tong-yin Department of Computer Science and Engineering, Beijing Institute of Technology, Beijing 100081 Abstract DDoS intrusion is one of most serious threats of network security currently, it's very important to research on Anti-DDoS. This paper analyses three categories of Anti-DDoS method, and presents a novel method of detecting some familiar DDoS intrusion. At the end of this paper, we propose a method of distinguishing the legitimate traffic from the malicious traffic. Key words:DDoS;DoS; intrusion detection - 5 -
分享到:
收藏