【黑产攻防道02】如何对抗黑产的图像识别模型

图像识别模型攻防:黑产攻击与极验防御策略
本文围绕图像识别模型的攻防展开。黑产为提高攻击效率,采用自动化模型破解验证码,常用分类、相似和目标检测模型,降低成本且提升效率。企业面临黑产攻击时数据异常,极验通过视觉偏差对抗方案,如更新图片元素、做轮廓干扰处理等,有效防御黑产攻击。

图片

全文8799字,预计阅读时间约25分钟,建议收藏后阅读

验证码本质上自带一层答案的语义,这是天然的区分人和自动程序的地方。无论使用哪一种方式破解验证码,都必须识别出答案。

在多年与黑产破解者的博弈对抗的过程中,我们发现,从限制黑产获取验证码图片答案这个方向来进行防御,不仅可以减少运营成本、降低对客户的打扰率,还能掌握攻防博弈对抗过程中的主动权。经过极验十一年的黑产攻防实践总结出:黑产对于验证码图片答案的获取主要有两种手段——图片穷举破解图片模型破解。模型破解与穷举破解的差别,本质上是黑产效率的提升。

本期,我们将针对模型破解带来攻防点:图像识别模型对抗。同样会从攻击方(黑产)、被攻方(客户)和防守方(极验)的三方视角进行深度剖析,全面的理解该攻防点。

攻防点

图片

上一期我们讲到验证图片穷举遍历,其中提到了人工打码。人工打码,又被称作 anti-CAPTCHA ,指在进行验证码人机测试时,黑产将验证码请求发送到人工打码平台,由真实的人来完成,从而通过人肉众包的形式帮助黑产团伙通过验证码。

图片

然而,真人在线输入验证码难以避免耗时等问题,在整个黑产作弊链路中,人工打码几乎占据了超过60%的时间。以破解一批30万张的验证图库为例,黑产下载这批图片耗时8.33小时,通过低成本的人工打码获取这批验证图片答案需要花费208.33小时。并且,图片遍历+人工打码是一个需要持续投入时间和资金的破解方法,一旦验证厂商更新了图集,黑产就需要重新下载一批新的图库,不停地重复花钱请人打码。

那么怎样才能缩减这些时间和资金成本,减少人工打码的占比呢?黑产想出了一种方式——用自动化的方式来识别图片答案。即在验证图片资源遍历批量获取到图片答案后,进行自动化的模型训练,从而实现自动对抗。

图片

相比起图片遍历+人工打码的攻击方式会随着图集自动更新而失效,黑产只需要建立出一个准确的图片识别模型,即便后期验证厂商动态更新了图集,只要不改变图片上的图标风格,识别模型依然能精准地识别图片,效率大大提升。

图片

更新前:图A

图片

更新后:图B

例如,假设黑产训练出了能够识别图A的模型,那么即使验证厂商将图库更新为了图B,黑产的模型同样也能识别。且后续每次图集更新时只要不改变图标风格,黑产的模型都能持续识别这批图片。这直接帮助黑产省去了爬取、下载图库的流程,大大降低了重新寻找人工打码的时间和资金成本,提高了攻击效率。

从黑产视角看图像识别模型的收益

利用自动化的方式来识别图片答案,对攻击方而言并非必要手段。但如果能减少人工打码的占比,大部分使用自动化识别,将大大缩短黑产的攻击时间,更加持续有效地识别图片答案。那么,黑产是如何得到一个准确且高效的模型,又是如何利用模型来进行自动化攻击的呢?

攻击原理

我们先来了解下图片识别模型的原理。目前,用作图片识别使用的比较多的模型是CNN。

CNN (Convolutional Neural Networks) 是一种深度学习模型,用于图像处理和分析任务。它的基本原理是通过在数据上提取特征,然后利用这些特征来识别和分类数据。它可以用于复杂的图像识别,比如影像分析,行为识别,自然语言处理等。CNN的基本原理介绍:

1.卷积层(Convolutional Layer):卷积层使用一系列的滤波器(卷积核)对输入图像进行卷积操作。滤波器在图像上滑动,并计算每个位置的卷积结果。这样可以捕捉图像的局部空间信息。卷积操作可以通过矩阵乘法和加法来实现。

2.激活函数(Activation Function):卷积层的输出经常会经过一个非线性的激活函数,如ReLU(Rectified Linear Unit),用于引入非线性变换和增加模型的表达能力。

3.池化层(Pooling Layer):池化层用于降低特征图的尺寸,并提取主要的特征。常见的池化操作包括最大池化和平均池化。池化操作可以减少参数数量,提高计算效率,并增强模型的平移不变性。

4.全连接层(Fully Connected Layer):池化层的输出通过全连接层连接到输出层,用于进行最终的分类或回归。全连接层将特征图展平为一个向量,并通过矩阵乘法和加法进行计算。

5.损失函数(Loss Function):CNN的训练过程通过最小化损失函数来优化模型。常见的损失函数包括交叉熵损失和均方误差损失,用于衡量模型的预测结果与真实标签之间的差异。

6.反向传播(Backpropagation):CNN使用反向传播算法来计算损失函数对模型参数的梯度,并通过梯度下降法来更新参数。反向传播通过链式法则将误差从输出层反向传播到输入层,以更新卷积层和全连接层的参数。

攻击流程

站在黑产的视角完整地体验一次图像识别模型训练和攻击的流程:

step 1:黑产针对某游戏公司的Web注册场景发起攻击。

图片

step 2:黑产通过频繁向页面接口发送请求来获取验证图片地址。

图片

step 3:批量下载存储验证图片,共需要大概5~10万张图片。

图片

step 4:人工对验证图片中的答案进行标注。

图片

step 5:构建模型的网络结构,编写模型训练代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值