Saviez-vous que n'importe qui peut effectuer une transaction à partir de votre portefeuille en connaissant uniquement l'adresse du portefeuille et sans avoir besoin de la clé ou de la phrase secrète du portefeuille ?
Il existe un type d'attaque connu sous le nom de Zero Transfer Phishing qui est considéré comme l'une des pires attaques de phishing dans le domaine de la cryptographie en raison de la facilité avec laquelle l'attaquant le réalise et de la facilité avec laquelle la victime y tombe.
Cette attaque cible actuellement des millions de portefeuilles crypto sur différents réseaux. Comment est menée cette attaque ? Comment s’en protéger ?
Premièrement, il existe une fonction dans la machine virtuelle Ethereum (EVM) appelée transferFrom() qui permet les transactions de votre portefeuille vers un autre portefeuille via un tiers.
Cela signifie qu'un tiers, tel qu'un contrat intelligent, peut effectuer un retrait de votre portefeuille via cette fonction. À condition d’obtenir l’approbation préalable du portefeuille.

Il existe de nombreuses utilisations pour cette fonction, notamment les transactions de change « Swap » sur des plateformes décentralisées, car elle permet au contrat intelligent de retirer un solde de X devises de votre portefeuille ; En échange de la réception d’un solde de devise Y.
Cette fonction est utilisée sur d'autres réseaux tels que BNB Chain, Tron et autres.
Mais en même temps; Cette fonction permet à quiconque d'effectuer une transaction depuis le portefeuille d'une autre personne sans sa permission si le montant de la transaction est de 0.
A quoi ça sert si le transfert ne vaut rien ?
L'objectif est d'empoisonner l'historique des transferts du portefeuille pour inciter le propriétaire du portefeuille à effectuer un transfert vers le portefeuille de l'attaquant. C'est ce qu'on appelle une attaque d'empoisonnement d'adresse.

Comment se produit cette attaque ?
Premièrement, l’attaquant recherche des adresses actives en effectuant une recherche dans la blockchain, et les portefeuilles actifs dans les transferts de devises stables sont souvent ciblés.
Deuxièmement, l'attaquant crée des adresses de portefeuille dont le début et la fin sont identiques aux adresses des victimes ciblées.
Comment cela se produit-il lorsque les adresses de portefeuille sont générées de manière aléatoire ?
En fait, n’importe qui peut générer une adresse de portefeuille sous certaines conditions. Dans cet exemple, la condition est que l’adresse du portefeuille commence et se termine par les mêmes lettres et chiffres que les adresses du portefeuille des victimes ciblées, et cette adresse est appelée Vanity Address.

Troisièmement, l'attaquant exploite la fonction transferFrom() pour effectuer une transaction d'une valeur de 0 vers ou depuis les portefeuilles des victimes. Cette fonction appelle une autre fonction appelée transfer(), qui est chargée d'effectuer les transferts, mais la chose la plus importante qu'elle fait est d'enregistrer la transaction dans l'historique des transactions du portefeuille.

L'attaquant commence à surveiller les adresses pour attendre leur transfert avant de lancer l'attaque, ou attaque de manière aléatoire.
Exemple:
Dans cette transaction, la victime a transféré les 10 premiers USDC de son portefeuille vers une adresse commençant par 0x74C et se terminant par 0E1cA à titre de test pour s'assurer qu'il n'y avait aucun problème avant d'effectuer le transfert le plus important.

Deux minutes plus tard, l'attaquant a mené son attaque en exploitant la fonction transferFrom() pour effectuer 0 transfert depuis le portefeuille de la victime afin d'empoisonner l'historique des transferts et de mettre sa fausse adresse de portefeuille similaire à l'adresse correcte à laquelle la victime a transféré 10 USDC. Vous pouvez voir la différence entre le titre original et le faux.

Le résultat?
La victime a vérifié la dernière adresse à laquelle elle a transféré (la fausse adresse) en vérifiant uniquement le début et la fin de l'adresse, puis a transféré plus de 2 millions de dollars vers l'adresse du portefeuille de l'attaquant en raison de cette erreur naïve.

Malgré la naïveté de l'erreur ; La plupart des utilisateurs de crypto font la même erreur et vérifient les adresses de transfert en vérifiant uniquement le premier et le dernier caractères.
Bien entendu, l’attaquant a immédiatement transféré les fonds vers UniSwap pour les blanchir et éviter toute possibilité de geler l’adresse de son portefeuille de Circle.

Actuellement, il y a des millions d’adresses sur la blockchain Ethereum et la blockchain BNB qui ont été ciblées par ce type d’attaque, et ce nombre est en constante augmentation, je vous conseille donc d’être très prudent face à ces attaques.
Vous pouvez suivre les statistiques des attaques via Zero Transfer Phishing.

Avantage:
1- Vérifiez toujours l'intégralité de l'adresse avant la conversion, pas seulement le début et la fin de l'adresse.
2- Ne transférez pas de gros montants en une seule transaction.
3- Si vous trouvez des virements d'une valeur de 0$ envoyés depuis votre portefeuille, ne vous inquiétez pas, le portefeuille n'a pas été piraté.