Dados do Etherscan mostram que alguns golpistas de criptomoedas estão mirando usuários com um novo truque que permite que eles confirmem uma transação da carteira da vítima, mas sem ter a chave privada da vítima. O ataque só pode ser realizado para transações de valor 0. No entanto, pode fazer com que alguns usuários enviem tokens acidentalmente para o invasor como resultado de cortar e colar de um histórico de transações sequestrado.

A empresa de segurança de blockchain SlowMist descobriu a nova técnica em dezembro e a revelou em um post de blog. Desde então, tanto a SafePal quanto a Etherscan adotaram técnicas de mitigação para limitar seu efeito sobre os usuários, mas alguns usuários ainda podem não estar cientes de sua existência.

Recentemente, recebemos relatos da comunidade sobre um novo tipo de golpe: Golpe de Transferência Zero. Tenha cuidado se você vir uma transferência suspeita de 0 no registro da sua carteira:1/10

-Verônica (@V_SafePal) 14 de dezembro de 2022

De acordo com a publicação do SlowMist, o golpe funciona enviando uma transação de zero tokens da carteira da vítima para um endereço que parece semelhante àquele para o qual a vítima havia enviado tokens anteriormente.

Por exemplo, se a vítima enviou 100 moedas para um endereço de depósito de câmbio, o invasor pode enviar zero moedas da carteira da vítima para um endereço que parece similar, mas que está, de fato, sob o controle do invasor. A vítima pode ver essa transação em seu histórico de transações e concluir que o endereço mostrado é o endereço de depósito correto. Como resultado, eles podem enviar suas moedas diretamente para o invasor.

Enviando uma transação sem permissão do proprietário

Em circunstâncias normais, um invasor precisa da chave privada da vítima para enviar uma transação da carteira da vítima. Mas o recurso “contract tab” do Etherscan revela que há uma brecha em alguns contratos de token que podem permitir que um invasor envie uma transação de qualquer carteira.

Por exemplo, o código para USD Coin (USDC) no Etherscan mostra que a função “TransferFrom” permite que qualquer pessoa mova moedas da carteira de outra pessoa, desde que a quantidade de moedas que ela esteja enviando seja menor ou igual à quantidade permitida pelo proprietário do endereço.

Isso geralmente significa que um invasor não pode fazer uma transação do endereço de outra pessoa, a menos que o proprietário aprove uma permissão para ela.

No entanto, há uma brecha nessa restrição. A quantidade permitida é definida como um número (chamado de “tipo uint256”), o que significa que é interpretada como zero, a menos que seja definida especificamente para algum outro número. Isso pode ser visto na função “allowance”.

Como resultado, desde que o valor da transação do invasor seja menor ou igual a zero, ele pode enviar uma transação de qualquer carteira que desejar, sem precisar da chave privada ou da aprovação prévia do proprietário.

USDC não é o único token que permite que isso seja feito. Código semelhante pode ser encontrado na maioria dos contratos de token. Ele pode até ser encontrado nos contratos de exemplo vinculados do site oficial da Ethereum Foundation.

Exemplos de golpe de transferência de valor zero

O Etherscan mostra que alguns endereços de carteira estão enviando milhares de transações de valor zero por dia das carteiras de várias vítimas sem o consentimento delas.

Por exemplo, uma conta rotulada Fake_Phishing7974 usou um contrato inteligente não verificado para realizar mais de 80 pacotes de transações em 12 de janeiro, com cada pacote contendo 50 transações de valor zero, totalizando 4.000 transações não autorizadas em um dia.

Endereços enganosos

Analisar cada transação mais de perto revela um motivo para esse spam: o invasor está enviando transações de valor zero para endereços muito semelhantes aos para os quais as vítimas enviaram fundos anteriormente.

Por exemplo, o Etherscan mostra que um dos endereços de usuários visados ​​pelo invasor é o seguinte:

0x20d7f90d9c40901488a935870e1e80127de11d74.

Em 29 de janeiro, esta conta autorizou o envio de 5.000 Tether (USDT) para este endereço de recebimento:

0xa541efe60f274f813a834afd31e896348810bb09.

Imediatamente depois, Fake_Phishing7974 enviou uma transação de valor zero da carteira da vítima para este endereço:

0xA545c8659B0CD5B426A027509E55220FDa10bB09.

Os primeiros cinco caracteres e os últimos seis caracteres desses dois endereços de recebimento são exatamente os mesmos, mas os caracteres do meio são todos completamente diferentes. O invasor pode ter pretendido que o usuário enviasse USDT para esse segundo endereço (falso) em vez do real, dando suas moedas ao invasor.

Neste caso em particular, parece que o golpe não funcionou, pois o Etherscan não mostra nenhuma transação deste endereço para um dos endereços falsos criados pelo golpista. Mas dado o volume de transações de valor zero feitas por esta conta, o plano pode ter funcionado em outros casos.

Carteiras e exploradores de blocos podem variar significativamente em relação a como ou se eles mostram transações enganosas.

Carteiras

Algumas carteiras podem não mostrar as transações de spam. Por exemplo, a MetaMask não mostra nenhum histórico de transações se for reinstalada, mesmo que a conta em si tenha centenas de transações no blockchain. Isso implica que ela armazena seu próprio histórico de transações em vez de extrair os dados do blockchain. Isso deve evitar que as transações de spam apareçam no histórico de transações da carteira.

Por outro lado, se a carteira extrair dados diretamente do blockchain, as transações de spam podem aparecer na tela da carteira. Em um anúncio de 13 de dezembro no Twitter, a CEO da SafePal, Veronica Wong, alertou os usuários da SafePal de que sua carteira pode exibir as transações. Para mitigar esse risco, ela disse que a SafePal estava alterando a maneira como os endereços são exibidos em versões mais recentes de sua carteira para facilitar a inspeção dos endereços pelos usuários.

(6/10) Com isso, tomamos medidas: 1) Na última atualização V3.7.3, ajustamos o comprimento do endereço da carteira exibido no histórico de transações. Os primeiros e últimos 10 dígitos do endereço da carteira serão exibidos por padrão, para fins de exame de endereço

-Verônica (@V_SafePal) 14 de dezembro de 2022

Em dezembro, um usuário também relatou que sua carteira Trezor estava exibindo transações enganosas.

O Cointelegraph entrou em contato por e-mail com o desenvolvedor do Trezor, SatoshiLabs, para comentar. Em resposta, um representante declarou que a carteira puxa seu histórico de transações diretamente do blockchain “toda vez que os usuários conectam sua carteira Trezor”.

No entanto, a equipe está tomando medidas para proteger os usuários do golpe. Em uma próxima atualização do Trezor Suite, o software “sinalizará as transações suspeitas de valor zero para que os usuários sejam alertados de que tais transações são potencialmente fraudulentas”. A empresa também declarou que a carteira sempre exibe o endereço completo de cada transação e que eles “recomendam fortemente que os usuários sempre verifiquem o endereço completo, não apenas o primeiro e o último caracteres”.

Exploradores de blocos

Além de carteiras, exploradores de blocos são outro tipo de software que pode ser usado para visualizar o histórico de transações. Alguns exploradores podem exibir essas transações de forma a enganar os usuários inadvertidamente, assim como algumas carteiras fazem.

Para mitigar essa ameaça, o Etherscan começou a tornar cinzas transações de token de valor zero que não são iniciadas pelo usuário. Ele também sinaliza essas transações com um alerta que diz: "Esta é uma transferência de token de valor zero iniciada por outro endereço", conforme evidenciado pela imagem abaixo.

Outros exploradores de blocos podem ter tomado as mesmas medidas que o Etherscan para alertar os usuários sobre essas transações, mas alguns podem não ter implementado essas etapas ainda.

Dicas para evitar o truque do 'TransferFrom de valor zero'

O Cointelegraph entrou em contato com a SlowMist para obter conselhos sobre como evitar cair no truque do “TransferFrom de valor zero”.

Um representante da empresa deu ao Cointelegraph uma lista de dicas para evitar se tornar uma vítima do ataque:

  1. "Tenha cuidado e verifique o endereço antes de executar qualquer transação."

  2. "Utilize o recurso de lista de permissões na sua carteira para evitar o envio de fundos para endereços errados."

  3. "Fique atento e informado. Se você encontrar alguma transferência suspeita, reserve um tempo para investigar o assunto com calma para evitar ser vítima de golpistas."

  4. "Mantenha um nível saudável de ceticismo, seja sempre cauteloso e vigilante."

A julgar por esse conselho, a coisa mais importante para os usuários de criptomoedas lembrarem é sempre verificar o endereço antes de enviar criptomoedas para ele. Mesmo que o registro da transação pareça implicar que você já enviou criptomoedas para o endereço antes, essa aparência pode enganar.