Todos los artículos
IntermedioSeguridad

Phishing de aprobación de tokens: el vaciador silencioso de wallets

El phishing de aprobación vacía una wallet sin tocar nunca la frase semilla. Firmas un permiso y, más tarde, el atacante mueve tus tokens. Así funciona y así te defiendes.

31 de julio de 2026
7 min de lectura

Profundiza con IA

Haz clic → prompt copiado → pégalo en el chat de IA

El phishing de aprobación vacía una wallet sin tocar nunca la frase semilla. Cuando "apruebas" (approve) un token para un smart contract, le concedes a ese contrato permiso para mover esos tokens en tu nombre. Los estafadores te engañan para que apruebes un contrato malicioso y luego, en el momento que eligen, se lo llevan todo. Tu frase de recuperación nunca queda expuesta: el robo es un permiso que tú mismo firmaste.

Esa es la respuesta corta. El resto de esta página explica la mecánica detrás de ese permiso, por qué algunas aprobaciones parecen completamente inofensivas y cómo cerrar la puerta.


Por qué una aprobación no es lo mismo que una transferencia

En Ethereum y en toda cadena EVM, los tokens ERC-20 no están "dentro" de tu wallet como el efectivo en un bolsillo. Los saldos viven dentro del contrato del token, asociados a tu dirección. Para permitir que una dApp — un DEX, un mercado de préstamos, una página de minteo — mueva tus tokens, envías una transacción approve que fija un allowance: la cantidad que el contrato gastador tiene permiso de retirar de ti.

Esto es normal y necesario. Uniswap no puede intercambiar tu USDC hasta que lo apruebes. El problema es que el allowance persiste después del intercambio. Sigue activo hasta que lo revocas o lo agotas. Y si el gastador es malicioso, el allowance es un derecho permanente de retiro sobre tu saldo.

Para los NFT el equivalente es setApprovalForAll. En lugar de una cantidad, activa un booleano que concede a un contrato permiso para mover cada NFT que tengas en esa colección — presente y futuro. Una firma, la colección entera.


Aprobaciones ilimitadas y firmas sin gas

Dos comodidades de diseño lo hacen mucho más peligroso de lo necesario.

La primera es la aprobación ilimitada. Para no pagar gas por una nueva aprobación antes de cada intercambio, la mayoría de las dApps solicitan por defecto 2^256 - 1 — un allowance prácticamente infinito. Cómodo, y a la vez un cheque en blanco. Si ese gastador alguna vez se ve comprometido o era malicioso desde el principio, puede vaciar todo el saldo de ese token, no solo la cantidad que querías intercambiar.

La segunda es Permit y Permit2. Permiten aprobar tokens firmando un mensaje fuera de la cadena en lugar de enviar una transacción en la cadena — una aprobación sin gas. Eso es precisamente lo que las hace peligrosas. Un sitio malicioso presenta algo que parece un inofensivo "firma para continuar" o "firma para iniciar sesión". Sin comisión de gas, sin transferencia visible, nada que grite "transacción". Pero esa firma es un permiso válido y reutilizable que permite al contrato del atacante retirar tus tokens más tarde. Muchos kits de drainer hoy inician el ataque con firmas Permit2 exactamente por esta razón.


Cómo te llega la estafa

El contrato es solo la mitad. El atacante todavía tiene que ponerte frente a la ventana de aprobación creyendo que es legítima. Los métodos de entrega comunes:

  • Sitios de minteo falsos — un "drop limitado" con cuenta atrás, donde el botón de minteo en realidad solicita setApprovalForAll o una firma Permit.
  • Reclamos de airdrop falsos — "eres elegible, conecta y reclama", donde reclamar aprueba un drainer.
  • dApps clonadas — una copia idéntica al pixel de un exchange o puente real en un dominio engañosamente parecido, a menudo impulsada mediante anuncios o un Discord secuestrado.
  • Ventanas de "validación de wallet" — un pop-up que afirma que tu wallet debe ser "verificada", "sincronizada" o "revalidada", que no es más que una aprobación disfrazada.

El hilo común es la urgencia más una petición de firma. Consulta los clones de sitios de phishing para saber cómo se falsifica el front-end, y los kits de drainer de wallets para conocer la industria detrás del back-end.


Qué concede realmente cada firma

Tipo de firma / aprobaciónQué concedeRiesgo
ERC-20 approve (limitada)El gastador puede retirar hasta una cantidad fijada de un tokenLimitado a esa cantidad
ERC-20 approve (ilimitada)El gastador puede retirar todo el saldo de un token, indefinidamentePérdida total de ese token
Firma Permit / Permit2Aprobación fuera de la cadena, sin gas — mismo poder que approve, a menudo ilimitadaAlto: parece una firma inofensiva
setApprovalForAll (NFT)El gastador puede mover cada NFT de una colección, ahora y en el futuroPérdida total de esa colección
Transacción de transferencia simpleMueve una cantidad concreta una sola vezVes exactamente qué sale

El patrón: cuanto más oculta una petición lo que autoriza — sin cantidad, sin transferencia visible, sin gas — más merece sospecha.


Cómo defenderte

  • Lee lo que firmas. Las wallets modernas decodifican las aprobaciones y los mensajes Permit. Si una ventana muestra setApprovalForAll, una cantidad ilimitada o un gastador que no reconoces, detente.
  • Prefiere aprobaciones limitadas. Cuando una dApp permite fijar un allowance personalizado, aprueba solo lo que necesita el intercambio. Cuesta un poco más de gas con el tiempo y elimina el cheque en blanco.
  • Usa una herramienta de revocación de aprobaciones. Los servicios de esta categoría — revoke.cash y los verificadores de aprobaciones de tokens de los exploradores de bloques (por ejemplo el de Etherscan) — listan cada allowance que tu dirección ha concedido y te permiten revocarlos.
  • Revoca periódicamente las aprobaciones obsoletas. Las aprobaciones de dApps que ya no usas son puro riesgo permanente. Elimínalas.
  • Mintea desde una hot wallet separada. Mantén una wallet con saldo pequeño para mintear y reclamar. Si aprueba algo malo, la pérdida está acotada. Nunca mintees desde la wallet que guarda tus fondos principales.

Los límites honestos

Revocar no es gratis. Cada revocación es una transacción en la cadena y cuesta gas, por lo que la gente deja que las aprobaciones se acumulen.

Más importante aún, esto solo protege contra un robo futuro. Si un drainer ya retiró tus tokens, revocar no sirve de nada: una transferencia ejecutada no se puede revertir. La ventana para actuar es antes de que el atacante active el retiro, no después.

Y un punto que sorprende: una wallet de hardware no detiene esto. Las wallets de hardware protegen la clave privada frente a su extracción. No te impiden firmar una aprobación maliciosa, porque la firmas voluntariamente. El dispositivo muestra la ventana, tú la confirmas. La única defensa es entender qué autoriza la ventana — que es también la última línea de defensa para la seguridad de tu frase semilla.


FAQ

¿Puede el phishing de aprobación robar mis criptos sin mi frase semilla? Sí. Ese es todo el mecanismo. Nunca revelas la frase. Firmas una aprobación o un mensaje Permit que concede a un contrato permiso para mover tus tokens, y el atacante usa ese permiso más tarde. La frase semilla permanece privada todo el tiempo.

¿Qué es una aprobación ilimitada? Un allowance fijado al valor máximo posible, de modo que el contrato gastador puede mover todo tu saldo de ese token, de forma repetida, sin límite ni caducidad. Muchas dApps la solicitan por defecto para ahorrarte gas — pero es un cheque en blanco si el gastador resulta ser malicioso.

¿Son peligrosas las firmas Permit sin gas? Pueden serlo. Una firma Permit o Permit2 lleva la misma autoridad que una aprobación en la cadena, pero llega como una simple ventana de "firma este mensaje" sin comisión de gas, así que parece inofensiva. Trata cualquier petición de firma que mencione un token, un gastador o un Permit tan en serio como una transacción.

¿Cómo revoco las aprobaciones de tokens? Conecta tu wallet a una herramienta de revocación de aprobaciones como revoke.cash, o usa el verificador de aprobaciones de tokens de tu explorador de bloques (por ejemplo en Etherscan). Revisa la lista de allowances que tu dirección ha concedido y revoca todo lo que sea ilimitado, desconocido o pertenezca a una dApp que ya no uses. Cada revocación cuesta gas.

Lee también

¿Te gustó este artículo? ¡Sígueme!

@t0tty3
#approval-phishing#wallet-drainer#scams#erc20#wallet-security#permit2

Profundiza con IA

Haz clic → prompt copiado → pégalo en el chat de IA