1. 聚能聊>
  2. 话题详情

羊毛党横行,如何应对短信验证码攻击?

如今,大量的网站、网站、手机app都在使用短信验证码作为验证用户身份的安全技术措施。尤其在年底,企业的促销、抽奖、互动活动会迎来一个高峰期,用到短信验证码的场景非常频繁。

但近期,阿里云·云盾WAF团队监测到,不少用户业务的短信验证码功能被攻击,短信接口被恶意利用,导致业务无法正常访问。同时,被刷的短信成本也直接造成一定量的资金损失。

有哪三大行业或者业务,需要警惕短信验证码背后的风险呢?

风险业务一:所有行业的网站登录类页面,需警惕场景:网站在线注册页面,网站在线找回密码页面,手机短信动态密码登录页面。

风险业务二:所有行业的在线投票类页面,需警惕场景:例如微信投票、在线投票、H5投票等。

风险业务三:电商、零售、金融网贷行业的活动页面,需警惕场景:活动领券页面、参与活动页面。

短信验证码功能被攻击的危害比想象中更大,企业用来确保安全的短信验证码,也会把攻击吸引过来,这一风险对企业的危害,攻击短信验证码功能一般直接导致企业的短信接口被“刷”。容易发生短信接口被“刷”的业务场景,包括以下三大类:
账号注册
账号登陆
账号密码找回

当短信接口被刷,对于企业而言,主要有以下危害:
过多的短信接口请求导致服务器负载增加,严重情况下导致服务器资源耗尽,无法响应请求,影响用户正常的访问;
过多的短信接口发送,导致正常用户无法使用短信验证服务;
过多的短信接口非法调用消耗短信包资源,从而直接导致运营成本增加。

八招防范短信接口被刷

了解了风险之后,企业也不必过度担心,以下“指南”,可帮助了解如何防范短信验证码背后的安全风险。

1.手机号码逻辑检测

在手机号码窗口增加号码有效性检测,防止恶意攻击者使用无效或非法的号码,从而在第一窗口屏蔽非手机号的乱码等无效数字。

2.随机校验

在注册页添加个隐藏的,设置保存在session中的随机验证码,发短信前验证一下,保证发验证码短信请求是在业务页面点击。

3.增加友好的图形验证码

即当用户进行“获取动态短信” 操作前,弹出图片验证码,要求用户输入验证码后,服务器端再发送动态短信到用户手机上,该方法可有效缓解短信轰炸问题。

由于当前验证码在攻防对抗中逐步被成功自动化识别破解,我们在选用安全的图形验证码也需要满足一定的防护要求。

4.同号码短信发送频率限制

采用限制重复发送动态短信的间隔时长, 即当单个用户请求发送一次动态短信之后,服务器端限制只有在一定时长之后(此处一般为60-120秒),才能进行第二次动态短信请求。该功能可进一步保障用户体验,并避免包含手工攻击恶 意发送垃圾验证短信。

5.不同号码请求数量限制

根据业务特点,针对不同手机号码、不同访问源IP访问请求进行频率限制,防止高并发非法请求消耗更多的短信包和服务器性能,提高业务稳定性。

6.场景流程限定

将手机短信验证和用户名密码设置分成两个步骤,用户在填写和校验有效的用户名密码后,下一步才进行手机短信验证,并且需要在获取第一步成功的回执之后才可进行校验。

7.启用https协议

为网站配置证书,启用https加密协议,防止传输明文数据被分析。

8.单IP请求限定

使用了图片验证码后,能防止攻击者有效进行“动态短信”功能的自动化调用。但若攻击者忽略图片验证码验证错误的情况,大量执行请求会给服务器带来额外负担,影响业务使用。建议在服务器端限制单个 IP 在单位时间内的请求次数,一旦用户请求次数(包括失败请求次数)超出设定的阈值,则暂停对该 IP 一段时间的请求。

若情节特别严重,可以将 IP 加入黑名单,禁止该 IP 的访问请求。该措施能限制一个 IP 地址的大量请求,避免攻击者通过同一个 IP 对大量用户进行攻击,增加了攻击难度,保障了业务的正常开展。

阿里云安全专家提示,企业可以根据业务的实际情况考虑,从以上8大方式中选择并组合成最适合企业自身的防担心接口被刷方案。并且提高技术人员在实际活动中的安全意识,提前防范风险。

防止短信接口被刷最佳实践推荐
阿里云安全专家参考了大量企业进行防止短信接口被刷的策略,总结出以下四种方式组合是防止短信接口被刷的最佳方案:
使用体验更好的验证码服务防止攻击;
如果需要使用短信验证码功能,可以在“短信验证码”处增加滑块验证(简单的验证码可以被破解)防止被恶意刷短信接口。
在登录页面增加逻辑判断,提高攻击门槛,例如:增加账号检验功能
使用阿里云云盾WAF的数据风控功能、CC自定义功能、精准访问控制等高级防护功能对接口进行防护。

那么问题来了:
您在生活中是否使用过短信验证,都有哪些场景,你的用户体验如何?
你在工作中是否使用过短信验证的机制,主要用于哪些方面的验证?
在使用短信验证的过程中,你是否遇到过接口被刷的场景,你是怎么处理的?
对于提升短信验证的可靠性,安全性及用户体验性你还有哪些建议?

参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    阿里云代金券 x 4

  • 奖品二

    手机话费 x 2

  • 奖品三

    多功能工具箱 x 1

21个回答

1

微wx笑 已获得多功能工具箱 复制链接去分享

您在生活中是否使用过短信验证,都有哪些场景,你的用户体验如何?
现在APP、网站等用户注册大多都是使用短信验证了,短信验证渐渐的成为不可替代的一部分;
之前只是银行之类的要求高度安全的场景才使用短信验证,而现在,不使用短信验证已经有些不正常。
感觉短信验证已经被滥用,手机越来越不可缺,与人绑定的起来越紧密,不可分割,有种手机一丢,整个人都丢了的感觉。

你在工作中是否使用过短信验证的机制,主要用于哪些方面的验证?
短信验证主要用于用户注册和登录。
你们见过只能通过短信注册和登录的应用吗?

在使用短信验证的过程中,你是否遇到过接口被刷的场景,你是怎么处理的?
被刷啦,年前刚被刷了一次。
详见话题:平时用于内测的短信接口,一夜狂发上万条!我该怎么办?
https://yq.aliyun.com/roundtable/63085?spm=a2c4e.11155435.0.0.7f351ba7UOcQ3p
1、IP黑名单
2、手机号黑名单
3、图形校验码
4、限制同一IP单位时间访问次数
5、同一手机号码单位时间发送次数
6、发送一条之后需要60——120秒才能请求第二次
7、接口参数加密
8、添加时间戳,增加获取验证码之前的操作步骤
9、添加发送验证码接口单位时间请用次数限制(默认:2000次),添加验证码单位时间成功发送条数的限制(默认:100条);

对于提升短信验证的可靠性,安全性及用户体验性你还有哪些建议?
用户体验与安全在这方面是对立的,想保证安全性,用户体验就要有所舍弃。
基于上面的方案,可以做一些优化,加入一些控制接口,预警机制;
但被刷是不可避免的,只能是增加对方的成本,以及降低每次被刷可能产生的损失。
别一种方案是要求用户手动编辑短信发送到平台,但那样会增加用户的成本,用户体验也很差。
被刷通常对方都是使用大批量代理来操作,所以有效防止被刷,应该考虑对代理的识别与监管机制。

1

沙漠的热情 已获得手机话费 复制链接去分享

您在生活中是否使用过短信验证,都有哪些场景,你的用户体验如何?
当然非常多,像支付、转账、短信验证登陆等等。使用倒是挺方便的,只是愈发担心起自己的隐私来.. ...

你在工作中是否使用过短信验证的机制,主要用于哪些方面的验证?
被手机劫持了,都手机依赖症了!也许未来有更安全便捷的方式来解决身份校验的问题。期待。

在使用短信验证的过程中,你是否遇到过接口被刷的场景,你是怎么处理的?
没遇到过

对于提升短信验证的可靠性,安全性及用户体验性你还有哪些建议?
开动脑筋,方式多多,不一定非短信不可。淘宝有时的检验方式就是,从多图中挑选曾经购买的商品。应该颇有借鉴意义。

0

cjsoldier 已获得阿里云代金券 复制链接去分享

您在生活中是否使用过短信验证,都有哪些场景,你的用户体验如何?
①生活中经常使用,尤其是注册的时候。我住的地方信号不好,每次都得到屋外去接收一下短信,有的只有60秒,还没收到短信就过期了。信号不好,怪我喽。
②在购买云主机的时候,付款之后它把密码通过短信发给我了,但是页面上并不通知我,我根本不知道,结果卡了好久。太笨了,怪我喽。
③之前手机有问题,经常收不到短信。结果快递来了好几天都不知道。手机有问题,怪我喽。
总的来说短信验证用户体验并不怎么样。邮件都比它好。

你在工作中是否使用过短信验证的机制,主要用于哪些方面的验证?
没用过。

在使用短信验证的过程中,你是否遇到过接口被刷的场景,你是怎么处理的?
没遇到过。

对于提升短信验证的可靠性,安全性及用户体验性你还有哪些建议?
①要考虑到有些地方信号不好。验证时间可以长一点。我觉得90秒或者120秒比较好。
②如果有重要信息需要通过短信发给用户的,一定要提前在页面上做好提醒。
③短信验证码不要超过5位,有的手机不能直接提取短信里的数字,所以位数越少用户也容易记。

0

aoteman675 已获得阿里云代金券 复制链接去分享

1、您在生活中是否使用过短信验证,都有哪些场景,你的用户体验如何?
网站注册、登录、找回密码、手机号快速登录。体验都挺好的呀,比如忘记密码了就要手机号验证码快速登录。不过有的APP需要发送几次才有结果,应该是短信平台的原因,延时也比较大,验证码也会产生随机性丢包情况。现在很多兑换奖品或抽奖礼品兑换都需要验证码二次校验了,就是为了防止虚拟号码恶意刷数据。
2、你在工作中是否使用过短信验证的机制,主要用于哪些方面的验证?
开发的APP都有集成短信验证,主要还是为了验证当前的手机号在使用的APP手机里面,虽然不在同一个手机里面也能操作。现在很多手机卡SIM无法读取手机号码,所以还是目前最有效的方法。短信验证成本太高了,从注册、登录、密码找回都需要验证,现在很多人都记不住密码,所以短信验证一上来,成本就上去了。现在还有语音验证。
3、在使用短信验证的过程中,你是否遇到过接口被刷的场景,你是怎么处理的?
还没有了,首先在发送验证码之前会有滑动拼图验证码操作,这个就防止恶意代码攻击了。然后对每一个发送验证码操作限制发送频率,一般为60秒。
4、对于提升短信验证的可靠性,安全性及用户体验性你还有哪些建议?
我比较认可现在的滑动拼图验证码,这个和12306的识图差不多也是为了防止恶意代码。相比之下语音验证还是可以的,他会拨打手机号码然后说出数字。验证真实号码最有效的办法了,然后就是限制发送频率。现在很多手机IP出口都是一致的限制IP也不可靠在手机APP上,很多代理IP也可以做到。图形识别是最有效防止恶意发送短信的方法了。

0

pwdking 已获得阿里云代金券 复制链接去分享

  1. 您在生活中是否使用过短信验证,都有哪些场景,你的用户体验如何?
    大量的手机应用已重点在使用短验,使用是很方便的,对于 web 应用,还是用户名密码方便,尤其配合 1Password 等工具。
  2. 你在工作中是否使用过短信验证的机制,主要用于哪些方面的验证?
    有啊,用户快捷登录,目前注册和登录已经融为一体了。
  3. 在使用短信验证的过程中,你是否遇到过接口被刷的场景,你是怎么处理的?
    出现过,最终是使用图形验证码和手机号每日限制解决的。
  4. 对于提升短信验证的可靠性,安全性及用户体验性你还有哪些建议?
    针对特殊号段做过滤,比如170的临时号。
0

学长_ 已获得手机话费 复制链接去分享

1、您在生活中是否使用过短信验证,都有哪些场景,你的用户体验如何?
生活中主要是注册一些网站、找回密码时候使用,基本流程就是输入手机号,获取验证码,输入验证码,确认。正常情况还行,在一些高峰期比如购票,节日的时候短信偶尔出现几十秒还收不到的情况,这种体验极差...

2、你在工作中是否使用过短信验证的机制,主要用于哪些方面的验证?
工作中一直在使用短信验证,像手机注册时,根据手机号找回密码。

3、在使用短信验证的过程中,你是否遇到过接口被刷的场景,你是怎么处理的?
到目前还没遇到过被刷的情况。现在已经做的方法:1分钟限制一个号码发送一次,图片验证码

4、对于提升短信验证的可靠性,安全性及用户体验性你还有哪些建议?
图形验证码貌似逐渐被破解,现在见得比较多的是滑动验证的那种。还有一种用户发短信,但是体验性有点差。我账户上钱是用多少充多少...

0

浮生递归 已获得阿里云代金券 复制链接去分享

工具箱啊工具箱~~到现在还没拿到过工具箱的奖励

您在生活中是否使用过短信验证,都有哪些场景,你的用户体验如何?
有想过,但是还没具体实施。比如想自己做一套智能家居,一些意外情况及低概率事件(比如家里进贼了,房间漏水了等等)都用短信来通知,而不是用APP推送,毕竟APP是能少装一个是一个。
不过这些都涉及到单片机开发领域,所以这步一直还没跨过去。

你在工作中是否使用过短信验证的机制,主要用于哪些方面的验证?
这个就很平常了。一般开发的各种系统都要用到短信验证的,特别是忘记密码,和填写资料时的手机号码真实性验证。就是用的人多了,成本有点高。一套报名系统开发价格才几万,每年短信也能用掉1万左右。要不是考虑到用户体验,真想改用邮件推送。
所以有些系统里,考虑到成本,我仍然是采用邮件推送的方式。比如网站有新留言需要回复之类。

在使用短信验证的过程中,你是否遇到过接口被刷的场景,你是怎么处理的?
同事碰到过一次。好像被刷了3万块钱,哈哈。公司默默的承担了损失,好像并没有处罚该员工,只是让他下次注意吧,真是好公司啊。

对于提升短信验证的可靠性,安全性及用户体验性你还有哪些建议?
我觉得上面的八招并不能很好的防止,最好的方式还是户头上没钱吧。出现被刷的时候,户头上被刷完了,自然想发也发不出去啦。

1.手机号码逻辑检测
号码是真的并不能杜绝被刷,可以用别人的手机以及自动填写符合规则的不同手机号码来刷。

2.随机校验
记得有的刷单软件也可以模拟或者伪造session。

3.增加友好的图形验证码
基于现在AI和深度学习的大发展,破解图形验证码已不是话下。

4.同号码短信发送频率限制
限制同号码,就自动生成不同的号码来刷爆你。

5.不同号码请求数量限制
这点比较靠谱,加上实时监控和警报功能,比如某个非高峰期却出现了高峰发送量,就赶紧启用应急预案。但是对于正常高峰期还是没办法避免。

6.场景流程限定
不适合一些不需要验证的场景,比如忘记密码,甚至连用户名也忘记了,只记得手机号。

7.启用https协议
这个完全无法抵御软件自动刷。

8.单IP请求限定
一般的刷码软件,自动更换IP功能应该都是标配了。

总结:对于按量付费产品,我认为没有比户头上没钱这招更靠谱了。就像我银行户头上也没多少钱,所以也根本不怕被盗。

浮生递归 回复

我居然打了这么多字……

评论
0

1585095570760035 复制链接去分享

确实是如此啊

0

humorchen437 复制链接去分享

将验证码方式搞点花样就好了,比如玩个小游戏,做个计算题,回答小问题,限制时间,做那些人工智能目前无法快速破解的而人类可以快速得出正确答案的,以及确认是用户手动操作的

0

1494689343848549 复制链接去分享

最讨厌这样了!

0

flowerszhong 复制链接去分享

感觉无法避免,不可能关闭短信服务吧。当然垃圾短信以及攻击会越来越少

0

1004020863791461 复制链接去分享

下载防火墙,和杀毒软件

0

1378920213595922 复制链接去分享

使用一个验证码时系统提示此网站安全性有问题,我还去使用便被套钱了。我认为不止我一个被套,还有很多人。或许是有人被套然后举报,之后便产生系统提示安全性问题了。手机有很多陌生号码标着各种各样的标签,进行骚扰拦截,只能拦截到标了50个以上的骚扰诈骗电话。有时一个人认为自己被骗便标上一些标签,那个电话便有记录。所以有的黄页手机号或验证码与网站,会背锅。而有些黑页手机号或验证码与网站却容易逍遥自在。我的手机下了很多安全软件监控,还有陌生来电或短信拦截提示骚扰,我看到了,又忍不住看,进行操作。所以这真正的骚扰拦截并没有尽善尽美。

0

1069575434498088 复制链接去分享

打从有了人像识别,指纹解锁,无线终端无限接壤,那流星信息你发射出来。就成了没人要的娃娃,必须离家出走。。一个娃能有本事去区分好怪,不然,觉着合适就跟着有了,有奶就是娘嘛。

0

1712220079466931 复制链接去分享

要反对黑客攻击

0

1772620698695130 复制链接去分享

有方法防止手机丢了,拾到的人利用短用验证码转走手机中的钱吗?除了手机屏锁,指纹锁。

0

时迈特 复制链接去分享

对于提升短信验证的可靠性,安全性及用户体验性你还有哪些建议?
我觉得短信验证是方便很多,但有风险,所以涉及钱财或重要机密信息,还是多设几道防线,不能光用手机短信,万一手机丢失,没有及时发现挂失,岂不麻烦

0

测试666 复制链接去分享

666666

0

1292420415376996 复制链接去分享

6666

0

安昌猛张飞 复制链接去分享

官企一起,写这些有什么用,说再多说再好也没用,再好的地图不能带你在路上走一步,还不如别找这些有的没的,成天扯淡浪费时间

2
10771
浏览
2
收藏
邀请他人互动
关注
18
粉丝
126
话题
32

简介:

一个IT老兵,在这行摸爬滚打快20年了,很多工作都做过,也熟悉不少技术。现在对云计算,大数据以及机器学习很感兴趣。
结合大数据能力帮助电商企业快速搭建平台、应对业务高并发,剖析秒杀、视频直播等场景

由轻量级Agent和云端组成,集云盾威胁情报于一体,通过Agent和云端大数据的联动,为您提供网站后门查杀、通用...

是阿里云安全专家基于阿里云多年安全最佳实践经验为云上用户提供的全方位安全技术和咨询服务,为云上用户建立和持续优化...

为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...