CC 攻击,全称为 Challenge Collapsar 攻击,是一种常见的分布式拒绝服务攻击方式。其攻击方式主要有僵尸网络攻击、代理攻击和单主机虚拟多 IP 地址攻击等。
僵尸网络攻击具有很强的隐蔽性,攻击者通过僵尸网络向服务器发起大量请求,受害主机收到的请求来自大量分散的地址,没有任何攻击者的 IP 地址信息。代理攻击则是攻击者通过攻击主机发送访问请求给代理服务器,然后立刻断开连接并发送下一次请求,大大提高了攻击效率。单主机虚拟多 IP 地址攻击是攻击者利用一台主机虚构出多个 IP 地址向目标服务器指定页面发送大量请求,导致服务器无法处理正常访问。
CC 攻击对网络安全危害巨大。首先,它会使网站打开速度变慢,因为服务器资源被攻击流量占据,带宽出现拥堵。其次,被搜索引擎降权,影响网站在搜索引擎的排名。此外,还会影响用户体验,一旦服务器资源被侵占,网站加载速度延迟,甚至无法正常访问。
CC 防护的重要性不言而喻。它可以保护网络可用性,确保网络服务正常运行,保护用户的访问体验。同时,还能防止数据泄露,保护用户隐私和机密信息的安全。对于企业来说,维护企业声誉也至关重要,网络服务中断会带来巨大经济损失,影响客户关系。
综上所述,CC 防护对于保护网络安全至关重要,我们必须高度重视并采取有效的防护措施。
二、CC 防护方案
(一)紧急模式 CC 防护设置
紧急模式 CC 防护默认关闭,开启前需确认自定义 CC 防护规则处于未启用状态。开启方法如下:
- 登录 Web 应用防火墙控制台,在左侧导航栏选择基础安全。
- 在基础安全页面,左上角选择需要防护的域名,单击 “CC 防护”,进入 CC 防护页面。
- 在紧急模式 CC 防护模块中,单击状态右侧的开关,经过二次确认后,开启紧急模式 CC 防护。
配置项说明:状态开关开启后,若网站遭大流量 CC 攻击会自动触发防护(网站 QPS 不低于 1000QPS),无需人工参与。若无明确的防护路径,建议启用紧急模式 CC 防护,可能会存在一定误报。可以在控制台进入黑白名单,对拦截 IP 信息,进行加白处理。
适用场景:当没有明确的攻击流量特征,且希望在大流量 CC 攻击时自动触发防护时,可使用紧急模式 CC 防护。
注意事项:紧急模式 CC 防护策略和自定义 CC 规则防护策略不能同时开启。如果知晓明确的防护路径,建议使用自定义 CC 规则进行防护。
(二)基于访问源 IP 的 CC 防护设置
基于 IP 的 CC 防护策略设置步骤如下:
- 登录 Web 应用防火墙控制台,在左侧导航栏选择基础安全。
- 在基础安全页面,左上角选择需要防护的域名,单击 “CC 防护”,进入 CC 防护页面。
- 在 CC 防护页面,单击添加规则,弹出添加 CC 防护规则弹窗。
- 在添加 CC 防护规则弹窗中,填写相应信息。
字段说明:
- 高级匹配:通过进行 GET 表单和 POST 表单参数过滤,支持更加精细化频率控制,提高命中率。
- 匹配字段:指定请求方法,支持 GET 或 POST。
执行动作:
- 观察:符合匹配条件的会话请求将会被监控并记录日志,观察结果可在攻击日志中查看。
- 拦截:符合频率控制条件的请求将执行拦截,将会拦截该 IP 对网站所有 URL 的访问,可设置惩罚时长,取值为 5 分钟 - 10080 分钟(7 天),拦截结果可在攻击日志中查看,拦截 IP 的实时信息可在 IP 查询中查看。
- 人机识别:仅用于浏览器访问场景,符合匹配条件的会话请求将进行验证码挑战,若挑战失败,执行拦截动作。若挑战成功,惩罚时长内正常访问。
- 精准拦截:符合频率控制条件的请求将执行精准拦截,将会拦截该 IP 对防护 URL 的访问,区别于对整个域名的拦截,可设置惩罚时长,取值为 5 分钟 - 10080 分钟(7 天),拦截结果可在攻击日志中查看。
- 精准人机识别:符合频率控制条件的请求将执行精准人机识别动作,将会针对该 IP 对防护 URL 的访问的流量发起人机识别验证挑战。若挑战失败,执行拦截动作。若挑战成功,惩罚时长内正常访问。
三、 CC 防护方案
(一)快速和慢速 CC 攻击的防护手段
Nginx 和 Apache 都有相应模块来应对 CC 攻击。以 Nginx 为例,对于快速 CC 攻击,可以限制单一源 IP 的请求速率,平均每秒不超过 1 个请求,并且突发不超过 5 个请求。配置如下:http { limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;... server {... location /limit_req/ { limit_req zone=one burst=5; } } }。对于慢速 CC 攻击,可以限制单个请求的超时时间,如将client_header_timeout设置为 60s(等待客户端发送请求头的超时时间,将这个值改小可以应对慢速发送请求头的 CC 攻击);client_body_timeout设置为 60s(读取客户端发送请求体的超时时间,将这个值改小可以应对慢速发送请求体的 CC 攻击);keepalive_timeout设置为 75s(与客户端的连接超时时间,如果连接大量被占用,可以将其改小一些,释放被占用的连接,减轻服务器压力)。
此外,还可以限制并发连接数,单一源 IP 最大并发数是 100,总的连接数不超过 1000:http { limit_conn_zone $binary_remote_addr zone=one:10m; limit_conn_zone $server_name zone=perserver:10m;... server {... limit_conn one 100; limit_conn perserver 1000;... } }。
(二)CC 防护攻击紧急模式
当网站遇到 CC 攻击时,开启 CC 防护攻击紧急模式能够有效对客户端校验。但这个模式只能对 Web 应用、网站应用及 H5 页面有效,对于 API 以及 Native 的 App 会造成大量误杀。所以在这两种场景下不支持攻击紧急模式,此时建议使用 CC 自定义防护进行防御。
(三)特征分析与规则配置
CC 攻击一般有以下特征:某个 URL 的请求异常集中;请求的源 IP 异常集中;请求的源 IP 在某几个 IP 段或者某几个省;使用相同的 Referer 或者 User-Agent 等。以一个网站为例,峰值时间最高有 13 万的 QPS。可以通过分析日志找出攻击者的特征,然后使用工具对发现的特征进行封禁。比如通过对 request URL 进行分析,若发现 99% 的请求全都请求了某个特定路径,而正常情况下不会有这么大的量出现,就可以在 WAF 的控制台上查到 CC 自定义防护中配置这个路径进行防护。配置规则时,可以对 URL 进行完全匹配,然后配置检测周期和检测次数,以及对应的主端动作(封禁或人机识别)和封禁时间。例如,一个源 IP 在 10S 内访问超过 5 次,就触发封禁,这是一个比较严格的策略,这个频率可以根据自己业务的经验进行调整。如果在网站架构中,WAF 前端有高防或者 CDN 之类的产品,推荐使用人机识别进行防护。还可以继续分析日志,找到更加精确的攻击特征加以防护,如分析客户端 IP 分布和 user_agent 特征等。
四、其他平台的 CC 防护方案
(一)使用 CDN 防 CC 攻击
CDN(Content Delivery Network)即内容分发网络,在防御 CC 攻击方面有着重要作用。腾讯云 CDN 提供了 IP 访问限频配置功能,通过对单 IP 单节点在每一秒钟的访问次数进行限制,可有效进行高频 CC 攻击抵御、防恶意用户盗刷等。例如,腾讯云 CDN 的 IP 访问限频配置中,可以设置每秒发起 50 次请求,超过则进行 IP 访问限制。具体配置步骤如下:登录 CDN 控制台,在菜单栏里选择域名管理,单击域名右侧管理,即可进入域名配置页面,第二栏访问控制中可看到 IP 访问限频配置,默认情况下配置为关闭状态,阈值为空。开启配置时,单击开关,填充频次控制阈值并单击确认,即可启用 IP 访问限频控制。配置开启后,超出 QPS 限制的请求会直接返回 514,设置较低频次限制可能会影响正常高频用户的使用,所以需要根据业务情况、使用场景合理设置阈值。
使用 CDN 防御 CC 攻击时也有一些注意事项。若加速域名服务区域为全球加速,设置的 IP 访问限频会全球生效,不支持境内、境外差异化配置。同一个域名下有多个不同 URL,若同时请求不同 URL 时,单 IP 单节点超出阈值的 URL 均直接返回 514。限频仅针对与单 IP 单节点访问次数进行约束,若恶意用户海量 IP 针对性的进行全网节点攻击,则通过此功能无法进行有效控制,如需更强的 CC 攻击防御,建议购买边缘安全加速平台。
(二)宝塔 linux 面板设置
服务器安装宝塔 linux 面板并配置 nginx 防火墙可以进行 CC 防御。首先,对于宝塔面板如果是 nginx 服务的可以安装一个防火墙(购买完成安装即可)。在防火墙的使用中,点击设置进入防火墙面板,主要讲一下防止 cc 攻击 (及恶意访问网站)。cc 防御规则说明主要通过设置多少秒请求的次数,来设置封锁时间。如设置 1s 请求 10 次(针对同一个 url 请求),给封锁的时间恶意容忍度说明(及在多少秒内发起 cc 攻击的次数)。通过设置里的日志,可以查看封锁的 ip 地址列表。通过点击 ip 详情,可以将 ip 加入黑名单,禁止访问。封锁历史的查看对于加入黑名单的用户如何解除呢?可按如下操作(全局配置 ->ip 黑名单)点击 ip 黑名单的设置,可查看黑名单列表(里面可以删除加入的黑名单)。
除了上述设置外,还可以在网站上进行流量限制。这里首先要启用流量限制才可以。具体参数解释如下:并发限制一般一个日 IP 数万甚至十万的站,并发设置为一百多都可以。注意!这是并发,相当于网站一秒钟有多少人同时进行请求。这个量很高了。单 IP 限制根据自己网站需求来设置。一般设置为 5 到 10 即可。流量限制是限制单 IP 每个请求的流量大小。根据访客访问自己网站内容需要的流量大小来设置即可。在极端情况下面板打不开的情况下,使用 SSH 连接服务器,输入以下命令关闭服务器的 80 端口(关闭网站访问)然后进入宝塔进行设置以上设置项。设置完毕后通过 SSH 再开启 80 端口。命令如下:关闭某端口 /sbin/iptables -I INPUT -p tcp –dport 端口号 -j DROP;保存修改 /etc/init.d/iptables save;重启防火墙 service iptables restart;开启某端口 /sbin/iptables -I INPUT -p tcp –dport 端口号 -j ACCEPT;查看端口状态 /etc/init.d/iptables status。
(三)硬件配置与综合防御
硬件配置在 CC 防护中也起着重要作用,但它需要与其他方法相辅相成。例如,增加服务器的带宽和处理能力,可以在一定程度上应对 CC 攻击带来的流量压力。然而,单纯依靠硬件配置并不能完全解决 CC 攻击问题。
网站静态化和 JS 验证对 CC 攻击的效果不佳。虽然网站静态化可以提高网站的加载速度,但对于 CC 攻击的防御作用有限。JS 验证也容易被攻击者绕过,不能作为主要的 CC 防护手段。在实际的 CC 防护中,应该综合运用多种方法,如使用 CDN、安装防火墙、合理配置服务器参数等,以提高网站的安全性和稳定性。
墨者安全 防护盾
墨者安全作为专业级别安全防护专家,在应对 Webshell 风险隐患方面展现出了卓越的能力。其拥有全面的检测机制,能够精准识别 Webshell 的各种类型和变体,无论是复杂的大马,还是隐蔽的内存马,都难逃其敏锐的监测。
墨者安全防护盾具备强大的实时监控功能,对服务器的各项活动进行 7*24 小时不间断的监视。一旦发现任何可疑的 Webshell 活动迹象,立即发出警报,并迅速采取隔离和清除措施,将风险扼杀在萌芽状态。
在防护策略上,墨者安全防护盾采用了多层次的防御体系。不仅能够在网络层面阻挡外部的恶意访问和攻击,还能深入系统内部,对服务器的文件系统、进程等进行深度检查和保护,确保 Webshell 无法植入和运行。
同时,墨者安全防护盾拥有快速的应急响应能力。当 Webshell 攻击事件发生时,专业的安全团队能够迅速介入,进行深入的分析和处理,最大程度减少攻击带来的损失,并帮助用户快速恢复服务器的正常运行。
墨者安全防护盾还注重用户教育和培训,为用户提供关于 Webshell 防范的专业知识和最佳实践,帮助用户提升自身的安全意识和防范能力,共同构建坚实的网络安全防线。