• 1. 拒绝服务攻击演讲人:李政 Email: lizheng@nsfocus.com
  • 2. 提纲拒绝服务攻击的概念 DOS与DDOS Syn Flood技术 DOS的检测和对策
  • 3. 什么是拒绝服务攻击定义 D.O.S (Denial of Service ) 拒绝服务攻击是用来显著降低系统提供服务的质量或可用性的一种有目的行为。 D.D.O.S (Distributed Denial of service) 分布式拒绝服务攻击使用了分布式客户服务器功能,加密技术及其它类的功能,它能被用于控制任意数量的远程机器,以产生随机匿名的拒绝服务攻击和远程访问。
  • 4. D.O.S攻击拒绝服务攻击示意图
  • 5. D.D.O.S攻击分布式拒绝服务攻击示意图
  • 6. 拒绝服务攻击分类网络层 SYN Flood ICMP Flood UDP Flood Ping of Death 应用层 垃圾邮件 CGI资源耗尽 针对操作系统 winnuke
  • 7. D.O.S攻击类型Syn Flood Icmp Smurf (directed broadcast) Udp Flood Icmp Ping Flood TARGA3(堆栈突破) 应用级别的拒绝服务(pcanywhere)
  • 8. D.D.O.S攻击类型Trinoo TFN TFN2K Stacheldraht FunTime Apocalypse
  • 9. Syn FloodSYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。
  • 10. SYN (我可以连接吗?)ACK (可以)/SYN(请确认!)ACK (确认连接)发起方应答方正常的三次握手建立通讯的过程Syn Flood
  • 11. SYN (我可以连接吗?)ACK (可以)/SYN(请确认!)攻击者受害者伪造地址进行SYN请求为何还没回应就是让你白等不能建立正常的连接Syn Flood
  • 12. 解剖SYN Flood攻击TCP SYN分段Source IP=IPxTCP SYN/ACK分段IPx不断发送大量伪造的TCP SYN分段最多可打开的半开连接数量超时等待时间等待期内的重试次数X半开连接缓冲区溢出
  • 13. 假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成) 这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟) 一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。Syn Flood
  • 14. 一般来说,如果一个系统(或主机)负荷突然升高甚至失去响应,使用Netstat 命令能看到大量SYN_RCVD的半连接(数量>500或占总连接数的10%以上),可以认定,这个系统(或主机)遭到了SYN Flood攻击。 Syn Flood 侦查
  • 15. 第一种是缩短SYN Timeout时间, 过低的SYN Timeout 设置可能会影响客户的正常访问),可以成倍的降低服务器的负荷。 第二种方法是设置SYN Cookie, 就是给每一个请求连接的 IP 地址分配一个Cookie, 如果短时间内连续受到某个IP的重复SYN报文,就认定是受到了攻击,以后从这个IP地址来的包会被一概丢弃。 Syn Flood 解决办法
  • 16. 缩短SYN Timeout时间仅在对方攻击频度不高的情况下生效。 SYN Cookie依赖于对方使用真实的IP地址,如果攻击者以数万/秒的速度发送SYN报文,同时利用SOCK_RAW随机改写IP报文中的源地址。就无法取得较好的效果Syn Flood 遗留问题
  • 17. 动态分析 受到攻击时在线分析TCP SYN报文的所有细节。如源地址、IP首部中的标识、TCP首部中的序列号、TTL值等,特别是TTL值,如果大量的攻击包似乎来自不同的IP但是TTL值却相同,往往能推断出攻击者与目标之间的路由器距离,至少也可以通过过滤特定TTL值的报文降低被攻击系统的负荷(在这种情况下TTL值与攻击报文不同的用户就可以恢复正常访问) Syn Flood 其它办法
  • 18. Syn Flood 其它办法负载均衡 基于DNS解析的负载均衡本身就拥有对SYN Flood的免疫力,基于DNS解析的负载均衡能将用户的请求分配到不同IP的服务器主机上,SYN Flood程序有两种攻击方式,基于IP的和基于域名的,前者是攻击者自己进行域名解析并将IP地址传递给攻击程序,后者是攻击程序自动进行域名解析,但是它们有一点是相同的,就是一旦攻击开始,将不会再进行域名解析。攻击者攻击的永远只是其中一台服务器。
  • 19. Icmp Smurf Smurf攻击是以最初发动这种攻击的程序名Smurf来命名。这种攻击方法结合使用了IP欺骗和ICMP回复方法使大量网络传输充斥目标系统,引起目标系统拒绝为正常系统进行服务。 攻击的过程是这样的:Attacker向一个具有大量主机和因特网连接的网络的广播地址发送一个欺骗性Ping分组(echo 请求),这个目标网络被称为反弹站点,而欺骗性Ping分组的源地址就是攻击者希望攻击的系统。 这种攻击的前提是,路由器接收到这个发送给IP广播地址(如206.121.73.255)的分组后,会认为这就是广播分组,并且把以太网广播地址FF:FF:FF:FF:FF:FF:映射过来。这样路由器人因特网上接收到该分组,会对本地网段中的所有主机进行广播。
  • 20. Icmp Smurf网段中的所有主机都会向欺骗性分组的IP地址发送echo响应信息。如果这是一个很大的以太网段,可以会有500个以上的主机对收到的echo请求进行回复。 由于多数系统都会尽快地处理ICMP传输信息,Attacker把分组的源地址设置为目标系统,因些目标系统都很快就会被大量的echo信息吞没,这样轻而易举地就能够阻止该系统处理其它任何网络传输,从而引起拒绝为正常系统服务。 这种攻击不仅影响目标系统,还影响目标系统的网络状况。
  • 21. 分析Smurf攻击攻击者被攻击者放大网络 源IP=被攻击者的IP 目的IP=指向网络或子网的广播
  • 22. Icmp Smurf阻塞Smurf攻击的源头 Smurf攻击依靠攻击者的力量使用欺骗性源地址发送echo请求。用户可以使用路由路的访问保证内部网络中发出的所有传输信息都具有合法的源地址,以防止这种攻击。这样可以使欺骗性分组无法找到反弹站点。 阻塞Smurf的反弹站点 用户可以有两种选择以阻塞Smurf攻击的反弹站点。第一种方法可以简单地阻塞所有入站echo请求,这们可以防止这些分组到达自己的网络。 如果不能阻塞所有入站echo请求,用户就需要罅自己的路由器把网络广播地址映射成为LAN广播地址。制止了这个映射过程,自己的系统就不会再收到这些echo请求。
  • 23. Udp FloodUDP攻击的原理是使两个或两个以上的系统之间产生巨大的UDP数据包。首先使这两种UDP服务都产生输出,然后让这两种UDP服务之间互相通信,使一方的输出成为另一方的输入。这样会形成很大的数据流量。当多个系统之间互相产生UDP数据包时,最终将导致整个网络瘫痪。如果涉及的主机数目少,那么只有这几台主机会瘫痪。 一些被恶意利用的UDP服务,如echo和chargen服务,它会显示接收到的每一个数据包,而原本作为测试功能的chargen服务会在收到每一个数据包时随机反馈一些字符,如果恶意攻击者将这2个UDP服务互指,则网络可用带宽将很快耗尽
  • 24. Udp Flood禁止相关服务 与网络设备配合
  • 25. Icmp Ping FloodPing是通过发送ICMP报文(类型8代码0)探寻网络主机是否存在的一个工具。部分操作系统(例如win95),不能很好处理过大的Ping包,导致出现了Ping to Death的攻击方式(用大Ping包搞垮对方或者塞满网络),由于在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方当机。如果对方的操作系统已经可以防御堆栈崩溃,也占去许多带宽。 如TFN2K会产生大量的进程,每个进程都不停地发送PING包,从而导致被攻击目标的无法正常工作。
  • 26. Icmp Ping Flood正常情况下,Ping的流程是这样的: 主机A发送ICMP 8,0报文给主机B 主机B回送ICMp 0,0报文给主机A 因为ICMP基于无连结,假设现在主机A伪装成主机C发 送ICMP 8,0报文,结果会怎么样呢?显然,主机B会以为 是主机C发送的报文而去回应主机C,结构如下:      伪装为主机C 错误的回复 主机A--------------------->主机B------------------>主机C 这种情况下,由于主机A只需要不断发送Ping报文而不 需要处理返回的EchoReply,所以攻击力度成倍的增 加,同时实际上主机B和主机C都是被进攻的目标,而 且不会留下攻击者的痕迹。
  • 27. Stacheldraht 介绍影响平台: 任何平台 风险级别: 高 攻击类型: 基于网络的 Stacheldraht是一种分布式拒绝服务的工具,它是利用Tribe Flood Network (TFN)和Trin00源代码编制的工具。除具有TFN和Trin00的功能外,Stacheldraht 对客户机、主人服务器(或称为操作者)及代理之间进行加密通讯。还可以利用rcp命令远程升级代理(提供帐号和服务器名称)。 Stacheldraht是专为Linux和Solaris设计的,但是只需对源代码进行一些修改,就可以安装到任何系统。
  • 28. Stacheldraht 介绍Stacheldraht也是从TFN派生出来的,因此它具有TFN的特性。此外它增加了主控端与代理端的加密通讯能力,它对命令源作假,可以防范一些路由器的RFC2267过滤。Stacheldrah中有一个内嵌的代理升级模块,可以自动下载并安装最新的代理程序。
  • 29. D.D.O.S攻击特性DDOS攻击将越来越多地采用IP欺骗的技术; DDOS攻击呈现由单一攻击源发起进攻,转变为由多个攻击源对单一目标进攻的趋势; DDOS攻击将会变得越来越智能化,试图躲过网络入侵检测系统的检测跟踪,并试图绕过防火墙防御体系; 针对路由器的弱点的DDOS攻击将会增多; DDOS攻击利用路由器的多点传送功能可以将攻击效果扩大若干倍; 采用半连接技术SYN攻击,和针对TCP/IP协议先天缺陷的的ACK攻击。 采用ICMP攻击、采用smurf攻击、采用UDP攻击。
  • 30. 检测D.D.O.S攻击根据异常情况分析 访问量突然剧增,经过sniffer分析,有大量的非正常的包,如没有正常的tcp三次握手,或者是三次握手后没有正常的关闭连接,或者大量的广播包,或者大量的icmp包,这说明极其有可能是遭受DDOS攻击。 外部访问突然变慢,或者访问不到,可是主机的访问量却不大,这很有可能是路由器的配置出现问题,询问一下是否有人对路由器等设备进行过操作,或者你的对等ISP的线路出现问题。 主机突然反应很迟钝。这要经过sniffer进行侦听,这有两种可能,一种是流量确实很大,有可能是遭受DOS攻击,还有就是应用程序编写有误,导致系统资源耗尽。
  • 31. 检测D.D.O.S攻击使用DDoS检测工具 使用工具可以发现攻击者植入系统的代理程序,并可以把它从系统中删除。 使用ngrep监听工具。经过修改的ngrep可以监听大约五种类型的tfn2k拒绝服务攻击(targa3, SYN flood, UDP flood, ICMP flood 和 smurf),它还有一个循环使用的缓存用来记录DNS和ICMP请求。如果ngrep发觉有攻击行为的话,它会将其缓存中的内容打印出来并继续记录ICMP回应请求。假如攻击者通过ping目标主机的手段来铆定攻击目标的话,在攻击过程中或之后记录ICMP的回应请求是一种捕获粗心的攻击者的方法。由于攻击者还很可能使用其他的服务来核实其攻击的效果(例如web),所以对其他的标准服务也应当有尽量详细的日志记录。
  • 32. D.D.O.S攻击的对策与网络服务提供商协作。 能否与上一级的网络主干服务提供商进行良好的合作是非常重要的事情。DDoS攻击对带宽的使用是非常严格的,无论使用什么方法都无法使自己的网络对它的上一级进行控制。最好能够与网络服务供应商进行协商,请求他们帮助实现路由的访问控制,以实现对带宽总量的限制以及不同的访问地址在同一时间对带宽的占有率。最好请求服务提供商帮监视网络流量,并在遭受攻击时允许访问他们的路由器。
  • 33. D.D.O.S攻击的对策安装IDS和监控异常流量。 在防卫攻击方面,安装IDS可以发现是否有入侵行动正在进行,立即对入侵行动进行报警。以最快时间内对入侵做成反应。此外,也要时常监控网络流量,注意是否有异常的流量产生。 优化对外提供服务的主机 对于潜在的有可能遭受攻击的主机也要同样进行设置保护。在服务器上禁止一切不必要的服务,打补丁,进行安全配置。此外,用防火墙对提供服务的主机进行保护,对访问量大的主机进行负载均衡。将网站分布在多个不同的物理主机上,这样每一台主机只包含了网站的一部分,防止了网站在遭受攻击时全部瘫痪。
  • 34. D.D.O.S攻击的对策立即启动应付策略,尽可能快的向回追踪攻击包 如果发现攻击并非来自内部应当立即与服务提供商取得联系。由于攻击包的源地址很有可能是被攻击者伪装的,因此不必过分的相信该地址。应当迅速的判断是否遭到了拒绝服务攻击,因为在攻击停止后,只有很短的一段时间您可以向回追踪攻击包,这最好和安全公司或组织一道来追查攻击者。 与信息安全监察部门联系 由于系统日志属于电子证据,可以被非法修改。所以一旦攻击发生,应该及时与信息安全监察部门联系,及时提供系统日志作为证据保全,以利于追查和起诉攻击者,便于日后用法律手段追回经济损失
  • 35. (本页无文本内容)