Como os cibercriminosos burlam o CAPTCHA

Ecossistema F5 | 12 de julho de 2017


O CAPTCHA (teste de Turing público completamente automatizado para diferenciar computadores de humanos) foi originalmente criado para impedir que bots, malwares e inteligência artificial (IA) interagissem com uma página da web. Na década de 1990, isso significava impedir bots de spam. Hoje em dia, as organizações usam o CAPTCHA na tentativa de evitar ataques automatizados mais maliciosos, como o preenchimento de credenciais.

No entanto, quase imediatamente após a introdução do CAPTCHA, os cibercriminosos desenvolveram métodos eficazes para contorná-lo. Os defensores responderam com CAPTCHAs “reforçados”, mas o resultado continua o mesmo: o teste que tenta impedir a automação é burlado por meio da própria automação.

Há várias maneiras de burlar o CAPTCHA. Um método comum é usar um serviço de resolução de CAPTCHA, que recorre à mão de obra humana de baixo custo em países em desenvolvimento para solucionar imagens de CAPTCHA. Os cibercriminosos assinam um serviço de resolução de CAPTCHA, cujas respostas são integradas às suas ferramentas de automação por meio de APIs e inseridas no site-alvo. Essas empresas suspeitas são tão comuns que muitas podem ser encontradas com uma rápida pesquisa no Google, incluindo:

  • DeathbyCAPTCHA
  • 2Captcha
  • Kolotibablo
  • ProTypers
  • Antigate

Este artigo usará o 2Captcha para demonstrar como os invasores integram a solução para orquestrar ataques de preenchimento de credenciais.

2Captcha

Ao acessar o site 2Captcha.com, o visitante se depara com a imagem abaixo, que pergunta se ele deseja 1) trabalhar para a 2Captcha ou 2) contratar a 2Captcha como serviço.

Como os cibercriminosos burlam o CAPTCHA

Opção 1 – Trabalhe para a 2Captcha

Para trabalhar para o 2Captcha, basta criar uma conta, informando um endereço de e-mail e uma conta do PayPal para receber os pagamentos. Durante um teste, uma conta foi validada em poucos minutos.

Os novos trabalhadores devem fazer um curso de treinamento único que ensina a resolver CAPTCHAs rapidamente. O curso também oferece dicas, como em quais situações o uso de letras maiúsculas e minúsculas faz ou não diferença. Após concluir o treinamento com precisão suficiente, o trabalhador pode começar a ganhar dinheiro.

Como os cibercriminosos burlam o CAPTCHA

Após selecionar “Iniciar trabalho”, o trabalhador é direcionado à tela do espaço de trabalho, mostrada acima. Em seguida, um CAPTCHA é apresentado, e o trabalhador deve enviar uma solução. Quando o CAPTCHA é resolvido corretamente, o dinheiro é depositado em uma “carteira” eletrônica, e o trabalhador pode solicitar o pagamento quando quiser. A quantidade de CAPTCHAs exibidos no espaço de trabalho parece não ter fim, o que indica uma demanda constante pelo serviço.

Como os cibercriminosos burlam o CAPTCHA

Os trabalhadores da 2Captcha são incentivados a enviar soluções corretas da mesma forma que um motorista da Uber é incentivado a prestar um serviço de excelência: por meio das avaliações dos clientes. Os clientes da 2Captcha avaliam a precisão das soluções de CAPTCHA que receberam. Se a avaliação de um trabalhador da 2Captcha ficar abaixo de um determinado limite, ele será excluído da plataforma. Por outro lado, os trabalhadores com as melhores avaliações serão recompensados em períodos de baixa demanda, recebendo prioridade na distribuição de CAPTCHAs.

Opção 2 – 2Captcha como serviço

Para usar o 2Captcha como serviço, um cliente (ou seja, um invasor) integra a API do 2Captcha ao ataque para criar uma cadeia de suprimentos digital, enviando automaticamente os desafios CAPTCHA do site-alvo e recebendo as soluções para inseri-las nesse site.

A 2Captcha disponibiliza convenientemente scripts de exemplo para gerar chamadas de API em diferentes linguagens de programação, incluindo C#, JavaScript, PHP, Python, entre outras. O código de exemplo escrito em Python foi reproduzido abaixo:

Como os cibercriminosos burlam o CAPTCHA

Integrando o 2CAPTCHA a um ataque automatizado

Como um invasor usaria o 2Captcha em um ataque de preenchimento de credenciais? O diagrama abaixo mostra como as diferentes entidades interagem em um processo de contorno de CAPTCHA:

Como os cibercriminosos burlam o CAPTCHA

Processo técnico:

  1. O invasor solicita o código-fonte do iframe do CAPTCHA e a URL usada para incorporar a imagem do CAPTCHA no site-alvo e os salva localmente
  2. O invasor solicita um token de API no site da 2Captcha
  3. O invasor envia o CAPTCHA ao serviço 2Captcha usando uma solicitação HTTP POST e recebe um ID de Captcha, que é um identificador numérico atribuído à imagem do CAPTCHA enviada ao 2Captcha. O ID é usado na etapa 5 em uma solicitação GET à API do 2Captcha para obter o CAPTCHA resolvido.
  4. A 2Captcha atribui o CAPTCHA a um operador, que então o resolve e envia a solução para a 2Captcha.
  5. O invasor programa um script para consultar o 2Captcha usando o ID do CAPTCHA (a cada 5 segundos, até que seja resolvido). Em seguida, o 2Captcha envia o CAPTCHA resolvido. Se a solução ainda estiver sendo processada, o invasor recebe uma resposta do 2Captcha indicando “CAPTCHA_NOT_READY”, e o programa tenta novamente 5 segundos depois.
  6. O invasor envia uma solicitação de login ao site-alvo com os campos preenchidos (ou seja, um conjunto de credenciais de uma lista roubada), juntamente com a solução do CAPTCHA.
  7. O invasor repete esse processo para cada imagem de CAPTCHA.

Combinando isso com frameworks de teste web, como Selenium ou PhantomJS, um invasor pode simular uma interação humana com o site-alvo, contornando de forma eficaz muitas das medidas de segurança existentes para realizar um ataque de preenchimento de credenciais.

Monetização e ecossistema criminoso

Com uma solução tão elegante em funcionamento, como é o ecossistema financeiro e como cada uma das partes ganha dinheiro?

Monetização: solucionador de CAPTCHA

Trabalhar resolvendo CAPTCHAs está longe de ser lucrativo. Com base nas métricas fornecidas no site da 2Captcha, é possível calcular o seguinte pagamento:

Supondo que sejam necessários 6 segundos para resolver cada CAPTCHA, um trabalhador pode enviar 10 CAPTCHAs por minuto ou 600 CAPTCHAs por hora. Em uma jornada de 8 horas, isso totaliza 4.800 CAPTCHAs. Com base no valor que recebemos durante nosso teste como funcionário da 2Captcha (cerca de US$ 0,0004 por solução), isso equivale a US$ 1,92 por dia.

Isso é uma perda de tempo para quem vive em países desenvolvidos, mas, para aqueles que moram em lugares onde alguns dólares por dia podem render bastante, os serviços de resolução de CAPTCHAs são uma maneira fácil de ganhar dinheiro.

Monetização: invasor

O invasor paga ao serviço terceirizado 2Captcha por soluções de CAPTCHA em pacotes de 1.000. Os invasores fazem lances pelas soluções, pagando entre US$ 1 e US$ 5 por pacote.

Muitos invasores usam serviços de resolução de CAPTCHA como parte de um ataque mais amplo de preenchimento de credenciais, o que justifica o custo. Por exemplo, suponha que um invasor esteja realizando um ataque para testar um milhão de credenciais obtidas no Pastebin em um site-alvo. Nesse cenário, o invasor precisa contornar um CAPTCHA para cada conjunto de credenciais, o que custaria aproximadamente US$ 1.000. Considerando uma taxa de sucesso de 1,5% na reutilização de credenciais, o invasor pode assumir o controle de 15.000 contas, todas elas passíveis de monetização.

Monetização: 2Captcha

A 2Captcha recebe do invasor um pagamento por cada 1.000 CAPTCHAs. Como mencionado acima, os clientes (ou seja, os invasores) pagam entre US$ 1 e US$ 5 por 1.000 CAPTCHAs. Serviços como a 2Captcha ficam com uma parte do valor oferecido e distribuem o restante entre sua força de trabalho humana. Como os serviços de resolução de CAPTCHAs são usados como uma solução em larga escala, os lucros acabam sendo consideráveis. Mesmo que a 2Captcha receba apenas US$ 1 por 1.000 CAPTCHAs resolvidos, ela obtém um lucro líquido de pelo menos 60 centavos por lote. Os proprietários desses sites muitas vezes também estão em países em desenvolvimento, portanto essa receita aparentemente baixa é significativa.

E quanto ao reCAPTCHA invisível do Google?

Em março deste ano, o Google lançou uma versão aprimorada do reCAPTCHA chamada “reCAPTCHA invisível”. Ao contrário do “reCAPTCHA sem CAPTCHA”, que exigia que todos os usuários clicassem no famoso botão “Não sou um robô”, o reCAPTCHA invisível permite que usuários reconhecidos como humanos prossigam normalmente, exibindo um desafio de imagens do reCAPTCHA apenas para usuários suspeitos.

Você pode pensar que isso confundiria os invasores, pois eles não conseguiriam perceber quando estavam sendo testados. No entanto, apenas um dia após o Google lançar o Invisible reCAPTCHA, a 2CAPTCHA publicou um post em seu blog explicando como burlá-lo.

A forma como o Google identifica que um usuário é humano é verificando se ele já visitou a página solicitada anteriormente, o que é determinado por meio dos cookies do navegador. Se o mesmo usuário começar a usar um novo dispositivo ou tiver limpado o cache recentemente, o Google não terá essa informação e será obrigado a apresentar um desafio reCAPTCHA.

Para automatizar um ataque de preenchimento de credenciais usando o 2Captcha, o invasor precisa garantir que um desafio CAPTCHA seja apresentado. Portanto, uma forma de contornar o reCAPTCHA invisível é adicionar uma linha de código ao script de ataque que limpe os dados do navegador a cada solicitação, garantindo um desafio reCAPTCHA que possa ser resolvido.

O aspecto um pouco complicado do reCAPTCHA invisível é que o desafio CAPTCHA fica oculto, mas há uma solução alternativa. O CAPTCHA pode ser “encontrado” usando a ferramenta “Inspecionar elemento” do navegador. Assim, o invasor pode enviar uma solicitação POST ao 2Captcha que inclua um parâmetro indicando onde o CAPTCHA oculto está localizado. Depois que o invasor recebe a solução do CAPTCHA do 2Captcha, o reCAPTCHA invisível pode ser burlado por automação de uma destas duas maneiras:

  1. Ação JavaScript que chama uma função para fornecer o token resolvido ao enviar o formulário da página
  2. Alteração do código HTML diretamente na página da web para substituir um trecho do código CAPTCHA normal pela entrada do token resolvido.

O fato de ser possível contornar o reCAPTCHA invisível não se deve a uma falha fatal no design do CAPTCHA mais recente. A questão é que qualquer teste de Turing reverso pode ser burlado quando as condições de aprovação são conhecidas.

Enquanto existirem CAPTCHAs, haverá serviços como o 2Captcha, pois a dinâmica econômica favorece muito os criminosos. O uso de mão de obra humana de baixo custo reduz os custos operacionais e permite que os cibercriminosos obtenham lucros que, em grande escala, podem chegar a milhões de dólares. E sempre haverá regiões do mundo onde a mão de obra é barata; portanto, a demanda constante garante uma oferta contínua por parte do 2Captcha.

O mundo não precisa desenvolver um CAPTCHA melhor, pois toda essa abordagem apresenta limitações fundamentais. Em vez disso, devemos reconhecer essas limitações e implementar defesas cujas condições para aprovação sejam desconhecidas ou, pelo menos, difíceis de serem determinadas pelos invasores.

Fontes

Holmes, Tamara E. “Estatísticas sobre cartões pré-pagos e cartões-presente.” CreditCards.com. Creditcards.com, 1º de dez. de 2015. Web.

Hunt, Troy. “Quebrando CAPTCHAs com humanos automatizados.” Publicação de blog. Troy Hunt. Troy Hunt, 22 jan. 2012. Web.

Motoyama, Marti, Kirill Levchenko, Chris Kanich e Stefan Savage. Re: CAPTCHAs – Compreendendo os serviços de resolução de CAPTCHA em um contexto econômico. Anais do 19º Simpósio de Segurança USENIX, Washington, D.C. Impresso.

Compartilhar

Publicações relacionadas no blog

Entrega e proteção de agentes de IA em fábricas de IA: F5 para a arquitetura de referência NVIDIA OpenShell para agentes de IA seguros
Ecossistema F5 | 21/10/2026

Entrega e proteção de agentes de IA em fábricas de IA: F5 para a arquitetura de referência NVIDIA OpenShell para agentes de IA seguros

As soluções da F5 ampliam a Arquitetura de Referência NVIDIA OpenShell para agentes de IA seguros.

Como medir – e minimizar – o custo total de propriedade do seu Kubernetes
Ecossistema F5 | 10/12/2020

Como medir – e minimizar – o custo total de propriedade do seu Kubernetes

O Kubernetes pode ser baixado e executado gratuitamente, mas sua manutenção está longe de não ter custos. Assim como outras grandes plataformas de código aberto que são “gratuitas” apenas em um sentido simplista, o Kubernetes quase certamente exigirá investimentos para ser implantado e operado.

As-Code: a pilha de TI contínua
Ecossistema F5 | 08/10/2018

As-Code: a pilha de TI contínua

Infraestrutura, configuração, pipeline, operações. De repente, tudo é “como código”. Lori MacVittie busca esclarecer a terminologia e identificar os diferentes componentes de uma stack contínua de TI.

O estado da entrega de aplicações em 2017: automação, APIs e DevOps
Ecossistema F5 | 17/04/2017

O estado da entrega de aplicações em 2017: automação, APIs e DevOps

Explore o relatório State of Application Delivery de 2017. Leia o blog retrospectivo da F5 sobre o início da ascensão das redes declarativas e dos pipelines de DevOps.

DevOps Summit: onde a rede foi convidada para a festa
Ecossistema F5 | 11/06/2015

DevOps Summit: onde a rede foi convidada para a festa

No DevOps Summit NY, falou-se muito não apenas sobre DevOps, mas também sobre contêineres, IoT e microsserviços. As sessões se concentraram não só na mudança cultural necessária para crescer em escala com uma abordagem DevOps, mas também fizeram questão de incluir...

F5 e Nutanix convergem em infraestrutura no .NEXT
Ecossistema F5 | 08/06/2015

F5 e Nutanix convergem em infraestrutura no .NEXT

Aplicações empresariais como Microsoft SharePoint e Exchange, juntamente com a VDI, continuam sendo a espinha dorsal da sua empresa. A produtividade, embora não seja tão atraente quanto o lucro, é um fator essencial para o sucesso das operações empresariais atuais. Deixar de...