短信验证码作为重要的身份验证工具,因其操作简便、安全性高、时效性强等优点已被开发人员广泛使用。但因其获取便利、限制较少容易被不法分子利用进行短信轰炸,恶意刷掉大量短信费用,给公司或个人造成大量的金钱损失,造成这种情况原因主要是在产品实际设计过程中,有些产品人员因为对技术实现不太了解,防范意识薄弱,简单或直接忽略对短信验证码进行限制,这才造成短信接口恶意被不法分子利用。
在介绍防刷策略前我们需要了解下常见的刷短信验证的行为。
1.以攻击手机号为目的刷短信验证码
这类攻击目标主要是攻击者借助web网站短信接口对目标手机号进行短信轰炸。攻击者会先收集互联网上多个未经防护的网站短信接口,设定要攻击的手机号码通过模拟用户,循环向后台发送短信验证码请求,达到攻击手机号的目的。对于这类攻击通过一般验证码设置即可达到防护目的。
2.以恶意刷取目标网站短信费用为目的的攻击
这类攻击主要目的是刷掉目标网站的短信费用,在第一种基础上攻击者会不停变换各种接口参数如手机号、IP(采用高匿代理)等去请求后台发送短信验证码,进行恶意刷短信,后台根本无力辨别用户真伪。攻击目标明确,难以防护,因其变换不同IP、手机号,一些简单措施基本失效,产品设计人员在前期产品设计时尤其需要注意这类攻击。
下面是针对攻击者做出的一些应对措施。
1.前端增加图文验证码
在获取短信验证码前增加图文验证码是较为常用的方法。攻击者一般是采用自动化攻击,增加图文验证码后,攻击者要对验证进行识别验证成功后才能进行模拟用户发送请求,这一步需要在页面中进行,无法采用自动化攻击。第一种攻击基本上失效,同时会增加第二种的攻击成本(有可能采用人工打码方式进行验证)选择验证码时既要考虑用户操作过程