防御CC攻击安全技术解析

日期: 2010-07-26 来源:TechTarget中国

  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攻击了,我们建议您从防火墙策略上入手。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐