Les informations fournies dans cet article sont à titre informatif uniquement et ne constituent pas un conseil financier. Investir dans les crypto-monnaies comporte un niveau de risque élevé.
La plupart des portefeuilles vidés n’ont jamais été piratés. Personne n'a deviné la graine, personne n'a cambriolé un appareil. Les propriétaires ont appuyé sur « confirmer » eux-mêmes et, ce faisant, ont permis au contrat d'un étranger de déplacer ses jetons quand il le souhaitait.
C’est la différence décisive avec tout ce que vous avez lu sur la sécurité des portefeuilles : un draineur de portefeuille n’a pas besoin de votre clé privée. Tout ce dont il a besoin, c'est d'une approbation que vous avez accordée une fois. Il n’expire pas, son montant est souvent illimité et n’apparaît pas dans l’historique de vos transactions. Cela ne devient visible que lorsque vous recherchez volontairement des approbations ouvertes.
Les points clés en un coup d'œil
- Les approbations de jetons selon la norme ERC-20 ont pas de date d'expirationcar la norme n’en prévoit aucun. Le montant de l'approbation est déterminé par l'application, et beaucoup entrent par défaut dans un plafond pratiquement illimité.
- Un draineur de portefeuille exploite exactement cela : il n’a besoin d’aucune graine, seulement d’une approbation confirmée.
- Depuis EIP-2612 (« Permis »), un signature sans transaction de votre part est suffisant pour cela. Il ne vous coûte pas d'essence et n'apparaît pas dans votre historique.
- Une approbation au sens décrit ici n'existe que pour les jetons. Cela ne garantit pas la sécurité de votre ETH : depuis EIP-7702, une seule signature délègue votre adresse au contrat d'un étranger, qui déplace ensuite également l'ETH natif.
- Les anciennes approbations peuvent être révoquées individuellement, via le vérificateur d'approbation de jeton de l'explorateur de blocs concerné ou un outil de révocation.
- Après un incident, l'ordre compte : révoquez d'abord chaque approbation, puis déplacez ce qui reste dans un nouveau portefeuille.
Qu'est-ce qu'une approbation et pourquoi le draineur de portefeuille en a besoin
Lorsque vous échangez un jeton sur un échange, deux choses se produisent. Tout d’abord, vous autorisez le contrat de la bourse à retirer ce jeton de votre portefeuille. Ensuite, il effectue l'échange.
La première étape est l’approbation, et c’est l’opération qui compte réellement. La hauteur à laquelle il est réglé n'est pas prescrite par la norme ERC-20 ; c'est l'interface que vous utilisez qui en décide. Beaucoup entrent par défaut dans un plafond qui est effectivement infini, afin que vous n'ayez pas à confirmer à nouveau lors de votre prochain échange. Pratique, à condition que le contrat de l’autre partie fasse ce qu’il est censé faire.
Le hic : l’autorisation reste en place même si vous ne visitez plus jamais le site. Si le contrat devient malveillant plus tard, ou s’il l’a été dès le départ, il peut intervenir à tout moment. Des semaines plus tard, bien après que cela ait quitté votre esprit.
Un égouttoir à portefeuille n'est donc pas un outil de cambriolage mais une forme. Cela vous amène à remettre volontairement l’autorisation.
Le draineur de portefeuille via la signature : invisible et gratuit
Jusqu'à il y a quelques années, une approbation était toujours une transaction. Cela coûtait des frais, figurait dans l’historique et était vérifiable par la suite.
La norme EIP-2612 a changé cela. Une approbation de « permis » est chaîne signée: vous signez un message et l'autre partie soumet elle-même cette signature plus tard. Pour vous, cela signifie aucun frais, aucune entrée dans l’historique des transactions et aucun sentiment d’avoir fait quelque chose de conséquent.
C’est exactement pourquoi la demande de signature est la plus dangereuse des deux. Une transaction ressemble à une décision. Une signature ressemble à un login.
Une signature de permis comporte une limite de temps, le deadline champ. Cela protège moins qu'il n'y paraît : la valeur peut être définie librement, et la spécification elle-même indique la possibilité de la définir de manière à ce que la signature ne disparaisse pratiquement jamais. Surtout, la limite ne limite que la durée pendant laquelle la signature peut être soumise ; l'approbation qui en résulte est ensuite une approbation ordinaire et illimitée.
Comment reconnaître une approbation : pas par l'absence d'une quantité de gaz. Une connexion inoffensive est également signée gratuitement. Ce qui compte, c'est le contenu du message, que tout portefeuille sérieux peut développer pour vous.
- Un pur se connecter nomme le domaine, votre adresse, un nombre aléatoire et un horodatage. Rien d'autre.
- UN élimination nomme un destinataire (
spender), un montant (value) et une limite (deadline), ou porte un type de message tel quePermit,PermitSingleouPermitBatch.
En cas de doute, annulez. Une véritable connexion peut être répétée sans risque.
Repérer un draineur de portefeuille : les trois questions avant de confirmer
Avant de confirmer, répondez à trois questions. Ensemble, ils coûtent vingt secondes.
- Ai-je ouvert ce site moi-même ? Presque tous les draineurs atteignent leur victime via un lien, depuis un message direct, un commentaire sous une publication, une annonce de recherche. Tapez l'adresse en vous-même et la moitié de la catégorie ne vous touche jamais.
- L’action correspond-elle à ce que j’avais prévu de faire ? Vous vouliez créer un NFT, mais la fenêtre demande une approbation symbolique ? Alors quelque chose ne va pas.
- Que dit la section détail ? Tout portefeuille sérieux indiquera sur demande quel contrat obtient quelle autorisation. Un montant illimité pour un contrat que vous ne connaissez pas est un motif de résiliation.
Un portefeuille matériel est encore plus utile ici, car il affiche le contenu sur son propre écran, et aucun logiciel malveillant présent sur l'ordinateur n'atteint cet écran. Les portefeuilles qui brisent les approbations de manière intelligible varient considérablement ; notre comparaison des portefeuilles logiciels y entre.
Verrouiller l'épuisement du portefeuille : vérifier et révoquer les anciennes approbations
Ce que vous avez autorisé une fois, vous pouvez le reprendre. Cela ne se produit tout simplement pas tout seul.
Chaque explorateur de blocs majeur exécute un vérificateur d'approbation de jeton à cet effet : entrez votre adresse et vous verrez chaque approbation ouverte avec le contrat, le jeton et le montant. À leurs côtés, il existe des services de révocation spécialisés qui affichent la même chose sur plusieurs chaînes.
En pratique:
- La révocation coûte du gaz. Il s'agit d'une transaction sur la chaîne en question. Avec de nombreuses anciennes approbations, il est avantageux de le faire en un seul lot à un moment où les frais sont bas.
- Chaque chaîne séparément. Les approbations sur Arbitrum ne sont pas visibles sur Ethereum et inversement.
- Deux fois par an suffisent comme une routine. Le plus important est de le faire après chaque rencontre avec une nouvelle application.
Quiconque travaille régulièrement avec de nouvelles applications a intérêt à séparer les choses immédiatement : un portefeuille pour les avoirs, un second pour tout ce qui est expérimental. Ce qui se trouve dans le second constitue le maximum de dégâts.
Si cela s'est produit : l'ordre décide
Si vous constatez la disparition de jetons, l'ordre n'est pas arbitraire. Transférez d’abord et vous transférerez peut-être vers un portefeuille dont les approbations sont encore ouvertes.
- Révoquer chaque approbationen commençant par les jetons de valeur la plus élevée.
- Vérifiez si votre adresse est déléguée au contrat d'un étranger (EIP-7702) et réinitialisez la délégation. Ici, la révocation des approbations ne suffit pas : une délégation atteint également l’ETH natif. Dans l'explorateur de blocs, vous le reconnaissez grâce au code stocké sous votre adresse.
- Déconnectez-vous de chaque application.
- Alors seulement déplacer les avoirs restants dans un nouvellement généré portefeuille, pas dans un portefeuille existant.
- Si la graine elle-même est compromise, aucune révocation n’aide. Le portefeuille est alors perdu dans son ensemble et seul un déménagement rapide compte encore.
Et comme pour tout signalement de sinistre : toute personne proposant de récupérer vos pièces contre un paiement anticipé fait partie du problème. Ces offres recherchent délibérément leurs victimes sous les messages de personnes touchées.
Le deuxième stratagème visant la même bonne foi consiste en de fausses demandes de la bourse visant à déplacer les fonds « en sécurité ». Comment les démonter est expliqué dans notre guide des messages de phishing après la coupure de MiCA.
Questions fréquemment posées
Un draineur de portefeuille peut-il voler ma graine ? Non, cela fonctionne exclusivement avec les autorisations que vous avez accordées. C'est pourquoi un meilleur stockage de la sauvegarde ne constitue pas une défense contre celle-ci, seulement une attention au moment de la confirmation.
Mon ETH est-il en sécurité si je ne détiens aucun token ? Pas automatiquement. Il n'y a pas d'approbation pour l'ETH dans le sens décrit ici, mais depuis EIP-7702, une seule signature peut déléguer votre adresse au contrat d'un étranger. La spécification elle-même prévient qu'un délégué mal construit pourrait donner à un attaquant un contrôle quasi complet sur l'adresse, y compris le reste.
Mon Bitcoin est-il concerné ? Bitcoin lui-même n’a pas le caractère d’une approbation permanente. Cela implique deux réserves : le Bitcoin tokenisé sur Ethereum, tel que WBTC ou cbBTC, est un jeton tout à fait ordinaire et pleinement affecté. Et sur Bitcoin également, il y a des transactions signées aveuglément sur les plateformes de négociation où l'autre partie insère ensuite les destinataires.
Pourquoi ne vois-je pas l'approbation dans l'historique de mes transactions ? Parce qu'une approbation de permis est signée hors chaîne. Il n'apparaît que lorsque l'autre partie le soumet, et alors en tant que transaction, pas la vôtre.
La suppression de l’application de portefeuille est-elle suffisante ? Non. L’approbation se trouve sur la blockchain, pas dans l’application. Il reste en place quel que soit le logiciel que vous utilisez.
Une approbation illimitée est-elle toujours une erreur ? Pas nécessairement. Avec une application que vous utilisez quotidiennement, vous économisez des frais. Ce qui ne va pas, c'est de l'accorder puis de l'oublier.
Sources
Voir l’article original en anglais
