对象存储的流量被盗刷了

背景

家人们谁懂啊,早上起来发了日常的文章,出门的时候发现手机上腾讯云给的提示:COS欠费了。我不敢相信的我的眼睛!我之前每个月才花费几毛钱的,知道的伙伴都知道我这可是卖废品攒下来的钱!看了一下账单,我的天!

腾讯云COS账单

这谁顶得住,刚想去问问腾讯云的客服:你们是不是搞错了,一想,不对啊,我得先看看监控。

腾讯云请求数

解决

好家伙,我在10月7日的请求数达到了1.87万次。啥概念啊,都到万次的级别了,这肯定是有人攻击了我的服务了。我再去看了我的COS存储桶,没有新增的文件,那就是读请求。是谁在恶意的刷流量,毕竟这种事情已经屡见不鲜了。在我寻找解决方案的时候,看到了一篇文章,对象存储服务被刷流量,直接造成了好几万的欠费。这要是换做我了,岂不是要直接一招回到解放前!我吓的赶紧去看了对应的解决方案。

官方的文档是这样的:设置防盗链

官方给的设置防盗链的操作

我一想,这样配置的话,我可以把我常用的博客网站放在白名单里,但是我本地去写markdown文件的时候,仍然需要读的,这可咋办。对此,我去问了一下腾讯的客服,但是给我的解决方案仍然是设置防盗链。

我觉得并没有解决我想要的问题,也许解决起来很复杂。我想到了日志:日志管理概述。那为什么不把日志存储起来共我分析呢,自己写个脚本,发现异常的IP刷流量,直接记录下来,手动添加到黑名单里。说干就干,下午两点钟起来的时候看了一下日志,果然生成了。

生成的日志文件

发现日志是按照天建的文件夹,文件是每五分钟生成一个,和文章中表示的滚动生成一样的。我打开了最近10分钟内的监控页面看了一下,发现产生了一个峰值,我再次找到生成的日志文件,发现了这样的一个网址:牛客网。

意思是牛客网一直在访问我的图片,我的markdown文件中的图片它没有做一个转存操作!

记录的日志

正常的博客平台是这样的:

博客平台转存图片流程

而我接触的牛客就不一样了,它直接用的我COS的地址。这就造成了:每个用户访问我的文章,其实都是变相的直接访问我的COS,增加我的下行流量;再严重一点,可以猜到我的COS地址和文件存储的规则,写脚本对我的COS文件进行轮询,流量直接拉满。

我赶紧找了我昨天晚上发布的文章看了一下:《分布式锁如何实现》。

image-20231009143208951

当我点开我的文章图片的时候,它直接跳到了我的COS文件预览地址:

COS文件预览地址

好家伙,把我吓的一惊。这还怎么搞,我才到这个平台发布文章,就这么点访问量都能给我的COS带来这么多的流量,后期更完蛋。

牛客网最近发布的文章列表

我赶紧按照官方文档配置了一下黑名单,把牛客网的加到了黑名单里。

防盗链黑名单配置

这个时候当我尝试访问的时候,就出现了403拒绝访问的页面。

访问被拒绝

原来的文章里的图片也访问不了了,直接是403的页面。但对页面是没有影响的,顶多无法看到我文章的配图。

image-20231009143940215

后续

本着很谨慎小心的态度,我做了如下的防范,光配置黑名单是不够的。

盯着监控面板

在腾讯云可监测平台里,时刻关注着COS的各种指标监控。发现异常,立即去查看日志,把可疑的网站或者IP拉入黑名单。

可观测平台监控面板
配置告警规则

但是一天也并不能时刻关注着监控图表,我也有疏忽的时候,这个时候监控告警规则就派上用场了。

我在可观测平台的【告警策略】中做了如下的配置:

告警规则配置

希望下次在出现异常和恶意的流量盗刷的时候,能够及时的提醒我。

TODO:程序拉取分析

其实结合上边的两种,还是不大智能,所以我写了一个TODO项,写代码拉取监控指标数据,并分析日志文件。一旦发现监控指标超过了我能接受的阈值,立马拉取日志文件取分析,提取其中的请求信息,把IP查找出来进行拉黑处理。


好了,以上就是今天的全部内容了,觉得不错的话,记得点赞 关注支持一下哈。

shigen一起,每天不一样!