DDOS攻击防护的基本原理

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

涉及参数:
– UDP保护触发 – UDP端口保护设置 – DNS Service Protection参数
DNS插件参数:
– 参数1:正常情况的DNS请求频率。低于该值, 插件将记录所有的DNS请求源地址 – 参数2:攻击情况的DNS请求频率。高于该值, 插件将只放行记录过的源地址 – 介于上两个值之间,则只是放行数据,而不做 记录
我们的防护策略:依靠连接跟踪来识别出 异常的ACK。在进行正常的连接处理之后, 如果没有匹配的连接,则该ACK会被识别成 异常ACK。 异常ACK超过阀值会进入[ACK]模 式,之后的异常ACK会被丢弃 某些TCP连接关闭后,防火墙上的连接对象 也会同时销毁。但双方可能会有一些遗留 数据(linger data)依然继续传输,所以会被 识别成异常ACK,这些基本不会造成影响
DDOS攻击防护的基本原理
DDOS攻击类型
流量型攻击
使用大量的包含伪造信息的数据包,耗尽服务器资源,使其拒绝服务 常见:SYN Flood,ACK Flood,UDP Flood,ICMP Flood,Fragment Flood,NonIP Flood等
连接型攻击
使用大量的傀儡机,频繁的连接服务器,形成虚假的客户请求,耗尽 服务器资源,使其拒绝服务 常见:CC攻击,HTTP Get Flood,传奇假人攻击等
– 由攻击器直接生成HTTP请求
高攻击负载:连接频率高,带宽占用大 易于防护:攻击器无法解析WEB脚本
– 由攻击器调用浏览器形成HTTP请求
需要调用浏览器,攻击频率相对较低 难于防护:完整的客户端请求
我们的防御策略:WEB Plugin
– 对新客户端的HTTP请求,由插件返回一个包含 验证脚本的页面 – 正常的浏览器将执行这段脚本,并由脚本重定 向到原始页面,并附加计算出的验证码 – 防火墙得到该验证码后判断该客户端是否可信 – 攻击器一般无法解析脚本,因此无法完成验证 码的计算 – 利用互动操作,识别自然人或攻击器
SYN Flood攻击抓包
防护策略
我们的防护策略:本质来说是SYN-Proxy来进行 防御。SYN-Proxy的基本过程,就是客户端首先 和防火墙建立连接,之后防火墙再和服务器建 立连接,并进行两个连接之间的数据传输。伪 造源的半连接攻击,攻击器无法和防火墙建立 连接,所以攻击数据会被防火墙全部拦截下来, 不会到达服务器,达到防护的目的 我们墙上对这两个连接的建立是优化过的处理 模式,防火墙上只创建一个连接对象,也只显 示一个连接计数。同时对数据的转发也是优化 过的模式。
– 通过插件检测53端口的UDP数据,剔除非DNS查 询的攻击包 – 通过延时提交,强制客户端重传查询,应对某 些无法生成重传包的DNS攻击器 – 通过验证TTL,应对某些固定 TTL的DNS攻击器 – 通过重传检测算法,应对某些生成重传包的 DNS攻击器 – 可以通过插件学习正常流量时的访问IP,受到 攻击时只放行访问过的IP
– 参数2:对同一个页面的请求次数,如果超过次设置值, 则该客户端将被屏蔽 – 参数3:监测服务器回应,若超过次数值没有304 Not Modified,则执行一次异常
连接攻击防御——游戏服务器
特点:游戏服务器因为比较复杂,弱点也比较 多,所以受到攻击很容易拒绝服务 攻击机制:
– 空连接攻击:频繁的连接服务器,随后断开,造成 服务器处理队列阻塞 – 连接攻击:频繁的连接服务器,发送大量垃圾数据, 造成服务器忙于解码垃圾数据,无法处理正常业务 – 传奇假人攻击:攻击器可以完整的模拟创建人物、 登陆服务器的过程,造成服务器人满为患,正常玩 家无法登陆游戏
插件参数:
– 参数1-3:用于开放端口检测的3个游戏端口,为0则表示不设置,为65535 则可匹配任一端口 – 参数4:低位字节,为连接频率检测值,当建立连接超过该设置值,则进 行开放端口检测;高位字节,为端口60秒内最多允许的报文总数 – 参数5:测试数据因子时的客户端需要发送的数据量 – 参数6:服务器返回数据因子 – 参数7:用于区别登陆包和创建人物包的报文长度 7 – 参数8:低位字节,登陆包应具有的延时;高位字节,创建人物包应具有 的延时 – 参数9:创建人物限制。每创建指定数量人物,则执行一次异常 – 参数10:扩充防护模式
流量攻击防御——DNS Query Flood
DNS Query Flood攻击是UDP攻击的一种:DNS协议使用 UDP协议为载体,端口53 UDP/DNS攻击由于无法验证源地址的有效性,无法实现 完美的防御——如果对方用的攻击器可以绝对随机伪造 攻击包的话
DNS Flood攻击抓包
我们的防御策略:
SYN-Proxy基本原理图
SYN-Proxy基本原理
辅助的优化模式
还有一些辅助的优化模式,可以提高攻击防御能力:
– Urgent状态:进入[SYN]防护模式后,若攻击量小于SYNUrgent,对已经访问过的客户端,会直接做回应。否则 全部按照新客户访问来处理。这样在大流量攻击下, 可以很大程度上降低防火墙负载 – 重传机制:对新客户访问,依靠TCP重传来达到减少 SYN-ACK回应的效果。客户端发送第一个SYN后,防火 墙摘取相关信息后不做回应,直接丢弃。之后依据 TCP 协议规范,正常的客户端在3秒后还要发送第二个SYN, 防火墙接收到这个SYN时,进行一些检测,判断是不是 正常的客户端重传,之后才回应SYN-ACK。这样可以有 效减少防火墙的负载,并减少客户的外出带宽占用
涉及参数: ACK&RST Flood保护 TCP端口保护设置
流量攻击防御——UDP Flood
UDP Flood,由于UDP协议不需要握手过程, 因此从大量伪造源的UDP流量中识别出正常 客户的数据,基本是不可能的一件事
UDP Flood攻击抓包
我们的防护策略:
– UDP协议无关的服务器:使用默认的UDP端口 保护设置,直接进行限流防护 – UDP协议相关的服务器:分析客户应用的情况, 设置端口保护的特殊属性。还可以通过抓包, 得到客户应用的登陆数据,设置相应的协议模 式,实现针对性的防御
0:默认,不启用 1:传奇2防护模式。玩家登陆后将收到数字组成的验证码,输入验证码可通过验证 2:启用传奇2防护模式。玩家登陆后将收到由ASCII字符组成的验证码图形,输入代 码即可通过验证
连接攻击防御——其它服务器
FTP/SMTP/POP3/攻击:
– 使用Misc Plugin来进行防御,由插件返回相关 协议的回应文本,若客户端随后发送正常的协 议请求,则认为该客户端可信
流量攻击防御——简单截流
对于某些业务无关的协议,可以使用简单 截流策略防御攻击:
– ICMP Flood – IGMP Flood – Fragment Flood – NonIP Flood
注意:
– IGMP攻击计入NonIP攻击
连接攻击防御——WEB服务器
特点:大量的HTTP请求,使得ห้องสมุดไป่ตู้务器 CPU 过载,数据库阻塞,外出带宽占用大 攻击机制:
使用验证服务器完成验证访问过程
插件参数:
– 参数1:启用的验证模式。此值大于256,表示对所有 类型的页面进行验证
0, 256:不执行跳转过程 1, 257:生成跳转页面,由javascript执行跳转。若客户端没有 开启javascript,可以由用户手动点击 2, 258:上一模式的基础上,将验证代码进行表达式变换 3, 259:在上一模式的基础上,将javascript执行的跳转,变成 用户点击操作 4, 260:验证服务器模式,由外部验证服务器来辅助验证过程
流量攻击防御
我们主要使用连接跟踪模块,来实现对流 量攻击的防御 TCP连接跟踪
– TCP状态转换图
UDP连接跟踪
– 确认双向数据
流量攻击防御——SYN Flood
伪造大量的TCP SYN请求,使受攻击服务器 频繁的向虚假地址回应SYN-ACK,并耗用过 多的内存来存储虚假的请求,最终达到使 服务器拒绝服务的目的
插件参数:
– 参数1:端口防御模式
0:FTP防御 1:SMTP防御 2:POP3防御
涉及参数:
– UDP保护触发 – UDP端口保护设置
UDP端口保护的属性:
– 开放端口 开放端口:确认该端口开放 – 同步连接:若同时存在同一客户端的TCP连接,则放行该客 同步连接 户端的UDP数据。用于一些视频聊天室比较有效。因为一些 聊天室是先通过WEB打开聊天室,然后网页中的视频插件连 接服务器,发送UDP数据。这样UDP到达服务器前就一定已 经建立了TCP连接 – 延时提交 延时提交:主要用于DNS的防护。普通DNS客户端,当发送 第一个DNS查询之后,没有收到回应,会在2秒后发送第二 个查询,因此可以用于识别出正常客户端。之前有些攻击器 会模拟该重传,新版本的墙对于该类攻击已经有较高的识别 率,因此可以有效防御DNS攻击 – 验证 验证TTL:对UDP数据的IP头部TTL进行统计,如果某个数值 的TTL频率过高,会进行屏蔽。可在一定程度上防御UDP类 攻击
我们的防御策略:Game Plugin
– 对于刷端口攻击,很多攻击器都是对同一个端口频 繁建立连接。因此插件判断某个客户端是否打开若 干个服务器端口,若只对同一个端口频繁连接,则 会屏蔽该客户端 – 对于游戏应用来说,服务器回应的数据比客户端发 送的数据要大很多,因此该插件还会判断客户端同 服务器之间的数据比例,如果比例无法达到设定值, 则会屏蔽该客户端 – 对于传奇假人攻击,插件会在玩家登陆30秒后发送 验证码对话框,玩家若无法完成验证码的输入,则 会被断开连接。次数过多则会被屏蔽
防御模式
– 简单防御模式:直接返回验证码,由脚本实现跳转 – 普通防御模式:验证码需要客户端执行复杂的计算脚本,并 由脚本实现页面的跳转 – 增强防御模式:返回包含“点击进入”连接的页面,由客户 点击后计算验证码并跳转,用于防护调用浏览器的攻击方式 – 完美防御模式
需要一台验证服务器,部署于防火墙内,并设置好验证页面及验 证码图片的生成脚本 防火墙在接收到新客户的HTTP请求后,返回重定向页面,指向验 证服务器 客户端随后向验证服务器提交请求,防火墙修改该请求并附加验 证码,提交给验证服务器 服务器生成验证码图片,发送给客户端 用户手动输入验证码,交由防火墙判验证
旁路模式墙有些区别,没有SYN-Urgent相关的处理
涉及参数: SYN Flood保护 SYN Flood高压保护 SYN Flood Flood单机保护 TCP端口保护设置
流量攻击防御——ACK Flood
我们所指的ACK报文,指TCP头部设置了ACK、 FIN、RST标志的报文,例如ACK,FIN,FIN-ACK, RST、RST-ACK等 服务器在接收到ACK类报文之后,首先查找自 身的连接表,如果找不到,则会在一定频率内 发送RST报文,通知客户端重置断开连接。因 此ACK类攻击对服务器造成的影响有限,但防 火墙还是应该将攻击阻挡在墙外,否则服务器 很容易因为带宽耗尽而拒绝服务
相关文档
最新文档