Criminosos adotam novos esquemas para roubar criptomoeda

No dia 3 de novembro, um grupo de criminosos conseguiu ultrapassar com sucesso as defesas do StatCounter, uma plataforma líder de análise da Internet. Este serviço é utilizado por muitos webmasters para recolherem estatísticas acerca dos visitantes, um serviço muito semelhante ao Google Analytics. Para que tudo funcione, os webmasters adicionam normalmente uma tag JavaScript externa que incorpora uma parte do código do StatCounter – www.statcounter [.] Com / counter / counter.js – em cada página na Internet. Assim, ao comprometer a plataforma StatCounter, os invasores podem injetar o código JavaScript em todos os sites que a utilizam.

O StatCounter tem mais de 2 milhões de sites membros e recolhe dados de pelo menos 10 mil milhões de visualizações de páginas por mês. Esta informação está em consonância com a classificação no Alexa. Comparativamente, o site oficial da distribuição Debian Linux, debian.org, tem um ranking semelhante.

Os criminosos modificaram o script localizado em www.statcounter [.] Com / counter / counter.js adicionando um código mal-intencionado, que era mostrado num formulário falso disponível a meio do script. Isto é pouco comum já que os invasores normalmente adicionam código malicioso no início ou, no final, de um ficheiro legítimo. O código injetado no meio de um script existente é normalmente mais difícil de ser detetado pela observação normal.

O script é fornecido com o compactador Dean Edwards, que provavelmente é a opção JavaScript mais popular. No entanto, ele pode ser descompactado de forma trivial, resultando no código de script real que está a ser executado.

Este código verifica se o URL contém as entradas myaccount / withdraw / BTC. Assim, já podemos adivinhar que o objetivo dos invasores é segmentar uma plataforma Bitcoin. Se a verificação for aprovada, o script vai continuar a adicionar um novo elemento de script à página da Web e incorpor o código em https: //www.statconuter [.] Com / c.php.

Importa salientar que os atacantes registaram um domínio muito semelhante ao do legítimo StatCounter, o statcounter [.] Com. Para tentarem fazê-lo mais fidedigno apenas trocaram duas letras, o que pode ser difícil de descobrir quando andamos a ver logs à procura por atividades fora do vulgar. Curiosamente, ao verificar o DNS passivo do domínio, notamos que o mesmo já havia sido suspenso em 2010 por abuso.

Conforme explicado acima, o script tem como alvo um URI (Uniform Resource Identifier) ​​específico: myaccount / withdraw / BTC. Acontece que entre as diferentes trocas de criptomoedas no momento da escrita, apenas o gate.io tem uma página válida com este URI. Assim, este site de cotações parece ser o alvo principal do ataque. De facto, segundo o Alexa trata-se de um site muito importante.

Para além disso, de acordo com o coinmarketcap.com, vários milhões de dólares, incluindo 1,6 milhões de dólares em transações de bitcoin, passam por esta plataforma todos os dias. Assim, pode ser muito lucrativo para os criminosos roubarem criptomoedas em grande escala nesta plataforma.

A página https: //www.gate [.] Io / myaccount / withdraw / BTC, mostrada abaixo, é utilizada para transferir bitcoins de uma conta gate.io para um endereço Bitcoin externo.

Talvez sem surpresas, acontece que o payload da segunda fase do ataque ao statconuter [.] Com / c.php, foi desenvolvido para roubar bitcoins. Assim, faz sentido injetar o script na página de transferência de bitcoin gate.io. Este script também vem comprimido com o sistema Dean Edwards. A versão descompactada é mostrada abaixo.

Na página genuína do gate.io, já existe uma função doSubmit, chamada quando o utiizador clica no botão de envio.

O script substitui automaticamente o endereço de Bitcoin de destino por um endereço pertencente aos invasores, por exemplo, 1JrFLmGVk1ho1UcMPq1WYirHptcCYr2jad. Depois, o servidor malicioso gera um novo endereço Bitcoin, cada vez que um visitante carrega o script statconuter [.] Com / c.php. Assim, é difícil descobrir quantos bitcoins foram transferidos para os atacantes.

Dependendo se a vítima digitar um valor acima de 10 BTC ou não, o script dos criminosos vai retirar o máximo que puder da conta da vítima. Na nossa conta de teste, o limite máximo está definido em 100 BTC por defeito. Por fim, o script malicioso envia o formulário, que executa a transferência da conta da vítima para a carteira dos invasores.

Este redirecionamento é provavelmente imperceptível para as vítimas, já que a substituição só é feita depois de darem um clique no botão de envio.

Uma vez que um novo endereço Bitcoin é gerado cada vez que o script malicioso é enviado para a vítima, não conseguimos ver quantos bitcoins os atacantes armazenaram. Por exemplo, se verificarmos o endereço que recebemos na nossa máquina de testes, o saldo é 0 BTC.

Conclusão

Mesmo que não saibamos quantos bitcoins foram roubados durante este ataque, ele revela até onde os atacantes são capazes de ir só para roubarem criptomoedas. Para o conseguir, eles comprometeram o site de um serviço de análise, utilizado por mais de dois milhões de outros sites, incluindo vários relacionados com o governo.

Ao mesmo tempo também revela que mesmo que um site esteja atualizado e bem protegido, não deixa necessariamente de estar vulnerável. Neste caso a invasão foi feita através de algo externo. Este é outro reminder de que o código JavaScript externo está sob o controlo de terceiros e pode ser modificado a qualquer momento sem aviso prévio.

A ESET notificou o StatCounter e o gate.io assim que descobriu esta atividade maliciosa. Entretanto, já tudo foi corrigido.

 

DEIXE UMA RESPOSTA

Please enter your comment!
Please enter your name here

1 × one =