黑产攻防系列之验证码技术及其AIGC应用

 2024-01-17     hth电子
产品详情

  本篇文章为大家介绍在风控领域很重要的验证码技术及其AIGC应用。内容有验证码的应用场景、发展历史、黑产破解技术、风控防御技术、AIGC应用。由于验证码技术及与黑产的攻防对抗迭代迅速,本文给到的内容也受限于当下的时间节点,但万变不离其宗,它图灵测试的本质不可能会发生变化,攻防的思想核心也不会变,对于一名风控工程师,本文的知识也应当了解。

  需要特别说明的是:本文所提到的验证码,主要是指现在市面上普遍的使用的各类图形验证码:滑块拼图、文字点选、图标点选、语序点选、空间推理等。

  2000年,雅虎为减少聊天室内恶意程序收集个人隐私信息、散发广告及垃圾邮件的影响,设计了由计算机自动生成的

  图灵测试:一个人在不接触对方的情况下,和对方进行一系列的问答,如果他无法依据这一些问题判断对方是人还是计算机,那么,就可以认为这个计算机具有同人相当的智力。图灵测试即判断对方是不是一台机器,反向图灵测试即判断对方是不是一个线年,Louis Von Ahn发布CAPTCHA:Using Hard AI Problems For Security论文,阐明验证码的本质是一系列人类能解答但机器无法解答的问题,并将验证码命名为CAPTCHA(Completely Automated Public Turing Test to Tell Computers and Humans Apart,全自动区分计算机和人类的图灵测试)。

  2007年,Louis等人在卡耐基梅隆大学推出reCaptcha服务,reCaptcha 服务将OCR程序识别出的不合法单词展示在验证码组件上,让人们来识别。

  2009年,Google收购reCaptcha,随后验证素材扩充到街景图片(门牌号、红绿灯、小汽车等)。

  滑块验证码、语义理解验证码、空间验证码、音频、视频等各种丰富形式的验证码相继诞生。

  、模型识别等方式获得验证答案,然后生成尽可能真实的行为轨迹。轨迹的生成方式包括:函数生成

  进行识别,打码平台将人类标记的验证码的坐标等数据返回给黑产,黑产模拟人类使用标注的验证码做验证,从而获得凭证,绕过验证码的防御。如下图所示,是某打码平台的数据返回格式。>

  这一部分,前期在遍历资源的时候仍然需要人工打码或者算法破解。典型的攻击流程为:

  破解字符验证码通常会将图片中的多个字符进行分割逐个破解。对于彩色的字符验证码常常要将其灰度化/二值化处理,即彩色图片转黑白图片。二值化后整个图片都是像素点,需要做腐蚀降噪处理,使数字部分独立突出。然后利用投影分割获取像素直方图,那么多个直方图之间的波谷就是字符相连接的位置,在此处切割开多个字符。切割后的字符需要做规范化处理,比如旋转校正或者倾斜度校正。预处理完后利用获取的字符图片训练字体库即可识别,常用的模型有

  等。另外,当字符分割很难或字符数不确定时还能够正常的使用端到端的模型,比如LSTM。3.2.2.2 图形验证码

  滑块拼图验证码是各类图形验证码中相对容易破解的一种,并不是特别需要使用到复杂的机器学习算法,借助OpenCV和Selenium就可以完成破解。通常包括两步:检测滑块缺口、模拟滑动轨迹。

  文字点选验证码要关注的是两部分,一个是如上图右上角的莫基多三个黑体字,通常称作

  相似度模型并不是特别需要知道图标元素是什么内容,只需要通过两两计算目标元素与提示标签的相似度,就能直接确定通过验证码的点击顺序。

  除了相似度模型,黑产通常也会使用目标检测算法破解文字点选验证码。破解时只需检测目标元素位置并记录,然后使用暴力枚举的方式尝试点选位置即可,比如3个文字的验证码最多尝试6次(3个文字的排列)即可得到正确答案。

  打码平台首先主动请求验证码服务,完成验证请求后将验证码服务下发的合法token存储起来,当黑灰产接入打码平台时,主动下发合法的token给黑灰产,让黑灰产携带着合法token绕过验证码。

  低效的打码方式是黑产提交验证请求,打码平台被动接受验证请求做验证动作。因为人工打码是个耗时的操作,为提升打码效率,打码平台实际使用的是上述更高效的方式。

  针对人工打码,通常的防御方式是采集验证环境信息判断是否为黑产:基于人工打码的工作流程,能够最终靠采集验证环境信息等方式识别到人工打码平台,例如判断完成验证时的验证环境信息和token创建时的验证环境信息是否一致来进行判断;限制验证码输入的次数;利用设备环境信息等筛选出可能是黑灰产的请求进行二次拦截或验证(比如对多次恶意攻击的IP地址进行拦截)。

  那么怎样保证图库的实时更新或者说提升图库的更新速率呢?一般验证码图片是由设计师设计的,一个月可能只能产出几百张或者几千张。为提升更新速率,关键点是将人工的行为利用机器做成

  大模型,输入一段文字,对应的生成一张验证码图片。另外,当流程自动化后,图片要素核准、图集资源同步等也需保证。

  当图库做到自动化更新后,如何验证起到了效果?通常可以观测这么几点:1. 图集更新后,验证码通过比例下降,下降的这部分大概率是黑产的机器攻击,因为对于真人来说图库更新并不可能影响到验证码的通过;2.验证码的请求量下降,验证码答案坐标相同的请求量下降,是因为黑产发现无法通过验证码攻击量下降且批量机器攻击的验证码坐标具有一致性的特点。

  黑产通过图片遍历、人工打码的方式能积累下数据用以训练模型,只要被攻击方不改变验证码风格,模型就能够持续地精准识别。

  防御黑产模型破解的思路是制造视觉偏差,模型对于从未见过的图标类别,会强行将其预测到一个已知类别中,产生错误结果。

  黑产常用的是相似度模型,通过计算目标元素与提示图标之间的相似度,根据相似度的大小判断是否同一事物。因此能利用相似度模型的计算原理制造视觉偏差,可以参考极验的方案:针对图片元素做不同种类的轮廓干扰处理,限制模型对图片元素的匹配。给所有字符都套上了花环外壳,相似度模型特征编码时被花环外壳所干扰,

  黑产破解验证码时基本都需要模拟人类轨迹,常用的方式是我们在第三章开头描述的函数生成和轨迹重放。

  对于轨迹重放,虽然黑产使用的是真实人类轨迹,但因为重放,难免产生碰撞,最简单的方式是使用hash算法识别。

  对于函数生成的,除了使用hash算法检测碰撞外。还可以使用分类模型(例如CNN)自动学习机器轨迹特征来区分人机轨迹,或使用聚类模型来发现轨迹中的聚集模式。

  图10 SD光影文字验证码还可通过AIGC设计出没有缺口的滑块验证码,从而防止黑产识别到滑块验证码的缺口。如下图所示,图片中无显著的缺口,人类能够理解将狗的尾巴拖到合适的位置这句话并做到正确拼合,而对于模型来说是困难的。

  总之,AIGC的应用不但可以提升验证码生成效率,还能增加黑灰产的破解成本并产生更精美的图片改善使用者真实的体验。六、参考资料