Los datos de Etherscan muestran que algunos estafadores de criptomonedas se dirigen a los usuarios con un nuevo truco que les permite confirmar una transacción desde la billetera de la víctima, pero sin tener la clave privada de la víctima. El ataque solo se puede realizar para transacciones de valor . Sin embargo, puede hacer que algunos usuarios envíen accidentalmente tokens al atacante como resultado de cortar y pegar desde un historial de transacciones secuestrado.
La firma de seguridad Blockchain SlowMist descubrió la nueva técnica en diciembre y la reveló en una publicación de web site. Desde entonces, tanto SafePal como Etherscan han adoptado técnicas de mitigación para limitar su efecto en los usuarios, pero es posible que algunos usuarios aún desconozcan su existencia.
Según la publicación de SlowMist, la estafa funciona mediante el envío de una transacción de tokens cero desde la billetera de la víctima a una dirección que se parece a una a la que la víctima había enviado tokens anteriormente.
Por ejemplo, si la víctima envió 100 monedas a una dirección de depósito de intercambio, el atacante puede enviar cero monedas desde la billetera de la víctima a una dirección que parece very similar pero que, de hecho, está bajo el management del atacante. La víctima puede ver esta transacción en su historial de transacciones y concluir que la dirección que se muestra es la dirección de depósito correcta. Como resultado, pueden enviar sus monedas directamente al atacante.
Envío de una transacción sin permiso del propietario
En circunstancias normales, un atacante necesita la clave privada de la víctima para enviar una transacción desde la billetera de la víctima. Pero la función de «pestaña de contrato» de Etherscan revela que hay una laguna en algunos contratos de token que pueden permitir que un atacante envíe una transacción desde cualquier billetera.
Por ejemplo, el código para USD Coin (USDC) en Etherscan muestra que la función «Transferir desde» permite que cualquier persona mueva monedas de la billetera de otra persona siempre que la cantidad de monedas que envíe sea menor o igual a la cantidad permitida por el dueño de la dirección.
Esto generalmente significa que un atacante no puede realizar una transacción desde la dirección de otra persona a menos que el propietario apruebe una asignación para ellos.
Sin embargo, hay una laguna en esta restricción. La cantidad permitida se determine como un número (llamado «tipo uint256»), lo que significa que se interpreta como cero a menos que se establezca específicamente en algún otro número. Esto se puede ver en la función «asignación».
Como resultado, siempre que el valor de la transacción del atacante sea menor o igual a cero, puede enviar una transacción desde absolutamente cualquier billetera que desee, sin necesidad de la clave privada o la aprobación previa del propietario.
USDC no es el único token que permite hacer esto. Se puede encontrar un código equivalent en la mayoría de los contratos de token. Incluso se puede encontrar en los contratos de ejemplo vinculados desde el sitio internet oficial de la Fundación Ethereum.
Ejemplos de la estafa de transferencia de valor cero
Etherscan muestra que algunas direcciones de billeteras envían miles de transacciones de valor cero por día desde las billeteras de varias víctimas sin su consentimiento.
Por ejemplo, una cuenta etiquetada como Pretend_Phishing7974 usó un contrato inteligente no verificado para realizar más de 80 paquetes de transacciones el 12 de enero, y cada paquete contenía 50 transacciones de valor cero para un overall de 4000 transacciones no autorizadas en un día.
Direcciones engañosas
Examinar cada transacción más de cerca revela un motivo para este spam: el atacante está enviando transacciones de valor cero a direcciones que se parecen mucho a las que las víctimas enviaron fondos anteriormente.
Por ejemplo, Etherscan muestra que una de las direcciones de usuario a las que apunta el atacante es la siguiente:
0x20d7f90d9c40901488a935870e1e80127de11d74.
El 29 de enero, esta cuenta autorizó el envío de 5000 Tether (USDT) a esta dirección de recepción:
0xa541efe60f274f813a834afd31e896348810bb09.
Inmediatamente después, Faux_Phishing7974 envió una transacción de valor cero desde la billetera de la víctima a esta dirección:
0xA545c8659B0CD5B426A027509E55220Food and drug administration10bB09.
Los primeros cinco caracteres y los últimos seis caracteres de estas dos direcciones de recepción son exactamente iguales, pero los caracteres del medio son todos completamente diferentes. Es posible que el atacante haya tenido la intención de que el usuario envíe USDT a esta segunda dirección (falsa) en lugar de a la real, dándole sus monedas al atacante.
En este caso distinct, parece que la estafa no funcionó, ya que Etherscan no muestra ninguna transacción desde esta dirección a una de las direcciones falsas creadas por el estafador. Pero dado el volumen de transacciones de valor cero realizadas por esta cuenta, el approach puede haber funcionado en otros casos.
Las billeteras y los exploradores de bloques pueden variar significativamente en cuanto a cómo o si muestran transacciones engañosas.
Carteras
Es posible que algunas billeteras no muestren las transacciones de spam en absoluto. Por ejemplo, MetaMask no muestra el historial de transacciones si se reinstala, incluso si la cuenta en sí tiene cientos de transacciones en la cadena de bloques. Esto implica que almacena su propio historial de transacciones en lugar de extraer los datos de la cadena de bloques. Esto debería evitar que las transacciones de spam aparezcan en el historial de transacciones de la billetera.
Por otro lado, si la billetera extrae datos directamente de la cadena de bloques, las transacciones de spam pueden aparecer en la pantalla de la billetera. En un anuncio del 13 de diciembre en Twitter, la directora ejecutiva de SafePal, Veronica Wong prevenido Usuarios de SafePal que su billetera puede mostrar las transacciones. Para mitigar este riesgo, dijo que SafePal estaba alterando la forma en que se muestran las direcciones en las versiones más nuevas de su billetera para que sea más fácil para los usuarios inspeccionar las direcciones.
En diciembre, un usuario también informó que su billetera Trezor mostraba transacciones engañosas.
Noticias Blockchain contactó por correo electrónico al desarrollador de Trezor, SatoshiLabs, para hacer comentarios. En respuesta, un representante declaró que la billetera extrae su historial de transacciones directamente de la cadena de bloques «cada vez que los usuarios conectan su billetera Trezor».
Sin embargo, el equipo está tomando medidas para proteger a los usuarios de la estafa. En una próxima actualización de Trezor Suite, el software program «marcará las transacciones sospechosas de valor cero para alertar a los usuarios de que dichas transacciones son potencialmente fraudulentas». La compañía también declaró que la billetera siempre muestra la dirección completa de cada transacción y que «recomiendan enfáticamente que los usuarios siempre verifiquen la dirección completa, no solo el primer y último carácter».
Exploradores de bloques
Además de las billeteras, los exploradores de bloques son otro tipo de computer software que se puede usar para ver el historial de transacciones. Algunos exploradores pueden mostrar estas transacciones de tal manera que inadvertidamente engañen a los usuarios, tal como lo hacen algunas billeteras.
Para mitigar esta amenaza, Etherscan ha comenzado a atenuar las transacciones de token de valor cero que no inicia el usuario. También marca estas transacciones con una alerta que dice: «Esta es una transferencia de token de valor cero iniciada por otra dirección», como lo demuestra la imagen a continuación.
Es posible que otros exploradores de bloques hayan seguido los mismos pasos que Etherscan para advertir a los usuarios sobre estas transacciones, pero es posible que algunos aún no hayan implementado estos pasos.
Consejos para evitar el truco del ‘TransferFrom de valor cero’
Noticias Blockchain se puso en contacto con SlowMist para pedirle consejo sobre cómo evitar ser víctima del truco del «TransferFrom de valor cero».
Un representante de la empresa le dio a Noticias Blockchain una lista de consejos para evitar ser víctima del ataque:
- «Tenga cuidado y verifique la dirección antes de ejecutar cualquier transacción».
- «Utilice la función de lista blanca en su billetera para evitar enviar fondos a direcciones incorrectas».
- «Manténgase alerta e informado. Si encuentra alguna transferencia sospechosa, tómese el tiempo para investigar el asunto con calma para evitar ser víctima de estafadores».
- «Mantenga un nivel saludable de escepticismo, manténgase siempre cauteloso y vigilante».
A juzgar por este consejo, lo más importante que deben recordar los usuarios de criptomonedas es verificar siempre la dirección antes de enviarle criptomonedas. Incluso si el registro de la transacción parece implicar que ha enviado criptografía a la dirección anteriormente, esta apariencia puede ser engañosa.