Les escrocs ciblent les utilisateurs de crypto avec une nouvelle astuce "TransferFrom à valeur zéro"

Les données d'Etherscan montrent que certains escrocs crypto ciblent les utilisateurs avec une nouvelle astuce qui leur permet de confirmer une transaction à partir du portefeuille de la victime, mais sans avoir la clé privée de la victime. L'attaque ne peut être effectuée que pour les transactions de valeur 0. Cependant, certains utilisateurs peuvent envoyer accidentellement des jetons à l'attaquant à la suite d'un copier-coller à partir d'un historique de transactions piraté.

La société de sécurité blockchain SlowMist découvert la nouvelle technique en décembre et l'a révélée dans un article de blog. Depuis lors, SafePal et Etherscan ont adopté des techniques d'atténuation pour limiter son effet sur les utilisateurs, mais certains utilisateurs peuvent encore ignorer son existence.

Selon le message de SlowMist, l'arnaque fonctionne en envoyant une transaction de zéro jeton du portefeuille de la victime à une adresse qui ressemble à celle à laquelle la victime avait précédemment envoyé des jetons.

Par exemple, si la victime a envoyé 100 pièces à une adresse de dépôt d'échange, l'attaquant peut envoyer zéro pièce du portefeuille de la victime à une adresse qui semble similaire mais qui est, en fait, sous le contrôle de l'attaquant. La victime peut voir cette transaction dans son historique de transactions et conclure que l'adresse indiquée est la bonne adresse de dépôt. En conséquence, ils peuvent envoyer leurs pièces directement à l'attaquant.

Envoi d'une transaction sans l'autorisation du propriétaire 

Dans des circonstances normales, un attaquant a besoin de la clé privée de la victime pour envoyer une transaction depuis le portefeuille de la victime. Mais la fonctionnalité "onglet contrat" ​​d'Etherscan révèle qu'il existe une faille dans certains contrats de jetons qui peuvent permettre à un attaquant d'envoyer une transaction depuis n'importe quel portefeuille.

Par exemple, le code pour USD Coin (USDC) sur Etherscan spectacles que la fonction "TransferFrom" permet à toute personne de déplacer des pièces du portefeuille d'une autre personne tant que la quantité de pièces qu'elle envoie est inférieure ou égale au montant autorisé par le propriétaire de l'adresse.

Cela signifie généralement qu'un attaquant ne peut pas effectuer de transaction à partir de l'adresse d'une autre personne à moins que le propriétaire n'approuve une allocation pour eux.

Cependant, il y a une faille dans cette restriction. Le montant autorisé est défini comme un nombre (appelé le "type uint256"), ce qui signifie qu'il est interprété comme zéro à moins qu'il ne soit spécifiquement défini sur un autre nombre. Cela peut être vu dans la fonction "allocation".

Par conséquent, tant que la valeur de la transaction de l'attaquant est inférieure ou égale à zéro, il peut envoyer une transaction depuis n'importe quel portefeuille de son choix, sans avoir besoin de la clé privée ni de l'approbation préalable du propriétaire.

L'USDC n'est pas le seul jeton qui permet de le faire. Un code similaire peut être trouvé dans la plupart des contrats de jeton. Il peut même être trouvé dans les exemples de contrats liés au site Web officiel de la Fondation Ethereum.

Exemples d'arnaque au transfert de valeur zéro

Etherscan montre que certaines adresses de portefeuille envoient des milliers de transactions à valeur nulle par jour à partir des portefeuilles de diverses victimes sans leur consentement.

Par exemple, un compte nommé Fake_Phishing7974 a utilisé un contrat intelligent non vérifié pour effectuer plus de 80 lots de transactions le 12 janvier, avec chaque lot comprenant 50 transactions à valeur nulle pour un total de 4,000 XNUMX transactions non autorisées en une journée.

Adresses trompeuses

Un examen plus approfondi de chaque transaction révèle le motif de ce spam : l'attaquant envoie des transactions de valeur nulle à des adresses qui ressemblent beaucoup à celles auxquelles les victimes ont précédemment envoyé des fonds.

Par exemple, Etherscan montre qu'une des adresses des utilisateurs ciblés par l'attaquant est la suivante :

0x20d7f90d9c40901488a935870e1e80127de11d74.

Le 29 janvier, ce compte a autorisé l'envoi de 5,000 XNUMX Tether (USDT) à cette adresse de réception :

0xa541efe60f274f813a834afd31e896348810bb09.

Immédiatement après, Fake_Phishing7974 a envoyé une transaction de valeur nulle depuis le portefeuille de la victime à cette adresse :

0xA545c8659B0CD5B426A027509E55220FDa10bB09.

Les cinq premiers caractères et les six derniers caractères de ces deux adresses de réception sont exactement les mêmes, mais les caractères du milieu sont tous complètement différents. L'attaquant peut avoir voulu que l'utilisateur envoie des USDT à cette deuxième (fausse) adresse au lieu de la vraie, donnant ses pièces à l'attaquant.

Dans ce cas particulier, il semble que l'arnaque n'a pas fonctionné, car Etherscan ne montre aucune transaction de cette adresse vers l'une des fausses adresses créées par l'escroc. Mais étant donné le volume de transactions à valeur nulle effectuées par ce compte, le plan a peut-être fonctionné dans d'autres cas.

Les portefeuilles et les explorateurs de blocs peuvent varier considérablement quant à la manière dont ils affichent ou non les transactions trompeuses.

Portefeuilles

Certains portefeuilles peuvent ne pas afficher du tout les transactions de spam. Par exemple, MetaMask n'affiche aucun historique des transactions s'il est réinstallé, même si le compte lui-même a des centaines de transactions sur la blockchain. Cela implique qu'il stocke son propre historique de transactions plutôt que d'extraire les données de la blockchain. Cela devrait empêcher les transactions de spam d'apparaître dans l'historique des transactions du portefeuille.

D'un autre côté, si le portefeuille extrait les données directement de la blockchain, les transactions de spam peuvent apparaître sur l'écran du portefeuille. Dans une annonce du 13 décembre sur Twitter, Veronica Wong, PDG de SafePal averti utilisateurs SafePal que son portefeuille peut afficher les transactions. Afin d'atténuer ce risque, elle a déclaré que SafePal modifiait la façon dont les adresses sont affichées dans les nouvelles versions de son portefeuille afin de faciliter l'inspection des adresses par les utilisateurs.

En décembre, un utilisateur a également signalé que son portefeuille Trezor était afficher opérations trompeuses.

Cointelegraph a contacté par e-mail le développeur de Trezor, SatoshiLabs, pour un commentaire. En réponse, un représentant a déclaré que le portefeuille extrait son historique de transactions directement de la blockchain "chaque fois que les utilisateurs branchent leur portefeuille Trezor".

Cependant, l'équipe prend des mesures pour protéger les utilisateurs de l'arnaque. Dans une prochaine mise à jour de Trezor Suite, le logiciel "marquera les transactions suspectes à valeur nulle afin que les utilisateurs soient alertés que ces transactions sont potentiellement frauduleuses". La société a également déclaré que le portefeuille affiche toujours l'adresse complète de chaque transaction et qu'elle "recommande fortement aux utilisateurs de toujours vérifier l'adresse complète, pas seulement le premier et le dernier caractères".

Explorateurs de blocs

Outre les portefeuilles, les explorateurs de blocs sont un autre type de logiciel qui peut être utilisé pour afficher l'historique des transactions. Certains explorateurs peuvent afficher ces transactions de manière à induire les utilisateurs en erreur par inadvertance, tout comme le font certains portefeuilles.

Pour atténuer cette menace, Etherscan a commencé à griser les transactions de jetons à valeur nulle qui ne sont pas initiées par l'utilisateur. Il signale également ces transactions avec une alerte indiquant : "Il s'agit d'un transfert de jeton de valeur zéro initié par une autre adresse", comme en témoigne l'image ci-dessous.

D'autres explorateurs de blocs peuvent avoir suivi les mêmes étapes qu'Etherscan pour avertir les utilisateurs de ces transactions, mais certains n'ont peut-être pas encore mis en œuvre ces étapes.

Conseils pour éviter l'astuce "TransferFrom à valeur nulle"

Cointelegraph a contacté SlowMist pour obtenir des conseils sur la façon d'éviter de devenir la proie de l'astuce "TransferFrom à valeur zéro".

Un représentant de la société a donné à Cointelegraph une liste de conseils pour éviter d'être victime de l'attaque :

  1. "Soyez prudent et vérifiez l'adresse avant d'exécuter toute transaction."
  2. "Utilisez la fonction de liste blanche de votre portefeuille pour éviter d'envoyer des fonds aux mauvaises adresses."
  3. « Restez vigilant et informé. Si vous rencontrez des transferts suspects, prenez le temps d'enquêter calmement pour éviter d'être victime d'escrocs.
  4. "Maintenez un niveau sain de scepticisme, restez toujours prudent et vigilant."

À en juger par ce conseil, la chose la plus importante à retenir pour les utilisateurs de crypto est de toujours vérifier l'adresse avant de lui envoyer la crypto. Même si l'enregistrement de la transaction semble impliquer que vous avez déjà envoyé des cryptos à l'adresse, cette apparence peut être trompeuse.