Análisis de firmas de permisos: ¿las firmas fuera de la cadena también pueden capturar su token?

Al interactuar con DApps, los usuarios deben prestar atención a controlar la cantidad de tokens autorizados, verificar el contenido de la firma y las situaciones de autorización anormales.

Escrito por: Lisa

fondo

El 11 de mayo, el usuario de Twitter "pineapple.eth" tuiteó que le robaron la billetera debido a un clic erróneo en un sitio web de phishing (syncswap[.]network), y perdió más de $100.

(

Aunque la cantidad de la pérdida no es grande, hay un gran riesgo de seguridad oculto en ella. Las víctimas a menudo pierden grandes activos debido al riesgo de firma "discreto" de "no poder ver". Es por eso que escribimos este artículo.

Según la descripción de la víctima, las transacciones robadas son las siguientes:

(

(

De estas dos transacciones, la persona que llama por contrato (0x00002…d0000) transfiere 34,87 USDC en la dirección de la víctima (0xA4089…82C3) a (0x8256…D6B8) y transfiere 81,36 USDC a (0x5A69…1C17). Si solo observa la función transferFrom, no es difícil encontrar que la función de esta función es permitir que un tercero inicie una transacción para transferir los activos digitales relevantes de la cuenta del propietario a la cuenta del destinatario.

Luego, analice la dirección de la persona que llama por contrato (0x00002...d0000) y descubra que hay una operación de permiso adicional, que no está en los registros de transacciones de la víctima. ¿Cuál es el papel del permiso?

(

¿Qué es un Permiso?

Según la presentación oficial, el permiso se introdujo en el protocolo ERC20 en EIP-2612, y los usuarios pueden interactuar con el contrato de la aplicación adjuntando una firma de autorización (permiso) sin autorización previa. Específicamente, todos sabemos que en la transacción de la moneda ERC20, A puede llamar a la función de aprobar para autorizar a B, es decir, autorizar el token especificado por A a otra cuenta para operar, y debe ser el propietario de esta cuenta para llamar a aprobar. función. La función de la función de permiso es que A firma el objeto de autorización por adelantado bajo la cadena e informa a B de la firma obtenida, y B puede usar esta firma para llamar al permiso para realizar la operación de autorización de A (use transferFrom para transferir el permiso ), A puede transferir el token especificado sin enviar la transacción, y sea o no el propietario de la cuenta, puede ejecutar el permiso para autorizar la operación. Además, Uniswap ha lanzado un nuevo Permit2 estándar de autorización de Token.

La siguiente es una comparación entre aprobar y permitir:

función aprobar (dirección usr, uint wad) devoluciones externas (bool)

{

asignación[mensaje.remitente] [usr] = taco;

}

permiso de función (

titular de la dirección, gastador de la dirección,

uint256 nonce, caducidad de uint256, bool permitido,

uint8 v, bytes32 r, bytes32 s

) externo {

prestación [holder] [spender] = taco;

}

Después de comprender los conceptos básicos y luego volver al evento de phishing en sí, puede enviar esta función de permiso con 7 parámetros:

  • propietario: dirección autorizada
  • gastador: Quien está autorizado a
  • valor: el número de tokens autorizados entregados
  • fecha límite: es una marca de tiempo, válida solo antes de la hora dada
  • v, r, s: datos de la firma

Entre ellos, la fecha límite es 1714509304969, y el valor es 116239404, lo que significa que la autorización es válida hasta las 0:42 del 22 de agosto 56300 (GMT), casi indefinidamente. Y la cantidad de tokens autorizados es 116.239404 USDC, que es la misma cantidad robada por la víctima. Los valores de v, r y s son los datos de la firma después de que el usuario (propietario) firme en el sitio web de phishing, y la función de permiso verificará la validez de los datos de la firma. Después de pasar la verificación de la firma, el token del usuario se autorizará al hacker (gastador).

Todo el proceso es muy claro: la víctima firmó la firma y la envió al sitio web de phishing pero no la subió a la cadena.Después de obtener la información de la firma, el hacker presentó el permiso en la cadena, es decir, pidió aprobación para autorización . La firma se realiza fuera de la cadena sin gastar gasolina. Pero debe quedar claro que aquí no hay gas no significa que no haya consumo de gas, sino que el firmante (víctima) no necesita pagar gas por autorización y transferencia.

Sin duda, al igual que aprobar el phishing autorizado, es más peligroso autorizar que aprobar el phishing autorizado, al fin y al cabo, mientras se roba la firma, se obtiene la autorización. Por ejemplo, la función de orden pendiente en dex solo necesita que el usuario firme un determinado mensaje, y el usuario puede confiar el activo a dex para que lo procese sin pagar gasolina. Los activos del usuario pueden perderse. Hasta donde sabemos, algunas billeteras descodificarán y mostrarán la información de la firma del phishing de autorización de aprobación, pero la billetera casi no tiene advertencias para el phishing de firma de permiso, y los usuarios corren un mayor riesgo de ser atacados. Al mismo tiempo, la firma del permiso es un comportamiento fuera de la cadena y es difícil para los usuarios notar si sus firmas se han filtrado.

Rastreo de niebla

Actualmente, la dirección del hacker ha sido marcada como una dirección de phishing maliciosa por MistTrack.

Dirección 1: 0x00002644e79602F056B03235106A9963826d0000

Dirección 2: 0x82563Ba592986Cb277d67B2E7c56ab3BB3FDD6B8

Dirección 3: 0x5A697967F0791d12db8A0f92344Abc6DD07a1C17

Ambos USDC de la víctima fueron intercambiados por ETH.

Usando MistTrack para analizar ETH, WBTC, USDT, USDC, SHIB, DAI, WETH, DAI, stETH, APE, la ganancia actual de la dirección 1 es de aproximadamente 120 000 dólares estadounidenses, la ganancia de la dirección 2 es de aproximadamente 200 000 dólares estadounidenses y la ganancia de domicilio 3 Alrededor de $2,000. Además, según el análisis de Scam Sniffer, una plataforma antifraude de Web3, al 9 de mayo, un total de más de 300 víctimas han sido robadas alrededor de US$690.000 en activos por firmas maliciosas basadas en Permit2. en Uniswap hasta el 9 de mayo Hasta el momento, casi 670 000 direcciones en la red principal de Ethereum han autorizado Permit2. Por supuesto, estos datos son solo la punta del iceberg de la imagen completa de esta pandilla.

Resumir

Este artículo comienza principalmente con un caso real de robo e introduce el riesgo de la firma del permiso. El equipo de seguridad de SlowMist le recuerda que no abra sitios web de origen desconocido para operar a voluntad. Al interactuar con DApps, preste atención a controlar la cantidad de Tokens autorizados para el contrato y verifique cuidadosamente el contenido de la firma. Use herramientas de autorización como RevokeCash desde el momento a tiempo (verifique si hay una autorización anormal, y también puede usar la herramienta de administración de autorizaciones para Uniswap Permit2 (para verificar, si hay alguna autorización anormal, cancele la autorización a tiempo).

Enlace de referencia:

Ver originales
El contenido es solo de referencia, no una solicitud u oferta. No se proporciona asesoramiento fiscal, legal ni de inversión. Consulte el Descargo de responsabilidad para obtener más información sobre los riesgos.
  • Recompensa
  • Comentar
  • Compartir
Comentar
0/400
Sin comentarios
  • Anclado
Comercie con criptomonedas en cualquier lugar y en cualquier momento
qrCode
Escanee para descargar la aplicación Gate.io
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)