浅析如何防御CC攻击

安全 黑客攻防
本篇文章通过讲述CC攻击的原理,并且通过与DDOS攻击相对比,介绍了CC攻击直接攻击、代理攻击、僵尸网络攻击三种形式,并且就代理攻击简述如何防御CC攻击。

其实防御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攻击主要针对 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 攻击了,我们建议您从防火墙策略上入手。

 

【编辑推荐】

  1. 黑客不爱软件漏洞 更喜欢利用错误配置
  2. “90后”黑客攻击南京房管局网站
  3. Black Hat和Defcon黑客大会的五大看点
  4. 路由器漏洞:黑客展示如何攻陷百万台
  5. 揭秘黑客手中DDoS攻击利器——黑色能量2代
责任编辑:张启峰 来源: 中国IT实验室
相关推荐

2013-06-24 10:16:45

2010-07-19 21:52:35

2020-12-01 16:50:18

CC攻击DDoS攻击网络攻击

2020-12-01 09:17:24

网络安全DDoS服务器

2010-09-27 08:46:53

2016-09-29 22:54:55

2017-06-08 19:19:10

2015-03-27 09:50:37

2009-10-29 17:47:31

2021-06-03 10:16:12

CSRF攻击SpringBoot

2013-05-13 13:33:42

2010-09-14 19:40:42

2019-02-22 09:00:00

2010-09-16 21:20:02

2013-08-26 15:38:36

2011-03-17 14:07:39

2014-06-23 10:37:12

2012-08-17 09:25:59

2021-06-30 07:25:35

开发JavaXSS
点赞
收藏

51CTO技术栈公众号