Glosario / Privacidad y seguridad
Envenenamiento de direcciones
También se conoce como Suplantación de direcciones.
- ¿Qué es el envenenamiento de direcciones?
- El envenenamiento de direcciones es una táctica de robo en la que un estafador le envía una transacción sin valor desde una dirección que imita una que usted ya utiliza, con la esperanza de que copie la del estafador desde su historial.
El objetivo es un hábito: recurrir al historial de transacciones de una billetera para reutilizar una dirección en lugar de pedirle una nueva al destinatario. Los atacantes generan por fuerza bruta direcciones parecidas que coinciden en unos pocos caracteres iniciales y finales, que es todo lo que muestran la mayoría de las pantallas de billetera y los exploradores de bloques. En mayo de 2024 un operador perdió 1.155 bitcoin envueltos, con un valor de unos 68 millones de dólares, por un solo pegado envenenado.
Cómo funciona
El envenenamiento de direcciones tiene tres etapas, y solo la última le involucra a usted.
Generar por fuerza bruta la dirección parecida. Las direcciones de Bitcoin son largas por diseño, y las interfaces ocultan la parte central. Una dirección bech32 usa un alfabeto de 32 caracteres, así que producir una que coincida en los cuatro caracteres iniciales y los cuatro finales de un objetivo implica buscar entre aproximadamente 32 elevado a la octava potencia, unos 1,1 billones de candidatos. Una sola GPU de consumo funcionando toda la noche lo consigue, y la búsqueda es paralelizable de forma trivial, así que una máquina alquilada puede envenenar miles de objetivos a la vez. El atacante no necesita su clave, solo una dirección propia que se parezca a aquella en la que usted confía.
Plantarla. En bitcoin, el atacante gasta un monto de polvo, normalmente 330 o 546 satoshis, desde la dirección parecida hacia la suya. Su billetera registra un pago entrante, y el campo del remitente ahora muestra una dirección que un vistazo no puede distinguir de la que usted realmente usa. Algunas campañas, en cambio, envenenan en el sentido contrario, enviando desde una dirección que se parece a la dirección de depósito del exchange que usted sigue pegando en sus propios retiros.
Esperar. Semanas después va a enviar. Usted recorre el historial, encuentra "la dirección que usé la última vez", copia, pega, confirma. La transacción es válida, está correctamente firmada, y es irreversible desde el momento en que se confirma unos diez minutos después. No existe un departamento de fraude, porque no ocurrió ningún fraude a nivel de protocolo: usted pagó exactamente a quien le indicó a la red que pagara.
La economía difiere según la cadena. Ethereum permite que un atacante emita una transferencia de valor cero pagando solo el gas, así que envenenar allí es casi gratis y se ejecuta a escala industrial. La regla del polvo de Bitcoin obliga a un pequeño pago por cada intento, lo que es uno de los pocos lugares donde esa política actúa discretamente como control del spam.
Por qué importa cuando compra bitcoin
El minuto más arriesgado en la vida de un comprador nuevo es el primer retiro desde un exchange hacia una billetera que acaba de configurar.
Ese es el momento en que usted está copiando una cadena de caracteres desconocida entre dos aplicaciones, cuando todavía no tiene una libreta de direcciones, y cuando menos probable es que note que los 20 caracteres del medio cambiaron. También es cuando el monto suele ser toda su posición. Tres controles eliminan casi todo el riesgo, y ninguno depende de tener cuidado.
Configure una lista blanca de retiro. Tanto Kraken como Coinbase y Binance le permiten registrar las direcciones a las que su cuenta puede enviar, y la mayoría exige un plazo de espera antes de que una dirección recién añadida se pueda usar. Usted la configura una vez, con calma, mientras nada está siendo robado. Una dirección envenenada pegada en una cuenta con lista blanca simplemente se rechaza.
Obtenga la dirección desde el dispositivo receptor, no desde el historial. Una billetera de hardware genera y muestra su dirección de recepción en su propia pantalla. Tanto Trezor como Ledger le hacen confirmarla ahí, y el malware o un historial falsificado en la computadora no pueden cambiar lo que muestra el dispositivo. Haga lo mismo a la inversa al enviar: lea el destino en la pantalla del dispositivo antes de aprobar.
Compruebe la parte central. Comparar los primeros cuatro y los últimos cuatro caracteres es exactamente la comprobación que este ataque está diseñado para superar. Compare una secuencia de caracteres del centro de la cadena o, mejor, compare todo el conjunto escaneando un código QR en lugar de leerlo.
El pegado de 68 millones de dólares
El 3 de mayo de 2024, un operador se preparó para mover 1.155 bitcoin envueltos, entonces valorados en unos 68 millones de dólares, e hizo primero lo responsable: una pequeña transferencia de prueba.
Un atacante estaba vigilando la mempool exactamente en busca de ese patrón. En minutos creó una dirección que coincidía con los primeros y últimos caracteres del destino legítimo y envió desde ella una transferencia de token, de modo que la entrada envenenada quedó en el historial del remitente justo encima de la real. La transferencia de 1.155 monedas fue a parar al atacante.
El desenlace es inusual. Investigadores on-chain rastrearon la infraestructura del atacante y la hicieron pública, y aproximadamente una semana después los fondos fueron devueltos en su totalidad. Nada de ese resultado es repetible. La recuperación ocurrió porque la suma era lo bastante grande para atraer atención forense pública y el atacante decidió que la presión no valía la pena, no porque ningún protocolo o empresa tuviera una forma de revertir el pago.
Envenenamiento de direcciones frente a ataque de polvo
El envenenamiento de direcciones y los ataques de polvo llegan ambos como un depósito diminuto e inesperado, y apuntan a errores distintos. Un ataque de polvo quiere que la propia moneda vuelva a circular, gastada junto a sus otras salidas para que un analista de cadena pueda fusionar ambas en una sola agrupación. Al envenenamiento de direcciones no le importa en absoluto lo que pase con el polvo; la carga útil es la dirección del remitente que queda en su historial. Congelar la salida le protege del primer ataque y no hace nada contra el segundo, razón por la cual la verdadera contramedida aquí es no obtener nunca una dirección de una lista de transacciones.
Envenenamiento de direcciones frente a malware de portapapeles
Ambos ataques terminan con bitcoin yendo a una cadena de caracteres que usted no pretendía, y atacan partes distintas de la cadena de custodia. El malware de portapapeles necesita código ejecutándose en su máquina y cambia la dirección entre el copiado y el pegado, de modo que la dirección que usted miró era correcta y a la que envió no lo era. El envenenamiento de direcciones no necesita ningún acceso a su dispositivo: la dirección equivocada ya estaba en el propio historial de su billetera, colocada ahí por un pago que cualquiera podría hacer. Eso hace que el envenenamiento sea inmune al software antivirus y alcanzable por cualquiera que conozca una de sus direcciones.