L'approval phishing est le pattern dominant de drain de wallet sur les chaînes EVM.
Le mécanisme repose sur la fonction approve() de l'ERC-20 (et ses équivalents NFT : setApprovalForAll, approve de l'ERC-721). Quand vous approvez un contrat sur un token, vous donnez à ce contrat le droit de bouger vos tokens. Si vous approvez un contrat malicieux, l'attaquant peut drainer vos tokens à n'importe quel moment ensuite, souvent des mois plus tard.
Symptômes dans l'UI du wallet : un prompt qui demande d'approve, pas de swap ni transfer. L'adresse du contrat est inconnue. Le montant est « unlimited » (type(uint256).max).
Défenses :
- Lisez ce que vous signez. Le hardware wallet affiche la fonction appelée.
approve, ce n'est passwap. - Révoquez vos approvals. Des outils comme Revoke.cash listent toutes les approvals actives sur votre adresse et permettent de les révoquer.
- Utilisez des allowances limitées quand le contrat le supporte.
- Utilisez un wallet différent pour interagir avec des dApps inconnues, distinct de celui qui détient votre trésorerie.