2010-07-29 17:52:41 来源:中国IT实验室
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 攻击了,我们建议您从防火墙策略上入手。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。