网络犯罪分子如何绕过CAPTCHA

F5生态系统 | 2017年7月12日


CAPTCHA(全自动区分计算机和人类的图灵测试)最初旨在阻止机器人、恶意软件和人工智能(AI)与网页交互。在20世纪90年代,这意味着阻止垃圾信息机器人。如今,组织使用CAPTCHA来尝试防范凭据填充等更具恶意的自动化攻击。

然而,CAPTCHA推出后不久,网络犯罪分子就找到了有效的绕过方法。防御方随即采用“强化版”CAPTCHA应对,但结果依然如故:试图阻止自动化操作的测试,最终仍被自动化手段绕过。

攻破CAPTCHA的方法有很多。一种常见方法是使用CAPTCHA破解服务。这类服务利用发展中国家的低成本人工来识别CAPTCHA图像。网络犯罪分子订阅此类服务后,通过API将CAPTCHA答案直接传入自动化工具,并自动填写到目标网站中。这类灰色企业十分普遍,只需在Google上快速搜索即可找到许多,例如:

  • DeathbyCAPTCHA
  • 2Captcha
  • Kolotibablo
  • ProTypers
  • Antigate

本文将以2Captcha为例,说明攻击者如何集成该解决方案来组织凭据填充攻击。

2Captcha

访问2Captcha.com网站后,访客会看到下图,页面会询问访客是希望:1)为2Captcha工作;还是2)购买2Captcha服务。

网络犯罪分子如何绕过CAPTCHA

选项1:为2Captcha工作

要为2Captcha工作,只需注册一个账户,并提供电子邮件地址和用于收款的PayPal账户。测试期间,账户在几分钟内便通过了验证。

新工作人员必须参加一次性培训课程,学习如何快速解决验证码。课程还会提供一些技巧,例如在哪些情况下需要区分大小写。以足够高的准确率完成培训后,即可开始赚钱。

网络犯罪分子如何绕过CAPTCHA

选择“开始工作”后,工作人员会进入上图所示的工作区界面。随后,系统会提供一个验证码,并提示工作人员提交答案。正确解答后,报酬会存入电子“钱包”,工作人员可随时申请提现。工作区中似乎会不断出现新的验证码,这表明市场对该服务有持续需求。

网络犯罪分子如何绕过CAPTCHA

客户评分机制会激励2Captcha工作者提交正确答案,就像它会激励Uber司机提供优质服务一样。2Captcha客户会对收到的CAPTCHA答案准确性进行评分。如果2Captcha工作者的评分低于某个阈值,就会被平台除名。相反,在需求较低时,评分较高的工作者将获得优先分配CAPTCHA任务的奖励。

选项2:将2Captcha作为服务

要使用2Captcha服务,客户(即攻击者)会将2Captcha API集成到攻击中,构建一条数字供应链,自动从目标网站获取CAPTCHA验证码题目,并接收答案后将其输入目标网站。

2Captcha还提供了示例脚本,用于以C#、JavaScript、PHP、Python等不同编程语言生成API调用。下面转载了用Python编写的示例代码:

网络犯罪分子如何绕过CAPTCHA

将2CAPTCHA集成到自动化攻击中

攻击者会如何在凭据填充攻击中使用2Captcha?下图展示了CAPTCHA绕过过程中不同实体之间的交互方式:

网络犯罪分子如何绕过CAPTCHA

技术流程:

  1. 攻击者从目标站点请求CAPTCHA iframe源代码以及用于嵌入CAPTCHA图像的URL,并将其保存到本地
  2. 攻击者从2Captcha网站请求API令牌
  3. 攻击者使用HTTP POST将CAPTCHA发送到2Captcha服务,并收到一个Captcha ID。该ID是分配给已提交至2Captcha的CAPTCHA图像的数字标识符。在步骤5中,攻击者使用该ID向2Captcha发出API GET请求,以获取已破解的CAPTCHA。
  4. 2Captcha将CAPTCHA分配给一名工作人员,由其完成验证并将结果提交给2Captcha。
  5. 攻击者编写脚本,使用CAPTCHA ID向2Captcha发送请求(每5秒一次,直至CAPTCHA得到解决)。随后,2Captcha会发送已解决的CAPTCHA。如果仍在处理,攻击者会收到2Captcha返回的“CAPTCHA_NOT_READY”消息,程序将在5秒后重试。
  6. 攻击者填写相关字段(即使用被盗列表中的一组凭据),并连同CAPTCHA答案一起向目标网站发送登录请求。
  7. 攻击者针对每张CAPTCHA图像重复执行此过程。

结合Selenium或PhantomJS等Web测试框架,攻击者可以模拟真人与目标网站交互,从而有效绕过许多现有安全措施,发起凭据填充攻击。

变现与犯罪生态系统

有了这样一套巧妙的解决方案,其背后的资金生态是怎样的,各方又如何从中获利?

变现:CAPTCHA破解服务

从事CAPTCHA验证码识别工作远谈不上有利可图。根据2Captcha网站提供的指标,可以计算出以下报酬:

假设每个CAPTCHA需要6秒,一名工作人员每分钟可提交10个CAPTCHA,即每小时600个。按每天工作8小时计算,共计4,800个CAPTCHA。根据我们试用2Captcha工作人员服务期间获得的报酬(每完成一个约0.0004美元),每天可赚取1.92美元。

对于发达国家的个人而言,这样做是在浪费时间;但对于生活在每天几美元也能维持相当一段时间的地区的人来说,CAPTCHA破解服务是一种轻松赚钱的方式。

变现:攻击者

攻击者向第三方2Captcha付费,以每1,000个为一组购买CAPTCHA解决服务。攻击者通过竞价购买这些服务,每组支付1至5美元。

许多攻击者将CAPTCHA破解服务作为大规模凭据填充攻击的一部分,因此这笔费用是值得的。例如,假设攻击者发起攻击,在目标网站上测试来自Pastebin的100万组凭据。在这种情况下,每组凭据都需要绕过一次CAPTCHA,费用约为1,000美元。假设凭据重用成功率为1.5%,攻击者可以接管15,000个账户,并通过这些账户获利。

变现:2Captcha

2Captcha按每1,000个CAPTCHA向攻击者收取费用。如上所述,客户(即攻击者)每1,000个CAPTCHA支付1至5美元。随后,2Captcha等服务会从报价中抽取一部分,并将余款分给人工解题人员。由于CAPTCHA破解服务被大规模采用,其利润积少成多。即使2Captcha每破解1,000个CAPTCHA仅收取1美元,每单也至少可净赚0.60美元。这些网站的所有者通常也身处发展中国家,因此看似不高的收入对他们而言相当可观。

Google Invisible reCAPTCHA又如何?

今年3月,Google发布了reCAPTCHA的升级版本,名为“Invisible reCAPTCHA”。“no CAPTCHA reCAPTCHA”要求所有用户点击那个广为人知的“我不是机器人”按钮,而Invisible reCAPTCHA则允许已确认的真人用户直接通过,仅向可疑用户显示reCAPTCHA图片验证。

您可能会认为,这会难住攻击者,因为他们无法察觉自己何时正在接受验证。然而,就在Google推出Invisible reCAPTCHA的第二天,2CAPTCHA就发布了一篇博文,介绍如何绕过它。

Google判断用户是否为真人的方法,是确认该用户此前是否访问过所请求的页面,而这一点通过检查浏览器的Cookie来确定。如果同一用户开始使用新设备或最近清除了缓存,Google便无法获取这些信息,只能发起reCAPTCHA验证。

攻击者要使用2Captcha自动执行凭据填充攻击,就需要确保触发CAPTCHA质询。因此,绕过Invisible reCAPTCHA的一种方法是在攻击脚本中添加一行代码,使浏览器在每次请求时清除数据,从而确保触发可破解的reCAPTCHA质询。

Invisible reCAPTCHA稍显棘手之处在于CAPTCHA质询处于隐藏状态,但仍有办法绕过。攻击者可以使用浏览器的“检查元素”工具“找到”CAPTCHA,然后向2Captcha发送POST请求,并在其中加入一个参数,详细说明隐藏CAPTCHA的位置。攻击者从2Captcha收到CAPTCHA答案后,可以通过以下两种自动化方式之一攻破Invisible reCAPTCHA:

  1. JavaScript操作:调用函数,在提交页面表单时提供已破解的令牌
  2. 直接修改网页中的HTML代码,用已破解的令牌输入替换一段常规CAPTCHA代码。

Invisible reCAPTCHA之所以能被绕过,并不是因为这种新型CAPTCHA存在致命的设计缺陷,而是因为一旦通过条件已知,任何反向图灵测试本质上都可能被攻破。

只要CAPTCHA仍然存在,2Captcha这类服务就会继续存在,因为其经济模式对犯罪分子极为有利。利用低成本人力可以最大限度地降低运营成本,并让网络犯罪分子在规模化运作下获得数百万美元甚至更高的利润。世界上总会有劳动力成本较低的地区,因此,持续的需求也确保了2Captcha能够持续获得人力供应。

无需开发更好的验证码,因为这种方法本身存在根本性局限。我们应正视这些局限,并实施相应的防御措施,使攻击者无法获知通过条件,或至少难以确定这些条件。

来源

Holmes, Tamara E.,“预付卡和礼品卡统计数据”。CreditCards.com。Creditcards.com,2015 年 12 月 1 日。网络版。

Hunt, Troy。“利用真人自动破解CAPTCHA”。博客文章。 Troy Hunt。Troy Hunt,2012年1月22日。网络版。

Motoyama, Marti、Kirill Levchenko、Chris Kanich和Stefan Savage。《Re: CAPTCHAs:从经济背景理解CAPTCHA破解服务》。第19届USENIX安全研讨会论文集,华盛顿特区。印刷版。

分享

相关博客文章

F5纪念2021年世界艾滋病日
F5生态系统 | 2021/12/01

F5纪念2021年世界艾滋病日

值此世界艾滋病日,F5郑重承诺,将与员工、客户、社区和合作伙伴共同努力,消除社会对HIV感染者仍然存在的污名与偏见。

Thingbot正转变为攻击平台
F5生态系统 | 2018/11/29

Thingbot正转变为攻击平台

Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。

借助F5全新Quick Start,在AWS上快速开展业务
F5生态系统 | 2018/11/20

借助F5全新Quick Start,在AWS上快速开展业务

在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。

为什么声明式模型对NetOps自动化至关重要?
F5生态系统 | 2018/04/30

为什么声明式模型对NetOps自动化至关重要?

为什么声明式模型对NetOps自动化至关重要?阅读F5博客,了解基础设施即代码如何简化网络扩展。

开源聚焦:F5基础设施即代码与多云可管理性
F5生态系统 | 2017/11/16

开源聚焦:F5基础设施即代码与多云可管理性

开源聚焦:基础设施即代码与多云。阅读博客,了解模板和Terraform如何简化F5应用服务的部署。

破解IT“无解困局”的答案:私有云
F5生态系统 | 2016/09/12

破解IT“无解困局”的答案:私有云

破解IT“无解困局”的答案:私有云。阅读F5博客,了解本地部署的敏捷性如何化解安全与速度难以兼顾的问题。