公司短信平台上的2万块钱,瞬间就被黑光了

我是鹞子,民众号「古时的鹞子」,一个兼具深度与广度的程序员激励师,一个本计划写诗却写起了代码的田园码农!
文章会收录在 JavaNewBee ,还要更多文章合集。

前两天的中午像往常一样热,太阳不知疲倦的在天空燃烧,热跑了云彩和鸟儿,马上就要点燃空气和我的脑神经。为我和电脑降温的,是我简陋的书桌上的小风扇,没有它的话,键盘太热,我可能就要写不下去代码了。

公司短信平台上的2万块钱,瞬间就被黑光了

正在此时,旁边的手机嗡嗡的震了两声,对于手机从来不敢开铃声的人来说,这个震惊的声音实在太熟悉了,不用说,应该是广告短信,或者有人加我微信密友了。由于短信我基本上从来不看,微信新闻不会有提醒,只有加密友才有,由于最近有不少同伙看到我写的文章,以是天天加我密友的照样不少的,我都是找空闲时间统一处置。以是,我照样继续写我的代码,没有剖析。

过了两分钟左右,嗡嗡~~又震了两声,不慌,继续写代码。然后嗡嗡 ~~ 又震了两声,接着又震了两声,我心想,岂非又是哪个大号转了我文章了(心里略带几分自满),淡定,继续写代码。

这时刻已经延续了 6、7次,我刚要拿手机看一下,突然有事儿,赶快开门出去了,过了20分钟回来之后,发现手机还在震。我赶快拿起来一看,未读短信数目变多了(这是写文章的时刻截的图,真实数目比这个还要多一点,被我点了)。

公司短信平台上的2万块钱,瞬间就被黑光了

我去怎么这么多短信了,我记得很清晰,原本才 820 多条(是在要对有强迫症的同伙示意歉意,这图可能让你们看上去很不爽),原谅我不怎么看短信,一直聚积了 800 多条。怎么半个小时的时间多了好几十条,我打开一看,都是某不知名公司的登录验证码新闻,就像下面这样。

【XX科技】您正在短信登录,验证码689287,请在15分钟内提交验证码,切勿将验证码泄露于他人。

瞬间让我想到一个词:短信轰炸机。what,有人轰炸我,我冒犯什么人了吗,于是大脑飞速运转。

岂非是前几天问我问题我没实时回覆,然后骂我,被我删掉的谁人兄弟吧?

岂非是最近谁人毫不客气、素昧生平,上来就让我帮他抓数据,我让他滚的谁人总监吧?

又或者是多次举报我文章非原创的某大佬吧?

值得吗,不至于吗,这么劳神伤财艰辛的,不至于吧。就在我思索的时间内,手机镇静了,不响了,事实证明我可能想多了,可能就是某短信轰炸机轰炸的时刻定位错了目的,然后实时发现了,或者其他什么原因。

熟悉的场景

这个场景勾起了我的某些回忆,与此同时,我对XX科技示意深切的同情。几年前,我所在的创业公司就被短信轰炸机行使,一晚上,短信平台上的 2 万块钱子虚乌有。

短信轰炸机

手机短信轰炸机是批量、循环给手机无限发送种种网站的注册验证码短信的方式。一样平常一分钟可以收到跨越一百条短信,可用于测试手机的短信吸收速率。可以是在电脑运行或是手机运行。

好比有人想整你,花点钱买个短信轰炸或者电话轰炸(学名呼死你)的服务,你的手机瞬间酿成一个高频振动器或者循环铃声播放器,轻则让你手机发烫,重则直接没电关机。

现在的短信平台许多,好比腾讯、阿里、华为什么的一大堆,而且都有防盗刷等功能,那时,不知道老板从哪个渠道找到的一个短信平台,详细名字已经不记得了,究竟已经好几年了。那时,谁人平台好像是充 2 万,送 5000,以是老板直接充了两万,根据几分钱一条短信盘算,以那时公司营业体量来看,用到公司倒闭可能都用不完。

那时刻,经由几个月的艰辛奋战,开发的产物顺遂上线,然则没有推广,正在进行最后的线上测试,只是公司内部人测试,另有熟悉的一些同伙用用,顺路协助测试一下,眼看着就要最先大范围推广了。

某晚夜黑风高,老板突然打电话过来,说他收到了短信平台用度预警通知,显示余额所剩不多,让我赶快登录看一下是什么情形。当我进入页面的那一刻,我惊呆了,已用 4 万多条,剩余几千条了。赶快给客服打电话询问情形,实在到这一刻的时刻,我们还没意识到是系统平安破绽被行使了,客服注释说这个账号确实是一直在发短信,短信内容是验证码相关的,而且现在还在延续发,询问是否要先把服务停掉。

什么,还在延续的发,那赶快先停了再说,于是让客服操作先把服务停了。

那时我也是初入互联网,并不知江湖云云邪恶,团队也是草台班子,也都没想到会泛起这种问题。当我冷静下来最先思索而且到搜索引擎搜索相关问题的时刻,我找到了短信轰炸机的这个观点,短信轰炸机最喜欢行使具有平安破绽的开放平台的短信发送接口了,好比注册、登录接口,而我们的网站确实由于没做验证码发送的防护措施,导致破绽发生,从而被行使了,说到底,照样那时能力不到位。

到现在为止我也不知道那时我们这个还没推广的小产物是怎么被盯上,然后被行使的。有说可能是短信平台方有内鬼,把客户信息卖给第三方平台,或者就是自产自销,短信快点儿用完,就可以赶快续费了呀。

另有说是短信轰炸平台会黑掉这些正常的短信平台,然后找到使用方,进而行使。

另有说,他们就是全网扫这种 register、login 等类似的 url,扫通了就网络起来,进一步处置,并发现其中可以被行使的。

但详细是哪种,我也不知道,横竖就是你不做好防护,就得被行使。

事故现场和防护处置

这实在就是平安破绽了,只不过对照低级,低级到什么程度了呢?就是你在注册页面输入手机号之后,点击「发送验证码」按钮,只会判断手机号是否正当和是否已经注册,否则就直接发验证码,这叫无知无畏。这就相当于是开门迎客的状态,不需要权限,没有挪用频次限制,也没有什么 token 之类的做校验。

多模态融合注记

那时停掉短信服务之后,我马上去看了后台日志,发现有许多差别的 IP 在不停的发来请求,丧心病狂的是,虽然短信服务已经停了,然则请求还在不停涌来。看来这就是一套完整的自动化流程,用 IP 池动态署理,模拟发送请求,我们的短信接口只不过就是其中一个微不足道的免费资源而已。

停掉服务

那时已经很晚了,快要破晓了,然则大脑被刺激的很是苏醒。首先想的就是别管怎么样,先让服务正常可用吧。然则请求还在一直过来,于是,我先把 Nginx 服务关闭了,既然你这么智能,接口你接见不到,是不是就会停了。停了 5 分钟之后,我刚一重启,马上日志又被填满,事实证明不是它不智能,是我弱智了。它才不管你,它就是一台没有情绪的自动请求机械。

替换接口地址

行吧,我认怂可以吧,服务我又不能停,你这台没有情绪的机械我也控制不了,那我先改了接口地址。于是我把注册、登录的接口地址先给换了,这样一来,总能把短信服务先剥脱离,先减轻点服务器压力吧。但照样不敢把短信服务打开,万一它又发现我们的新接口了呢。

这时已经很晚了,还好产物还没有推广,没什么人用,就先睡了,等着第二天处置。

加图形验证码

第二天早早去公司,第一件事儿,就是看看那台没情绪的机械是不是放过我们了,效果一看日志,心突然有点儿凉,我休息了一晚,它却没休息。

有同事说,要不换 IP 吧?

年老,人家请求的是域名,倒是可以换个二级域名,之前是 api.xxxx.com 作为后端服务 domain 的,于是有同事最先鼓捣换二级域名。

我这边最先加其他规则,首先想到的就是加验证,在发送验证码之前加个图形验证,那时找到了「极验」提供的行为验证的方式。就是人人经常看到的下面这种方式,在发送验证码之前先让用户完成行为校验,基本上可以把机械人阻挡在外,而且集成很简单。

公司短信平台上的2万块钱,瞬间就被黑光了

然则,咨询了一下用度,那时就被劝退了,那时是年费 5 万,不知道现在多少钱了。

图形验证码也不错,关键是不用花钱啊,于是找了开源代码,做了图形验证码。那时为了加倍平安,让机械更难破解,那时做了 6 位字母、数字组合,而且滋扰因素加的很足。事实证明不仅能放防机械,还能防人,许多同事做测试的时刻示意经常很难辨认出来。于是改成了 4 位,而且降低了滋扰因素。

公司短信平台上的2万块钱,瞬间就被黑光了

有了这次教训,当我看到 12306 一步步升级验证码难度的时刻,我能体会到 12306 的无奈和心里的彷徨。

公司短信平台上的2万块钱,瞬间就被黑光了

限制接见频次

加了图形验证码是第一步,还不行,万一被绕过了,究竟自动识别验证码也只是增加了门槛,若是真有人想搞你,照样拦不住的。

限制单个手机号的验证码请求频次,5分钟内只允许发送三次,一小时内跨越 9 次就限制24小时不允许发送。

除了限制手机号的频次外,还限制单个 IP 的请求频次,规则是一样的。

设置黑名单

然则对方使用的是动态 IP 池,可能不会 5 分钟内延续请求。通过日志剖析,发现这段时间内共有几百个 IP在发请求过来,于是把这段时间内单 IP 请求跨越 10 次的所有加入黑名单。

而且4小时单 IP 请求跨越 8 次的都加入黑名单。固然这些规则都是通过考察日志得到了,固然最终的科学依据是「拍脑壳」。

之后有请求过来,先看 IP 是否在黑名单中,若是在,就直接拒绝。

其他方式

除了以上措施外,另有其他的一些防护方式。

好比在用户进入前端页面(登录或注册页)的时刻天生一个或者请求一个 Token,然后请求的时刻对 Token 做校验,你可以写一些对照复杂的算法逻辑在里面。固然这也只是增加了门槛而已,若是被掌握了流程,照样一样会被行使。

旧的域名接口也一直保留着,倒要看看它会请求多久,过了差不多 8、9 天吧,请求才消逝。

最后

平安问题也是互联网开发中很主要的方面,然则经常被开发人员忽视。细思极恐,若是是在产物刚推广的时刻泛起问题,那对用户的危险真的是极大的。

有一些初创公司就是由于某些平安破绽,直接导致公司关门大吉。大厂更是面临风险,许多实力雄厚的羊毛党就是行使破绽来薅羊毛的,好比前段时间某大商城由于优惠券破绽被薅了几万万。

只要有利可图,就有被行使的风险,平安问题,还需郑重看待。

壮士且慢,先给点个赞吧,总是被白嫖,身体吃不消!

我是鹞子,民众号「古时的鹞子」。一个兼具深度与广度的程序员激励师,一个本计划写诗却写起了代码的田园码农!你可选择现在就关注我,或者看看历史文章再关注也不迟。

公司短信平台上的2万块钱,瞬间就被黑光了

原创文章,作者:dddof新闻网,如若转载,请注明出处:https://www.dddof.com/archives/25507.html