BLOG

Como os cibercriminosos contornam o CAPTCHA

 Miniatura
Publicado em 12 de julho de 2017


O CAPTCHA (teste de Turing público completamente automatizado para diferenciar computadores e humanos) foi originalmente projetado para evitar que bots, malware e inteligência artificial (IA) interagissem com uma página da web. Nos anos 90, isso significava evitar bots de spam. Hoje em dia, as organizações usam o CAPTCHA na tentativa de evitar ataques automatizados mais sinistros, como o preenchimento de credenciais.

No entanto, quase assim que o CAPTCHA foi introduzido, os criminosos cibernéticos desenvolveram métodos eficazes para contorná-lo. Os mocinhos responderam com CAPTCHAs “fortalecidos”, mas o resultado continua o mesmo: o teste que tenta impedir a automação é contornado com a automação.

Há várias maneiras de derrotar o CAPTCHA. Um método comum é usar um serviço de resolução de CAPTCHA, que utiliza mão de obra humana de baixo custo em países em desenvolvimento para resolver imagens de CAPTCHA. Os cibercriminosos assinam um serviço para soluções de CAPTCHA, que são simplificadas em suas ferramentas de automação por meio de APIs, preenchendo as respostas no site de destino. Essas empresas obscuras são tão onipresentes que muitas podem ser encontradas com uma rápida pesquisa no Google, incluindo:

  • MorteporCAPTCHA
  • 2Captcha
  • Kolotibablo
  • ProTypers
  • Antigado

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 é recebido com a imagem abaixo, perguntando se ele deseja 1) trabalhar para a 2Captcha ou 2) adquirir o 2Captcha como um serviço.

Como os cibercriminosos contornam o CAPTCHA

Opção 1 – Trabalhe para 2Captcha

Para trabalhar na 2Captcha, basta criar uma conta, fornecer um endereço de e-mail e uma conta do PayPal para depósitos de pagamento. Durante um teste, uma conta foi validada em minutos.

Os novos funcionários devem fazer um curso de treinamento único que os ensina a resolver CAPTCHAs rapidamente. Ele também fornece dicas sobre quando maiúsculas e minúsculas importam ou não. Após concluir o treinamento com precisão suficiente, o trabalhador pode começar a ganhar dinheiro.

Como os cibercriminosos contornam o CAPTCHA

Após selecionar “Iniciar Trabalho”, o trabalhador é levado para a tela do espaço de trabalho, mostrada acima. O trabalhador então recebe um CAPTCHA e é solicitado a enviar uma solução. Uma vez resolvido corretamente, o dinheiro é depositado em uma “bolsa” eletrônica e o trabalhador pode solicitar o pagamento quando quiser. Aparentemente não há fim para o número de CAPTCHAs que aparecem no ambiente de trabalho, indicando uma demanda constante pelo serviço.

Como os cibercriminosos contornam o CAPTCHA

Os funcionários do 2Captcha são incentivados a enviar soluções corretas, assim como um motorista do Uber é incentivado a fornecer um serviço excelente: avaliações de clientes. Os clientes do 2Captcha avaliam a precisão das soluções de CAPTCHA que receberam. Se a classificação de um trabalhador 2Captcha cair abaixo de um certo limite, ele será expulso da plataforma. Por outro lado, os trabalhadores com as classificações mais altas serão recompensados durante os períodos de baixa demanda, recebendo prioridade na distribuição de CAPTCHA.

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

Para usar o 2Captcha como um serviço, um cliente (ou seja, um invasor) integra a API 2Captcha em seu ataque para criar uma cadeia de suprimentos digital, alimentando automaticamente quebra-cabeças de CAPTCHA do site de destino e recebendo soluções para inserir no site de destino.

O 2Captcha fornece scripts de exemplo para gerar chamadas de API em diferentes linguagens de programação, incluindo C#, JavaScript, PHP, Python e muito mais. O código de exemplo escrito em Python foi reproduzido abaixo:

Como os cibercriminosos contornam o CAPTCHA

Integrando 2CAPTCHA em 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 desvio de CAPTCHA:

Como os cibercriminosos contornam o CAPTCHA

Processo técnico:

  1. O invasor solicita a fonte do iframe CAPTCHA e a URL usada para incorporar a imagem CAPTCHA do site de destino e salva-a localmente
  2. Atacante solicita token de API do site 2Captcha
  3. O invasor envia o CAPTCHA para o serviço 2Captcha usando HTTP POST e recebe um ID do Captcha, que é um ID numérico atribuído à imagem do CAPTCHA que foi enviada ao 2Captcha. O ID é usado na etapa 5 para uma solicitação GET da API ao 2Captcha para recuperar o CAPTCHA resolvido.
  4. O 2Captcha atribui o CAPTCHA a um trabalhador que então o resolve e envia a solução ao 2Captcha.
  5. O invasor programa um script para executar ping no 2Captcha usando o ID do CAPTCHA (a cada 5 segundos até ser resolvido). O 2Captcha então envia o CAPTCHA resolvido. Se a solução ainda estiver sendo resolvida, o invasor recebe uma postagem 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) junto com a solução CAPTCHA.
  7. O invasor itera sobre esse processo com cada imagem CAPTCHA.

Combinado com estruturas de teste da web como Selenium ou PhantomJS, um invasor pode parecer interagir com o site alvo de forma semelhante à humana, ignorando efetivamente muitas medidas de segurança existentes para iniciar um ataque de preenchimento de credenciais.

Monetização e ecossistema criminoso

Com uma solução tão elegante em vigor, como fica o ecossistema financeiro e como cada parte ganha dinheiro?

Monetização: Solucionador de CAPTCHA

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

Supondo que cada CAPTCHA leve 6 segundos, um trabalhador pode enviar 10 CAPTCHAs por minuto ou 600 CAPTCHAs por hora. Em um dia de 8 horas, são 4800 CAPTCHAs. Com base no que ganhamos durante nosso teste como funcionário da 2Captcha (aproximadamente US$ 0,0004 por solução), isso equivale a US$ 1,92 por dia.

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

Monetização: Atacante

O invasor paga ao terceiro, 2Captcha, por soluções de CAPTCHA em pacotes de 1000. Os invasores deram lances nas soluções, pagando entre US$ 1 e US$ 5 por pacote.

Muitos invasores usam serviços de resolução de CAPTCHA como um componente de um ataque maior de preenchimento de credenciais, o que justifica o gasto. Por exemplo, suponha que um invasor esteja lançando um ataque para testar um milhão de credenciais do Pastebin em um site de destino.  Neste cenário, o invasor precisa ignorar um CAPTCHA com cada conjunto de credenciais, o que custaria aproximadamente US$ 1.000.  Supondo uma taxa de reutilização de credenciais bem-sucedida de 1,5%, o invasor pode assumir mais de 15.000 contas, que podem ser monetizadas.

Monetização: 2Captcha

O 2Captcha recebe o pagamento do invasor por 1000 CAPTCHA. Conforme mencionado acima, os clientes (ou seja, invasores) pagam entre US$ 1 e US$ 5 por 1.000 CAPTCHAs. Serviços como o 2Captcha então pegam uma parte do preço do lance e repassam o restante para sua força de trabalho humana. Como os serviços de resolução de CAPTCHA são usados como uma solução em escala, os lucros aumentam consideravelmente. Mesmo que o 2Captcha receba apenas US$ 1 por 1.000 CAPTCHAs resolvidos, eles rendem um mínimo de 60 centavos por pacote. Os proprietários desses sites geralmente estão em países em desenvolvimento, então a receita aparentemente baixa é substancial.

E o reCAPTCHA invisível do Google?

Em março deste ano, o Google lançou uma versão atualizada do seu reCAPTCHA chamada “Invisible reCAPTCHA”. Ao contrário do "no CAPTCHA reCAPTCHA", que exigia que todos os usuários clicassem no infame botão "Não sou um robô", o reCAPTCHA invisível permite que usuários humanos conhecidos passem, enquanto apenas oferece um desafio de imagem reCAPTCHA para usuários suspeitos.

Você pode pensar que isso confundiria os invasores porque eles não conseguiriam ver quando estivessem sendo testados. No entanto, apenas um dia após o Google lançar o Invisible reCAPTCHA, o 2CAPTCHA escreveu uma postagem de blog sobre como vencê-lo.

A maneira como o Google sabe que um usuário é humano é se o usuário já visitou a página solicitada, o que o Google determina verificando os cookies do navegador. Se o mesmo usuário começou a usar um novo dispositivo ou limpou o cache recentemente, o Google não tem essa informação e é forçado a emitir um desafio reCAPTCHA.

Para que um invasor automatize um ataque de preenchimento de credenciais usando 2Captcha, ele precisa garantir um desafio de CAPTCHA. Portanto, uma maneira de contornar o reCAPTCHA invisível é adicionar uma linha de código ao script de ataque que limpa o navegador a cada solicitação, garantindo um desafio reCAPTCHA solucionável.

O problema um pouco complicado sobre o reCAPTCHA invisível é que o desafio do CAPTCHA fica oculto, mas há uma solução alternativa. O CAPTCHA pode ser “encontrado” usando a ferramenta do navegador “inspecionar elemento”. Assim, o invasor pode enviar um POST para o 2Captcha que inclui um parâmetro detalhando onde o CAPTCHA oculto está localizado. Depois que o invasor recebe a solução CAPTCHA do 2Captcha, o reCAPTCHA invisível pode ser derrotado por meio de automação de duas maneiras:

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

O fato de o reCAPTCHA invisível poder ser ignorado não se deve a uma falha fatal no design do CAPTCHA mais recente. É que qualquer teste de Turing reverso é inerentemente superável quando as condições de aprovação são conhecidas.

Enquanto houver CAPTCHAs, haverá serviços como o 2Captcha porque a economia joga muito bem nas mãos do criminoso. Aproveitar o baixo custo da mão de obra humana minimiza o custo de fazer negócios e permite que os criminosos cibernéticos obtenham lucros que podem chegar a milhões de dólares em grande escala. E sempre haverá regiões do mundo com custos de mão de obra baratos, então a demanda constante garante um fornecimento constante do lado do 2Captcha.

O mundo não precisa desenvolver um CAPTCHA melhor, pois toda essa abordagem tem limitações fundamentais. Em vez disso, deveríamos reconhecer essas limitações e implementar defesas onde as condições de passe são desconhecidas ou pelo menos difíceis de serem determinadas pelos atacantes.

Fontes

Holmes, Tamara E. “Estatísticas de cartões pré-pagos e vales-presente.” CreditCards.com . Creditcards.com, 01 de dezembro de 2015. Rede.

Caça, Troy. “Quebrando CAPTCHA com humanos automatizados.” Postagem de blog. Caça de Tróia . Troy Hunt, 22 de janeiro de 2012. Rede.

Motoyama, Marti, Kirill Levchenko, Chris Kanich e Stefan Savage. Ré: CAPTCHAs – Compreendendo os serviços de resolução de CAPTCHA em um contexto econômico . Proc. do 19º Simpósio de Segurança USENIX, Washington DC. Imprimir.