谷歌最新验证系统又双叒被了,这次是强化学习

自推出以来,谷歌的 reCaptcha 验证系统就被频繁破解,因此谷歌不得不一次又一次地迭代升级。现在,reCaptcha 已经升级到了 v3,由原来的用户交互直接升级成了给用户打分。但再强的系统也会有漏洞,来自加拿大和法国的研究者另辟蹊径,用强化学习了这个最新的验证系统。

谷歌的 reCAPTCHA 验证系统

对于谷歌浏览器的用户来说,上面这幅画面想必并不陌生。这是谷歌开发的验证码系统 reCaptcha,旨在确认访问者是人还是程序,并防止恶意程序的入侵。

reCAPTCHA 项目是由卡内基梅隆大学创建的系统,于 2009 年 9 月被谷歌收购。reCAPTCHA v1 将从书本上扫描下来、无法被 OCR 准确识别的文字显示在 CAPTCHA 问题中,从而判断访问者到底是程序还是人类。该版本被 Bursztein 等人破解,他们使用基于机器学习的系统对文本进行分割和识别,准确率达 98%。

为了反破解,谷歌引入了基于音频和图像的 reCAPTCHA v2。该系统使用了一些高级的分析工具来判断一个用户到底是人还是机器人。

他们使用了多种元素,包括 cookie、解题的速度、鼠标的移动以及解题的成功率。但尽管如此,还是有研究人员宣称自己破解了 ReCAPTCHA,其中比较有名的就是美国马里兰大学四位研究人员开发的 unCapture。

用 unCaptcha 攻破 reCAPTCHA

unCaptcha 项目最早创建于 2017 年 4 月,并在当时实现了 85% 的 ReCaptcha 对抗率。后来,谷歌发布了新的 ReCaptcha,实现了更好的浏览器自动检测,而且开始使用短语语音进行验证。这些改进最开始成功地防御了第一版 unCaptcha 的攻击,但这一改进版很快又被第二版 unCaptcha 破解了。

由于 ReCaptcha 添加了语音形式的验证码识别,破解 ReCaptcha 变得比以前更加容易。破解者表示,今年一月份,破解者还开源了 ReCaptcha 的破解代码。

用强化学习reCAPTCHA v3

当然,谷歌也没有闲着,一直在迭代自己的验证系统。2018 年 10 月,谷歌正式发布 reCAPTCHA v3。谷歌这次放出的大招是:移除所有用户界面。

前两个版本的 reCAPTCHA 有可利用的文本、图像或音频,可以将其用作训练神经 络的输入。但 reCAPTCHA v3 移除了所有用户界面,没有拆开乱码文本或街道标志,甚至也没有勾选的方框。

它会分析一系列信 ,使用机器学习技术返回一个 0 到 1 之间的风险评估分数(这个分数表征了用户的可信任度,越接近 1 越有可能是人类)。与前两个版本相比,这种打分完全是在后台进行的,根本没有人类交互,因此破解难度更大。

破解从哪儿入手?

这么高难度的项目当然会引得各路跃跃欲试。近日,来自法国和加拿大的研究人员声称自己破解了谷歌的 reCAPTCHA v3,并根据自己的研究成果发表了一篇名为《Hacking Google reCAPTCHA v3 using Reinforcement Learning》(使用强化学习破解谷歌的 reCAPTCHA v3)的论文。与之前研究的不同之处在于,他们使用的是强化学习方法,测试准确率达到了 97.4%。

实际上,这项强化学习技术并非针对 reCAPTCHA v3 中不可见的分数,而是 reCAPTCHA v2 中首次引入的鼠标移动分析。也就是说,这项研究并非真正攻破 reCAPTCHA v3,而是用机器学习欺骗二级系统(即旧版的打勾操作),以绕过 reCAPTCHA v3。

等等,这种界面不是已经在 v3 中被移除了吗?理论上是该这么做,但在实际操作中并没有。

论文一作 Akrout 表示,在 reCAPTCHA v3 中, 站设置其分数阈值以判定用户是否为机器人。如果访客在某个设定点低于阈值(比如当他们输入评论或登录细节时), 站可以选择立即谴责该访客是机器人,不过真这么做的话,如果访客是真人就会很尴尬了。

想象一下在 购的时候,你正在查看的页面突然消失,随之而来的是满屏的谴责。就问你糟不糟心?从用户体验的角度来看这种做法实在太……emmm…

因此,Akrout 表示,很多 站会选择更友好地缓和这个过程。如果 站访客低于分数阈值, 站会显示旧版的复选框页面,这个复选框用来发现机器人的分析行为,包括鼠标移动等。

这样可以让用户更好地理解为什么他们的 购或其它正在干的事会被打断,而且会给他们一个证明自己人类身份的机会。

正是这个复选框的存在让 Akrout 和他的同事们发现了绕过 reCAPTCHA v3 的可能。

怎么破解?

Akrout 及其同事利用强化学习来欺骗部分 reCAPTCHA v3 系统,其中软件智能体试图找到最佳的可能途径,并通过正确方向上每一步的奖励受到鼓励。

他们的系统在页面中放置一个正方形 格,鼠标沿对角线穿过 格到达按钮。如果成功,则给予正面强化;如果失败,则给予负面强化。该系统学会了控制正确的移动方法以欺骗 reCAPTCHA 系统。该论文中称其准确率达到了 97.4%。在论文发表后,谷歌未对该论文置评。

这样破解真的可以吗?

这种做法并没有让伯恩茅斯大学的 Nan Jiang 信服,他没有参与这次研究。他表示。

破解 reCAPTCHA 版本 2 的伊利诺伊大学计算机科学助理教授 Jason Polakis 指出,reCAPTCHA 版本 3 的工作要比论文中描述的更多。

他说道:

他还补充:

Akrout 同意基于鼠标移动的攻击存在局限,但这些也揭露了一点关于 reCAPTCHA 版本 3 工作的信息。他表示,如果你通过 TOR 或者代理服务器连接谷歌账户,则系统通常会认为你是机器人。

如果测试的 站已经具有这种默认设置,了解这些则更容易迫使 reCAPTCHA 系统显示按钮。

Akrout 表示攻击需要对谷歌表现出中立性—所以没有登录账户,也没有通过代理服务器或使用 Selenium 等浏览器控制工具进入。他说道:

Akrout 认为谷歌可以通过这项技术(特别是根据用户点击按钮花费的时间),使用更简单的方法来保护 reCAPTCHA。Akrout 表示,

肯特大学的 络安全教授 Shujun Li 先前已经设计了自己用于破解 reCAPTCHA 早期版本的系统,但并没有参与这个项目。他表示这项工作从技术层面看似可行,但也认为谷歌可轻易更新其系统以避免此类攻击。

他说道:

Li 表示破解这些系统的确还有很多其他方法。虽然这种特定攻击受到限制,但 reCAPTCHA 将继续沦为人工智能系统牺牲品的事实并不意外。

论文:Hacking Google reCAPTCHA v3 using Reinforcement Learning

论文链接:
https://arxiv.org/pdf/1903.01003.pdf

我们研究了在改变 格中格子大小时智能体的性能,结果显示,当智能体向目标大步前进时,其性能会大大降低。最后,我们用了一个分治策略来应对任意 格分辨率,以攻破 reCAPTCHA 系统。我们提出的方法在 100 × 100 的 格中实现了 97.4% 的胜率,在 1000 × 1000 的屏幕分辨率上实现了 96.7% 的胜率。

实验结果

研究人员在一个特定尺寸的 格上训练了一个强化学习智能体。他们的方法是将训练得到的策略用于在 reCAPTCHA 环境中选择最佳行动。实验结果是在训练 1000 轮之后得到的。

如果智能体得到 0.9 分,他们就认为该智能体成功攻破了 reCAPTCHA。策略 络是一个全新的双层全连接层 络。参数是以 10^(-3) 的学习率训练得到的,批大小为 2000。

下图显示了智能体在 100 × 100 的 格上得到的结果。该方法以 97.4% 的胜率成功攻破了 reCAPTCHA 测试。

接下来考虑在更大的 格上测试该方法。如果增加 格的大小,状态空间的维数就会指数级增加,在这种情况下训练强化算法并不可行。这是本研究解决的另一个难题:如果不为每个分辨率的 格重新训练智能体,该如何攻破 reCAPTCHA 系统?

为此,研究人员提出了一种分治方法,可以攻破任意 格大小的 reCAPTCHA 系统而无需重新训练强化学习智能体。中心思想是将 格进一步切分为子 格,然后将训练得到的智能体应用到这些子 格上,以为更大的屏幕寻找最优策略(见图 2)。图 3 显示了该方法的有效性,在不同大小的 格上胜率超过了 90%。

图 2:分治方法图示:智能体在紫色的对角 格世界上运行。红色 格世界还没有被探索。

图 3:强化学习智能体在不同 格分辨率上的胜率。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年2月14日
下一篇 2019年2月15日

相关推荐