遇到脚本小子(小丑)的 CC 攻击,大家有什么好的建议?

74 天前
 90xchun

事情起因

一觉醒来就就发现阿里云要准备删除我的数据,这还不起来看看,第一反应是延停额度应该没有这么快用完呢

按照常理来说,这个账户上面并没有其他服务得,只有 OSS + CDN ,所有大概率是 CDN 被人搞了,登录控制台一看,果不其然

刚开始还以为是程序 bug ,导致程序疯狂请求 zrlog 的插件下载文件,所有第一怀疑的是 https://dl.zrlog.com 这个域名,但是简单的过滤一看,并不是这个域名。 第二感觉是 https://www.zrlog.com 程序主页被恶意攻击了,但一看也不是呢,通过对其他几个域名排除,发现是 https://xiaochun-blog.zrlog.com 这个域名流量很大,但是这个域名里面存放基本都是图片文件,那基本排除是程序本身的问题

小丑干了些什么

小丑就是小丑,机器都得 996 ,大晚上的还要为小丑们干这种恶心人的活,建议你重开一局吧

日志

一堆请求都指向了一张图片,看来不用分析了,小丑们最最引以为傲的技术 DDOS 或者 CC ,因为高端不会,也学不来,简单看了一眼 ip ,基本全球各地的都有

用这么多的 ip 就为了访问一张图片

累计请求了 7w 来次,平均到每个 IP 也就 10 个请求,妥妥的 CC 攻击了

找出小丑

小丑可能不知道 .log 文件是干嘛的,所有以为自己能逃之夭夭了吗?

通过简单的分析,小丑就浮出水面了,本身博客访问量就在 2 位数,通过完整的日志分析,小丑在日志文件面前可谓是一丝不挂

小丑原来躲在 阿里云的机器后面

59.82.135.85 -> Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.3579.18 Safari/537.36

为什么确定这就是小丑呢,因为小丑还有另外一个 IP

这两个 ip 都是 阿里云 ip ,基本可以断定的是小丑是使用了 代理机器抓取了博客的部分内容,然后选取了一张较大的图片,然后加入了自己的小丑的帽子(工具包)里,可悲的是这 7w 多次请求大部分都被 CDN 缓存击中了,也就是说这等于打到棉花上面了,加上本来就已经是静态的 html 托管的 OSS ,那这种弟弟行为为了撒,就为了让我一大清早的起来给 aliyun 充值吗?

小丑为什么只能是小丑

因为这种人只会 CC/DDOS 只会用很低级手段,来博取观众的笑声,所有才被叫小丑,马戏团的小丑,人家是有工资的,那你这么搞一个本身不盈利的网站,请问小丑们的工资找谁领? ISP 运营商你爹还是你娘?

小丑战绩

如何防止 CC

从技术来说,CC 可以防止的,比如 cloudflare 的 5 秒盾,无非是做好流量清洗( RMB 玩家),避免非正常用户请求压垮源站

DDOS 才是真流氓,但是小丑们的肉鸡数量在大厂 CDN 面前也是弟中弟一般无二,所有 CC 耗光观众账户余额,被迫关闭站点,这条路够这些互联网小丑炫耀一辈子了

最后: CloudFlare 真大善人也,要赚就赚有钱人的钱


原文链接: https://xiaochun.zrlog.com/ulgy-script-boy.html


说实话我还是希望用国内的 cdn ,即使收点费得,已经上了 dcdn 得 WAF 了(估计没有用,个人还是趋向于 cloudflare 的那种直接上 5 秒盾的)

分享到这里,是希望了解下大家遇到这种脚本小子的 CC 攻击,都有什么应对方案

9239 次点击
所在节点    问与答
104 条回复
90xchun
74 天前
@adrianzhang 你这个思路上可以的,但是 cc 的脚本工具应该是有多种配置的,要做到类似 cloudflare 那种的才行,就是让浏览器做真实的算法的算法挑战,通过了才行,因为 cc 是能模拟你那个简单 JavaScript 的,只是攻击者的成本问题,流量清洗是个系统工程,我觉得自己搞挺难的
adrianzhang
74 天前
@90xchun 对于你这个 case ,海外请求直接导向 cf ,由它负责清洗,国内的请求就只能靠自己写的云函数拦截了。这种架构模型还有个办法,一旦被攻击,云函数给源发通知,源修改 dns ,给图片一个新的云函数地址,自己站点的指向也修改图片链接。由于脚本小子不知道这种动态结构,不会修改攻击的目标链接,他会以为攻击成功,但你的业务可以正常运行。
90xchun
74 天前
@ayoungman 就技术讨论而已,分享到这里是希望看看大家有没有撒思路
aladd
74 天前
采用阿里云边缘脚本服务,然后限速,给每一个请求限速 100kb ,每个请求最多请求 2 次。
如果对面海量 IP ,的确也没有更好的办法。

但这个方法超简单,百度一下一堆代码。
90xchun
74 天前
@adrianzhang 好思路,和 1L 的停止掉部分 dns 解析有差不多的思路,你这个更高级,只是实现复杂,还有一个方法就是实现 oss 的私有链接功能,不公开读,针对静态资源只能通过 token 访问,这样脚本小子,直接打到 http 403 上面。 只是没见过这样做产品的的网站,因为这样 cdn 配置撒的会搞的复杂不说,程序本身也会很复杂
90xchun
74 天前
@aladd 这样限速,脚本小子的目的就达到了,他们付出是的时间,网站主付出的是金钱,脚本小子最开心的就是看到被打的网站打不开了
aladd
74 天前
@90xchun 图片限速本身也是安全策略。CDN 那种不封顶的加载速度本来也不太合理,尤其不是什么大~~~网站。
合理的打开速度就是正常的,没必要太澎湃的秒开。脚本最爱看的是秒开,那样他们段时间内就消耗最大化了。
延长他们的时间,打乱耐心才是关键。 图片限速不会影响什么用户体验的~~~没必要~
90xchun
74 天前
@aladd 你这么一说,我就秒懂了,合理的限速也是一个不错的思路
adrianzhang
74 天前
@90xchun #43 刚才想了想,如果脚本小子动态跟踪业务页面,这种动态调整图片地址还是扛不住。另外一个难点是 CDN 对页面的缓存。可能将防护交给对象存储更实际一些,七牛云啥的不知道有没有这样的服务。一楼的 DNS 限制 QoS 我没看懂,一般来说 DNS 都有缓存,这种对 DNS 的 QoS 限制不知道是什么意思。
90xchun
74 天前
@aladd 本来用 7000 ip 打的下来的网站,被一个限速搞成了要 70w ip 才能打的下来的网站,脚本小子肯定都慌了
aladd
74 天前
@90xchun 而且可以边缘脚本可以像 nginx 规则一样,设置固定数值后再限速。你就给个 50MB 喽? 正常读者不会刷 50MB 的图的。50MB 后限速 100KB or 50KB ,慢慢玩喽。
adrianzhang
74 天前
@90xchun #43 打错了,QoS --> QPS
90xchun
74 天前
@adrianzhang 应该一段时间就是超过一定的 dns 查询数量后,就进行 QoS ,或者停掉新的 dns 解析结果放回,这样肉鸡就没有真实的最快的那个 cdn 节点,或者是直接无法完成域名解析,也起到了流控的作用
AIGC2D
74 天前
巧了,这两天也是被刷流量了,也是山西的
221.205.169.80
221.205.169.57
90xchun
74 天前
@aladd 秒呀,和给恶意爬虫喂金坷垃差不多
xmlf
74 天前
今天晚上 20:00 左右,山西那个 ip 又开始攻击了。调整了 cdn 限制,封了 ip 段,加了下行限速,加了 ip 限频和封顶自动关 cdn 。
xmlf
74 天前
@AIGC2D
太巧了。我也是被这个 ip 段攻击。
还有一个是
211.90.146
90xchun
74 天前
@AIGC2D 我这个不太一样,我这次攻击里面没有出现这两个 ip ,7000 多个 ip ,都是国外的,攻击者聪明,用的话国内的,怕那天攻击到了政府网站,被查的个底朝天,帽子叔叔查这些估计还是容易的很,ip ~= 实名上网
PerFectTime
74 天前
好像都是同一个 ip 段,我这两天有这两个 ip 刷流量
221.205.169.x
211.90.146.x
whoisnian
74 天前
同山西
221.205.168.x
60.221.231.x

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1055422

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX