CC攻击事件报告 20250613至20250619

过程和初步评价

发生于 2025-06-13 23点 左右短期,当时很快就结束了,有收到CF的邮件通知但是当时并未理会。

第二天 2025-06-14 23点 至 2025-06-15 23点 左右,持续了整整一天的 CC 攻击。

  • 攻击特征:
    • 第一波攻击固定路径,第二波攻击另一个固定路径。
    • 均为固定路径,无参数,无随机路径。
    • User-Agent (UA) 较多。
  • 攻击影响:
    • 反向代理服务器略有卡顿。
    • 后端服务器满载。
  • 流量分析:
    • UA 种类繁多,国内 IP 特别多,国外 IP 也不少。
    • CC 攻击量不小,规模上看使用了至少几千个代理 IP,其中国内 IP 都有 2000+。
    • 2025-06-14 单日 (Cloudflare 统计):
      • 独立访问者: 27.5K
      • 流量: 14TB
      • 请求数: 58.81M
    • 2025-06-15 单日 (Cloudflare 统计):
      • 独立访问者: 48.8K
      • 流量: 28TB
      • 请求数: 106.06M

后续发现是 Cloudflare 的页面规则当时设置的没缓存成功这个路径,最后通过 CDN 强制缓存控制后,问题基本解决,绝大部分请求都已缓存。

样本抽取

抽取了以下几种场景样本:

  • 表A: 06-15 中国大陆IP (CF自动抽样20%)
  • 表B: 06-15 全球IP (CF自动抽样20%)
  • 表C: 06-15 抽样百万大陆IP (通过国家盾/ASN盾/IP盾)
  • 表D: 06-15 抽样百万全球IP (通过国家盾/ASN盾/IP盾)
  • 表E: 06-14-06-15 抽样七百万全球IP (全部样本)

注:随着攻击持续,国家盾/ASN盾/IP盾在持续迭代,所以有的会从“通过”变成“未通过”。

第三波攻击

第三波攻击发生在 2025-06-18 23点 至 2025-06-19 03点 左右,这时我事先额外加上了阿里CDN。

  • 防御架构: 国内由 CF CDN + 阿里CDN + 反代节点 一起抵御。
  • 过程: 发现反代节点跑了 0.5C 左右的资源,但因持续产生流量遂将其掐掉,让阿里和CF来抵御。
  • 数据统计:
    • Cloudflare (2025-06-18):
      • 独立访问者: 12.98K
      • 流量: 3TB
      • 请求数: 24.62M
    • 阿里云 (同期):
      • 请求数: 55.47M
      • 客户端请求流量: 27GB
      • EdgeStart 响应流量: 253GB

样本抽取 (第三波)

  • 表F: 06-18-06-19 抽样75万大陆IP (通过国家盾/ASN盾/IP盾)
  • 表G: 06-18-06-19 抽样万全球IP (全部样本)

目前审计几个样本表后得到了 5,247个中国IP(总量23,656个IP),是目前遇到国内来源最多的一次攻击,说明攻击者在肉鸡资源上实力不俗。

IP 统计已发布在: https://github.com/BlueSkyXN/Comprehensive-Network-Defense/blob/master/IPs/IPs_CCATK-20250614-0619.csv

防御策略

防御策略上,重点在于 Cloudflare 规则,其次阿里 CDN 套娃 CF 还能双重防御,后面其实还可以接宝塔 NGINX 和雷池。

Cloudflare 防御

首先重点肯定是大善人 CF 了,CF 的设置项目非常多。整体来说包括:缓存规则、自定义规则(原WAF规则)、速率限制规则、安全级别、自定义列表、IP和ASN访问规则。

缓存规则

这是一个比较重要的点,无论是日常使用还是防止简单 CC 都有很好的效果。免费用户可以设置 10 条缓存规则。

  1. 缓存级别:
    • 忽略缓存控制标头,使用此 TTL (例如设置为2小时): 这个选项可以强制缓存那些服务器标记为动态但实际内容不变的页面 (除非你需要很多真实动态内容)。
  2. 缓存密钥:
    • 缓存欺骗盔甲: 开启。
    • 按设备类型缓存: 可开,如果攻击 UA 大量随机化,可能需要关闭。
    • 忽略查询字符串: 可选开启,如果对方进行随机查询字符串攻击则需要开启。
    • 查询字符串排序: 建议开启。
  3. 其他:
    • 重新验证时提供过时内容: 设置为“否”。
    • 源服务器错误页面通过: 设置为“否”。

自定义规则 (原WAF规则)

免费用户可以设置 5 条自定义规则。这是高级表达式发挥作用的地方。

速率限制规则

免费用户只能设置 1 条。由于限制,只能当作全局限制来用,例如单IP在10秒内请求超过100次则封禁10秒。

安全级别

遭遇攻击时开启“我正在受到攻击”模式即可。

自定义列表

免费用户只能创建 1 个自定义列表,但支持多达 10,000 个条目,支持 IPv4/IPv6 和 CIDR。可以和国家、ASN 盾配合使用(在自定义规则中调用它)。

IP和ASN访问规则

免费用户支持 50,000 条规则,优先级较高,对全账户通用。支持 IPv4/IPv6、CIDR、ASN 和国家。但手动只能一条一条添加,且日志记录不全。

阿里 CDN 防御

目前国际站免费,有不少限制但是够用。内置了负载均衡池等功能,适合套娃 CF。

WAF - 智能限频

藏得比较深,是一个高级的速率限制规则。位于“安全防护”->“WAF”的最下面。可以设置高、中、低防护等级(默认对应10秒内4000/200/40次请求),可选开启 JS 挑战。

WAF - IP访问规则

只能添加 200 条,不是很有用。

WAF - 自定义规则

免费 3 条,可选开启 JS 挑战。匹配规则与 CF 类似,但 IP/ASN 等可以使用“分组”功能,每个分组支持 500 条,免费用户可创建 10 个分组。

规则 - 缓存规则

免费 10 条,逻辑上和 CF 一样,要覆盖源站(除非你需要很多真实动态内容)。

规则 - 安全规则

免费 2 条,与上面的自定义规则不同,结果只能是修改安全级别(最高就是 CF 的“正在攻击”模式),可应用 IP 组等。