CC攻击是什么
攻击者借助代理服务器生成指向受害主机的合法请求,实现DDOS和伪装,称为:CC(ChallengeCollapsar)。
CC主要是用来攻击页面的。大家都有这样的经历,就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,访问的人越多,论坛的页面越多,数据库压力就越大,被访问的频率也越高,占用的系统资源也就相当可观。
一个静态页面不需要占用服务器多少资源,甚至可以说直接从内存中读出来发给你就可以了,但是论坛就不一样了,我看一个帖子,系统需要到数据库中判断我是否有读帖子的权限,如果有,就读出帖子里面的内容,显示出来——这里至少访问了2次数据库,如果数据库的数据容量有200MB大小,系统很可能就要在这200MB大小的数据空间搜索一遍,这需要多少的CPU资源和时间?如果我要查找一个关键字,那么时间更加可观,因为前面的搜索可以限定在一个很小的范围内,比如用户权限只查用户表,帖子内容只查帖子表,而且查到就可以马上停止查询,而搜索肯定会对所有的数据进行一次判断,消耗的时间是相当的大。
CC就是充分利用了这个特点,模拟多个用户(多少线程就是多少用户)不停的进行访问(访问那些需要大量数据操作,需要大量CPU时间的页面)。这一点用一个一般的性能测试软件就可以做到大量模拟用户并发。
攻击表现
CC攻击有一定的隐蔽性,那如何确定服务器正在遭受或者曾经遭受CC攻击呢?可以通过以下两个方法来确定。
命令行法
一般遭受CC攻击时,Web服务器会出现80端口对外关闭的现象, 因为这个端口已经被大量的垃圾数据堵塞了正常的连接被中止了。可以通过在命令行下输入命令netstat -an来查看, “SYN_RECEIVED”是TCP连接状态标志,意思是“正在处于连接的初始同步状态 ”,表明无法建立握手应答处于等待状态。这就是攻击的特征,一般情况下这样的记录一般都会有很多条,表示来自不同的代理IP的攻击。
批处理法
此述方法需要手工输入命令且如果Web服务器IP连接太多看起来比较费劲,可以建立一个批处理文件,通过该脚本代码确定是否存在CC攻击。打开记事本键入如下代码保存为CC.bat:
@echo off
time /t >>log.log
netstat -n -p tcp |find ":80">>Log.log
notepad log.log
exit
上面的脚本的含义是筛选出当前所有的到80端口的连接。当感觉服务器异常时就可以双击运行该批处理文件,然后在打开的log.log文件中查看所有的连接。如果同一个IP有比较多的到服务器的连接,那就基本可以确定该IP正在对服务器进行CC攻击。
Web应用防火墙防护CC攻击
Web应用防火墙的架构图:
- 低误杀的防护算法
不再是对访问频率过快的IP直接粗暴封禁,而是综合URL请求、响应码等分布特征判断异常行为 - 恶意特征攻击100%拦截
针对请求中的常见头部字段,如IP、URL、User-Agent、Referer、参数中出现的恶意特征配置访问控制 - 专属业务的定制规则
企业版可设置针对某具体URL业务的正常访问频率规则 - 强大的威胁情报
可定制化提供对海量恶意IP黑名单、恶意爬虫库的封禁能力
配置步骤
可参照以下步骤,来配置CC安全防护模式:
登录到阿里云云盾Web应用防火墙控制台,并前往 网站配置。
单击目标域名操作列下的 防护配置。
在 CC安全防护 下,开启防护并选择相应防护模式。
CC安全防护
模式选择建议:
默认使用 正常 模式。此模式误杀较少,只针对特别异常的请求进行拦截。
当发现有正常模式无法拦截的CC攻击时,您可以选择 攻击紧急 模式。此模式拦截CC攻击效果较强,但可能会造成较多误杀。
如果发现 攻击紧急 模式仍然漏过较多攻击,建议您检查流量来源是否为WAF回源IP。如果发现有攻击直接攻击源站,您可以设置暂时只允许WAF回源IP访问服务器。
如果您希望有更好的防护效果,同时有更低的误杀。您可以选择Web应用防火墙企业版和旗舰版,自定义或让安全专家为您定制针对性的防护算法。