Nueva Lavado de ojos de firma Permit2 de Uniswap: un solo firma y los activos son robados.

Revelando el Lavado de ojos de las firmas de Uniswap Permit2: solo con firmar te robarán

Los hackers siempre han sido una presencia temida en el ecosistema Web3. Para los desarrolladores de proyectos, la naturaleza de código abierto les hace actuar con cautela, temiendo que un solo error de código deje una vulnerabilidad. Para los usuarios individuales, si no comprenden el significado de las operaciones que están realizando, cada interacción o firma en la cadena puede resultar en el robo de sus activos. Por lo tanto, los problemas de seguridad han sido uno de los problemas más difíciles en el mundo de las criptomonedas. Debido a las características de la blockchain, una vez que los activos son robados, es casi imposible recuperarlos, por lo que es especialmente importante adquirir conocimientos de seguridad en el mundo de las criptomonedas.

Recientemente, se ha descubierto un nuevo tipo de técnica de phishing que ha comenzado a activarse en los últimos dos meses. Con solo firmar, se puede ser robado, y el método es extremadamente encubierto y difícil de prevenir. Además, las direcciones que alguna vez interactuaron con Uniswap pueden estar en riesgo. Este artículo tiene como objetivo educar sobre esta técnica de phishing por firma, para evitar que más personas sufran pérdidas de activos.

Desarrollo del evento

Recientemente, un amigo ( llamado provisionalmente Xiao A ) sufrió el robo de los activos de su billetera. A diferencia de los métodos comunes de robo, Xiao A no filtró su clave privada, ni interactuó con un contrato de un sitio de phishing.

A través del explorador de blockchain se puede ver que el USDT robado de la billetera de Xiao A fue transferido mediante la función Transfer From. Esto significa que este activo robado fue transferido por otra dirección, y no por la filtración de la clave privada de la billetera.

Consulta los detalles de la transacción y descubre algunas pistas clave:

  • La dirección que termina en fd51 transfirió los activos de Xiao A a la dirección que termina en a0c8.
  • Esta operación interactúa con el contrato Permit2 de Uniswap.

¿Firmar y ser robado? Revelando el lavado de ojos de la firma de Uniswap Permit2

Entonces, surge la pregunta, ¿cómo obtuvo la dirección que termina en fd51 el permiso para este activo? ¿Por qué está relacionado con Uniswap?

Primero, es necesario saber que para llamar con éxito a la función Transfer From, es un requisito previo que el llamador tenga la autorización de cantidad del Token, es decir, approve. Cuando usamos algunas Dapp, siempre que se trate de una transferencia de activos, primero se necesita llevar a cabo la operación de autorización (approve), de esta manera el contrato de la Dapp tendrá permiso para transferir nuestros activos.

La respuesta está en el registro de interacción de la dirección con el número final fd51. Antes de transferir los activos de A desde esa dirección, se llevó a cabo una operación de Permiso, y ambos objetos de interacción de estas dos operaciones son el contrato Permit2 de Uniswap.

¿Te roban solo por firmar? Revelando el Lavado de ojos de la firma de Uniswap Permit2

El contrato Permit2 de Uniswap es un nuevo contrato inteligente lanzado por Uniswap a finales de 2022. Según la declaración oficial, es un contrato de aprobación de tokens que permite compartir y gestionar autorizaciones de tokens en diferentes aplicaciones, con el objetivo de crear una experiencia de usuario más unificada, rentable y segura.

A medida que más proyectos se integran con Permit2, puede lograr la aprobación estándar de tokens en todas las aplicaciones. Permit2 mejorará la experiencia del usuario al reducir los costos de transacción y al mismo tiempo aumentará la seguridad de los contratos inteligentes.

El lanzamiento de Permit2 podría cambiar las reglas del juego en todo el ecosistema Dapp. En términos simples, el método tradicional requiere autorización cada vez que se interactúa con la transferencia de activos en un Dapp, mientras que Permit2 puede omitir este paso, reduciendo efectivamente el costo de interacción del usuario y ofreciendo una mejor experiencia al usuario.

Permit2 actúa como intermediario entre el usuario y el Dapp, el usuario solo necesita autorizar los permisos del Token al contrato Permit2, y todos los Dapp que integren el contrato Permit2 pueden compartir este límite de autorización. Para el usuario, esto reduce el costo de interacción y mejora la experiencia; para el Dapp, la mejora en la experiencia del usuario trae más usuarios y fondos, lo que podría ser una situación de ganar-ganar. Pero esto también puede ser una espada de doble filo, el problema radica en la forma de interacción con Permit2.

En los métodos de interacción tradicionales, ya sea autorización o transferencia de fondos, para el usuario que opera, todo es interacción en la cadena. Pero Permit2 convierte las operaciones del usuario en firmas fuera de la cadena, todas las operaciones en la cadena son completadas por roles intermedios como el (, como el contrato Permit2 y los proyectos integrados con Permit2, etc. ). La ventaja de este enfoque es que, dado que el rol de interacción en la cadena pasa del usuario al rol intermedio, incluso si la billetera del usuario no tiene ETH, puede usar otros tokens para pagar las tarifas de Gas o ser completamente reembolsado por el rol intermedio, dependiendo de la elección del rol intermedio.

Aunque la aparición de Permit2 puede cambiar las reglas del juego para las Dapp en el futuro, es una espada de doble filo muy poderosa. Para los usuarios, la firma fuera de la cadena es el eslabón más fácil en el que bajar la guardia. Por ejemplo, cuando iniciamos sesión en ciertas Dapp con una billetera, necesitamos firmar la conexión; la mayoría de las personas no revisa detenidamente el contenido de la firma ni comprende su significado, y este es precisamente el aspecto más peligroso.

Después de entender el contrato Permit2, al volver al evento de Xiao A, se comprende por qué los activos robados siempre están relacionados con la interacción con el contrato Permit2. Para reproducir esta técnica de phishing con la firma de Permit2, primero hay un requisito clave: la billetera víctima del phishing debe tener tokens autorizados para el contrato Permit2 de Uniswap. Actualmente, solo se necesita autorizar al contrato Permit2 al realizar un intercambio en una Dapp integrada con Permit2 o en Uniswap.

¿Firmar y ser robado? Revelando el Lavado de ojos de la firma de Uniswap Permit2

Otro punto preocupante es que, sin importar cuánto sea la cantidad a intercambiar, el contrato Permit2 de Uniswap por defecto autoriza al usuario a usar el saldo total de ese Token. Aunque MetaMask permite ingresar una cantidad personalizada, la mayoría de las personas probablemente simplemente hagan clic en el máximo o el valor predeterminado, y el valor predeterminado de Permit2 es un límite ilimitado.

Esto significa que, siempre que hayas interactuado con Uniswap y autorizado un monto al contrato Permit2 después de 2023, podrías estar expuesto al riesgo de este Lavado de ojos.

La clave está en la función Permit que interactuó anteriormente con el contrato Permit2 en la dirección que termina en fd51. En pocas palabras, esta función utiliza tu billetera para transferir el límite de Token que autorizaste al contrato Permit2 a otras direcciones. Es decir, tan pronto como obtienen tu firma, los hackers pueden obtener los permisos de los Tokens en tu billetera y transferir tus activos.

Análisis detallado del evento

función permit:

La función permit es similar a firmar un contrato en línea. Te permite (PermitSingle) firmar un "contrato" por adelantado, que permite a otros (spender) usar algunos de tus tokens en un futuro.

Necesitas proporcionar la firma (signature), así como lo harías al firmar un contrato en papel, para demostrar que este "contrato" ha sido efectivamente firmado por ti.

Flujo de trabajo de la función:

  1. Verifica si la hora actual ha superado el plazo de validez de la firma (sigDeadline). Si ha superado el plazo de validez, el programa se detiene directamente.
  2. Verificar la autenticidad de la firma. Utilizar el método especial (signature.verify) para comprobar la firma, asegurándose de que no haya sido falsificada.
  3. Si todas las verificaciones son exitosas, registra la actualización del programa y anota que has permitido a otros usar una parte de tus tokens.

El enfoque principal está en la función verify y la función _updateApproval.

función verify:

La función verify obtiene los tres datos v, r, s del parámetro de información de firma. v, r, s son los valores de la firma de la transacción, que se pueden utilizar para recuperar la dirección de la firma de la transacción. Una vez que el contrato recupera la dirección de la firma de la transacción, se compara con la dirección del propietario del token que se pasó; si son iguales, la verificación se aprueba y se continúa llamando a la función _updateApproval; si son diferentes, la transacción se revierte.

_función updateApproval:

Después de la verificación de la firma, se llama a la función _updateApproval para actualizar el valor de autorización, lo que significa que tus permisos han sido transferidos. En este momento, la parte autorizada puede llamar a la función transferfrom para transferir el token a la dirección especificada.

Al revisar los detalles de las transacciones reales en la cadena, se puede descubrir:

  • owner es la dirección de la billetera de pequeño A ( terminando en 308a)
  • En Detalles se puede ver la dirección del contrato del Token autorizado (USDT) y la información sobre la cantidad, etc.
  • Spender es la dirección de hacker con el número final fd51
  • sigDeadline es el tiempo de validez de la firma, signature es la información de la firma de Xiao A.

¿Te roban al firmar? Revelando el Lavado de ojos de la firma Permit2 de Uniswap

Al revisar el registro de interacción de Xiao A, se descubrió que Xiao A había hecho clic en el límite de autorización predeterminado al usar Uniswap, es decir, un límite casi ilimitado.

¿Firmar para ser robado? Revelando el Lavado de ojos de la firma de Uniswap Permit2

Resumen simple: El pequeño A autorizó a Uniswap Permit2 un límite ilimitado de USDT cuando usaba Uniswap anteriormente. Durante una operación en su billetera, el pequeño A cayó accidentalmente en una trampa de phishing diseñada por hackers que implicaba la firma de Permit2. Después de obtener la firma del pequeño A, el hacker realizó dos operaciones en el contrato de Permit2: Permit y Transfer From, transfiriendo los activos del pequeño A. Actualmente se observa que el contrato Permit2 de Uniswap se ha convertido en un paraíso de phishing, y este tipo de phishing con firma de Permit2 parece haber comenzado a activarse hace dos meses.

En los registros de interacción se puede ver que la mayoría son direcciones de phishing marcadas (Fake_Phishing), y constantemente hay personas que caen en la trampa.

¿Fui robado al firmar? Revelando el Lavado de ojos de la firma de Uniswap Permit2

¿Cómo prevenir?

Considerando que el contrato Uniswap Permit2 podría hacerse más popular en el futuro, más proyectos integrarán el contrato Permit2 para compartir autorizaciones, las medidas efectivas de prevención incluyen:

1. Comprender e identificar el contenido de la firma:

El formato de firma de Permit generalmente incluye elementos clave como Owner, Spender, value, nonce y deadline. Si deseas disfrutar de la conveniencia y el bajo costo que ofrece Permit2, es imprescindible aprender a reconocer este formato de firma. ( Descargar un plugin de seguridad es una buena opción ).

¿Firmar significa que te roban? Revelando el Lavado de ojos de firma de Uniswap Permit2

2. Separar el almacenamiento de activos y la billetera de interacción:

Si posee una gran cantidad de activos, se recomienda almacenar los activos en una billetera fría, manteniendo solo una pequeña cantidad de fondos en la billetera para interacciones en la cadena, lo que puede reducir significativamente las pérdidas en caso de caer en un Lavado de ojos.

3. Limitar la autorización del monto al contrato Permit2 o revocar la autorización:

Al realizar un Swap en Uniswap, solo autoriza la cantidad necesaria para la interacción. Aunque tener que autorizar de nuevo cada vez aumentará un poco los costos de interacción, se puede evitar ser víctima de un phishing de firma de Permit2. Si ya se ha autorizado un monto, se puede utilizar el complemento de seguridad correspondiente para revocar la autorización.

¿Te roban solo con firmar? Revelando el Lavado de ojos del phishing con la firma de Uniswap Permit2

4. Identificar la naturaleza del token, entender si admite la función permit:

En el futuro, es posible que cada vez más tokens ERC20 utilicen este protocolo de extensión para implementar la función de permiso. Es necesario prestar atención a si los tokens que posee admiten esta función; si es así, debe tener especial cuidado en las transacciones u operaciones con esos tokens, verificando rigurosamente si cada firma desconocida es una firma de la función de permiso.

5. Si hay tokens en otras plataformas después de ser víctima de un Lavado de ojos, es necesario elaborar un plan de rescate completo:

Al descubrir que has sido víctima de un Lavado de ojos, después de que un hacker haya transferido tus tokens, si aún tienes tokens en otras plataformas a través de métodos como el staking, necesitas extraerlos y transferirlos a una dirección segura. Debes saber que el hacker puede estar monitoreando en cualquier momento el saldo de tokens en tu dirección. Debido a que tiene tu firma, tan pronto como aparezcan tokens en la dirección robada, el hacker podrá transferirlos directamente. En este momento, es necesario establecer un proceso completo de rescate de tokens; durante los procesos de extracción y transferencia de tokens, deben ejecutarse simultáneamente para evitar que el hacker inserte transacciones. Se puede utilizar la transferencia MEV, lo que requiere ciertos conocimientos de blockchain y habilidades de programación, o también se puede buscar la ayuda de empresas de seguridad profesional para implementar scripts de 'frontrunning'.

El phishing basado en Permit2 podría aumentar en el futuro, este método de phishing por firma es extremadamente encubierto y difícil de prevenir. A medida que se amplía el alcance de Permit2, también aumentará el número de direcciones expuestas al riesgo. Espero que después de leer este artículo, se pueda difundir a más personas para evitar que más sufran pérdidas.

UNI-3.6%
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • 4
  • Compartir
Comentar
0/400
MetaLord420vip
· 07-31 15:37
Me robaron de nuevo y estoy muy asustado.
Ver originalesResponder0
CodeAuditQueenvip
· 07-31 15:37
Solo puedo decir que los contratos son como balas, no ven. Con un pequeño descuido, los activos caen a cero.
Ver originalesResponder0
MoonlightGamervip
· 07-31 15:29
¿Qué más se puede jugar si ya no quedan grandes cabezas en la Cadena de bloques?
Ver originalesResponder0
CounterIndicatorvip
· 07-31 15:27
trampa el dinero, ¿quién corre más rápido?
Ver originalesResponder0
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)