Revelación: Lavado de ojos de firma de Uniswap Permit2
Los hackers son una presencia aterradora en el ecosistema Web3. Para los desarrolladores de proyectos, el código abierto significa que hackers de todo el mundo pueden tenerte en la mira, y una vez que se presenta una vulnerabilidad de seguridad, las consecuencias pueden ser difíciles de soportar. Para los usuarios individuales, si no comprenden 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 siempre han sido uno de los desafíos 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 dominar los conocimientos de seguridad en el mundo de las criptomonedas.
Recientemente, ha comenzado a activarse un nuevo método de phishing, que roba fondos simplemente con la firma, siendo este método extremadamente encubierto y difícil de prevenir. Las direcciones que han interactuado con Uniswap podrían estar en riesgo. Este artículo tiene como objetivo educar sobre este método de phishing por firma, para evitar más pérdidas de activos.
Desarrollo del evento
Recientemente, un amigo ( llamado temporalmente Xiao A ) tuvo sus activos de billetera robados. A diferencia de los métodos comunes de robo, Xiao A no reveló su clave privada ni interactuó con contratos de sitios de phishing.
El explorador de blockchain muestra que el USDT en la billetera de Xiao A fue transferido a través de la función Transfer From. Esto significa que otra dirección realizó la operación para mover el Token, y no que se filtró la clave privada de la billetera.
Detalles de la transacción:
La dirección que termina en fd51 ha transferido los activos de Xiao A a la dirección que termina en a0c8.
Esta operación interactúa con el contrato Permit2 de Uniswap.
La cuestión clave es: ¿cómo obtiene la dirección que termina en fd51 los derechos sobre este activo? ¿Por qué está relacionado con Uniswap?
Una investigación más profunda revela que, antes de transferir los activos de A, la dirección que termina en fd51 realizó una operación de Permiso, y ambos operaciones interactuaron con el contrato Permit2 de Uniswap.
Uniswap Permit2 es un nuevo contrato lanzado a finales de 2022, que permite la autorización de tokens para compartir y gestionar en diferentes aplicaciones, con el objetivo de crear una experiencia de usuario más unificada, rentable y segura. A medida que más proyectos integren Permit2, se puede lograr la aprobación estandarizada de tokens en todas las aplicaciones, reduciendo los costos de transacción y mejorando la seguridad de los contratos inteligentes.
Permit2 actúa como intermediario entre el usuario y las Dapps, el usuario solo necesita autorizar el permiso de tokens al contrato Permit2, todas las Dapps que integren Permit2 pueden compartir este límite de autorización. Esto reduce el costo de interacción del usuario y mejora la experiencia. Pero también es una espada de doble filo, el problema radica en la forma de interactuar con Permit2.
En los métodos de interacción tradicionales, la autorización y la transferencia de fondos son interacciones en la cadena del usuario. Permit2 transforma las operaciones del usuario en firmas fuera de la cadena, y todas las operaciones en la cadena son realizadas por un rol intermedio. El beneficio de esto es que, incluso si la billetera del usuario no tiene ETH, se pueden usar otros tokens para pagar las tarifas de Gas o ser reembolsadas por el rol intermedio.
Sin embargo, la firma fuera de la cadena es el aspecto que los usuarios más tienden a pasar por alto. Muchas personas no revisan cuidadosamente el contenido de la firma y no comprenden su significado, lo cual es el lugar más peligroso.
Para activar esta firma de phishing Permit2, la clave es que la billetera que ha sido víctima del phishing debe haber autorizado el Token al contrato Permit2 de Uniswap. Actualmente, para realizar un Swap en una Dapp que integre Permit2 o en Uniswap, es necesario autorizar al contrato Permit2.
Lo más aterrador es que, independientemente de la cantidad de Swap, el contrato Permit2 de Uniswap siempre permitirá que los usuarios autoricen el saldo total de ese Token. Aunque MetaMask permite ingresar una cantidad personalizada, la mayoría de las personas puede optar directamente por el valor máximo o el valor predeterminado, y el valor predeterminado de Permit2 es un límite infinito.
Esto significa que, siempre que hayas interactuado con Uniswap después de 2023 y hayas autorizado un monto al contrato Permit2, podrías enfrentar el riesgo de este lavado de ojos.
La clave está en la función Permit, que permite a los hackers utilizar tu firma para transferir el límite de tokens que autorizaste al contrato Permit2 a otras direcciones. Tan pronto como obtienen tu firma, los hackers pueden obtener el permiso de los tokens en tu billetera y transferir activos.
Análisis detallado del evento
Flujo de trabajo de la función permit:
Verifique si la hora actual supera el plazo de validez de la firma (sigDeadline)
Verificar la autenticidad de la firma
Si a través de la verificación, actualizas los registros que permiten a otros usar tus tokens
El enfoque está en la función verify y la función _updateApproval.
La función verify obtiene los tres datos v, r, s de la información de la firma, utilizados para recuperar la dirección de firma de la transacción. El contrato compara la dirección recuperada con la dirección del propietario del token que se pasa; si son iguales, la verificación se aprueba y se continúa llamando a la función _updateApproval; si son diferentes, se revierte la transacción.
La función _updateApproval actualiza el valor de autorización después de verificar la firma, lo que significa que tus permisos han sido transferidos. En este momento, la parte autorizada puede llamar a la función transferfrom para transferir tokens a la dirección especificada.
Transacciones reales en la cadena muestran:
owner es la dirección de la billetera de Xiao A ( terminando en 308a)
En Detalles se puede ver la dirección del contrato del Token autorizado (USDT) y la información como el monto.
Spender es la dirección del hacker con el número de final fd51
sigDeadline es el tiempo de validez de la firma, signature es la información de firma de Xiao A.
Al revisar el registro de interacción de Xiao A, se descubrió que anteriormente al usar Uniswap, hizo clic en el límite de autorización predeterminado, es decir, un límite casi infinito.
Revisión simple: El pequeño A anteriormente autorizó un límite ilimitado de USDT a Permit2 al usar Uniswap. Más tarde, al operar su billetera, cayó accidentalmente en una trampa de phishing diseñada por un hacker que involucraba firmas de Permit2. Después de obtener la firma del pequeño A, el hacker realizó operaciones de Permitir y Transferir desde en el contrato de Permit2, trasladando los activos del pequeño A. Actualmente, el contrato de Permit2 de Uniswap parece haberse convertido en un caldo de cultivo para el phishing, esta técnica de phishing por firma comenzó a ser activa hace aproximadamente dos meses.
¿Cómo prevenir?
Considerando que el contrato Uniswap Permit2 podría volverse más popular en el futuro, más proyectos pueden integrarlo para compartir autorizaciones, las medidas efectivas de prevención incluyen:
Comprender e identificar el contenido de la firma:
El formato de firma de Permit generalmente incluye información clave como Owner, Spender, value, nonce y deadline. Si deseas disfrutar de las ventajas y bajos costos que ofrece Permit2, debes aprender a reconocer este formato de firma. Utilizar un complemento de seguridad es una buena opción.
Separación del uso de la billetera de activos y la billetera de interacción:
Si posees una gran cantidad de activos, se recomienda almacenar los activos principales en una billetera fría, y mantener solo una pequeña cantidad de fondos en la billetera de interacción en cadena, lo que puede reducir significativamente las pérdidas en caso de encontrar un Lavado de ojos.
Limitar el monto autorizado al contrato Permit2 o revocar la autorización:
Al realizar un Swap en Uniswap, autoriza solo la cantidad necesaria para la interacción. Aunque volver a autorizar cada vez aumentará los costos, puede evitar ser víctima de un engaño de firma Permit2. Si se ha autorizado un límite, se puede utilizar un complemento de seguridad para revocar la autorización.
Identificar la naturaleza del token, entender si soporta la función de permiso:
En el futuro, es posible que más tokens ERC20 implementen la función de permiso. Debes prestar atención a si los tokens que posees son compatibles con esta función; si es así, debes ser especialmente cauteloso en las transacciones o acciones, revisando rigurosamente cada firma desconocida para asegurarte de que se dirige a la función de permiso.
Si después de ser víctima de un Lavado de ojos todavía hay tokens en otras plataformas, se debe elaborar un plan de rescate completo:
Al descubrir que has sido víctima de un Lavado de ojos, si aún tienes tokens en otras plataformas a través de staking u otros métodos, debes retirar y transferir con precaución, ya que los hackers pueden estar monitoreando el saldo de tu dirección en cualquier momento. Establece un proceso completo de rescate de tokens, asegurando que la extracción y la transferencia se realicen simultáneamente para prevenir la inserción de transacciones por parte de hackers. Considera utilizar transferencias MEV o buscar la asistencia de empresas de seguridad profesional como el equipo de Beosin.
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 uso de Permit2, también aumentará el número de direcciones expuestas al riesgo. Espero que los lectores compartan este artículo con más personas para evitar que más personas sufran pérdidas.
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.
10 me gusta
Recompensa
10
8
Republicar
Compartir
Comentar
0/400
DeFiGrayling
· hace4h
La seguridad es realmente muy clave.
Ver originalesResponder0
TokenSleuth
· hace4h
Testigo de primera mano de la tragedia. Este tipo de estafa es realmente difícil de prevenir.
Ver originalesResponder0
NotFinancialAdviser
· 08-10 23:39
Una vez más, soy yo el que carga con la responsabilidad del riesgo de uni.
Ver originalesResponder0
BlockTalk
· 08-10 15:17
¿Otra vez atrapado o robado?
Ver originalesResponder0
AirdropChaser
· 08-10 15:16
¿Hay alguna forma de recuperarlo? Es realmente trágico.
Ver originalesResponder0
ZenChainWalker
· 08-10 15:06
Ah, otra nueva estafa, más vale morir joven y ser cómplice.
Ver originalesResponder0
AirdropHunterZhang
· 08-10 15:05
Ay, después de haber aprovechado tanto tiempo, definitivamente hay que pagar, he cambiado demasiado en uniV3.
Ver originalesResponder0
LiquidationAlert
· 08-10 14:50
Después de ver tantas vulnerabilidades en los protocolos, realmente no me atrevo a firmar.
Nueva estafa de phishing de firma Uniswap Permit2: guía de identificación de riesgos y prevención
Revelación: Lavado de ojos de firma de Uniswap Permit2
Los hackers son una presencia aterradora en el ecosistema Web3. Para los desarrolladores de proyectos, el código abierto significa que hackers de todo el mundo pueden tenerte en la mira, y una vez que se presenta una vulnerabilidad de seguridad, las consecuencias pueden ser difíciles de soportar. Para los usuarios individuales, si no comprenden 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 siempre han sido uno de los desafíos 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 dominar los conocimientos de seguridad en el mundo de las criptomonedas.
Recientemente, ha comenzado a activarse un nuevo método de phishing, que roba fondos simplemente con la firma, siendo este método extremadamente encubierto y difícil de prevenir. Las direcciones que han interactuado con Uniswap podrían estar en riesgo. Este artículo tiene como objetivo educar sobre este método de phishing por firma, para evitar más pérdidas de activos.
Desarrollo del evento
Recientemente, un amigo ( llamado temporalmente Xiao A ) tuvo sus activos de billetera robados. A diferencia de los métodos comunes de robo, Xiao A no reveló su clave privada ni interactuó con contratos de sitios de phishing.
El explorador de blockchain muestra que el USDT en la billetera de Xiao A fue transferido a través de la función Transfer From. Esto significa que otra dirección realizó la operación para mover el Token, y no que se filtró la clave privada de la billetera.
Detalles de la transacción:
La cuestión clave es: ¿cómo obtiene la dirección que termina en fd51 los derechos sobre este activo? ¿Por qué está relacionado con Uniswap?
Una investigación más profunda revela que, antes de transferir los activos de A, la dirección que termina en fd51 realizó una operación de Permiso, y ambos operaciones interactuaron con el contrato Permit2 de Uniswap.
Uniswap Permit2 es un nuevo contrato lanzado a finales de 2022, que permite la autorización de tokens para compartir y gestionar en diferentes aplicaciones, con el objetivo de crear una experiencia de usuario más unificada, rentable y segura. A medida que más proyectos integren Permit2, se puede lograr la aprobación estandarizada de tokens en todas las aplicaciones, reduciendo los costos de transacción y mejorando la seguridad de los contratos inteligentes.
Permit2 actúa como intermediario entre el usuario y las Dapps, el usuario solo necesita autorizar el permiso de tokens al contrato Permit2, todas las Dapps que integren Permit2 pueden compartir este límite de autorización. Esto reduce el costo de interacción del usuario y mejora la experiencia. Pero también es una espada de doble filo, el problema radica en la forma de interactuar con Permit2.
En los métodos de interacción tradicionales, la autorización y la transferencia de fondos son interacciones en la cadena del usuario. Permit2 transforma las operaciones del usuario en firmas fuera de la cadena, y todas las operaciones en la cadena son realizadas por un rol intermedio. El beneficio de esto es que, incluso si la billetera del usuario no tiene ETH, se pueden usar otros tokens para pagar las tarifas de Gas o ser reembolsadas por el rol intermedio.
Sin embargo, la firma fuera de la cadena es el aspecto que los usuarios más tienden a pasar por alto. Muchas personas no revisan cuidadosamente el contenido de la firma y no comprenden su significado, lo cual es el lugar más peligroso.
Para activar esta firma de phishing Permit2, la clave es que la billetera que ha sido víctima del phishing debe haber autorizado el Token al contrato Permit2 de Uniswap. Actualmente, para realizar un Swap en una Dapp que integre Permit2 o en Uniswap, es necesario autorizar al contrato Permit2.
Lo más aterrador es que, independientemente de la cantidad de Swap, el contrato Permit2 de Uniswap siempre permitirá que los usuarios autoricen el saldo total de ese Token. Aunque MetaMask permite ingresar una cantidad personalizada, la mayoría de las personas puede optar directamente por el valor máximo o el valor predeterminado, y el valor predeterminado de Permit2 es un límite infinito.
Esto significa que, siempre que hayas interactuado con Uniswap después de 2023 y hayas autorizado un monto al contrato Permit2, podrías enfrentar el riesgo de este lavado de ojos.
La clave está en la función Permit, que permite a los hackers utilizar tu firma para transferir el límite de tokens que autorizaste al contrato Permit2 a otras direcciones. Tan pronto como obtienen tu firma, los hackers pueden obtener el permiso de los tokens en tu billetera y transferir activos.
Análisis detallado del evento
Flujo de trabajo de la función permit:
El enfoque está en la función verify y la función _updateApproval.
La función verify obtiene los tres datos v, r, s de la información de la firma, utilizados para recuperar la dirección de firma de la transacción. El contrato compara la dirección recuperada con la dirección del propietario del token que se pasa; si son iguales, la verificación se aprueba y se continúa llamando a la función _updateApproval; si son diferentes, se revierte la transacción.
La función _updateApproval actualiza el valor de autorización después de verificar la firma, lo que significa que tus permisos han sido transferidos. En este momento, la parte autorizada puede llamar a la función transferfrom para transferir tokens a la dirección especificada.
Transacciones reales en la cadena muestran:
Al revisar el registro de interacción de Xiao A, se descubrió que anteriormente al usar Uniswap, hizo clic en el límite de autorización predeterminado, es decir, un límite casi infinito.
Revisión simple: El pequeño A anteriormente autorizó un límite ilimitado de USDT a Permit2 al usar Uniswap. Más tarde, al operar su billetera, cayó accidentalmente en una trampa de phishing diseñada por un hacker que involucraba firmas de Permit2. Después de obtener la firma del pequeño A, el hacker realizó operaciones de Permitir y Transferir desde en el contrato de Permit2, trasladando los activos del pequeño A. Actualmente, el contrato de Permit2 de Uniswap parece haberse convertido en un caldo de cultivo para el phishing, esta técnica de phishing por firma comenzó a ser activa hace aproximadamente dos meses.
¿Cómo prevenir?
Considerando que el contrato Uniswap Permit2 podría volverse más popular en el futuro, más proyectos pueden integrarlo para compartir autorizaciones, las medidas efectivas de prevención incluyen:
Separación del uso de la billetera de activos y la billetera de interacción: Si posees una gran cantidad de activos, se recomienda almacenar los activos principales en una billetera fría, y mantener solo una pequeña cantidad de fondos en la billetera de interacción en cadena, lo que puede reducir significativamente las pérdidas en caso de encontrar un Lavado de ojos.
Limitar el monto autorizado al contrato Permit2 o revocar la autorización: Al realizar un Swap en Uniswap, autoriza solo la cantidad necesaria para la interacción. Aunque volver a autorizar cada vez aumentará los costos, puede evitar ser víctima de un engaño de firma Permit2. Si se ha autorizado un límite, se puede utilizar un complemento de seguridad para revocar la autorización.
Identificar la naturaleza del token, entender si soporta la función de permiso: En el futuro, es posible que más tokens ERC20 implementen la función de permiso. Debes prestar atención a si los tokens que posees son compatibles con esta función; si es así, debes ser especialmente cauteloso en las transacciones o acciones, revisando rigurosamente cada firma desconocida para asegurarte de que se dirige a la función de permiso.
Si después de ser víctima de un Lavado de ojos todavía hay tokens en otras plataformas, se debe elaborar un plan de rescate completo: Al descubrir que has sido víctima de un Lavado de ojos, si aún tienes tokens en otras plataformas a través de staking u otros métodos, debes retirar y transferir con precaución, ya que los hackers pueden estar monitoreando el saldo de tu dirección en cualquier momento. Establece un proceso completo de rescate de tokens, asegurando que la extracción y la transferencia se realicen simultáneamente para prevenir la inserción de transacciones por parte de hackers. Considera utilizar transferencias MEV o buscar la asistencia de empresas de seguridad profesional como el equipo de Beosin.
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 uso de Permit2, también aumentará el número de direcciones expuestas al riesgo. Espero que los lectores compartan este artículo con más personas para evitar que más personas sufran pérdidas.