¿Sabía que cualquiera puede realizar una transacción desde su billetera conociendo solo la dirección de la billetera y sin la necesidad de la clave o frase secreta de la billetera?

Existe un tipo de ataque conocido como Zero Transfer Phishing que es considerado uno de los peores ataques de phishing en el campo criptográfico por la facilidad para realizarlo por parte del atacante, y la facilidad de caer en él por parte de la víctima.

Este ataque actualmente tiene como objetivo millones de billeteras criptográficas en diferentes redes. ¿Cómo se lleva a cabo este ataque? ¿Cómo te proteges de ello?

En primer lugar, hay una función en la máquina virtual Ethereum (EVM) llamada transferFrom(), que permite realizar transacciones desde su billetera a otra billetera a través de un tercero.

Esto significa que un tercero, como un contrato inteligente, puede realizar retiros de su billetera a través de esta función. Siempre que se obtenga la aprobación previa de la billetera.

Hay muchos usos para esta función, incluidas transacciones de cambio de moneda de “intercambio” entre plataformas descentralizadas, ya que permite que el contrato inteligente retire un saldo de X moneda de su billetera; A cambio de recibir un saldo de moneda Y.

Esta función se utiliza en otras redes como BNB Chain, Tron y otras.

Pero al mismo tiempo; Esta función permite que cualquier persona realice una transacción desde la billetera de otra persona sin su permiso si el monto de la transacción es 0.

¿De qué sirve si la transferencia no tiene valor?

El objetivo es envenenar el historial de transferencias de la billetera para engañar al propietario de la billetera para que realice una transferencia a la billetera del atacante, lo que se denomina ataque de envenenamiento de direcciones.

¿Cómo ocurre este ataque?

En primer lugar, el atacante busca direcciones activas a través de la cadena de bloques y, a menudo, su objetivo son las carteras que están activas en transferencias de moneda estable.

En segundo lugar, el atacante crea direcciones de billetera cuyo inicio y final son idénticos a las direcciones de las víctimas objetivo.

¿Cómo sucede esto cuando las direcciones de billetera se generan aleatoriamente?

De hecho, cualquiera puede generar una dirección de billetera bajo ciertas condiciones. En este ejemplo, la condición es que la dirección de la billetera comience y termine con las mismas letras y números que las direcciones de la billetera de las víctimas objetivo, y esta dirección se llama dirección personalizada.

En tercer lugar, el atacante explota la función transferFrom() para realizar una transacción con valor 0 hacia o desde las billeteras de las víctimas. Esta función llama a otra función llamada transfer(), que se encarga de realizar las transferencias, pero lo más importante que hace es registrar la transacción en el historial de transacciones de la billetera.

El atacante comienza a monitorear las direcciones para esperar a que se transfieran antes de realizar el ataque, o ataca de forma aleatoria.

Ejemplo:

En esta transacción, la víctima transfirió los primeros 10 USDC de su billetera a una dirección que comenzaba con 0x74C y terminaba con 0E1cA como prueba para asegurarse de que no hubiera problemas antes de realizar la transferencia mayor.

Dos minutos más tarde, el atacante llevó a cabo su ataque explotando la función transferFrom() para realizar 0 transferencias desde la billetera de la víctima para envenenar el historial de transferencias y poner la dirección de su billetera falsa similar a la dirección correcta a la que la víctima transfirió 10 USDC. Puedes ver la diferencia entre el título original y el falso.

¿El resultado?

La víctima verificó la última dirección a la que transfirió (la dirección falsa) comprobando solo el principio y el final de la dirección, y luego transfirió más de $2 millones a la dirección de la billetera del atacante debido a este ingenuo error.

A pesar de la ingenuidad del error; La mayoría de los usuarios de criptomonedas cometen el mismo error y verifican las direcciones de transferencia comprobando sólo el primer y el último carácter.

Por supuesto, el atacante transfirió inmediatamente los fondos a UniSwap para lavarlos y evitar cualquier posibilidad de congelar la dirección de su billetera por parte de Circle.

Actualmente, hay millones de direcciones en la cadena de bloques Ethereum y BNB que han sido objetivo de este tipo de ataques, y este número aumenta constantemente, por lo que le aconsejo que tenga mucho cuidado con estos ataques.

Puede seguir las estadísticas sobre ataques a través de Zero Transfer Phishing.

Beneficio:

1- Verifique siempre la dirección completa antes de realizar la conversión, no solo el principio y el final de la dirección.

2- No transfieras grandes cantidades en una sola transacción.

3- Si encuentras transferencias por valor de $0 enviadas desde tu billetera, no te preocupes, la billetera no ha sido pirateada.