【企业安全】企业安全项目-短信验证码安全

1、总体概况

谈起短信验证码的安全,首先从脑海中蹦出来的可能有:短信炸弹、验证码暴力破解、验证码重复利用、短信验证绕过……追究其根源,大致可以分为短信相关接口、验证码的特性甚至与业务逻辑验证相关联。

然而,短信验证码安全算是企业安全建设中能马上“止血见效”的突出代表,无论是从企业开销,又或实际有效性,还是用户体验来说,保护好我们的短信相关接口、完善校验逻辑是十分有必要的。本篇章将从短信验证码常见风险场景(验证码挖洞技巧)与加固措施等方面进行展开。

2、风险描述

  • 短信任性发,慢性恶意消耗企业费用

在做验证码安全改造项目过程中,深刻的领悟到“水滴石穿”的道理,每条短信大约0.03元,目测单价很便宜但整个公司的业务短信量却很庞大,一年下来正常的总花销也是一大笔费用。如果发送短信接口被轰炸平台抓住,被用于发送恶意短信,无形之中在帮别人恶搞或出气时,还得为他买单。

曾发现某平台(gghzj.cc)在半小时内,调用我们的短信发送接口18w+次。庆幸的是该接口已经进行改良,设置了其他参数与规则进行严格校验。

  • 短信滥发,客户投诉,通道面临关停风险

中间件的同学常常发来坏消息,某通道因为投诉被处罚关停,这是常见的由客户发起投诉的案例。至于原因除了短信发送接口存在安全缺陷导致不停发送外,不可忽视的还有测试环境的规范化问题,在进行功能测试时,是否操作不规范致发送短信验证码到真实用户手机。

  • 短信验证码失效,又或是业务逻辑背锅

短信验证码在对企业造成不良影响的同时,还可能违背设计者的初衷,并未到达预期验证、放刷等功能。其原因主要为:验证码本身与业务逻辑。如果从漏洞的角度来讲,大致可以分为以下几种:

相关漏洞的美,确实不足以在这里用思维导图简单的描绘来形容,如果对这方面感兴趣或有独到的挖洞思路,欢迎留言交流。

3、参与人员

在该项目中主要涉及到三个角色:

中间件:作为基础服务的提供者(短信发送服务与验证服务),为所有业务提供短信相关接口,通常会制定一个基础的规则供各业务方使用。

安全组:发现安全隐患与安全规则的制定者、验证人员以及推广。参与基础服务(短信服务)相关规则的安全测试、制定、验证,与中间件同学推广改造后的相关接口到各业务。

业务方:短信相关功能的使用者,接口调用、可灵活调整规则(比如短信发送的间隔时间基础为15s,业务方可根据实际情况调整为30s)以及对接口打包调用等。

4、加固措施

关于验证码的发送接口与验证码的特性可以归结为一点,即:对底层接口进行改良,涉及短信验证码的发送间隔、每分钟/小时/天的发送总条数、健壮性、有效性、一次校验失效性、手机号拉入黑名单的机制、手机号解冻的时间……

安全在其中扮演的角色主要是:规则制定与生效验证,以及协助中间件相关同学去推动业务进行改造,因为是“不参与就不给玩”的性质,再加上改动较小,所以各个业务方表现出来的积极性都比较高。部分相关的规则如下,可供大家参考:

《1》短信验证码安全改造接口说明

《2》短信验证码安全改造接口测试

通过对底层短信相关接口的改造,足以解决短信验证码中的大多数问题,但在具体的一些业务场景中,可能仍然存在安全漏洞,由此需要安全人员深入各业务线,对短信验证码可能出现的场景进行安全测试,尽可能的完善安全业务逻辑。通常涉及的场景有:

至此,关于验证码安全的相关内容已经告一段落,也基本解决了目前发现的以及面临的安全风险。如果大家在实际工作中遇到没提到的点或难题,欢迎在下方留言讨论。

原文发布于微信公众号 - 我的安全视界观(CANI_Security)

原文发表时间:2018-02-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯社交用户体验设计

I love UX 原创设计论坛

? 腾讯ISUX isux.tencent.com 社交用户体验设计 ? ? ? ? ? ? ? ? ---- ? 感谢阅读,以上内容均由腾讯ISUX团队原...

832
来自专栏杨建荣的学习笔记

关于Oracle灾备书籍的意见征集

关于Data Guard在我原来印象中是有阴影的,起源是在OCM考试中,有很多同学在一个小时内搭建出Data Guard环境,但是做了主备切换,反复切换的时候出...

1324
来自专栏知晓程序

好奇心日报的 App 和小程序,你会选哪个?

1876
来自专栏视频加密

在线视频加密功能解析

在线视频加密可以防范视频所有者辛苦录制的视频课程被恶意盗用,在线视频加密可以实现哪些功能呢?

1K5
来自专栏人工智能

分布式技术在无人驾驶汽车中的应用

作者:张轩博 1「自动驾驶汽车系统特点」 自动驾驶汽车是复杂的分布式系统。它结合了视觉,雷达,激光雷达,接近传感器,GPS,地图,导航,规划和控制等组件。这些不...

3861
来自专栏程序员互动联盟

程序员都用什么编写程序?

说到编写代码的工具说多了多如牛毛,经典的来回也就是几个,现在笔者根据多年的经验列举下常见的编写程序工具。 vim+emacs vim是在linux编写代码的利器...

3077
来自专栏闵开慧

云存储深层解析

云存储的概念与云计算类似,它是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存...

6376
来自专栏FreeBuf

走近科学:谷歌工程师NeelMehta是如何发现心脏滴血漏洞的

Heartbleed计算机安全漏洞是由谷歌工程师NeelMehta发现的,一向不愿意接受媒体采访的他,今日首次向媒体说出了他是怎样发现这一严重漏洞的;以及为什么...

2068
来自专栏FreeBuf

使用第三方库进行软件开发的安全风险研究

如今,很多软件由于长期使用第三方库文件,导致了持续的安全问题。而在程序开发设计阶段,开发者又经常忽略了第三方库代码的漏洞审查,甚至有些资源库(repositor...

3397
来自专栏安恒信息

低温环境下读取Android加密数据

德国Erlangen大学研究人员找到了一种获取Android手机加密数据的新方法,利用“冷启动攻击”方式可以能从被锁定的Android手机中提取出...

2748

扫码关注云+社区

领取腾讯云代金券