– “隐患险于明火,防范胜于救灾,责任重于泰山”
短信被刷啦!短信又被刷啦!短信怎么还被刷啊!
很多人在短信服务刚开始建设的阶段,可能不会在安全方面考虑太多,理由有很多,比如:“ 需求这么赶,当然是先实现功能啊”,“ 业务量很小啦,系统就这么点人用,不怕的” , “ 我们怎么会被盯上呢,不可能的”等等。
有一些理由虽然有道理,但是该来的总是会来的。前期欠下来的债,总是要还的。越早还,问题就越小,损失就越低。
所以大家在安全方面还是要重视。(血淋淋的栗子!)
为什么会有人要刷短信接口?
1、被接入轰炸机
短信轰炸机一直就存在,他们会收罗一些没做防护的网站,将其作为轰炸机的傀儡。
2、恶意攻击竞争对手
如短信接口被请求一次,会触发几分钱的运营商费用,当量级大了也很可观。
3、当程序员无聊的时候
程序员:我好无聊啊,攻击一下XXX网站吧。就好比上学的时候看见完整的笔帽,老有一种想把它掰断的冲动,你有没有中招,哈哈。
-您本次验证速度打败了99%的人
最简单的方式就是增加验证码啦,每次用户主动获取短信前,都需要先完成图片验证码/滑动验证码的校验。
实现简单,也可以防止一部分攻击者,但是不管是图片还是滑动验证,都是可以被破解的,一但被破解,那你的短信接口相当于对攻击者毫不设防,非常危险。
-您的短信发送已达上限
一般普通的验证码类型一般的使用场景都是登录、修改密码、注册等场景,一般来说都不是高频操作,所以我们可以针对单个用户和全局做数量限制:
比如一个手机号1小时内只允许调用5次,一天内只允许调用20次。
另外再根据历史趋势,对全局设置限制。比如前30天每天验证码短信量总量都在30万上下浮动,那我们可以设置每天的短信调用上限为40万,超出则进行限制、告警。
上面这种上限的方式一定程度上可以在被攻击的情况下及时 止损,但是也有小概率误杀或者局部影响整体的情况出现,所以需要看实际 影响使用。
比如前几天趋势都是正常的,但是某天进行促销或活动,又或者是任何突发的流量进来,这时候这种全局上限的方式会影响正常用户的使用。
再比如说,用户当天可能由于各种原因,一段时间内某个操作频繁的获取验证码,导致短信验证达到上限,会影响到他所有短信接口都无法使用。
-检测到您本次操作存在风险,操作被拒绝
当我们的业务越来越大,并且面向的用户越来越复杂的时候,上面我们提到的这些简单的规则很难应付业务或用户的复杂多变。
这时候就需要通过数据分析的方式,来动态的、实时的调整我们的规则和处理方式,以及提供风险分析、预测等功能。这时候我们可能需要有一个独立的风控服务。
做过支付业务的小伙伴可能会接触的比较多,支付风控远比短信业务风控要繁杂的多,防控规则策略可达上千条,甚至上万条。
那我们看到上面有看到,针对不同的模板的场景来确定风险等级,然后来做不同的操作,这块其实就涉及到风控相关了。只是比较初级,比如风险等级如何确定?每个风险等级需要做什么样的事情?如何进行动态的配置等等。
举个栗子:
我们可以收集用户的行为轨迹(注册时间、登录次数、页面访问情况等)来分析一个用户,确定用户的风险等级,再决定他可以发送哪些短信。
根据模板的历史趋势,来自动判断相应短信模板的合理范围,如果达到上限,则认为存在风险操作,可以做对应的处理。
配置相应的规则,如果某个设备在单位时间内重复N次发送短信操作,并都无反馈结果,则认为存在风险。
等等
风控不仅仅适用于短信接口的风险识别,还包括注册、登录、支付操作等等。这个也不是一蹴而就的,需要长时间的积累和建设。
比如上面说到的用户行为轨迹和模板趋势,都需要有全面的埋点和数据平台作为支撑。还有如果业务要求比较高,还需要开发适合自己业务的规则引擎。但是当风控系统建设起来之后,效果也是明显的!
当然,风控服务并非无可参考,国内有家公司一直致力于支付风控服务研究,对于风控业务颇为熟悉。再经过长时间试验,推出了短信风控服务——短信风控防火墙。
上面我们简单说了一下如何防止短信接口被刷,这一块的安全不仅涉及到金钱(曾见过短短10分钟被刷几万块、几十万的都有),也会影响到我们产品/品牌的声誉。
想象一个用户收到了一批垃圾短信,但是短信签名带的都是我们的签名,这对公司的品牌影响有多大!
某一次“看似合理”的决定就注定了自己挖好了坑,掉进自己挖的坑里是早晚的事,暴露在互联网上的所有入口,安全性容不得任何一丝的“看似合理”。
希望这篇文章可以帮助到大家,愿天下没有被盗刷的短信!
>> 相关阅读