我们在使用短信验证码的过程中,部分用户会连续收到莫名验证码短信,对用户正常的业务使用造成了严重的影响;同时还引起了大量的用户投诉,部分省份反馈行业端口的验证码业务投诉量居高不下,所占总投诉量比重超过 50%。 经分析该问题是由一种互联网恶意攻击方法—— “短信炸弹”。
短信炸弹原理 :短信炸弹一般基于WEB 方式(基于客户端方式的“短信炸弹”工具原理类似), 其由两个模块组成,包括:一个前端 Web 网页,提供输入被攻击者手机号码的输入窗口;一个后台攻击页面(如 PHP),利用从各个网站上找到的动态短信URL和前端输入的被攻击者手机号码,发送 HTTP 请求,每次请求给用户发送一个动态短信。

动态短信验证码安全防护方案
短信炸弹形成的原因是因为非授权的动态短信获取,而由于业务的需要(如注册、好友邀请等),在使用动态短信业务前系统并不能建立业务关联。因此, 在未建立业务关联的情况下,需要进一步严格限制保证业务使用的安全性。 针对短信炸弹问题,建议综合采用:增加图片验证码、单 IP 请求次数限制、发送时长限制的措施,防护“动态短信获取”功能与业务接口。
措施一:使用安全的图片验证码
恶意攻击者采用自动化工具,调用“动态短信获取”接口进行动态短信发送, 其原因是攻击者可以自动对接口进行大量调用。
采用图片验证码可有效防止工具自动化调用,即当用户进行“获取动态短信” 操作前,弹出图片验证码,要求用户输入验证码后,服务器端再发送动态短信到用户手机上,该方法可有效解决被利用实施炸弹攻击的问题。
措施二:单IP的请求次数限定
使用了图片验证码后,能防止攻击者有效进行“动态短信”功能的自动化调用;但若攻击者忽略图片验证码验证错误的情况,大量执行请求会给服务器带来额外负担,影响业务使用。
建议在服务器端限制单个IP在单位时间内的请求次数,一旦用户请求次数(包括失败请求次数)超出设定的阈值,则暂停对该 IP 一段时间的请求;若情节特别严重,可以将 IP 加入黑名单,禁止该IP的访问请求。该措施能限制一个IP地址的大量请求,避免攻击者通过同一个IP对大量用户进行攻击,增加了攻击难度,保障了业务的正常开展。
措施三:单用户动态短信请求间隔时长限制
为进一步优化业务正常使用,建议采用限制重复发送动态短信的间隔时长, 即当单个用户请求发送一次动态短信之后,服务器端锁定如:30 秒后,才能进行第二次动态短信请求。该功能可进一步保障用户体验,并避免包含手工攻击恶意发送垃圾验证短信。
更多短信平台:凌凯短信平台
|