Bethropic

Address poisoning: la mauvaise adresse est déjà dans votre historique

hollow_almanac390 vues
🌐 Originally written in English· AI translationView original

Comment fonctionne l'arnaque

Une adresse crypto est longue, et personne ne la lit entièrement. Une adresse Bitcoin compte environ quarante caractères, une adresse Ethereum quarante-deux, et l'habitude universelle est de vérifier les quatre ou cinq premiers et les quatre ou cinq derniers caractères et de considérer que ça correspond. Les portefeuilles et les explorateurs encouragent cette pratique en affichant les adresses sous la forme 0x1a2b…9f8e. L'arnaque repose sur cette abréviation.

L'attaquant surveille la chaîne pour trouver une adresse qui effectue régulièrement des transactions avec une autre, par exemple votre portefeuille envoyant vers un exchange ou une adresse de dépôt de casino. Ensuite, il génère des portefeuilles par millions jusqu'à ce que l'un d'entre eux ait des premiers et derniers caractères correspondant à la véritable destination ; c'est peu coûteux, car générer une paire de clés ne coûte presque rien et seuls quelques caractères doivent correspondre. À partir de ce faux-semblant, il envoie à votre portefeuille une infime quantité, ou un transfert de token sans valeur, qui ne lui coûte qu'une commission. Sur certains réseaux, un contrat de token enregistrera volontiers un transfert de zéro de votre adresse vers la sienne, de sorte que l'entrée peut même apparaître comme quelque chose que vous avez envoyé.

Maintenant, votre historique contient deux adresses qui paraissent identiques dans chaque liste qui les abrège. La véritable, provenant de vos véritables transferts, et le poison, provenant d'un transfert que vous n'avez jamais remarqué. L'attaquant ne fait rien de plus. Il attend le jour où vous êtes pressé, vous ouvrez l'historique, trouvez le dernier transfert vers l'exchange, copiez l'adresse de la ligne qui s'avère être le poison, et vous envoyez.

Les 1 155 bitcoin

Le cas qui a rendu l'arnaque célèbre s'est produit début mai 2024. Un portefeuille contenant du bitcoin enveloppé sur Ethereum a envoyé un petit transfert de test vers une nouvelle adresse, et quelques minutes plus tard a envoyé 1 155 WBTC, valant environ soixante-dix millions de dollars à l'époque, vers ce que le propriétaire croyait être la même adresse. Ce n'était pas le cas. Le test était allé à la véritable destination ; entre-temps, un transfert empoisonné était apparu dans l'historique à partir d'une adresse la correspondant aux deux extrémités, et le transfert important a été copié à partir de cette ligne.

Ce qui a suivi était inhabituel. La victime a publié un message on-chain proposant une récompense, les analystes blockchain ont suivi les fonds pendant qu'ils étaient échangés et déplacés, et environ dix jours plus tard, l'attaquant a restitué presque la totalité en ether. Cette fin est l'exception. Dans le cas ordinaire, le transfert disparaît simplement, car une transaction blockchain n'a pas d'annulation, pas de chargeback et pas de contrepartie qui puisse être contactée. Tether a occasionnellement gelé des stablecoins envoyés à des adresses d'arnaque connues, ce qui est une propriété du contrat de cet émetteur spécifique et non de la chaîne.

Le transfert de test a prouvé que l'adresse était correcte. Le transfert important a été copié à partir d'une ligne différente. Ce qui s'est mal passé, en deux phrases

La leçon n'est pas que la victime a été négligente. Elle a fait la chose recommandée, un petit test en premier. L'arnaque a déjoué le test parce que le test a vérifié une copie de l'adresse et le véritable transfert en a utilisé une autre. Toute défense qui vérifie l'adresse une fois puis fait confiance au presse-papiers, à l'historique ou à l'autocomplétion ensuite a le même problème.

D'où vient une adresse ici

Sur ce site, l'adresse de dépôt n'est pas quelque chose que vous avez jamais tapé, et ce n'est pas quelque chose à trouver dans un historique. Ouvrez le portefeuille, choisissez la pièce et le réseau, et la fenêtre de dépôt demande au service de portefeuille l'adresse qui appartient à votre compte sur ce réseau. Elle affiche la chaîne complète, un bouton de copie qui écrit exactement cette chaîne dans votre presse-papiers, et un code QR qui encode la même chaîne pour un portefeuille téléphone. Si la pièce a besoin d'une destination tag ou d'un mémo, la tag est affichée dans son propre champ avec son propre bouton de copie, et l'adresse seule n'est pas suffisante ; l'article sur le réseau explique pourquoi.

ENGINE-VERIFIEDcomponent/common/popup/wallet/deposit.tsx: loadDepositAddr demande l'adresse pour la pièce et le réseau sélectionnés et stocke address, tag et coinConfirmations de la réponse (une réponse obsolète est rejetée si la pièce ou le réseau a changé en attendant) ; copyAddr écrit depositAddr dans le presse-papiers avec navigator.clipboard.writeText et affiche un toast ; copyTag fait la même chose pour la tag ; le code QR est rendu à partir de la même valeur depositAddr. L'adresse est extraite, jamais tapée ou rappelée de l'historique.

Cela vous donne une seule source de vérité pour le côté réception : la fenêtre qui l'a extraite. Le côté envoi est votre propre portefeuille, et c'est là que l'habitude doit changer, car le site ne peut pas voir ce que vous collez là.

Les règles

  • Ne copiez jamais une adresse de réception à partir d'un historique de transactions. Pas la vôtre, pas celle d'un explorateur. Copiez-la à partir du lieu qui l'a émise : la fenêtre de dépôt ici, l'écran de réception de votre propre portefeuille, l'adresse que la contrepartie vous a envoyée par un canal en lequel vous avez confiance.
  • Vérifiez le milieu, pas seulement les extrémités. Les adresses empoisonnées sont construites pour correspondre aux premiers et derniers caractères. Lisez un bloc de caractères du milieu de la chaîne aussi, ou comparez le tout côte à côte.
  • Utilisez une liste blanche si votre portefeuille ou votre exchange en a une. Une adresse enregistrée qui a été vérifiée une fois et ne peut être modifiée qu'avec un délai déjoue entièrement l'arnaque du presse-papiers.
  • Traitez les transferts inattendus infimes ou sans valeur comme un signal d'alerte, pas comme un cadeau. C'est le poison qui est planté. N'interagissez pas avec eux et ne copiez rien de ces lignes.
  • Envoyez un petit test, puis envoyez le montant réel à partir de la même source d'adresse, pas à partir de la ligne d'historique du test. Le test prouve l'adresse que vous avez copiée ; il ne valide pas ce que vous copiez ensuite.
  • Souvenez-vous de ce qu'est une confirmation. Une fois le transfert confirmé, c'est définitif, et aucun support desk de l'un ou l'autre côté ne peut l'annuler.

Cet article décrit un modèle d'arnaque et le flux de dépôt du site. Ce n'est pas une garantie : le site peut vérifier l'adresse qu'il vous montre, pas celle que vous collez dans votre propre portefeuille. Si vous avez envoyé des fonds à une mauvaise adresse, contactez le support avec le hash de la transaction ; la récupération est rarement possible, mais l'enregistrement aide.

FAQ

Qu'est-ce que l'empoisonnement d'adresse ?

Une arnaque dans laquelle un attaquant génère une adresse qui correspond à la vôtre ou à une destination fréquente au début et à la fin, puis envoie un transfert de très petite valeur ou de valeur zéro pour qu'il apparaisse dans votre historique. Si vous copiez ensuite l'adresse de cette ligne, vos fonds vont à l'attaquant.

Comment quelqu'un a-t-il perdu 1 155 bitcoin à cause de cela ?

En mai 2024, un portefeuille a envoyé un petit test à la bonne adresse, puis a copié l'adresse pour le transfert important à partir d'une ligne d'historique empoisonnée qui correspondait aux deux extrémités. Les 1 155 WBTC sont allés à l'attaquant ; ils ont été retournés environ dix jours plus tard après une prime et un traçage public, ce qui est rare.

Un mauvais transfert peut-il être annulé ?

Non. Une transaction blockchain confirmée n'a pas d'annulation. Un émetteur de stablecoin peut parfois geler des tokens à une adresse d'arnaque connue, mais c'est une propriété du contrat d'un émetteur, pas de la chaîne.

Où dois-je copier l'adresse de dépôt sur ce site ?

À partir de la fenêtre de dépôt, qui récupère l'adresse de votre compte, de la pièce et du réseau auprès du service de portefeuille et affiche un bouton de copie et un code QR pour cette chaîne exacte. Si la pièce a besoin d'une étiquette, copiez-la également de son propre champ.

Quelle est la défense la plus simple ?

Une règle : ne copiez jamais une adresse de réception à partir d'un historique de transactions. Copiez-la à partir de l'endroit qui l'a émise, vérifiez les caractères au milieu ainsi qu'aux extrémités, et utilisez une liste blanche si elle existe.

SOURCES & RÉFÉRENCES

  • CoinDesk, mai 2024 — rapport sur la perte d'empoisonnement d'adresse de 1 155 WBTC et le retour ultérieur des fonds
  • Base de connaissances Etherscan — « Address poisoning » et avertissements de transfert de token de valeur zéro
  • Source client Betkyo : component/common/popup/wallet/deposit.tsx (récupération d'adresse, copie, étiquette et code QR)
Address poisoning: la mauvaise adresse est déjà dans votre historique

Commentaires (1)

  • northcompass78

    Damn, so they're basically banking on people being lazy with copy-pasting? That's a solid social engineering attack.