忘记密码?

一键登录

草根吧源码论坛

Discuz!论坛防御CC攻击说明

查看: 713|回复: 0

[经验] Discuz!论坛防御CC攻击说明

[复制链接]

5761

主题

2718

热度

1952

贡献

管理员

Rank: 9Rank: 9Rank: 9

DZ专员

发表于 2014-12-1 15:17:45 | 显示全部楼层 |阅读模式 | 百度  360  谷歌 
分享到:
CC 攻击的前身是 DDOS 攻击(分布式拒绝攻击)。 DDOS 攻击的原理针对 TCP/IP 协议的缺陷,也不能算是缺陷,只是当时设计该协议]时是在几十年前,设计者假定大家都是遵守游戏规则的良好公民,现在互联网环境比当时要复杂得多,但是仍在使用以前的协议,所以才会带来某些问题。两台机器通信要进行一个所谓的三次握手,首先是客户机发出一个请求 (SYN) ,服务器收到该请求后,填写会话信息表 (TCB,保存在内存中),并且向客户机反馈一个回应包 (SYN-ACK) ,此时连接处于 TIME_WAIT 状态,如果最终没有收到客户机的 ACK 信息包,会尝试隔一段时间再发送一次回应包 SYN-ACK,这样经过多次重试后,客户机还没有回应的话,服务器才会关闭会话,并从 TCB 中删除掉该会话。这个等待过程大约为 30 秒。当攻击者同时发起十万计的请求时 (SYN) 到服务器开放的端口,并且本身拒绝发送 SYN-ACK 回应时,服务器的的 TCB 将会很快超过负荷,并且攻击者可以伪造包中的源 IP 地址,这样攻击者还不会被服务器返回的包堵住。可以看出这是 TCP/IP 协议中一个相当严重的问题。通过防火墙策略审核过滤数据包,可以从一定程度上防止 DDOS 攻击。
  CC 攻击跟 DDOS 攻击本质上是一样的,都是以消耗服务器资源为目的,目前看来,它主要针对 WEB 应用程序比较消耗资源的地方进行疯狂请求,比如,论坛中的搜索功能,如果不加以限制,任由人搜索,普通配置的服务器在几百个并发请求下,mysql 服务就挂掉了。
  CC攻击的种类有三种,直接攻击,代理攻击,僵尸网络攻击,直接攻击主要针对有重要缺陷的 WEB 应用程序,一般说来是程序写的有问题的时候才会出现这种情况,比较少见。僵尸网络攻击有点类似于 DDOS 攻击了,从 WEB 应用程序层面上已经无法防御,所以这两种情况我们不进行深入的探讨,这里要主要讨论第二种,代理攻击,CC 攻击者一般会操作一批代理服务器,比方说 100 个代理,然后每个代理同时发出 10 个请求,这样 WEB 服务器同时收到 1000 个并发请求的,并且在发出请求后,立刻断掉与代理的连接,避免代理返回的数据将本身的带宽堵死,而不能发动再次请求,这时 WEB 服务器会将响应这些请求的进程进行队列,数据库服务器也同样如此,这样一来,正常请求将会被排在很后被处理,就象本来你去食堂吃饭时,一般只有不到十个人在排队,今天前面却插了一千个人,那么轮到你的机会就很小很小了,这时就出现页面打开极其缓慢或者白屏。
  防御 CC 攻击
  Discuz!5.5 在以往抗 CC 的基础上又加了两种方法,可以根据实际遭受攻击的情况,通过配置组合出适合的抵抗方法。限于篇幅,不详细阐述对抗原理,现将配置方法做下简要说明。
  配置文件 config.inc.php
$attackevasive = 0;  // 论坛防御级别,可防止大量的非正常请求造成的拒绝服务攻击

// 防护大量正常请求造成的拒绝服务攻击,

// 0=关闭, 1=cookie 刷新限制, 2=限制代理访问, 4=二次请求, 8=回答问题(第一次访问时需要回答问题)

// 组合为: 1|2, 1|4, 2|8, 1|2|4...

  正常情况下设置为 0,在遭到攻击时,分析其攻击手法和规律,组合使用。可以尝试先设置为 2, 2|4, 1|2|4|, 1|2|4|8, 如果 1|2|4|8 还不行,我们认为应用程序层面上已经抵挡不住,可能主机遭受的攻击来自于僵尸网络的 DDOS 攻击了,我们建议您从防火墙策略上入手。

帖子地址: 

本文来源于草根吧源码论坛 www.caogen8.co,欢迎大家下载。
如果您没有贡献需要充值,可以直接在线充值,点击充值
如果你需要加入本站赞助VIP会员,可以直接在线开通,点击开通
如果找不到您要的资源,请搜索一下,点击搜索
回复

举报

发表回复

高级模式
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆 用百度帐号登录 一键登录:

本版积分规则

收藏帖子 返回列表 搜索
快速回复 返回顶部 返回列表