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 cette dernière. L'attaque ne peut être réalisée que pour les transactions de valeur nulle. Cependant, elle peut amener certains utilisateurs à envoyer accidentellement des tokens au pirate, suite à un copier-coller à partir d'un historique de transactions détourné.
La société de sécurité blockchain SlowMist a 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 d'entre eux peuvent encore ignorer son existence.
Recently we have received reports from the community of a new type of scam: Zero Transfer Scam. Be careful if you see suspicious 0 transfer in your wallet record:
— Veronica (@V_SafePal) December 14, 2022
1/10
Récemment, la communauté nous a signalé un nouveau type d'escroquerie : l'arnaque du transfert nul. Soyez prudent si vous voyez un transfert suspect de valeur nulle dans votre portefeuille :1/10 - Veronica (@V_SafePal) 14 décembre 2022
Selon l'article de SlowMist, l'arnaque fonctionne en envoyant une transaction de zéro token du portefeuille de la victime à une adresse qui ressemble à une autre à laquelle la victime avait précédemment envoyé des tokens.
Par exemple, si la victime a envoyé 100 tokens à une adresse de dépôt d'un exchange, le pirate peut envoyer zéro token du portefeuille de la victime à une adresse qui semble similaire mais qui est, en fait, sous son contrôle. La victime peut voir cette transaction dans son historique de transactions et en conclure que l'adresse indiquée est la bonne adresse de dépôt. En conséquence, elle peut envoyer ses tokens directement au pirate.
Envoi d'une transaction sans l'autorisation du propriétaire
Dans des circonstances normales, un pirate a besoin de la clé privée de la victime pour envoyer une transaction à partir du portefeuille de cette dernière. Cependant, la fonction onglet contrat d'Etherscan révèle qu'il existe une faille dans certains contrats de tokens, qui peut permettre à un pirate d'envoyer une transaction depuis n'importe quel portefeuille.
Par exemple, le code de l'USD Coin (USDC) sur Etherscan montre que la fonction TransferFrom permet à n'importe quelle personne de déplacer des tokens depuis le portefeuille d'une autre, tant que le montant des tokens qu'elle envoie est inférieur ou égal au montant autorisé par le propriétaire de l'adresse.

Cela signifie généralement qu'un pirate ne peut pas effectuer de transaction à partir de l'adresse d'une autre personne, à moins que le propriétaire n'approuve une allocation pour lui.
Il existe toutefois une faille dans cette restriction. Le montant autorisé est défini comme un nombre (appelé "type uint256"), ce qui signifie qu'il est interprété comme zéro, sauf s'il est spécifiquement défini comme un autre nombre. C'est ce que l'on peut voir dans la fonction allocation.

Par conséquent, tant que la valeur de la transaction du pirate est inférieure ou égale à zéro, il peut envoyer une transaction à partir d'absolument n'importe quel portefeuille qu'il souhaite, sans avoir besoin de la clé privée ou de l'approbation préalable du propriétaire.
L'USDC n'est pas le seul token qui permet de faire cela. Un code similaire peut être trouvé dans la plupart des contrats de tokens. Il peut même être trouvé dans les exemples de contrats liés au site officiel de la Fondation Ethereum.
Exemples d'arnaque au transfert de valeur nulle
Etherscan montre que certaines adresses de portefeuilles envoient des milliers de transactions à valeur nulle par jour depuis les portefeuilles de diverses victimes sans leur consentement.
Par exemple, un compte nommé Fake_Phishing7974 a utilisé un smart contract non vérifié pour effectuer plus de 80 lots de transactions le 12 janvier, chaque lot contenant 50 transactions à valeur nulle, soit un total de 4 000 transactions non autorisées en une journée.

Des adresses trompeuses
Un examen plus approfondi de chaque transaction révèle le motif de ce spam : le pirate envoie des transactions à valeur nulle à des adresses qui ressemblent beaucoup à celles auxquelles les victimes ont précédemment envoyé des fonds.
Par exemple, Etherscan montre que l'une des adresses utilisateur ciblées par le pirate est la suivante :
0x20d7f90d9c40901488a935870e1e80127de11d74.
Le 29 janvier, ce compte a autorisé l'envoi de 5 000 Tethers (USDT) à cette adresse de réception :
0xa541efe60f274f813a834afd31e896348810bb09.
Immédiatement après, Fake_Phishing7974 a envoyé une transaction de valeur nulle du 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. Le pirate a peut-être voulu que l'utilisateur envoie des USDT à cette deuxième (fausse) adresse au lieu de la vraie, lui donnant ainsi ses tokens.
Dans ce cas particulier, il semble que l'arnaque n'ait pas fonctionné, car Etherscan ne montre aucune transaction de cette adresse vers l'une des fausses adresses créées par l'arnaqueur. Mais étant donné le volume de transactions à valeur nulle effectuées par ce compte, le plan peut avoir fonctionné dans d'autres cas.
Les portefeuilles et les explorateurs de blocs peuvent varier considérablement quant à la façon dont ils montrent ou non les transactions trompeuses.
Les portefeuilles
Certains portefeuilles peuvent ne pas afficher du tout les transactions de spam. Par exemple, MetaMask ne montre 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.
En revanche, si le portefeuille extrait les données directement de la blockchain, les transactions de spam peuvent apparaître à son écran. Dans une annonce faite le 13 décembre sur Twitter, Veronica Wong, PDG de SafePal, a prévenu les utilisateurs de SafePal que son portefeuille pourrait 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 permettre aux utilisateurs d'inspecter plus facilement les adresses.
(6/10) Upon this, we have taken actions:
— Veronica (@V_SafePal) December 14, 2022
1) In the latest V3.7.3 update, we adjusted the length of the wallet address displayed in the transaction history. The first and last 10 digits of the wallet address will be displayed in default, for the sake of address examination
(6/10) Suite à cela, nous avons pris des mesures : 1) Dans la dernière mise à jour V3.7.3, nous avons ajusté la longueur de l'adresse du portefeuille affichée dans l'historique des transactions. Les 10 premiers et derniers chiffres de l'adresse du portefeuille seront affichés par défaut, afin de faciliter l'examen des adresses.- Veronica (@V_SafePal) 14 décembre 2022
En décembre, un utilisateur a également signalé que son portefeuille Trezor affichait des transactions trompeuses.
Cointelegraph a contacté par courriel le développeur de Trezor, SatoshiLabs, pour obtenir des commentaires. En réponse, un représentant a déclaré que le portefeuille tire son historique de transaction directement de la blockchain « chaque fois que les utilisateurs connectent 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 « signalera les transactions suspectes à valeur nulle afin que les utilisateurs soient avertis 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 vivement aux utilisateurs de toujours vérifier l'adresse complète, et pas seulement les premiers et derniers caractères ».
Les Explorateurs de blocs
En dehors des portefeuilles, les explorateurs de blocs sont un autre type de logiciel qui peut être utilisé pour consulter l'historique des transactions. Certains explorateurs peuvent afficher ces transactions de manière à induire involontairement les utilisateurs en erreur, tout comme le font certains portefeuilles.
Pour atténuer cette menace, Etherscan a commencé à masquer en gris les transactions de tokens à valeur nulle qui ne sont pas initiées par l'utilisateur. Il signale également ces transactions par une alerte indiquant : « il s'agit d'un transfert de token de valeur nulle initié par une autre adresse », comme le montre l'image ci-dessous.

D'autres explorateurs de blocs ont peut-être pris les mêmes mesures qu'Etherscan pour avertir les utilisateurs de ces transactions, mais certains ne les ont peut-être pas encore mis en œuvre.
Conseils pour éviter l'astuce du TransferFrom à valeur nulle
Cointelegraph a contacté SlowMist pour obtenir des conseils sur la façon d'éviter d'être la proie de l'astuce du TransferFrom à valeur nulle.
Un représentant de l'entreprise a donné à Cointelegraph une liste de conseils pour éviter d'être victime de l'attaque :
- Faites preuve de prudence et vérifiez l'adresse avant d'exécuter toute transaction
- Utilisez la fonction de liste blanche de votre portefeuille pour éviter d'envoyer des fonds à de mauvaises adresses
- Restez vigilant et informé. Si vous rencontrez des transferts suspects, prenez le temps d'enquêter calmement sur la question pour éviter d'être victime d'escrocs
- Maintenez un niveau sain de scepticisme, restez toujours prudent et vigilant.
À en juger par ces conseils, la chose la plus importante à retenir pour les utilisateurs de cryptomonnaies est de toujours vérifier l'adresse avant d'y envoyer des cryptomonnaies. Même si l'enregistrement de la transaction semble impliquer que vous avez déjà envoyé de la crypto à cette adresse, cette apparence peut être trompeuse.