记一次CDN被刷与应对方法

上个月初,本站的七牛CDN被刷了不少流量,特此记录一下,极大概率可能是某些PCDN用户刷的,不得不说这个群体是真缺德。

发现CDN被刷

因为主站服务器上行是小水管,所以所有静态文件都走了CDN来加速用户访问

这里为了描述简介,我将主站域名称为主站域名,CDN的域名称为域名A

正常情况下,域名ACDN的流量日志应该是这样的:

正常的CDN的流量日志

但是某天我收到了几条七牛的流量阈值提醒,流量变成了这样,翻了好几倍:

被刷的CDN的流量日志

甚至某天夜晚两小时刷了20G:

夜晚被刷的CDN的流量日志

寻找原因

以开始当然是尝试寻找刷流量的ip来源,于是下载了CDN日志,发现都是同一个ip段,用随机UA,不停访问同一个js文件。这种特征基本可以断定是被刷流量了

在思考是不是得罪人了之后,我感觉这并不是针对性的攻击,毕竟力度太小了

简单搜索,在v2ex上发现不少类似遭遇的帖子:

现象基本一致,甚至IP均来自山西联通,可以断定是同一事件。

不得不说搞PCDN的这群人真是缺了大德,为了赚那么点钱,显示刷BT网络,接着刷各大镜像站导致各家无奈限速,最后又来刷各家的个人站点CDN

应对措施

第一时间我停止了域名A的解析,不过没有效果。似乎是直接访问的七牛CDN节点IP并手动提交的http请求信息,我直接在七牛控制台删除了这个CDN,不再产生流量。

屏蔽刷流量访问

如果你觉得自己更新勤快,直接定前屏蔽ip段即可,这里有所有被屏蔽的IP段,这是最快的方法

我启用了之前备用的域名B,这个一直指向的是腾讯CDN,可以随时无缝切换用于备用。不过这样单纯切换也没有用,因为恶意访问的请求是带正确的UA与referer的,很难使用CDN提供商的功能进行筛选。

于是我开启了域名B腾讯CDN的访问鉴权,并将域名A指向改为我的服务器,当用户访问域名A时,会自动走一套验证逻辑,通过验证后会302跳转到带正确鉴权信息的域名B网址,没通过验证的请求直接断开tcp。这样对于主站用户来说是无感的,同时也不影响我机器的小水管上行。

具体验证逻辑不会公开,有需要的可以找我交流分享思路

部署完这些后,没有再出现异常流量:

正常流量

附带好处就是可以额外屏蔽某些不道德的爬虫访问cdn,防止流量被爬虫刷

附:部分应屏蔽的ip段

27.221.70.0/24
36.5.81.0/24
36.35.38.0/24
36.151.55.0/24
36.249.150.0/24
39.74.239.0/24
58.220.40.0/24
60.190.128.0/24
60.220.182.0/24
60.221.195.0/24
60.221.231.0/24
61.146.45.0/24
61.147.95.0/24
61.160.233.0/24
61.160.239.0/24
61.179.15.0/24
61.241.177.0/24
111.121.27.0/24
113.231.202.0/24
114.230.220.0/24
116.179.152.0/24
116.246.1.0/24
118.81.184.0/23
122.195.22.0/24
124.132.156.0/24
124.163.207.0/23
124.163.220.0/24
153.101.51.0/24
153.101.64.0/23
153.101.141.0/24
175.42.154.0/23
175.44.72.0/23
183.185.14.0/24
183.224.221.0/24
211.90.146.0/23
211.93.170.0/24
220.248.203.0/24
221.6.171.0/24
221.7.251.0/24
222.189.163.0/24

3 Comments

  1. Microsoft Edge 128.0.0.0 Microsoft Edge 128.0.0.0 Windows 10 x64 Edition Windows 10 x64 Edition

    这帮人就是专门通过刷CDN流量的刷下载量的, 他们做PCDN要平衡上传和下载的数据量,不然容易被运营商查出来, 然后也不知道是谁想出了通过刷CDN这种方法

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注