2008-03-12 15:59:54 来源:华军资讯 作者:李军 点击: <script language="JavaScript" src="http://news.newhua.com/Click.asp?type=ajax&SubSys=NS&spanid=NS_id_click_6DC315IKB85CF1J" type="text/javascript"></script> 227

DDoS攻击全面解析,北京傲盾软件有限责任公司 技术总监 李军 (欢迎转载,请著名出处)。

一 前言

  DDOS全名是Distribution Denial of Service (分布式拒绝服务攻击),很多DOS攻击源一起攻击某台服务器就组成了DDOS攻击.在中国,DDOS 最早可追溯到1996年,2002年开发频繁出现,2003年已经初具规模.当时网络带宽普遍比较小,攻击量一般都不会超过100M,国内几乎没有防护的方法和产品. 而且攻击源IP都是伪造的,无法找到攻击源.一个硬件配置很好的网站,每秒几兆的攻击量就可以完全瘫痪,破坏力相当惊人.由于开发防护产品需要接管网络底层控制,和分析处理TCP/IP协议要求较高的技术门槛,当时在国内的众多安全厂商里面,只有傲盾和黑洞两家推出了专门防护DDOS攻击的产品。

  DDOS攻击经过黑客多年的不断的技术积累到今天已经变化多种多样攻击形势,攻击内容和以前有了很大的改变,新的变种攻击也几乎每月都会有,这篇文章会彻底分析攻击原理,通过攻击案例具体分析实际攻击,力图让读者从中找到解决针对自己网络的有效解决办法。

  二 DDoS攻击原理

  我们先来研究最常见的SYN攻击, SYN攻击属于DOS Denial of Servic攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。TCP协议建立连接的时候需要双方相互确认信息,来防止连接被伪造和精确控制整个数据传输过程数据完整有效。所以TCP协议采用三次握手建立一个连接。

  第一次握手:建立连接时,客户端发送syn包到服务器,并进入SYN_SEND状态,等待服务器确认;

  第二次握手:服务器收到syn包,确认客户的SYN 同时自己也发送一个SYN包 即SYN+ACK包,此时服务器进入SYN_RECV状态;

  第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

  SYN攻击利用TCP协议三次握手的原理,大量发送伪造源IP的SYN包,也就是伪造第一次握手数据包,服务器每接收到一个SYN包就会为这个连接信息分配核心内存并放入半连接队列,如果短时间内接收到的SYN太多,半连接队列就会溢出,操作系统会把这个连接信息丢弃造成不能连接,当攻击的SYN包超过半连接队列的最大值时,正常的客户发送SYN数据包请求连接就会被服务器丢弃. 每种操作系统半连接队列大小不一样,所以抵御SYN攻击的能力也不一样。那么能不能把半连接队列增加到足够大来保证不会溢出呢,答案是不能,每种操作系统都有方法来调整TCP模块的半连接队列最大数,例如Win2000操作系统在注册表 HKLM/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters里 TcpMaxHalfOpen,TcpMaxHalfOpenRetried ,Linux操作系统用变量tcp_max_syn_backlog来定义半连接队列的最大数。但是每建立一个半连接资源就会耗费系统的核心内存,操作系统的核心内存是专门提供给系统内核使用的,核心内存不能进行虚拟内存转换,因此是非常紧缺的资源.以windows2000系统为例,当物理内存是4g的时候 核心内存只有不到300M,系统所有核心模块都要使用核心内存,所以能给半连接队列用的核心内存非常少。根据傲盾公司实验室测试:

  测试环境:Windows 2003操作系统默认安装

  硬件配置:P4 3.0 (925),1GDDR2 内存, 160GBSATA硬盘

  攻击强度:WEB SERVER的80端口每秒钟接收5000个SYN数据包

  测试结果:一分钟后网站陷于瘫痪.web页面无法打开

  标准SYN数据包64字节, 5000个攻击包等于 5000*64 *8(换算成bit)/1024=2500K,即 2.5M带宽 ,从上面的实验情况我们看样看到,非常小的带宽攻击可以造成的巨大危害,这种危害足可以瘫痪一个配置良好带宽充足的web服务器,并且由于攻击包的源IP是伪造的,很难追查到攻击源,导致攻击者肆无忌惮.最终结果是这种SYN攻击在互联网泛滥,给正常的网络运营造成极大的威胁.

三 DDoS攻击发展以及其趋势

  近几年由于宽带的普及,很多网站开始盈利,其中很多非法网站利润巨大,造成同行之间互相攻击.同时windows 平台的大量漏洞被公布, 流氓软件,病毒,木马大量充斥着网络,有些网络知识的人可以很容易的非法入侵并控制大量的个人计算机来发起DDoS攻击从中谋利.更可怕的情况是高利益的驱使已经是DDoS攻击演变成非常完善的产业链, 出售DDoS攻击已经成为互联网上的一种半公开商业行为. 攻击者首先在大流量网站的网页里注入病毒木马,此木马可以通过windows平台的漏洞感染浏览网站的人,浏览者一旦中了木马,这台计算机就会被后台操作的人控制,这台计算机也就成了所谓的”肉鸡”,每天都有人专门收集”肉鸡”然后以几毛到几块的一只的价格出售,购买者遥控这些肉鸡攻击服务器。根据有关部门的不完全推测,这种地下链条所带来的非法收入高达几十亿人民币.还有一部分人利用DDoS网络攻击来敲诈钱财,近期北京海淀警方就破坏一切利用DDoS攻击进行敲诈的恶性案件,攻击者竟然是上海一家经营防火墙的正规公司(京华时报 2007年7月24日报道).

  四DDos攻击种类

  DDoS攻击原理大致分为以下三种:

  1.通过发送大的数据包堵塞服务器带宽造成服务器线路瘫痪;

  2.通过发送特殊的数据包造成服务器TCP/IP协议模块耗费CPU内存资源最终瘫痪;

  3.通过标准的连接建立起连接后发送特殊的数据包造成服务器运行的网络服务软件耗费CPU内存最终瘫痪(比如WEB SERVER、FTP SERVER、 游戏服务器等)。

  DDoS攻击种类可以分为以下几种:

  由于肉鸡的木马可以随时更新攻击的数据包和攻击方式,所以新的攻击更新非常快这里我们介绍几种常见的攻击的原理和方法

  1.SYN变种攻击

  发送伪造源IP的SYN数据包但是数据包不是64字节而是上千字节,这种攻击会造成一些防火墙处理错误导致锁死,消耗服务器CPU内存的同时还会堵塞带宽。

  2.TCP混乱数据包攻击

  发送伪造源IP的 TCP数据包,TCP头的TCP Flags 部分是混乱的可能是syn ,ack ,syn+ack ,syn+rst等等,会造成一些防火墙处理错误导致锁死,消耗服务器CPU内存的同时还会堵塞带宽。

  3.针对UDP协议攻击

  很多聊天室,视频音频软件,都是通过UDP数据包传输的,攻击者针对分析要攻击的网络软件协议,发送和正常数据一样的数据包,这种攻击非常难防护,一般防护墙通过拦截攻击数据包的特征码防护,但是这样会造成正常的数据包也会被拦截,

  4.针对WEB Server的多连接攻击

  通过控制大量肉鸡同时连接访问网站,造成网站无法处理瘫痪,这种攻击和正常访问网站是一样的,只是瞬间访问量增加几十倍甚至上百倍,有些防火墙可以通过限制每个连接过来的IP连接数来防护,但是这样会造成正常用户稍微多打开几次网站也会被封,

  5.针对WEB Server的变种攻击

  通过控制大量肉鸡同时连接访问网站,一点连接建立就不断开,一直发送发送一些特殊的GET访问请求造成网站数据库或者某些页面耗费大量的CPU,这样通过限制每个连接过来的IP连接数进行防护的方法就失效了,因为每个肉鸡可能只建立一个或者只建立少量的连接。这种攻击非常难防护,后面给大家介绍防火墙的解决方案

  6. 针对WEB Server的变种攻击

  通过控制大量肉鸡同时连接网站端口,但是不发送GET请求而是乱七八糟的字符,大部分防火墙分析攻击数据包前三个字节是GET字符然后来进行http协议的分析,这种攻击,不发送GET请求就可以绕过防火墙到达服务器,一般服务器都是共享带宽的,带宽不会超过10M ,所以大量的肉鸡攻击数据包就会把这台服务器的共享带宽堵塞造成服务器瘫痪,这种攻击也非常难防护,因为如果只简单的拦截客户端发送

过来没有GET字符的数据包,会错误的封锁很多正常的数据包造成正常用户无法访问,后面给大家介绍防火墙的解决方案

  7.针对游戏服务器的攻击

  因为游戏服务器非常多,这里介绍最早也是影响最大的传奇游戏,传奇游戏分为登陆注册端口7000,人物选择端口7100,以及游戏运行端口7200,7300,7400等,因为游戏自己的协议设计的非常复杂,所以攻击的种类也花样倍出,大概有几十种之多,而且还在不断的发现新的攻击种类,这里介绍目前最普遍的假人攻击,假人攻击是通过肉鸡模拟游戏客户端进行自动注册、登陆、建立人物、进入游戏活动从数据协议层面模拟正常的游戏玩家,很难从游戏数据包来分析出哪些是攻击哪些是正常玩家。

  五 DDoS防护

  以上介绍的几种最常见的攻击也是比较难防护的攻击。一般基于包过滤的防火墙只能分析每个数据包,或者有限的分析数据连接建立的状态,防护SYN,或者变种的SYN,ACK攻击效果不错,但是不能从根本上来分析tcp,udp协议,和针对应用层的协议,比如http,游戏协议,软件视频音频协议,现在的新的攻击越来越多的针对应用层协议漏洞攻击,或者分析协议然后发送和正常数据包一样的数据,或者干脆模拟正常的数据流,单从数据包层面,分析每个数据包里面有什么数据,根本无法很好的防护新型的攻击。

  目前防护网络攻击效果比较好的有傲盾,黑洞,和金盾防火墙.傲盾是基于连接状态检测的防火墙,防护SYN攻击和上面介绍的1,2这类的攻击,效果都差不多,难分上下。3-7类攻击因为涉及到网络软件自己的网络协议,所以基于连接状态检测的傲盾防火墙效果会好一些,金盾黑洞也有同样的功能,但是由于其核心是基于包过滤型的防火墙,所以处理3-7类攻击的效果有待评估。

  根据傲盾实验室测试,针对第3种攻击,基于连接状态检测的傲盾防火墙可以记录每个UDP包所属的连接,判断此连接是否登陆,是否通过验证,如果没有通过验证,无论发送的数据包是否合法都会被拦截掉。第4,5,6 种攻击,基于连接状态检测的傲盾防火墙可以彻底分析HTTP协议,分析每个数据包所归属的HTTP连接,此连接是否是正常请求,如果不是正常请求,就进行拦截。也可以在防火墙里设置HTTP验证标记,这样防火墙处理新的HTTP协议的时候会随机生成一个HTTP标记,肉鸡攻击的时候不会处理这个标记,正常的IE打开的时候,会处理这个标记,这样防火墙就可以区分是不是正常IE打开的网页。对于第7种攻击,基于连接状态检测的防火墙可以通过多种策略混合过滤来达到效果,比如可以判断这个登陆进来的连接有没有发送过非法的特殊攻击包,因为肉鸡模拟的攻击假人毕竟是程序控制的,动作很少而且一直重复,或者一直不动,这样就可以判断这个连接在游戏里的动作10秒内是不是一直重复,重复多少次,或者是不是一直不动,来达到封锁假人的效果。

  六 总结

  现在网络发展速度飞快,新攻击每个星期都会有,传统的防火墙只能通过设置传统的规则封IP,端口,封连接数或者按照连接的一些基本特征来封锁,很难对新的攻击做出第一时间的解决方案,通过核心升级这种方法效率太低而且每次都要段网。防火墙和攻击是矛和盾的关系,防火墙必须做到像杀毒软件一样有迅速处理的机制才能真正把新攻击扼杀到摇篮之中,市面上有很少几款防火墙提供了漏洞规则脚本编辑,和包分析功能,通过包分析可以迅速的抓去新的攻击数据包,然后在漏洞规则脚本编辑里可以任意定制针对数据包,针对数据连接针对应用层协议的规则,通过多个子规则互相组合几乎可以防护90%的新攻击。攻击和防护不断斗争进化希望未来的网络可以彻底解决攻击迎接新的网络时代的到来!

(摘自http://news.newhua.com/news1/industry/2008/312/083121559546D6256DC315IKB85CF1J_3.html)

打造铜墙铁壁 DDoS攻击全面解析相关推荐

  1. 网易云易盾与A10 Networks达成战略合作 携手打造抗DDoS攻击的解决方案

    欢迎访问网易云社区,了解更多网易技术产品运营经验. 2018年9月,网易云易盾宣布,与智能和自动化网络安全解决方案提供商A10 Networks结成战略合作伙伴关系.双方将在抗DDoS攻击领域展开深入 ...

  2. (转)DDoS攻击全面解析

    原文链接:http://bbs.linuxtone.org/thread-6004-1-1.html IT运维专家网--"自由平等,互助分享!" 一 前言 DDOS全名是Distr ...

  3. 独家 | Fomo 3D 沦陷?为何又是 DDoS攻击?来听听区块链安全大牛的深度解析

    自7月8日,一款运行在以太坊上的带有明显博弈性质的区块链游戏火了,这是继EOS-RAM之后,又一个用惊人收益刷新着我们认知的"新物种",它就是Fomo 3D.   然而就在昨天,网 ...

  4. DDos攻击解析(附现状和案例)

    1. DDoS简介: 1.1 DdoS定义: DDOS是什么?分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作 ...

  5. 我的网站被DDoS攻击了怎么办?

    生活在互联网时代,网络安全问题时刻威胁着企业,企业价值越高就越容易被黑客盯上,受到网络攻击的威胁就越大. 而服务器作为存储和支持企业数据的载体,在维护和攻击防范中变得越来越重要. 什么是网络攻击? 网 ...

  6. 年末盘点 2016 年最严重的 7 起 DDoS 攻击事件

    Mirai是一个十万数量级别的僵尸网络,由互联网上的物联网设备(网络摄像头等)构成,8月开始构建,9月出现高潮.攻击者通过猜测设备的默认用户名和口令控制系统,将其纳入到Botnet中,在需要的时候执行 ...

  7. linux synproxy 抵御 ddos攻击的原理和优化

    目录 关于DDoS攻击和本文 关于DDoS与nf_conntrack 附:为什么nf_conntrack表项的查找和创建并不算个事儿 nf_conntrack如何防御DDoS攻击 附:什么是INVAL ...

  8. dos与ddos攻击原理

    基础原理 1.TCP饿死: UDP这种传输方式不会控制自己在通信通道里的流量,可理解为不讲道理的人.他们来到了一个热闹地区的KFC中,但是他们不买东西只排队将所有食物的价格都问一遍,占满所有的座位和过 ...

  9. 反射型 DDoS 攻击的原理和防范措施

    随着僵尸网络的兴起,同时由于攻击方法简单.影响较大.难以追查等特点,分布式拒绝服务攻击(DDoS,Distributed Denial of Service)得到快速壮大和日益泛滥. 成千上万主机组成 ...

  10. DDOS SYN Flood攻击、DNS Query Flood, CC攻击简介——ddos攻击打死给钱。限网吧、黄网、博彩,,,好熟悉的感觉有木有...

    摘自:https://zhuanlan.zhihu.com/p/22953451 首先我们说说ddos攻击方式,记住一句话,这是一个世界级的难题并没有解决办法只能缓解 DDoS(Distributed ...

最新文章

  1. 什么样的程序员才算成熟? 让程序员认清自己的所处的阶段
  2. C 语言编程 — 运算符
  3. phpbreak跳出几层循环_php中break如何跳出多重循环的示例代码
  4. cad指定服务器名称,配置网络许可服务器 | AutoCAD 2022 | Autodesk Knowledge Network
  5. android Activity 之间传递复杂对象
  6. 【转】坐标系变换矩阵推导
  7. 微服务架构四大金刚利器
  8. HDU 4812 D Tree
  9. 与计算机交朋友优秀教案,《与计算机交朋友》教学设计-20210608120218.pdf-原创力文档...
  10. python对矩阵对角线进行赋值
  11. 机器学习基础(六)—— 交叉熵代价函数(cross-entropy error)
  12. 20190415 - iOS11 无法连接到 App Store 的解决办法
  13. 国庆在家太无聊, 用Java爬了上千张小姐姐照片...
  14. python3 centos7-linux 安装
  15. C语言自学之路十(用C语言编写小游戏-五子棋)
  16. 工具类软件操作手册_小规模纳税人开票前完成开票软件升级,关于1%税率的发票...
  17. 怎么给视频打马赛克?视频剪辑时快速添加马赛克的方法
  18. springboot自动装配原理
  19. Rabbit安装及简单的使用
  20. 华为云FusionInsight智能数据湖版本新能力解读

热门文章

  1. 北京某公司IBM X3650M3存储崩溃的解决过程
  2. Entegris EUV 1010光罩盒展现极低的缺陷率,已获ASML认证
  3. 国产手机 不只是老罗一张嘴
  4. php处理苹果支付接口回调
  5. 跨站点请求伪造攻击的原理及防御
  6. centos格式化U盘
  7. pythonarray去除inf_python 中numpy快速去除nan, inf的方法
  8. 【期货交易】期货持仓量浅析,持仓是什么?
  9. Windows要求已数字签名的驱动程序
  10. php抓取新浪数据,新浪新闻详情页的数据抓取实例