一文带你看懂验证码攻防技术那些事儿

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

本文目录

验证码为什么越变越复杂

验证码有哪些破解方式

验证码如何进行顶层产品能力设计


“天生反骨”的验证码总是让人类头疼不已。

比如最基础的英文数字组合验证码就已经会让人陷入自我怀疑

“I还是10还是O2还是Z9还是qvv还是w”

再比如无数网友被12306网站验证码支配的恐惧。

如果想顺利买到火车票抢票页面的“余票充足”并不能代表能买到只有在付款前的验证码环节顺利通关才算成功一半。

要么是在一群明星的照片中找出影帝影后要么是在一堆山寨商品中找出真货更过分的是在一打方言中选出”海南话“……

无数被烦人验证码挡在网页外的网民心里都有一声愤怒的呐喊

验证码人类一生之敌。

但验证码越来越“变态”的背后实际上是安全攻防人员与黑灰产之间的持续对抗。

近日顶象在CSDN直播间就验证码的攻防问题与大家展开讨论反欺诈专家大卫老师就现阶段验证码黑灰产会有哪些破解方式谈起从防御角度深度剖析如何应对黑灰产的攻击那么验证码如何以技术万变钳制黑灰产之变验证码产品又改做哪些产品安全能力设计

验证码为什么越变越复杂

人机验证码相信大家都不陌生。

人机验证从最早的传统字符型验证码到图形验证码再到行为验证码再到如今的智能验证码验证方式可以说是千变万化的。

那么为什么随着验证码的不断迭代验证码反而越来越“变态”我们越来越难以证明我是人而不是机器

要回答这个问题大卫认为可以从以下两个角度来分析

一是机器难度即安全性一是人的难度即用户友好程度。

这两个要素一直是验证码的核心关注点。可以看到传统的字符类验证码虽然难度不高但对机器来说却几乎没有难度为了增加机器破解的难度针对其他验证方式做了混淆比如在图片上做噪点来提升安全性这样一来反而增加了人的视觉难度。

所以也就可以理解我们为什么觉得验证码越来越“变态”。

但整体来看传统验证码验证方式设计不合理只增加了人的难度 缺乏感知能力 以及调整能力安全纵深不足这也很好的解释了验证码为什么迭代到如今的智能验证码。

验证码有哪些破解方式

那么对于黑灰产而言验证码究竟是如何破解验证码的。

从上图可知验证码的破解流程可分为三步

第一步资源爬取即通过机器爬取获得文字、图标、图片、音频等信息第二步是工具识别常见的破解工具主要有OCR、打标训练、图像识别平台等第三步就是进行自动化提交破解验证码。

以智能验证码的破解为例。我们来看下验证码的破解过程。

首先是识别元素的提取即当一张图片出现用户需要知道这张图片的答案在哪里比如说要把滑块拖到哪个地方、图片上有哪些元素、所在的位置是怎样的这些都是黑灰产需要破解的。

一般而言有以下几个步骤

一是识别元素群需要大量爬取目标验证码的元素。二是对目标验证码进行人工标注标注的数量越多样本数量就越多最终训练的模型效果就越好这其中就会用到图像识别的一些模型。

三是自动化识别即可通过模型就知道这张图片的答案在哪里知道了答案之后接下来就是如何完成验证了。

对于智能验证码而言它需要的不仅是答案本身更关注验证过程中的数据。这其中又有几种思路。

一种思路是可以破解整个JS文件即完全逆向验证码JS文件这样一来你就可以知道它在验证过程中收集哪些数据这些参数又是如何拼装的参数是如何加密的也就可以实现脱机运行不用依赖浏览器环境自行组装参数提交验证但这个方式成本相对较高周期也会更长。

另一种思路是UI自动化。即当我们知道图片上的答案之后可通过自动化脚本去驱动浏览器上的元素自动化操作进而完成验证。相对于上一种思路其成本较低。

除此之外还有一种破解方式即三方接码平台。

打码平台的基本原理是利用人工智能技术实现对验证码设计原理的突破。

黑灰产把获取到的验证码相关信息提交至打码平台打码平台负责破解验证码然后把正确的验证结果返回给黑灰产让黑灰产在带着正确的验证结果去请求数据页面大大加大了验证码被破解的风险。

综上原本的请求流程只有黑灰产和数据页面的双向通信由于打码平台的加入现在这条链路上便演变成了黑灰产、数据页面、验证码、打码平台四者之间的通信。

目前打码平台破解验证码方式主要是机器破解和人工打码两种。

1、机器破解

机器破解的好处在于自动化程度高识别速度快而且对于黑灰产用户的单词调用价格低缺点是需要花费大量的时间去破解验证码的验证方式前期投入的工作量会比较大而且有时候机器破解的识别准确率也会有一定的误差导致验证失败。

2、人工打码

人工打码则是在打码平台建立一个任务平台任务发布者是黑灰产方将获取到的验证码信息封装成任务提交到打码平台打码平台则作为中间的任务调度者将一个个任务调度给标注者专门做验证码验证的人完成后将标注结果返回给黑灰产由黑灰产带着标注结果去请求数据页面。

标注结果打码平台也会存储一份下次若遇到相同的验证码则直接返回这次的标注结果。如果验证码平台的验证图片长久不更新那么就会有被拖库的风险也就是其所有验证图片都会被标注这时候就无需人工标注了直接转变成机器打码的形式。

验证码如何进行顶层产品能力设计

那么我们究竟应该如何提升防御能力

大卫认为应从以下三方面进行考虑

1、识别对抗。

首先我们需要明确识别对抗的本质是什么。

从字面意思不难理解识别对抗的本质其实就是对抗黑灰产的工具但从技术层面来看实际上指的是与黑灰产人工智能技术的对抗。

2、感知能力。

感知能力即识别恶意爬虫、恶意流量的能力它是区别于传统验证码与智能验证码的标志性能力。

因为智能验证码要求不仅需要知道答案还需要具备答案是怎么来的能力。

那么感知是从几个维度来做的呢

  • 一是行为数据用户在验证过程中可能会产生键盘上的敲击数据、鼠标的点击数据、触屏等数据这些数据都需要我们去收集用来辅助判断用户在整个验证过程中是否具备人的行为特征。
  • 二是终端风险如果对方使用了自动化工具如模拟器、虚拟机等等我们可以通过在终端设备指纹的能力去识别环境风险做辅助判断行为是否可信。
  • 三是数据统计。通过大数据的分析以及计算能够大致圈定哪些范围内的验证码的请求是有问题的进而针对这部分请求做防御提升。
  • 四是预警指标。通过实时计算的指标我们能够感知某一类验证码是否有被破解的可能性。
  • 五是安全策略通过检测攻击行为的安全策略根据风险情况对验证码做出调整。

3、以万变钳制黑灰产破解

不难看出上述的攻防对抗都是围绕变字展开的。

以顶象验证码为例我们来看下顶象验证码围绕变做了哪些安全能力的设计。

首先是安全可信的通信链路。前文中提到黑灰产在破解验证码时首先要考虑的是是否要逆向JS文件来知道你的通信协议以及参数信息。对此顶象增加了安全加密中心安全加密中心会定期自动化的生成新的加密算码把代码重新混淆一遍。有了这种的动态更新的机制后即便黑灰产破解了某个版本的验证码JS 文件在下一个更新窗口到来之后这个验证码JS 文件也就失效了。

其次是验证方式和组合的实时变化。

前文中提到识别对抗的本质是黑灰产的人工智能能力的对抗因此我们的验证元素也要进行实时变换。例如文字点选类验证码其核心验证要素是文字机器破解如果识别了图片中的文字要素那么自然可以返回给黑灰产正确的验证结果。那么可以提升文字要素的识别难度来抵御机器破解。

最后是安全策略的实时调整。

针对私有化客户我们可以定向的验证私有化验证码支持对接防御云基于云服务拉取最新的更新模块、插件以及情报到私有化的环境中去进而实现本地和云端的能力同步。

直播最后大卫分享了人机验证未来的几个趋势他认为

首先人机验证是企业业务安全必不可缺的一环。

其次人机验证的对抗专业程度将会越来越高从以前简单的OCR软件到现在的图像识别技术甚至专业的打码平台这些都是在攻防对抗过程中持续出现的工具这就导致了人机安全的门槛也将越来越高。

随着安全厂商与黑灰产之间攻防对抗的不断迭代各种各样的对抗手段及策略在不断对抗的过程中也在逐渐提高此时对于中小型厂商而言技术上是处于落后状态的因此人机安全的门槛将会越来越高甚至到最后可能只有少数的几个专业的安全厂商具备较好的人机防护能力。

最后再给大家简单介绍下顶象业务安全大讲堂。

顶象业务安全大讲堂汇集了业内大咖分享万亿级业务安全攻防经验打造时下最专业的业务安全直播课通过“技术+方案+实践”三大核心专题带您全面了解金融、互联网、航旅出行、跨境电商以及目前大热的NFT等各类业务风险及防范手段深入解析背后的产品技术抽丝剥茧攻防实战助您打造零风险的数字业务。

春节后顶象将开启第二季业务安全大讲堂第二季业务安全大讲堂将建立安全圈生态邀约知名大厂安全负责人和技术博主来给大家分享业务安全专业知识敬请期待顶象在这里提前预祝大家春节快乐新的一年“兔”飞猛进。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6