验证码本质上自带一层答案的语义,这原本是天然的区分人和自动程序的地方,但在今日却未必,由于AI智能及CHATGPT的发展机器要识别也变得容易。
一 :攻防思路
黑产对于验证码图片答案的获取主要有两种手段——图片穷举破解和图片模型破解。模型破解与穷举破解的差别,本质上是黑产效率的提升。
然而,真人在线输入验证码难以避免耗时等问题,在整个黑产作弊链路中,人工打码几乎占据了超过60%的时间。以破解一批30万张的验证图库为例,黑产下载这批图片耗时8.33小时,通过低成本的人工打码获取这批验证图片答案需要花费208.33小时。并且,图片遍历+人工打码是一个需要持续投入时间和资金的破解方法,一旦验证厂商更新了图集,黑产就需要重新下载一批新的图库,不停地重复花钱请人打码。
那么怎样才能缩减这些时间和资金成本,减少人工打码的占比呢?黑产想出了一种方式——用自动化的方式来识别图片答案。即在验证图片资源遍历批量获取到图片答案后,进行自动化的模型训练,从而实现自动对抗。
相比起图片遍历+人工打码的攻击方式会随着图集自动更新而失效,黑产只需要建立出一个准确的图片识别模型,即便后期验证厂商动态更新了图集,只要不改变图片上的图标风格,识别模型依然能精准地识别图片,效率大大提升。
例如,假设黑产训练出了能够识别图A的模型,那么即使验证厂商将图库更新为了图B,黑产的模型同样也能识别。且后续每次图集更新时只要不改变图标风格,黑产的模型都能持续识别这批图片。这直接帮助黑产省去了爬取、下载图库的流程,大大降低了重新寻找人工打码的时间和资金成本,提高了攻击效率。
二:攻击流程
站在黑产的视角完整地体验一次图像识别模型训练和攻击的流程:
step 1:黑产针对某游戏公司的Web注册场景发起攻击。
step 2:黑产通过频繁向页面接口发送请求来获取验证图片地址。
step 3:批量下载存储验证图片,共需要大概5~10万张图片。
step 4:人工对验证图片中的答案进行标注。
step 5:构建模型的网络结构,编写模型训练代码。
step 6:使用标注后的验证图片和答案坐标对模型进行训练
(训练所使用的设备需要用到显卡) 。
下图展示了模型训练的过程:训练损失和验证损失随着模型迭代稳步下降,最终趋于收敛;训练准确度逐步上升,最终在趋近于100%,验证集准确度在90%左右收敛。
step 7:黑产训练出一个高准确度的识别模型后,后续破解验证码时,通过识别模型就能直接获取答案坐标。
三:攻击方式
黑产破解者为了降低攻击成本、提高破解效率,通常会利用收集的大量验证码图片样本,打码标注、构建模型网络、训练模型、测试模型,从而得到一个可持续识别图片答案的识别。目前,黑产针对验证码图片的破解最常用的主要是分类模型和相似模型。
1、分类模型
分类模型指的是黑产对图标位置进行检测,并对目标元素和提示标签进行分类。分类模型首先分别对检测出的目标元素和提示图标进行特征编码,得到特征表达,再通过softmax函数计算出可能类别的概率,取概率最高的值并将该图片划分到每个已知的类别,从而丰富模型素材。
下图展示了完整的分类模型训练流程。通过图标提取、特征编码、概率计算,得出目标元素为开关的概率是0.91,提示标签为开关的概率是0.86,因此将该图片划分至开关类别。
黑产分类模型的破解识别机制:黑产在进行模型训练时,会让模型将现有的图标元素全面覆盖,并且至少训练5万张图片。等模型训练完成、上线使用时,只要一发现训练中见过的图片元素,就能准确快速地定位到正确的答案坐标。
上图为分类模型识别验证码答案的效果示例,黑产的分类模型能自动在4个图标元素下标出 “book-open”,“add-on”等类别,快速定位图片答案。
2、相似度模型
相似度模型指的是黑产对图标位置进行检测,并对检测出的目标元素和提示标签进行特征编码,然后计算二者的相似度,相似度较大的可以视为同一类图标。
上图为相似度模型识别验证码答案的效果示例。相似度模型并不需要知道3个图标元素是什么内容,只需要通过两两计算提示标签与目标元素的相似度,就能直接确定通过验证码的点击顺序。
3、目标检测
目标检测指的是黑产对图标位置进行检测并记录,枚举得出正确的点击顺序。这是黑产攻击成本最低的一种方法,目前市面上免费的目标检测模型已经能够准确的检测目标元素的位置,再用枚举的方法,随机选择一个点击顺序,发送请求,如果通过验证,即试出了正确答案,否则继续尝试。如果一个验证码的目标元素为3个,那么最多尝试6次就能得到正确答案。
上图为目标检测识别验证码答案的效果示例。背景图上共有3个目标元素,那么黑产每次枚举尝试成功的概率 = 1 / A(3,3) = 1/(3x2x1) = 1/6,最多尝试6次就能试出正确答案。
牟利方式
站在黑产的视角,为什么利用模型破解会比人工打码的成本更低? 黑产下载一批30万张的验证图库需耗时8.33小时;然后通过人工打码获取图片答案,打码成本约为1.4分/张,共花费4200元,耗时208.33小时。虽然黑产能够生成自己的图片答案数据库,并且在后续图库未作更新的一个月时间里都能畅通无阻地破解验证,然而一旦验证厂商动态更新了图库,黑产就需要再次花费4200元和9天的时间重新寻找人工打码。
而图像识别模型直接帮助黑产省去了人工打码的时间和资金成本。黑产只需花费8.33小时下载存储这批图片,利用技术手段训练模型,不断尝试和调整模型的网络结构,并使用显卡来提升训练的速度就能得到一个有效的模型。后续利用识别模型时,识别一张全新的图片仅需要0.1s~0.2s,即使验证厂商动态更新了图库,只要不改变图标样式,这个模型也依然有效。可以说,模型识别比人工打码的效率提高了至少25倍。
黑产效率提升25倍,虽然看上去只是数据指标上的差别,但却会给被攻方带来极为致命的威胁,主要体现在以下三个方面:
1.黑产的效率提升后,攻击所花费的时间和资金门槛也大大降低。涌入市场的黑产团伙数量剧增,企业将从被一两个黑产盯上到同时被七八个黑产团伙盯上,遭受损失的概率和金额都会大大增加,甚至让整个业务端瘫痪。
2.效率提升带来的是对业务的反复威胁。即使验证厂商第一次动态更新了验证图集,能够在一段时间内防住黑产,但是当黑产训练出模型后又会再次卷土重来,难以控制。
3.黑产花费的成本更低,收益更高,持续破解的意愿也持续增强。高额的利润刺激黑产进一步研发模型训练的新技术,导致对抗黑产的难度不断增加。
对于黑产而言,模型识别最大的成本在于调整、训练和测试的技术成本。因此,在前期训练出模型后,后期不再需要持续投入时间和资金,大大降低了黑产的攻击成本,扩大了黑产的“营利空间”。当黑产在图片遍历人工打码攻击失效后,通常也会将攻击策略调整为训练图像识别模型,从而进行自动化、高效的破解。
四:防御思路升级
1、视觉偏差
极验安全专家是如何产生视角偏差思路的呢?我们知道,人类有视觉偏差,通常会因为视角、物体、自然变化等因素看到与事实相悖的画面。而黑产训练出的图像识别模型,作为一个固定的数据模型,也会因为人为的干扰、限制而产生所谓的视觉偏差。下图为人类视觉偏差举例:
当攻击方训练出图像识别模型进行自动识别时,识别一张全新图片仅需要0.1s~0.2s,效率甚至高于图集更新的速度。防守效果不再明显,与黑产的攻防博弈也容易陷入拉锯战。因此,防守方必须进一步提高效率,也就是让黑产识别图片的程序出现视觉偏差,直接无法识别到验证图片对应的答案。
2、模型分析
分析图像识别模型的工作原理,首先需要利用目标检测模型,检测目标元素的位置,此处包含两重任务:
(1)预测目标元素的bbox;
(2)预测某处位置是背景还是目标元素,即二分类。对目标检测模型的视觉欺骗主要在第二重任务上,即通过视觉欺骗,让模型将目标元素预测为背景。
业内通常使用目标检测模型检测目标元素的位置,即num_classes=1,如下是目标检测模型Yolov3的结构图。模型输入一张大小416x416的图片,进过darknet基础网络和yolo目标检测网络,输出维度分别为:13x13x(5+num_classes),26x26x(5+num_classes),52x52x(5+num_classes)的特征图,3种不同大小的特征图尺寸满足了不同尺寸目标元素的检测需求。
人类想象不出从未见过的意象,CNN模型也是如此。对于一个从未见过的图标类别,softmax会强行将其预测到一个已知类别中,这当然是错误的。这是分类模型的天然缺陷。
如下图所示,模型编码器对“espresso”图片输出了一个10(num_classes)维的向量[-4.28, 2.97, -0.39, 5.25, -7.57, -3.43, 8.64, 2.63, 6.30, 0.68],分别对应待预测的10个类别。通过softmax函数将每个元素归一化到0-1之间,那么即可以表示图像分类到对应类别的概率,图中可知分类到“espresso”的概率为0.8798。
相似度模型只需要计算目标元素与提示图标之间的相似度,根据相似度的大小判断是否同一事物,这弥补了分类模型的缺陷。相似度模型的训练更符合人类学习新事物的模式。例如,孩童学习认识新事物“猫”,并不是一个归纳推理过程,而是估计相似度,找出与给定猫的图片相似度最高的。
分析了相似度模型,我们就可以构造图标风格进行防御。针对图片元素做不同种类的轮廓干扰处理,从而限制模型对图片元素的匹配。
下图是相似度模型在两种不同图标风格的点选验证码上的预测结果。左侧图标风格个性鲜明,两个相同图标的相似度大,不同图标的相似度小,因此识别模型很容易自动将3个目标元素与3个提示标签匹配;而右侧给所有字符都套上了花环外壳,相似度模型特征编码时被花环外壳所干扰,特征中外壳信息的占比更大,因此随意两个图标的相似度都在0.9以上。所有图标相似度都很大,因此很难正确地将3个目标元素与3个提示标签匹配。
五:攻击方法升级
俗话说:道高一尺,魔高一丈, 常规的分类模型、相似度模型、目标检测等, 防御和攻击双方都会投入资源去完成自己的使命, 但从原理上来说, 无论图形如何变化, 被破解只是时间而已, 一旦被破解, 防守方其实并无法区分哪些是机器识别的, 只能从流量异常等指标中判断出可能被识别了, 换句话说,如果采用人肉来攻击, 结果是图形验证毫无用处。
六:结语
图形验证方式从最早图形验证码,被破解后开始加干扰线以及对内容进行扭曲八拐,由于用户体验太差被用户吐槽, 互联网开始出现了以滑动轨迹为基础的行为验证方式,比如阿里的滑动条、腾讯的滑动拼图, 为了应对AI 的攻击, 行为验证又走上了刁难用户的老路子, 开始出现各种奇葩的验证图形及验证方式,但无例外的被黑产无情的打脸,
面对强大的CHATGPT 为代表的人工智能,单纯靠图形验证的方式越来越有心无力,只有靠AI才能对付AI ,以新昕科技为代表的采用反欺诈引擎的数据驱动AI 模型,不仅可以轻松应对人工智能的攻击,对付真人攻击也毫无压力。
很多人在短信服务刚开始建设的阶段,可能不会在安全方面考虑太多,理由有很多。
比如:“ 需求这么赶,当然是先实现功能啊 ”,“ 业务量很小啦,系统就这么点人用,不怕的 ” , “ 我们怎么会被盯上呢,不可能的 ”等等。有一些理由虽然有道理,但是该来的总是会来的。前期欠下来的债,总是要还的。越早还,问题就越小,损失就越低。
所以大家在安全方面还是要重视。(血淋淋的栗子!)#安全短信#
戳这里→康康你手机号在过多少网站注册过!!!
谷歌图形验证码在AI 面前已经形同虚设,所以谷歌宣布退出验证码服务, 那么当所有的图形验证码都被破解时,大家又该如何做好防御呢?
>>相关阅读
《腾讯防水墙滑动拼图验证码》
《百度旋转图片验证码》
《网易易盾滑动拼图验证码》
《顶象区域面积点选验证码》
《顶象滑动拼图验证码》
《极验滑动拼图验证码》
《使用深度学习来破解 captcha 验证码》
《验证码终结者-基于CNN+BLSTM+CTC的训练部署套件》