-
2020-07-09 09:04:28
很多站长在做站的时候会碰到被人cc攻击,有时候真是苦不堪言呐!
其实本人结合多年的做站经验对于攻防还是有一定的见解的,对于防御我想说的是:只要服务器真实ip不暴露,服务器域名直接访问做禁止处理,域名加上cdn可以很大程度上起到防御作用,国内已备案的域名可以使用百度云加速,免费又好用。不过有点鸡肋的是移动的线路总是会出问题。
好了,废话不多说。其实使用php代码也可以进行一定的cc防御的。以下就是用于防御cc攻击的php代码。
<?php empty($_SERVER['HTTP_VIA']) or exit('Access Denied'); session_start(); $seconds = 10; //时间段[秒] $refresh = 5; //刷新次数 //设置监控变量 $cur_time = time(); if(isset($_SESSION['last_time'])){ $_SESSION['refresh_times'] += 1; }else{ $_SESSION['refresh_times'] = 1; $_SESSION['last_time'] = $cur_time; } //处理监控结果 if($cur_time - $_SESSION['last_time'] < $seconds){ if($_SESSION['refresh_times'] >= $refresh){ //跳转验证 $url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $msg = '<title>安全检查</title><h3>检测到CC攻击,正在进行浏览器安全检查!</h3>'; exit($msg . "<meta http-equiv='refresh' content='3;url={$url}'>"); //3是定时跳转的时间,后期可以根据时间段调整跳转时间 } }else{ $_SESSION['refresh_times'] = 0; $_SESSION['last_time'] = $cur_time; }
以上代码插入index.php文件里面即可,实测有效。
更多相关内容 -
IIS专家CC防御系统下载 1.0.0.rar
2019-07-14 04:48:29主要功能: 1、防御肉机、代理:自动检测通过肉机、代理对服务器发起的攻击,占用资源少;...6、放行蜘蛛:避免了网站因被CC攻击导致的搜索引擎无法收录的情况; 7、日志分析:方便实时查看被攻击拦截日志 -
CC防御方案
2020-04-07 18:01:451 DNS高防方案 1DNS高防需求 DNS作为网络服务的入口,面临攻击的风险越来越大,传统的DNS服务基本不具备DDOS之类的防御能力,同时互联网上持续发生的DDOS攻击事件在不断的...支持大流量攻击下的防御,目标防御5...1 概述
CC攻击是DDoS攻击的一种,早期的DDoS伪造数据包对目标网络及服务的协议栈发动攻击,轻易的就造成系统不可用,以此达到攻击的目的。后来绿盟推出了黑洞产品,英文名是Collapsar,一度打击了流量型的DDoS攻击;再后来又有黑客实施了应用层的攻击,轻松绕过黑洞的防御,同样实现了DDOS攻击,为此命名为Challenge Collapsar,简称为CC。CC事实上就是模拟访问者的正常请求,通过发起更多更容易混淆的请求达到消耗服务器资源的目的。
攻击技术的不断演进,倒逼着防御技术持续跟进,但效果上还差些意思,后来以至于到现在,我们还在想着新的对策来防御CC攻击。
CC是模拟访问,用户是访问,用户的目的是获取资料,而CC是消耗资源,注定其特征不同。本文档提出新的CC防御思路,应对高中低各类服务器性能、应对分布式防御、应对水平高低不同的管理员提出的解决方案,几乎就是免配置的防御方案。
存在一项配置,CC防御灵敏度,那就用滚动条来服务吧。2 开放的服务
CC攻击的WEB服务,正是网站拥有者建立起来提供公众访问的服务,这样的服务是面向大众访问的,谁都可以访问。
2.1 CC攻击来了
但是CC攻击的时候,这些访问权限都被CC攻击者占有了,正常的访问者几乎没有机会访问到,网站就已经打不开了。
好,把CC拦下来,怎么拦呢,CC攻击可能通过如下途径实施:- 由程序模拟访问,访问方式看起来很正常
a) 组织一些服务器进行访问
b) 挂许多代理(匿名或不匿名的)进行访问
c) 控制大量的僵尸主机进行访问 - 劫持攻击,通过劫持第三方的请求,导入式攻击攻击的方式好多,攻击过程中的样子就更多了:
- 直接攻击单一url,有的还变换参数,绕开缓存
- 攻击某几个url
- 随机攻击url
- 空连接攻击
- 慢连接攻击
似乎都有特征,好象能防住,但没多久,502了,一查源站挂了。
2.2 坚强的代理
攻击者真傻,打的是静态页面,我们的代理轻松能扛;但是攻击主机不断的出现,似乎代理也快扛不住了,加ipset吧,加、加、加,最后一统计十几二十万呢,似乎防住了,接下来,不断的接到投诉,某某IP怎么访问不了?最后一查,发现都在ipset中,汗啊。
配置界面上让用户设置的阈值,结果源站挂了,用户评价说设置的不大,可节点上还没有触发阈值,原来因为是分布式CDN,攻击者是通过好多节点一起攻击的。3 安全的服务
要保护被访问的服务,如果资源不受控,那就控制去访问的量,同时做为代理节点还应提供尽可能多的服务资源。要提供服务,首先要保护好服务,源站需要保护,代理节点也需要保护。
3.1 保护服务
3.1.1 源站保护
1秒内就能响应完的服务肯定是好服务,2秒内能响应完也不错。
假设当前的响应能力为k秒,请求发出,当还没有响应完,称这类请求为半请求,可累积半请求数量n,按秒统计半请求的增量超过响应数量m时,响应能力进一步减弱,预期的响应能力可按下述公式计算k*(n/m) = g秒,根据用户设定的CC响应灵敏度值映射的响应能力来判定是否启动保护。
启动保护后,从队列中取出要回源的请求,建立请求前要分析url和IP的访问指数,满足可访问条件的允许回源,不满足的拦截,未知的重新放回队列,待下一次判断。
3.1.2 节点保护
节点的性能、带宽在应对CC攻击时都存在较大的波动,确保清洗的过程中,还能提供较好的访问体验需要对节点也采取保护措施。
清洗过程中,每一次CC请求都正确的响应拦截数据有可能影响节点的性能,触发保护时可以有选择的做一些reset操作,即能统计到攻击次数,又可以降低性能损耗。
3.2 扩容服务
缓存是扩容服务的最好的途径,但我们平常用的都是常规缓存,许可缓存。当一个新的未知IP初始请求一个资源时,如果源站压力大,服务资源有限时,可以考虑在节点上提供该IP尽可能正确的缓存内容,依此来观察该IP后续的行为。
4 清洗服务
当服务过程中,节点感知到系统触发了CC防御,必然要对所有的请求进行清洗,把CC洗掉,让正常的请求获取正确完整的资料。
4.1 服务分析
- Nginx反向代理的方式保护源站,根据清洗策略提供服务,实时的输出服务信息;
- Ccap/spark平台分析服务信息,形成清洗策略,下发到nginx。
4.1.1 输出服务信息
在整个请求过程中,refer,agent等都可以伪造,没有分析的必要;x-forward虽然也存在伪造,但我们需要统计一个IP使用代理的数量,同时默认上也可以直接拦截3次代理以上的请求,同时nginx为每一次新的请求(除api类url)提供一个cookie,记录session用,所以从本方案上需要输出的服务信息包括:
-
防御输出
Session, client_ip, xforward_list, url,hostx(master_domain),def_code -
请求输出
Session,client_ip,xforward_list,url,hostx(master_domain),wait_time -
响应输出
Session,client_ip, url,hostx(master_domain),localtime,valid_time,code
Session要做好设计,在nginx中只有正常使用的session会记录到共享内存中,也有必要输出,同一个session可使用次数随机(5~50次),session同时还有伪造session、session过期、空session、无session等
4.1.2 清洗策略分析
清洗策略分析的目的是找到可疑目标,可疑目标参与的请求优先进行控制
4.1.2.1 可疑目标分析
- 可疑IP
- 同时使用多个代理进行访问
- 在黑名单中
- 非正常session次数超限
- 并发session高,访问内容重合度大
- 单IP最近周期内错误率高
- 单IP重复率高
- 可疑url
- 可疑IP集中度高的url
- 最近周期内访问量达平均值2倍以上的url
4.1.2.2 清洗指数分析
建立模型,根据可疑目标最近周期的访问情况,对比整体服务的状态,得到可疑目标的清洗指数,下发给nginx,nginx依据模型的清洗原理,控制可疑目标的服务状态,把更多的资源让给未知或安全的请求。
4.2 清洗流程
5 实施方案
5.1 模块划分
上述方案完整的模块包括:
5.1.1 回源保护
回源保护模块能感知源站的响应能力,从而决定当前要发起到源站的请求是放行还是挂起,挂起有两种情况,包括阻断或延迟处理。
该模块能感知源站的响应能力是指能预测响应能力,每次请求源站前,会判定预测的响应能力是否达到了用户介意值,这一介意值通过用户设定的CC灵敏度阈值来换算。当预测响应能力超过介意值,则进入防御模式。用户也可以手动开启防御模式。
在防御模式下,会对可疑IP涉及的访问拦截、对未知IP涉及的可疑url进行延迟,对其它情况的访问在资源允许情况下放行。
模块以nginx modules模式设计,存在部分patch。
该模块有别于现在的cc_limit,部分思路相同,从request上控制。
5.1.2 Nginx信息输出
该模块负责输出请求数据,从原来的cc_clear、cc_log中精减和改进,具体数据输出根据阶段性实际需求改进。
5.1.3 Nginx接收策略
接收ccap下发的策略,录入到相应的共享内存中,与各防御或保护模块协调一致。
5.1.4 CCAP
该模块收集nginx的输出信息,进行分析汇总:
1) 产生防御策略,实时或定时下发到nginx,包括按域按回源IP的关键值,可疑url和可疑IP等
2) 外发到spark平台
3) 汇总数据上报到报表数据中心5.1.5 节点保护
节点保护模块用于在较大压力下的节点自身防御能力的优化流程处理
5.1.6 Cookie session
为开启cc防御服务的站点提供cookie session机制,优化CC行为的分析方法,涉及输出、CCAP等模块的改进。
5.1.7 恶意IP库
恶意IP库是一个系统工程,包括追加、更新、清理等多个机制,同时涉及分布式管理和维护,包括一个自主更正平台。
从使用者的角度来说,nginx中使用该库的接口,如果发现属于这类IP,应转发请求,让其进入更正平台。5.1.8 SPARK
大数据实时分析平台,该平台获取实时访问数据,建立模型,提供更精确的黑白名单。
- 由程序模拟访问,访问方式看起来很正常
-
CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放
2020-09-15 16:11:30主要介绍了CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放,需要的朋友可以参考下 -
kangle之cc防御以及美化版的点此访问
2022-03-24 21:29:39kangle之cc防御的配置以及美化版点此访问的CC盾1.进入3311后台配置cc模块
大概步骤:点击请求控制 -- 拉到底部点击插入 -- 在标记模块那选anti_cc
如上图所示:配置即可,把下面代码放入msg:框
声明:Html页面代码非原创,基于登录页修改。
HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 Connection: keep-alive Cache-Control: no-cache,no-store Recaptcha: sakura <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"> <title>Faryun - 消除你对公益云的偏见</title> </head> <style> *{margin:0;padding:0;}body{min-height:100vh;display:flex;justify-content:center;align-items:center;background-color:#94bfb560;}.container{background-color:#222;width:350px;height:550px;border-radius:15px;overflow:hidden;position:relative;}.container::after{content:"";position:absolute;inset:0;background:url("http://dd-static.jd.com/ddimg/jfs/t1/214466/30/15659/38379/623c6291E5f42bba6/4b0e2d4d696382ce.jpg") no-repeat;background-size:500px;background-position:left bottom;opacity:0.8;}.register-box{width:70%;position:absolute;z-index:1;top:50%;left:50%;transform:translate(-50%,-50%);transition:0.3s ease;}.register-title,.login-title{color:#fff;font-size:27px;text-align:center;}.register-title span,.login-title span{color:rgba(0,0,0,0.4);display:none;}.register-box button,.login-box button{width:100%;padding:15px 45px;margin:15px 0;background:rgba(0,0,0,0.4);border:none;border-radius:15px;color:rgba(255,255,255,0.8);font-size:13px;font-weight:bold;cursor:pointer;opacity:1;visibility:visible;transition:0.3s ease;}.register-box button:hover,.login-box button:hover{background-color:rgba(0,0,0,0.8);}.login-box{position:absolute;inset:0;top:20%;z-index:2;background-color:#fff;transition:0.3s ease;}.login-box .center{width:70%;position:absolute;z-index:3;left:50%;top:40%;transform:translate(-50%,-50%);}.login-title{color:#000;}.login-box.slide-up{top:90%;}.login-box.slide-up .center{top:10%;transform:translate(-50%,0%);}.login-box.slide-up .login-title,.register-box.slide-up .register-title{font-size:16px;cursor:pointer;}.login-box.slide-up .login-title span,.register-box.slide-up .register-title span{margin-right:5px;display:inline-block;}.login-box.slide-up .button,.register-box.slide-up .button{opacity:0;visibility:hidden;}.register-box.slide-up{top:6%;transform:translate(-50%,0%);} </style> <script> function addZero(str,lenght){return(Array(lenght).join(0)+str).slice(-lenght)}function goto(){s1=2268322/151;s2=6585-151;s1=addZero(s1,5);s2=addZero(s2,5);se=s1+s2;location.href="{{murl}}"} </script> <body> <div class="container"> <div class="register-box"> <h2 class="register-title"> CDN SYSTEM </h2> <br><br><br><br> <button onclick="goto();">点此继续访问</button> </div> <div class="login-box slide-up"> <div class="center"> <h2 class="login-title"> <span>Faryun</span>CC盾 </h2> </div> </div> </div> </body> </html>
2. 后记
解释一下:
request:请求数
second:秒数
white list:白名单
fix_url:地址栏显示优化
skip_cache:忽略高速缓存
flush:和C语言用的fflush函数意思差不多
补充 :
- 简单理解flush:比如你写了个文件,但没关闭掉,它并没真正进文件,而是在缓存中,用这个就是把缓存清空,并将缓存中的内容写入文件
- 那么flush在kangle这里的缓存内容是什么?
- 在什么情况下,需要勾这个flush呢?
来自小樱大佬的解答:
被CC攻击时候系统中会产生大量的网络连接,此时系统TCP产生的ack包等握手开销,内存足够的话,不建议勾选flush,因为这样可以重复利用缓存区,缓存区可直接利用于下次被CC攻击请求,能大幅度降低CPU开销,所以此时会发现CC攻击停止后,kangle进程的内存依旧不会下降恢复到空闲状态,如果勾选flush则会导致每次握手结束后释放缓存,此时会涉及到CPU反复调度清空缓存区,影响性能。 -
安全相关-网络安全-IIS专家CC防御系统 v1.0.2.zip
2021-09-15 08:07:56网络-计算机-安全相关 -
特网云虚拟主机开启CC防御
2021-08-30 17:10:37CC攻击防护默认关闭状态 1、被CC攻击,网站连接数和恶意访问量增多,网站变慢或者无法访问 2、CC防护即限制某一IP一定时间内允许访问站点次数,超限后防火墙将阻断访问 3、防护等级越高越严格,建议设置为中 ...CC攻击防护 默认关闭状态
1、被CC攻击,网站连接数和恶意访问量增多,网站变慢或者无法访问
2、CC防护即限制某一IP一定时间内允许访问站点次数,超限后防火墙将阻断访问
3、防护等级越高越严格,建议设置为中
设置说明
如果您的网站偶尔受到CC攻击,尝试设置为: 防护等级 (低),可向上设置。
经常性受到CC攻击并影响网站运行,尝试设置为:防护等级 (中),可向上设置。
一直受到攻击,并造成网站打不开。尝试设置为:等级防护 (高),或者虚拟主机关机。
-
配置Nginx实现简单防御cc攻击
2020-09-30 04:37:29本文主要介绍lua+Nginx下如何快速有效得防御CC攻击。至于如何安装Nginx就不详细介绍了,闲话少说,大家请看示例 -
一款Linux轻量级CC攻击防御工具
2021-05-26 04:42:32而CC攻击只是DDoS攻击的一种,本文所阐述的CC攻击,指的是单个IP达到我们设定好的阈值并发请求,而非海量IP的低并发攻击!对于个人低配服务器,除了使用CDN来防护,至少我是没有想到如何抵挡海量IP攻击的!因为每个... -
当前市场的CC攻击防御软件,CC防御软件,DDOS防御软件,DDOS攻击防御的防御经验总结……
2019-03-18 20:21:24当前市场的CC攻击防御软件,CC防御软件,DDOS防御软件, DDOS攻击防御的防御经验总结.数年前,做为某款游戏服务器管理员,对服务器安全深有感触.如果是做为玩家,服务器卡,服务器进不去,顶多就是,哎呀,服务器... -
CC攻击的防御方法
2021-08-11 10:07:08CC攻击是相对于普通DDoS攻击更加难以防御,CC攻击流量不大,占用的是服务器的内存资源。CC攻击来的IP都是真实的,分散的。数据包都是正常的数据包,攻击的请求全都是有效的请求,无法拒绝的请求。具体表现为:服务器... -
网站CC防御拉黑IP源码
2021-03-28 08:41:51网站CC防御拉黑IP源码 两个版本 都需要配置好数据库,在对应目录里的config.php里 默认的管理员账号密码都是admin,暂未添加修改密码的功能 有能力的自己加,或者直接在数据库里改 这两套程序,均可抵抗CC攻击,可当CC... -
CC攻击是什么?常见的防御手段有哪些?
2022-03-26 19:46:27CC攻击的前身 CC攻击的前身是一个名为Fatboy的攻击程序,而之所以后来人们会称之为CC,是因为DDoS攻击发展的初期阶段,绝大部分DDoS攻击都能被业界熟知的“黑洞”(Collapsar,一种安全防护产品)所抵挡,CC攻击的... -
php实现cc攻击防御和防止快速刷新页面示例
2020-10-26 06:55:14主要介绍了php实现cc攻击防御的方法和防止快速刷新页面示例,需要的朋友可以参考下 -
特网云 虚拟主机开启CC防御方法
2021-05-27 15:59:231、被CC攻击,网站连接数和恶意访问量增多,网站变慢或者无法访问 2、CC防护即限制某一IP一定时间内允许访问站点次数,超限后防火墙将阻断访问 3、防护等级越高越严格,建议设置为中 设置说明 如果您的网站... -
Nginx简单防御CC攻击的两种方法
2018-11-10 18:57:51CC攻击可以归为DDoS攻击的一种。他们之间都原理都是一样的,即发送大量的请求数据来导致服务器拒绝服务,是...而肉鸡CC攻击是黑客使用CC攻击软件,控制大量肉鸡,发动攻击,相比来后者比前者更难防御。因为肉鸡可以... -
APP为什么会被攻击?快速解决DDOS攻击,做好CC防御。
2022-03-15 18:03:50僵尸网络进犯有点类似于 DDOS 进犯了,从 WEB 应用程序层面上现已无法防护,所以署理进犯是CC 进犯者一般会操作一批署理服务器,比方说 100 个署理,然后每个署理同时宣布 10 个恳求,这样 WEB 服务器同时收到 1000 ... -
网站被CC攻击怎么办?宝塔防火墙防CC设置详解
2021-08-05 05:19:16之前也介绍了BT宝塔面板的安全设置等文章,如下:一、防御CC的简介首先要在BT宝塔后台安装Nginx防火墙,企业插件里的Nginx防火墙,进行安装还没安装BT宝塔面板?宝塔服务器面板,一键全能部署及管理,送你3188元礼包... -
CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放 (网摘)
2021-05-15 09:33:39而 CC 攻击只是 DDoS 攻击的一种,本文所阐述的 CC 攻击,指的是单个 IP 达到我们设定好的阈值并发请求,而非海量 IP 的低并发攻击!对于个人低配服务器,除了使用 CDN 来防护,至少我是没有想到如何抵挡海量 IP ... -
一键防御CC攻击,防御CC攻击,DDOS攻击完美解决,0误封,防御方案详解
2019-03-20 10:52:12数年前,做为某款游戏服务器管理员,对服务器安全深有感触.如果是做为玩家,服务器卡,...玩家掉线,游戏进不去,那客服的消息可以说是爆屏,而做为技术我的们,就是自种检查,结果都清楚,又是被人CC攻击, 服务器的... -
记一次公司服务器遭受CC攻击防御的应急记录
2019-02-18 11:44:48公司服务部署框架因redis瓶颈,cc攻击导致资源全部被占用,APP几乎打不开 处理过程 一、因亚马逊服务就开启了cloudfront服务,结果因cloudfront是国外的CDN服务在国内不兼用,结果打开翻墙才能用,否则不行 二、... -
防止cc攻击监控脚本
2018-10-08 17:19:51C攻击是DDOS(分布式拒绝服务)的一种,相比其它的DDOS攻击CC似乎更有技术含量一些。这种攻击你见不到虚假IP,见不到特别大的异常流量,但造成服务器无法进行正常连接。最让站长们忧虑的是这种攻击技术含量低,利用... -
CC攻击如何防御
2022-01-26 13:11:05CC攻击是DDOS的一种,前身名为Fatboy攻击,也是一种常见的网站攻击方法。CC攻击原理就是模拟多个用户对一些资源消耗较大的页面不断发出请求,从而达到消耗服务器资源的目的,当...对于CC攻击的防御,没有像DDOS攻击 -
CC防御过程中,WAF的主要特点有哪些?
2019-08-09 16:30:28一部分网站和游戏,以及金融的企业网站负责人员对于流量攻击应该属于耳熟能详。...因此在解决DDoS攻击和CC攻击防御的过程中,运用了WAF指纹识别架构去做相对应的权限策略,以此避免误封正常的用户访问请... -
国外防CC攻击软件(服务器版)
2011-12-01 02:01:11唯一一款完全免费的国外防CC软件,已经汉化过了,无毒放心使用。 -
Linux下简单的防止CC攻击
2021-05-10 18:22:01Nginx 0.7开始提供了2个限制用户连接的模块:NginxHttpLimitZoneModule和NginxHttpLimitReqModule。NginxHttpLimitZoneModule可以根据条件进行并发连接数控制。NginxHttpLimitReqModule可以根据条件进行请求频率的...