Glossário / Privacidade e segurança
Envenenamento de endereços
Outros nomes: Envenenamento de endereço.
- O que é o envenenamento de endereços?
- O envenenamento de endereços é um golpe de roubo em que o fraudador envia a você uma transação sem valor, de um endereço que imita um que você já usa, na esperança de que você copie o dele a partir do seu histórico.
O alvo é um hábito: recorrer à lista de transações de uma carteira para reutilizar um endereço em vez de pedir um novo ao destinatário. Os atacantes geram por força bruta endereços parecidos que coincidem nos primeiros e nos últimos caracteres, que é tudo o que a maioria das telas de carteira e dos exploradores de blocos exibe. Em maio de 2024 um operador perdeu 1.155 wrapped bitcoin, no valor de cerca de 68 milhões de dólares, por uma única colagem envenenada.
Como funciona
O envenenamento de endereços tem três etapas, e só a última envolve você.
Gerar o endereço parecido. Os endereços de bitcoin são longos por projeto, e as interfaces escondem o meio. Um endereço bech32 usa um alfabeto de 32 caracteres, então produzir um que coincida com quatro caracteres iniciais e quatro finais de um alvo significa buscar aproximadamente 32 elevado à oitava potência, cerca de 1,1 trilhão de candidatos. Uma única GPU comum rodando a noite toda chega lá, e a busca é paralelizável de forma trivial, então uma máquina alugada pode envenenar milhares de alvos ao mesmo tempo. O atacante não precisa da sua chave, apenas de um endereço próprio que se pareça com aquele em que você confia.
Plantar o endereço. No bitcoin o atacante gasta um valor de poeira, normalmente 330 ou 546 satoshis, do endereço parecido para o seu. Sua carteira registra um pagamento recebido, e o campo do remetente passa a exibir um endereço que uma olhada rápida não distingue daquele que você realmente usa. Algumas campanhas, em vez disso, envenenam no sentido contrário, enviando de um endereço parecido com o endereço de depósito da corretora que você continua colando nos seus próprios saques.
Esperar. Semanas depois você vai enviar. Você percorre o histórico, encontra “o endereço que usei da última vez”, copia, cola, confirma. A transação é válida, está corretamente assinada e é irreversível a partir do momento em que é confirmada cerca de dez minutos depois. Não existe um departamento de fraude, porque não houve fraude no nível do protocolo: você pagou exatamente a quem disse à rede para pagar.
A economia difere conforme a blockchain. O Ethereum permite que um atacante emita uma transferência de valor zero pagando apenas o gás, então envenenar ali é quase gratuito e ocorre em escala industrial. A regra da poeira do Bitcoin obriga a um pequeno pagamento por tentativa, o que é um dos poucos lugares em que essa política atua discretamente como controle de spam.
Por que isso importa quando você compra bitcoin
O minuto mais arriscado na vida de um comprador novo é o primeiro saque de uma corretora para uma carteira que ele acabou de configurar.
É quando você está copiando uma sequência desconhecida entre dois aplicativos, quando ainda não tem uma lista de endereços e quando é menos provável que perceba que os 20 caracteres do meio mudaram. Também é quando o valor costuma ser toda a sua posição. Três controles eliminam quase todo o risco, e nenhum deles depende de tomar cuidado.
Configure uma lista de permissões de saque. A Kraken, a Coinbase e a Binance permitem registrar os endereços para os quais sua conta pode enviar, e a maioria exige um prazo antes que um endereço recém-adicionado possa ser usado. Você configura isso uma vez, com calma, enquanto nada está sendo roubado. Um endereço envenenado colado em uma conta com lista de permissões é simplesmente rejeitado.
Obtenha o endereço no dispositivo de recebimento, não no histórico. Uma carteira de hardware gera e exibe seu endereço de recebimento na própria tela. A Trezor e a Ledger fazem você confirmá-lo ali, e um malware ou um histórico falsificado no computador não pode mudar o que o dispositivo mostra. Faça o mesmo no sentido inverso ao enviar: leia o destino na tela do dispositivo antes de aprovar.
Verifique o meio. Comparar os quatro primeiros e os quatro últimos caracteres é exatamente a verificação que esse ataque foi feito para passar. Compare uma sequência de caracteres do centro do endereço ou, melhor, compare o conjunto todo lendo um código QR em vez de ler o texto.
A colagem de 68 milhões de dólares
Em 3 de maio de 2024, um operador se preparou para mover 1.155 wrapped bitcoin, então no valor de cerca de 68 milhões de dólares, e fez primeiro o que era responsável: uma pequena transferência de teste.
Um atacante estava observando a mempool exatamente em busca desse padrão. Em minutos ele criou um endereço que coincidia com os primeiros e os últimos caracteres do destino legítimo e enviou a partir dele uma transferência de token, de modo que o registro envenenado ficou no histórico do remetente imediatamente acima do verdadeiro. A transferência de 1.155 wrapped bitcoin foi para o atacante.
O desfecho é incomum. Investigadores on-chain rastrearam a infraestrutura do atacante e a tornaram pública, e cerca de uma semana depois os fundos foram devolvidos integralmente. Nada nesse resultado é repetível. A recuperação aconteceu porque a soma era grande o bastante para atrair atenção forense pública e o atacante decidiu que a exposição não valia a pena, não porque algum protocolo ou empresa tivesse uma forma de reverter o pagamento.
Envenenamento de endereços vs ataque de poeira
O envenenamento de endereços e os ataques de poeira chegam ambos como um depósito minúsculo e inesperado, e visam a erros diferentes. Um ataque de poeira quer a própria poeira de volta em circulação, gasta junto com suas outras saídas para que um analista de blockchain possa fundir as duas em um único agrupamento. O envenenamento de endereços não se importa em nada com o que acontece com a poeira; a carga útil é o endereço do remetente que fica no seu histórico. Congelar a saída protege você do primeiro ataque e não faz nada contra o segundo, razão pela qual a verdadeira contramedida aqui é nunca obter um endereço de uma lista de transações.
Envenenamento de endereços vs malware de área de transferência
Os dois ataques terminam com bitcoin indo para uma sequência que você não pretendia, e atacam partes diferentes da cadeia de custódia. O malware de área de transferência exige código rodando na sua máquina e troca o endereço entre a cópia e a colagem, então o endereço que você olhou estava certo e aquele para o qual você enviou não estava. O envenenamento de endereços não precisa de nenhum acesso ao seu dispositivo: o endereço errado já estava no próprio histórico da sua carteira, colocado ali por um pagamento que qualquer pessoa poderia fazer. Isso torna o envenenamento imune a software antivírus e ao alcance de qualquer um que conheça um dos seus endereços.