1 我们公司的短信接口被恶意调用,瞬间损失两万

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

正在此时,旁边的手机嗡嗡的震了两声,对于手机从来不敢开铃声的人来说,这个震动的声音实在太熟悉了,不用说,应该是广告短信,或者有人加我微信好友了。因为短信我基本上从来不看,微信消息不会有提示,只有加好友才有,由于最近有不少朋友看到我写的文章,所以每天加我好友的还是不少的,我都是找空闲时间统一处理。所以,我还是继续写我的代码,没有理会。

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

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


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

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

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

难道是前几天问我问题我没及时回答,然后骂我,被我删掉的那个兄弟吧?

难道是最近那个毫不客气、素不相识,上来就让我帮他抓数据,我让他滚的那个总监吧?

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

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

熟悉的场景

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

短信轰炸机

手机短信轰炸机是批量、循环给手机无限发送各种网站的注册验证码短信的方法。一般一分钟可以收到超过一百条短信,可用于测试手机的短信接收速度。可以是在电脑运行或是手机运行。

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

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

那时候,经过几个月的艰苦奋战,开发的产品顺利上线,但是没有推广,正在进行最后的线上测试,只是公司内部人测试,还有认识的一些朋友用用,顺道帮忙测试一下,眼看着就要开始大范围推广了。

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

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

当时我也是初入互联网,并不知江湖如此险恶,团队也是草台班子,也都没想到会出现这种问题。当我冷静下来开始思考并且到搜索引擎搜索相关问题的时候,我找到了短信轰炸机的这个概念,短信轰炸机最喜欢利用具有安全漏洞的开放平台的短信发送接口了,比如注册、登录接口,而我们的网站确实由于没做验证码发送的防护措施,导致漏洞产生,从而被利用了,说到底,还是当时能力不到位。

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

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

还有说,他们就是全网扫这种 register、login 等类似的 url,扫通了就收集起来,进一步处理,并发现其中可以被利用的。

但具体是哪种,我也不知道,反正就是你不做好防护,就得被利用。

2 事故现场和防护处理

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

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

停掉服务

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

更换接口地址

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

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

3 加图形验证码

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

有同事说,要不换 IP 吧?

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

我这边开始加其他规则,首先想到的就是加验证,在发送验证码之前加个图形验证,当时找到了「极验」提供的行为验证的方式。就是大家经常看到的下面这种方式,在发送验证码之前先让用户完成行为校验,基本上可以把机器人阻挡在外,而且集成很简单,但会出现极验的标志,等于给他打广告,并且用户体验也不是太好。


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

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

限制访问频次

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

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

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

设置黑名单

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

并且4小时单 IP 请求超过 8 次的都加入黑名单。当然这些规则都是通过观察日志得到了,当然最终的科学依据是「拍脑袋」。

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

相关阅读
短信接口被恶意调用怎么办?典型案例及应对办法
比 REG007 更好用的查询手机注册网站的神器

短信接口被恶意调用,瞬间损失两万,怎么解决?相关推荐

  1. 我们公司的短信接口被刷了,瞬间损失两万,怎么解决?(短信接口被盗刷系列1)

    1 我们公司的短信接口被刷了,瞬间损失两万 前两天的中午像往常一样热,太阳不知疲倦的在天空燃烧,热跑了云彩和鸟儿,马上就要点燃空气和我的脑神经.为我和电脑降温的,是我简陋的书桌上的小电扇,没有它的话, ...

  2. 短信接口被恶意调用?企业短信防火墙+【中昱维信】短信验证码【Java】

    短信接口被恶意调用?企业短信防火墙+[中昱维信]短信验证码[Java] 一.企业短信防火墙的实现 1.1 简介 1.2 第一步:获取防火墙帐号密钥 1.3 第二步:下载防火墙服务器 1.4 第三步:业 ...

  3. 如何防范短信接口被恶意调用被刷,防止电信轰炸

    转自 https://zhuanlan.zhihu.com/p/20879468 一.什么是短信轰炸(短信接口被刷) 短信轰炸一般基于 WEB 方式(基于客户端方式的原理与之类似),由两个模块组成,包 ...

  4. 如何防范短信接口被恶意调用(被刷),防止短信轰炸

    转自:https://zhuanlan.zhihu.com/p/20879468 一.什么是短信轰炸(短信接口被刷) 短信轰炸一般基于 WEB 方式(基于客户端方式的原理与之类似),由两个模块组成,包 ...

  5. 避免短信接口被黑客调用的方式

    短信服务接口安全是在开发或对接短信接口时尤为关注的问题.部分黑客可能出于恶意竞争或短信轰炸他人的目的,攻击短信服务接口,盗刷验证短信,造成资金损失.那么应该如何避免短信接口被恶意调用?本文为大家介绍一 ...

  6. php系统5000块钱的短信,两天被刷完了,短信接口被恶意盗刷怎么办?(短信接口被盗刷系列4)

    在php聊天群里,有位同学说 他们的5000块钱的短信,两天被刷完了!,问群里大佬怎么办! 就一般的防止短信验证盗刷而言(通过修改手机号修改验证码),我们通常的防止短信被滥发,就是 (1)限制每个手机 ...

  7. 短信接口被恶意盗刷(验证码短信被盗刷)怎么办?

    短信验证码被刷怎么办? 一 事件简述 二 问题分析 三 应急解决方案 1 黑名单模式拦截 2 请求验证拦截 3 应急方案总结 四 最终解决方案 第一步:获取防火墙帐号密钥 第二步:下载防火墙服务器 第 ...

  8. 阿里大鱼的短信接口申请和调用

    阿里大鱼短信接口调用精简版(验证码类型) 接口网站 申请步骤 登录->控制台->使用短信服务->左侧(接口调用)->1.(获取AK->开始使用子用户AccessKey). ...

  9. java短信接口demo_java开发调用短信接口demo(动力思维乐信)

    下面为大家分享的是动力思维乐信在java开发下的demo核心代码,完整代码请点击下载:http://www.lx598.com/api/sdk2.0_java.zip 推荐阅读: 动力思维乐信短信接口 ...

最新文章

  1. shiro 同时实现url和按钮的拦截_一个“保存”按钮同时存在“增删改”三种操作,该如何去实现?...
  2. 企业金融云存储建设之路
  3. git如何回退到之前版本
  4. 微信小程序访问云数据库
  5. 面向对象的三大特征,封装、继承、多态的个人理解以及代码分析
  6. [无向图割点] PKU 1523 SPF
  7. swiper实现局部内容滚动效果
  8. python find函数_Python 速学!不懂怎么入门python的小白看这篇就够了!
  9. 栈溢出笔记1.3 准备Shellcode
  10. php mysql购物车实现原理_PHP实现购物车的思路和源码分析
  11. php make test 作用,larablog 系列文章 06 - 测试:使用 PHPUnit 进行单元和功能测试
  12. JS中对数组元素进行增、删、改、查的方法,以及其他方法
  13. 在Java中安全地将long转换为int
  14. 十、Mysql执行计划详细解析
  15. 线切割软件测试工资,线切割自动编程软件可以得到免费测试版
  16. 基于RV1126平台imx291分析 --- 基于subdev的方式
  17. 印尼语翻译和爪哇翻译一次争斗为自定义
  18. Carsim 学习心得-粗略翻译1
  19. 基于MATLAB/yalmip/cplex 的机组最优组合
  20. CLEARCO Silicone Fluids Grease Compounds

热门文章

  1. 消息中间件第一讲:RocketMQ从入门到精通
  2. php vendor bin phinx,数据库Seeding
  3. Gartner发布首份中国RPA魔力象限报告,弘玑Cyclone被重点推荐
  4. jeecg-boot:将单表列表页作为弹框,并且传递参数到解决方案(场景商品到明细信息维护)
  5. Excel 2010 VBA 入门 087 数据处理之按单列汇总多个工作表
  6. 思考“手绘家谱”的算法
  7. 【NOIP2013模拟】Freda的传呼机
  8. spm + host
  9. 老友记台词中英文对照Part1
  10. 三层交换机与路由器对接