当前位置: 首页 > 科技观察

公司短信平台上的2万元瞬间被黑了...

时间:2023-03-22 10:55:47 科技观察

前两天的中午和往常一样炎热,太阳在天上不知疲倦地燃烧着,热气从云层跑了和鸟类。点燃空气和我的脑神经。图片来自Pexels让我和我的电脑凉爽的是我简陋桌子上的小风扇,没有它键盘会太热,我可能无法编写代码。就在这时,旁边的手机震动了两下。对于一直不敢开机的人来说,这震动的声音再熟悉不过了。不用说了,应该是广告信息,或者有人加我微信好友了。因为我基本不看短信,微信也不会有提示,只有加好友。最近很多朋友看到了我的文章,所以每天加我的朋友还是很多的。我只是在寻找空闲时间。时间统一处理。所以,我继续写我的代码并忽略它。大约两分钟后,嗡~~震了两声,别慌,继续写代码。然后嗡嗡~~又震动了两声,接着又震动了两声。心想,难道又是一个大号转载了我的文章(心里有点得意),冷静下来,继续写代码。这种情况已经持续了6或7次。正想看看手机,突然有事,赶紧开门出去了。20分钟后回来,发现手机还在震动。我连忙拿起一看,未读短信的数量增加了(这是我写文章时拍的照片,真实数量比这个多一点,点开了)。我去,怎么这么多短信,我记得很清楚,只有820多条(给有强迫症的朋友道歉,这张图可能让你看起来很不舒服),见谅短信不怎么看,堆了800多条。怎么半个小时就多了几十个?打开一看,都是某家不知名公司的登录验证码短信,如下:【XX科技】您正在短信登录,验证码为689287,请您在15分钟内登录。内提交验证码,请勿将验证码泄露给他人。瞬间让我想起了一个词:短信轰炸机。什么,有人炸我,我是不是得罪了人,所以我的大脑在飞速运转。会不会是前几天问我问题的大哥没及时回答,然后骂我,我删了?会不会是最近那个粗鲁陌生人,一上来就让我帮他抓数据,我问他是不是导演迷路了?还是某老板多次举报我的文章不是原创?这值得么?这不值得吗?正思索间,电话安静了下来,不再响了。事实证明,我可能想多了。可能是某个短信轰炸机在轰炸的时候定位到了错误的目标,后来及时发现了,也可能是其他原因。熟悉的场景这一幕勾起了我的一些回忆,同时对XX科技表示深深的同情。几年前,我的创业公司被短信轰炸机利用,短信平台上的2万元钱一夜之间化为乌有。短信轰炸:手机短信轰炸是一种将各个网站的注册验证码短信批量循环无限发送到手机的方法。一般一分钟可以收到100多条短信,可以用来测试手机的短信接收速度。它可以在电脑或手机上运行。比如有人要坑你,花点钱买个短信轰炸或者电话轰炸服务(学名就是要你死),你的手机瞬间变成高频振动器或者循环播放的铃声,这会使您的手机发烫。重的话会直接没电关机。现在有很多短信平台,比如腾讯、阿里、华为,都有防盗刷等功能。当时不知道老板是从哪个渠道找到短信平台的。年。当时平台好像收2万发5千,所以老板直接收了2万,按照一条短信一分钱计算,以当时公司的业务量来看,就算发了也未必用完公司破产。当时,经过几个月的努力,开发的产品顺利上线,但没有任何推广,正在进行最后的上线测试。只是公司内部人员测试,认识的一些朋友会用。即将开始大规模的促销活动。一天晚上,夜深风大,老板突然来电,说收到了短信平台费用的预警通知,提示余额不多了,让我赶紧登陆看看发生了什么。进入页面的那一刻,我惊呆了。四万多件物品已经用完,只剩下几千件了。赶紧打电话给客服询问情况。事实上,此时此刻,我们还没有意识到系统安全漏洞已被利用。客服解释说这个账号一直在发短信,短信内容是和验证码相关的,现在还在发,询问是否先停止服务。什么?还在送?那就先停吧,所以就让客服先停了服务。那时候我也是刚接触网络,不知道江湖这么危险,而且团队是草根团队,没想到会出现这种问题。当我静下??心来开始思考并在搜索引擎中搜索相关问题时,我发现了SMSbomber的概念。短信轰炸者喜欢使用存在安全漏洞的开放平台的短信发送接口,如注册、登录接口等。但是我们网站没有对发送验证码做保护措施,导致漏洞被利用。归根结底是当时能力不到位。一直到现在,我都不知道我们这个没有推广的小产品是怎么被定位然后使用的。据说短信平台可能有内部人员将客户信息卖给第三方平台,或者是自产自销,短信很快就会用完,大家可以赶紧续费。也有消息说,短信轰炸平台会黑掉这些正常的短信平台,然后找到用户并加以利用。也有人说,他们对Register、Login等这类URL进行全网扫描,扫描后收集起来,进一步处理,发现可以使用。但我不知道它是哪一个。反正不好好保护自己,就会被人利用。事故现场及防护处理这其实是一个安全漏洞,只是级别比较低。它有多低级?即您在注册页面输入手机号码并点击“发送验证码”按钮后,只会判断手机号码是否合法有效。是否注册过,否则直接发验证码,这叫无知无畏。这相当于开门迎客的状态。无需权限,无调用频率限制,无token验证。当时停止短信服务后,马上查看后台日志,发现有很多不同的IP在不断发送请求。郁闷的是,虽然停止了短信服务,但是请求还是进来了,看起来这是一套完整的自动化流程,使用IP池动态代理模拟发送请求,而我们的短信接口只是其中的一个琐碎的免费资源。停止服务的时候已经很晚了,几乎是清晨,大脑却清醒地受到了刺激。首先想到的是不管它,让服务正常可用。但是请求还是来了,所以我先关闭了Nginx服务。既然你这么聪明,如果你不能访问接口,它就会停止。停了5分钟,我一重启,日志又被填满了。原来不是它不聪明,而是我弱智。它不关心你,它只是一个没有情感的自动请求机器。改个接口地址没问题,我承认,但是我停不了服务,也管不了你这没感情的机器,那我先改个接口地址吧。于是先改了注册登录的接口地址。这样,总能先把短信业务分离出来,先减轻服务器的压力。但是我还是不敢打开短信服务,怕它又找到我们的新界面了。此时已经很晚了。还好产品还没推广,也没人用,先睡了,等第二天再处理。添加图形验证码后,第二天一早就去了公司。我做的第一件事就是看看这台没有感情的机器是否让我们走了。看完日志,心里顿时有些凉了。我整夜休息。它没有休息。同事说,你怎么不换个IP?大哥,人家要求的是域名,不过你可以换个二级域名。之前都是用api.xxxx.com作为后台服务域名,所以有同事开始摸索改二级域名。我开始在这里添加其他规则。我首先想到的是添加验证。在发送验证码之前,我添加了一个图形验证。当时我找到了《极限体验》提供的行为验证方法。大家经常看到的就是下面这个方法。在发送验证码之前让用户完成行为验证,基本可以屏蔽机器人,集成非常简单。不过在询问了费用之后,当时就被劝阻了。当时的年费是5万。我不知道现在多少钱。图形验证码也不错,关键是不花钱,于是找了个开源代码做了一个图形验证码。当时为了更安全,让机器更难被破解,当时做了6个字母和数字的组合,加入了很多干扰因素。事实证明,它不仅可以防机器,还可以防人。很多同事说,自己在检测的时候,往往很难识别。所以改为4位,降低噪声系数。有了这次的教训,当我看到12306一步步提升验证码难度时,我能感受到12306内心的无奈和彷徨。限制访问频率和添加图形验证码是第一步。如果绕过,毕竟自动识别验证码只会增加门槛。如果有人真的想惹你,他们仍然无法阻止。限制单个手机号的验证码请求频率。5分钟内只允许发送3次,1小时内发送次数超过9次将被限制24小时不许发送。除了限制手机号码的频率外,对单个IP的请求频率也有限制,规则是一样的。设置黑名单但对方使用动态IP池,5分钟内不能连续请求。通过日志分析,发现这段时间有数百个IP在发送请求,所以将这段时间超过10次的单个IP请求全部加入黑名单。并且任何单个IP在4小时内请求超过8次都会被加入黑名单。当然,这些规律是通过观察日志得出的,当然最终的科学依据还是“拍脑袋”。后面有请求的时候,先查看IP是否在黑名单中,如果是,直接拒绝即可。其他方式除上述措施外,还有其他保护方式。比如用户进入前端页面(登录或者注册页面),生成或者请求一个Token,然后在请求的时候验证这个Token,就可以在里面写一些比较复杂的算法逻辑。当然,这只是提高了门槛。如果掌握了流程,它仍然会被使用。旧的域名界面也被保留了下来。这取决于它会请求多长时间。大约8或9天后,请求将消失。最后,安全问题也是互联网发展的一个重要方面,但往往被开发者所忽视。仔细想想,如果在产品刚刚推广的时候出现问题,对用户的伤害真的很大。有一些初创公司因为某些安全漏洞直接导致公司倒闭。大工厂的风险更大。许多强大的羊毛党利用漏洞来榨取羊毛。比如前段时间,某大型商场因为优惠券漏洞,损失了数千万。只要有利可图,就有被利用的风险,需要谨慎对待安全问题。作者:风筝编辑:陶家龙来源:转载自微信公众号古风筝(ID:gushidefengzheng)