geetest_logo

导语

验证码通过,未必代表这条短信请求安全。

当黑产把验证码任务外包给真人众包平台,验证页面上看到的可能是一次正常操作,风险却会继续流向短信链路。放任这类请求混在正常流量中,后续频控和验证策略也更容易误加到真实用户身上,继而影响用户对平台的信任。

把验证码交互与手机号、号段、短信回填、业务 IP 等信息连接起来,企业才有机会在短信下发前识别可疑请求,让高风险流量接受更强验证,也让正常用户继续顺畅完成业务。

验证通过的那一刻,短信盗刷的风险才刚刚开始。


已有频控和验证码也没挡住异常请求


「目前好像能开的都开了,看起来效果一般,还有什么杀手锏么?」

下午三点,面对突然出现的请求峰值,某电商公司负责人发出了这句追问。



频控已经上了,验证码也已经接入,异常请求仍在规则限定次数内不断更换 IP,通过验证后继续流向短信链路。它们没有粗暴地撞门,看起来也不像典型机器流量,系统很难直接判定。

这些请求混入短信下发环节后,短信盗刷风险也随之进入业务链路。

处置拖得越久,异常流量则会持续混入正常链路。正常用户在注册、登录或支付验证时的体验会受到影响,平台也更难维持有序、公平的业务环境。

把验证强度全部拉高,会增加正常用户的操作负担;继续宽松放行,异常请求又会留下空间。

某电商公司需要找到一条更细的分界线,在拦住可疑请求的同时,尽量不打断正常业务。


验证通过了,黑产却没露出原形


很快我们又收到了一个更具体的问题:

这批请求为什么频控也限不住,验证码也挡不住?

团队先把滑块、图标点选、九宫格等验证形式逐一摆出来讨论。更强的验证可以提高对抗难度,用户也要付出更多操作。

某电商公司负责人不只是要挑一个验证方式。每一次把验证加重,都可能先落到真实用户身上。

极验团队通过黑产的特征,快速分析出异常特征,发现黑产没有一味依赖脚本硬闯验证码,它们会把验证码任务外包给真人众包平台。真人完成交互后,验证服务看到的是一次近似正常用户的操作。



验证结果一个个显示通过,某电商公司却更不安了。进入业务流程后,短信回填率偏低、请求集中在少数国家或号段、验证码交互 IP 与业务 IP 不一致等异常才开始露出来。

验证码只能说明有人做对了题,业务仍要判断,这条短信该不该发。


第一道关守不住,答案藏在业务侧


真人打码的手法被揭开后,某电商公司提出了一个更直接的期待。

「我们还是希望你们能直接作为第一道关卡,能够基本拦住。」

可第一道关也有代价。把所有请求都提升到最高验证强度,正常用户的操作成本会随之增加;继续宽松放行,异常请求又会留在链路里。长期以体验优先的某电商公司,需要在两端找到平衡。

极验团队给出了验证码能力边界,它能够判断交互风险,却拿不到地域、手机号、短信回填、业务 IP 等上下文。

而某电商公司已有风控接口,只是规则相对宽松。团队需要把验证码交互与业务信息重新接起来。

高风险请求接受更强验证,正常用户继续走相对顺畅的流程。每一次验证强度,都应该落在真正需要它的地方。


先稳住高风险流量,再观察黑产动作


防线需要分层处理,极验团队给出的处置方案,围绕三个层面展开:



  • 先压住高频调用

验证码交互 IP 的频率可以被限制在合理范围内,例如一小时内不超过 20 次,超过阈值的请求直接拦截。真人打码平台同样需要调用验证链路,频控能先压低同一出口资源反复发起请求的空间。

  • 再把更强的验证留给可疑流量

客户方可以结合短信国家聚集、号段异常、回填率偏低和 IP 特征异常等线索,先圈出风险更高的请求,单独配置 SVG 验证。强验证集中在高风险请求上,普通用户继续使用相对轻的流程。

  • 最后把业务侧证据接进验证链路

极验团队建议客户在服务端 Validate 接口上报手机号、号段、短信 IP 等业务信息,并校验验证码交互 IP 与进入业务流程 IP 是否一致。验证码行为与业务行为被放到一起后,规则才能识别那些“验证码像真人、业务却异常”的请求。

当这一维度被补齐,才有机会在短信真正发出前区分可疑请求和正常请求,把短信资源留给真实业务,减少风险请求持续进入下发链路带来的盗刷损耗,同时避免用全量强验证换取安全。


SVG上场,拦截率升至 62.6%


客户方先将高风险流量切换至 SVG 验证:


数据回来了,验证链路承接约 65.9w 次交互,其中约 41.3w 次未能通过,交互层拦截率达到 62.6%,较图标点选验证提升 29.4 个百分点

SVG 先解决了人机交互层的问题,提高了真人打码的通过门槛。可仍有通过验证的请求会进入短信业务链路,验证码无法独立判断手机号、地域、IP 和短信回填是否合理。

而到交互层只完成了60%,风险并没有消失;

要完成处置闭环,业务数据必须继续接上。

客户将规则命中日志和业务数据接入决策引擎,针对业务中不应出现的区域或呈现规律性异常的请求直接拒绝。

经过业务侧数据和规则调优,这类明确业务异常请求的实时处置拦截率接近 100%,同时保持了较好的用户体验。

验证码负责识别人机和提高攻击成本,决策引擎结合业务数据处置通过验证后的异常请求,风控才从单点验证走向完整闭环


END

验证码防人机,业务数据辨风险

最开始,某电商公司想找一个更强的验证码。

处置推进后,团队找到了一条更完整的路径,交互层识别风险,业务侧完成判断

黑产的手段还会继续变化,攻防也从来不是一次配置就能结束的工作。

面对异常,企业不必陷入恐慌。发现异常、分析特征、快速试验、观察效果、热更新规则,再继续复盘和调整,极验已经形成了一套标准化的处置流程。

当风险能够被更快发现、更快判断、更快更新规则,业务就能重新回到可控范围。


Start your free trial
Over 320,000 websites and mobile apps worldwide are protected by GeeTest captcha