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

1、总体概况

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

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

2、风险描述

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

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

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

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

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

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

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

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

3、参与人员

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

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

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

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

4、加固措施

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

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

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

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

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

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

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

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

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

发表于

我来说两句

3 条评论
登录 后参与评论

相关文章

来自专栏养码场

这13项技能让你从传统“撕”到互联网,论Java转型之不易(内含福利)

本人从传统外企转型到互联网已有3个年头,近两年来面试了很多来自传统行业的同行们。发现他们都有意走进处于风口的互联网,但是由于传统行业使用的技术栈与互联网的有所不...

653
来自专栏大数据和云计算技术

大数据和云计算技术周报(第57期)

“大数据” 三个字其实是个marketing语言,从技术角度看,包含范围很广,计算、存储、网络都涉及,知识点广、学习难度高。

853
来自专栏钱塘大数据

“别再问我什么是大数据了”一个单身程序汪的自白

N次聚会,N种人问我:“哎!你们做大数据的到底是做什么的呀?”每每到此,我都会回答他们:大数据只是一种工具,没有那么神秘,和一支铅笔,一双筷子,一把钥匙的原理是...

3049
来自专栏EAWorld

应用容器云:接过Java EE的枪

主要大纲: 一、回顾Java EE的发展 二、揭露Java EE的根本性缺陷 三、从Java EE的角度看应用容器云 四、对未来的展望 老实说,今天的观点如果放...

3016
来自专栏SAP最佳业务实践

SAP最佳业务实践:生产订单拆分-外委生产(249)-1业务概览

用途 借助 EhP 4 的高级功能,外包制造可改进典型的外包和外部处理流程。 优点 采购流程中的序列号分配 转包组件 ASN 监控含转包流程在内的整个流程...

2728
来自专栏智能计算时代

[云计算架构:Dynamics ] 多租户 或多实例 ?

Dynamics 365(在线)为您提供了隔离Dynamics 365数据和用户访问权限的选项。 对于大多数公司而言,在订阅中添加和使用多个实例可提供正确的功能...

632
来自专栏架构师小秘圈

滴滴全链路压测解决之道

作者:张晓庆,来自滴滴 滴滴出行创立于 2012 年,是全球领先的一站式多元化出行平台。经历过各种烧钱补贴大战、多次合并,滴滴成为继阿里之后,国内第二个日订单量...

4184
来自专栏互联网高可用架构

Java领域从传统行业向互联网转型你必须知道的那些事儿

1113
来自专栏腾讯数据中心

IDC假负载验证测试问题分析

前言 关于IDC假负载验证测试,“腾讯数据中心”已经发送2篇介绍文章《数据中心假负载验证测试之道》、《数据中心假负载验证测试实战指导方案》,今天我们将以某大型微...

3226
来自专栏我是攻城师

相比Hadoop,如何看待Spark技术?

2585

扫码关注云+社区