AMLConsensus · curso
Programa · Lección 7.8
Sección 7 · Lección 7.8

Phishing de aprobaciones y drainers: cómo se roba a través de una firma

El robo más pérfido en cripto es aquel en el que la víctima autoriza la retirada de sus propios fondos. Ninguna contraseña robada, ninguna cartera hackeada: la persona firma una transacción con sus propias manos y un segundo después la cartera está vacía. Esto es el phishing de aprobaciones y los drainers, una industria que en 2023–2026 se llevó cientos de millones de dólares de los usuarios. Para proteger a la gente y clasificar correctamente esas direcciones, un analista debe entender la mecánica de los permisos approve y permit.

Qué es approve y para qué sirve

En redes como Ethereum, los tokens (USDT, USDC y otros) son contratos inteligentes. Para que una aplicación (un DEX, staking, un juego) pueda manejar tus tokens, le concedes un permiso (approval): firmas una transacción approve que le dice al contrato del token «permite a esta dirección gastar mis tokens hasta tal cantidad». Es un mecanismo estándar y necesario: sin él DeFi no funcionaría.

Dónde se esconde la trampa. Un permiso puede concederse por una cantidad ilimitada (unlimited approval): así es más cómodo, no hace falta volver a pedirlo cada vez. Y un permiso no tiene caducidad: se queda ahí hasta que lo revocas. El estafador va a por una sola cosa: que firmes un approve ilimitado a su contrato. Después de eso, puede retirar todos tus tokens de ese tipo en cualquier momento, sin nuevas confirmaciones por tu parte.

La mecánica de un drainer paso a paso

Un drainer es un conjunto ya hecho de scripts que los estafadores alquilan como servicio (drainer-as-a-service) e instalan en sitios falsos. Aquí un escenario típico.

  1. El cebo. La víctima ve un «reparto de tokens», un «mint de un NFT raro», una «reclamación de recompensa» o un sitio falso de un proyecto conocido. El enlace llega desde un anuncio, un Twitter/Discord hackeado o un comentario.
  2. Conectar la cartera. La persona hace clic en «Connect Wallet»: en sí es seguro, pero genera confianza y le muestra al drainer qué tokens hay en el saldo.
  3. La petición de «confirmar». El sitio ofrece firmar una transacción bajo la apariencia de «recibir la recompensa», «verificar tu cartera», «activar tu cuenta». En realidad es un approve o un permit al contrato del estafador.
  4. La firma de la víctima. La persona no lee qué firma exactamente (o no lo entiende) y hace clic en «Confirmar». El permiso queda concedido.
  5. La retirada. El drainer, de inmediato (o con retraso, para no espantar a la víctima), llama a transferFrom y retira todos los tokens aprobados a la dirección del atacante.
  6. Blanqueo. Lo recaudado de cientos de víctimas se consolida en direcciones recolectoras y se mueve a través de mezcladores y puentes.
Sitio falso
«reclamación de recompensa»
→
La víctima firma approve/permit
→
transferFrom → cartera vaciada

Permit: una firma sin comisión, aún más pérfida

Un approve ordinario es una transacción: se paga gas por ella y es visible en el historial. El estándar permit (EIP-2612) y el relacionado Permit2 permiten conceder un permiso mediante una simple firma de mensaje off-chain, sin transacción y sin comisión. Al usuario le parece un inofensivo «firma para iniciar sesión». Precisamente por eso el phishing con permit es especialmente peligroso.

El peligro de una firma permit. Una firma off-chain no cuesta gas, no aparece en el historial de transacciones hasta el momento en que se usa y parece inocente. La víctima cree que «solo inició sesión en un sitio», cuando de hecho le ha concedido al estafador el derecho a retirar los tokens. Lee siempre qué firmas exactamente: si la ventana de la cartera muestra las palabras Permit, spender, una dirección desconocida y grandes cantidades, eso es una alarma.

Cómo se ve en el grafo y cómo clasificarlo

Para un analista AML, la dirección de un drainer tiene una letra reconocible.

En qué se diferencia de otros robos. En un hackeo de protocolo (Lección 7.7) sufre el contrato; en el phishing de aprobaciones sufren miles de carteras corrientes una a una. La fuente de la suciedad aquí no es un bug de código sino la ingeniería social: la víctima lo firmó ella misma. Pero la exposición desde una dirección de drainer es igual de tóxica, y un exchange congelará los fondos que lleguen desde ella.

Protección: cómo no ser víctima y qué hacer después

  1. Lee la ventana de firma. La cartera muestra qué apruebas: el tipo de acción (Approve/Permit), a quién (spender) y cuánto. Una dirección desconocida + «Unlimited» = no firmes.
  2. No concedas approval ilimitado. Donde sea posible, limita la cantidad del permiso a la cantidad exacta de la operación.
  3. Revisa y revoca los permisos con regularidad. Los servicios revoker muestran todas las aprobaciones activas de una cartera; las innecesarias y antiguas deben revocarse.
  4. Una cartera «caliente» aparte. Para interactuar con sitios nuevos, ten una cartera con poco saldo; guarda los fondos principales en una cartera separada/hardware.
  5. Verifica el dominio. Los drainers viven en dominios falsos de aspecto parecido. Entra por marcadores, no por enlaces de anuncios ni mensajes privados.
  6. Si ya firmaste. Revoca el permiso de inmediato: es una carrera contra el tiempo. Mueve los remanentes valiosos a una cartera nueva y limpia. Considera la dirección comprometida como «quemada».
Revocar no devuelve lo robado. Revocar cierra el permiso para el futuro, pero los tokens ya retirados no se pueden recuperar. Por eso la defensa principal es no firmar. Y recuerda: un reparto genuino nunca requiere que firmes un approve sobre tus propios tokens; una «reclamación» de recompensa segura no necesita acceso a tu saldo.

Las conclusiones principales

Este material tiene fines educativos y no constituye asesoramiento de seguridad para ningún caso concreto.