DDOS的攻击原理和如何防护网站和游戏恶意攻击

               

   1-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攻击进行敲诈的恶性案件,攻击者竟然是上海一家经营防火墙的正规公司.

四、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等,因为游戏自己的协议设计的非常

复杂,所以攻击的种类也花样倍出,大概有几十种之多,而且还在不断的发现新的攻击种类,这

里介绍目前最普遍的假人攻击,假人攻击是通过肉鸡模拟游戏客户端进行自动注册、登陆、建立

人物、进入游戏活动从数据协议层面模拟正常的游戏玩家,很难从游戏数据包来分析出哪些是攻

击哪些是正常玩家。

最新文章

  1. 搭建SpringMVC+Spring+Hibernate平台
  2. EntityFramework 分页问题探讨之 OrderBy
  3. PeopleSoft Home Subdirectories
  4. Python 之Ajax
  5. hdu4970 Killing Monsters (差分数列)
  6. Log4j学习
  7. curl 发送get post请求
  8. dropdownlist无刷新传值
  9. poj2817WordStack(状压)
  10. NandFlash
  11. windows 挂载linux nfs
  12. Centos定时启动和清除任务
  13. seaborn使用(样式管理)
  14. 1024. Palindromic Number (25)
  15. Python select 详解(转)
  16. 转:Oracle 执行计划(Explain Plan) 说明
  17. 【转】写给支持和反对《完全用Linux工作》的人们
  18. Windows 客户端时间更新脚本NTP
  19. win10想说爱你不容易——安装.net3.5也是一个坑(已有完美解决方法)
  20. 【Py大法系列--01】20多行代码生成你的微信聊天机器人

热门文章

  1. Ubuntu杂记——链接ln的使用:创建和删除符号链接
  2. at 常用命令
  3. Ubuntu 15.10搭建IPSec L2TP服务器
  4. 安装第三方库出现 Python version 2.7 required, which was not found in the registry
  5. Java魔法堂:深入正则表达式API
  6. 2015国产犯罪传记《暴力天使》HD720P.泰语中字
  7. NodeJS几个值得学习的开源框架
  8. 检测openOffice关闭 自动重启
  9. nodejs cmd
  10. 全面理解BFC
  11. Hibernate: Truly Understanding the Second-Level and Query Caches--reference
  12. python--class test
  13. Nico Game Studio 1.基本UI和地图编辑基础功能
  14. BUAA 更大公约数
  15. 水题 hdu1002------用BigInteger解决大数问题
  16. 个推推送 产品SDK常见问题检查
  17. 【锋利的Jquery】读书笔记十一
  18. maven项目启动报:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 错误解决方法-杜恩德
  19. iOS中 CocoaPods Mac App的安装和使用 韩俊强的博客
  20. 微信小程序托管 推广 开发 就找北京动点软件