黑客web脚本攻击与防御技术核心剖析 CC攻击详解
一、CC攻击原理
CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。CC主要是用来消耗服务器资源的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。
二、CC攻击的种类
CC攻击的种类有三种:直接攻击、僵尸网络攻击、代理攻击。
直接攻击:主要针对有重要缺陷的 WEB 应用程序,一般说来是程序写的有问题的时候才会出现这种情况,比较少见。
僵尸网络攻击:有点类似于 DDOS 攻击了,从 WEB 应用程序层面上已经无法防御。
代理攻击【常见】:是CC 攻击者一般会操作一批代理服务器,比方说 100 个代理,然后每个代理同时发出 10 个请求,这样 WEB 服务器同时收到 1000 个并发请求的,并且在发出请求后,立刻断掉与代理的连接,避免代理返回的数据将本身的带宽堵死,而不能发动再次请求,这时 WEB 服务器会将响应这些请求的进程进行队列,数据库服务器也同样如此,这样一来,正常请求将会被排在很后被处理,就象本来你去食堂吃饭时,一般只有不到十个人在排队,今天前面却插了一千个人,那么轮到你的机会就很小很小了,这时就出现页面打开极其缓慢或者白屏。
三、如何判断CC攻击
CC攻击是通过大量的代理ip进行访问网站,从而达到网站服务器无法负荷最终瘫痪的过程。
并且这种攻击是会消耗大量的流量,从而造成站长亏钱,要想判断CC攻击,
其实非常简单,如果发现网站在短时间内cup直线上升,而且网站打开变慢甚至502错误,那可能是遭受cc攻击了
1.1、消耗CPU资源
黑客用1万台肉鸡,刷新你网站动态页面,如果你程序不够健壮辅助论坛,cpu直接100%
1.2、消耗内存资源
黑客只要刷新你动态页面中搜索数据库的内容,只要搜索量一大,内存占满。网站直接打不开或者是非常卡。
1.3、消耗IO资源
黑客找到上传文件,或者是下载文件的页面,在不停的上传与下载,磁盘资源点满
1.4、消耗带宽资源
能看流量占用多少,如果流量占满了,服务器直接掉包,掉线。网站一点都打不开。如果自己主机上不去,你可以问运营商要流量图,机房都有流量图的。
1.5、网站502
很多时候,发现自己网站特别的慢,甚至经常502,一般来说是被CC攻击了。
1.4、查看SYN连接
# 检查方式
四、常见办法
CC攻击基本是模拟真人访问,如果肉鸡够多的话,基本是无解
以下是稍微简单有效的几种办法:
1.针对IP进行封禁,例如一个IP如果在一秒内请求大于100的,可以封禁掉(一般肉鸡的话,都N多IP,封禁不过来的)
2.针对被高频访问的URL,譬如定制为 10秒内访问超过100次的,需要进行真人验证,有效防止被刷(也需要你有足够的宽带,如果宽带不够早就卡死了)
3.使用一些高防CDN,一些高防CDN会同时具备以上的两种功能
五、Nginx防CC配置
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
server {
上面样本的配置是什么意思呢?
详细的可以参考官方说明文档:Module ngx_http_limit_req_module
模拟请求
以下三种配置方式,访问结果参考地址:
这里我们需要Apache Benchmark这个小工具来生成请求
//1个用户持续100s的时间向服务器发送请求
ab -t 100 -c 1 -vvv