Le portefeuille Coinbase et d’autres applications cryptographiques décentralisées (dapps) se sont avérés vulnérables aux « attaques de la pilule rouge », une méthode qui peut être utilisée pour masquer le comportement malveillant des contrats intelligents des fonctions de sécurité.
Coinbase est un important échange de crypto-monnaie qui offre une application de portefeuille crypto permettant aux utilisateurs de stocker, gérer et interagir avec un large éventail d’actifs numériques qu’ils peuvent acheter sur la plate-forme, notamment les jetons Bitcoin, Ethereum et ERC-20.
Les chercheurs en sécurité de ZenGo Wallet ont découvert que les dapps, y compris Coinbase Wallet, étaient vulnérables à une nouvelle attaque qui permet aux contrats intelligents de masquer les comportements malveillants lors des simulations de transactions. Cela amène l’utilisateur à croire qu’une transaction sera sûre et lui permettra de continuer, n’apprenant que plus tard que le contrat intelligent a volé ses actifs.
La vulnérabilité a été divulguée à Coinbase, qui a depuis résolu les problèmes de sécurité signalés et a attribué à ZenGo Wallet plusieurs primes de bogue pour leur divulgation responsable.
Attaquer la simulation
Les contrats intelligents Web3 sont des programmes qui s’exécutent automatiquement lorsqu’une crypto-monnaie a lieu, offrant aux développeurs un large éventail de fonctionnalités pour les sites Web et les actifs cryptographiques.
Par exemple, les contrats intelligents peuvent être utilisés pour envoyer automatiquement un NFT à quelqu’un après la réception d’un paiement, « taxer » les utilisateurs pour avoir vendu un actif trop tôt après l’avoir acheté, ou écrire automatiquement du contenu sur un site Web en fonction de la transaction. Fondamentalement, tout ce qui peut être programmé peut être exécuté par le contrat intelligent.
Cependant, les acteurs de la menace utilisent également des contrats intelligents à des fins malveillantes, en les utilisant pour voler la crypto envoyée ou vider un portefeuille d’actifs.
Ces demandes de signature de contrat malveillantes sont difficiles à distinguer des demandes légitimes, ce qui rend difficile pour les détenteurs de crypto-monnaie de naviguer dans les dangers.
Pour prévenir ces attaques, les développeurs de dapps ont introduit des solutions de transactions simulées pour émuler la signature d’une transaction et prédire le résultat avant que l’utilisateur ne l’approuve. Le résultat de ces simulations est ensuite présenté à l’utilisateur, lui permettant de voir ce qui va se passer et de décider s’il souhaite autoriser la poursuite de la transaction.
Cependant, comme le souligne le rapport ZenGo Wallet, certains contrats intelligents malveillants peuvent détecter lorsqu’ils sont simulés et démontrer un comportement inauthentique pour apparaître bénins ou rentables pour la cible, trompant ainsi le système de sécurité de l’émulation Web3.
Les analystes expliquent que les acteurs de la menace pourraient mettre en œuvre des « pilules rouges » dans des contrats malveillants pour modifier leur comportement lorsqu’ils sont simulés et voler de l’argent aux cibles lorsqu’ils sont approuvés dans la réalité.
Cette attaque est menée en remplissant des variables dans un contrat intelligent avec des données « sûres » lors de simulations, puis en les échangeant avec des données « malveillantes » lors d’une transaction en direct. Cela amènerait une simulation à montrer qu’un contrat intelligent est sûr pendant la simulation, mais lors d’une transaction en direct, il vole la crypto des utilisateurs.
« L’instruction « COINBASE » contient l’adresse du mineur de bloc actuel. Étant donné que pendant la simulation, il n’y a pas de bloc réel et donc pas de mineur, certaines implémentations de simulation le définissent simplement sur l’adresse nulle (toutes les adresses de zéros) », explique le rapport de ZenGo.
« Par conséquent, un contrat intelligent malveillant peut militariser cette pilule rouge » COINBASE « comme suit : demandez aux utilisateurs d’envoyer des pièces natives au contrat, si COINBASE est égal à zéro (ce qui signifie simulation dans Polygon), le contrat renverra des pièces en retour, donc rendant la transaction potentiellement profitable à l’utilisateur lorsque son portefeuille la simule.
« Cependant, lorsque l’utilisateur envoie réellement la transaction en chaîne, COINBASE est en fait rempli avec l’adresse non nulle du mineur actuel et le contrat ne prend que les pièces envoyées. »
Les chercheurs ont également publié la vidéo suivante pour démontrer cette attaque.
Notez que la simulation indique que l’utilisateur obtiendra 0,016 WETH (30 $) s’il approuve la demande de transaction. Cependant, ils n’obtiennent rien en retour lors de l’exécution de la transaction en direct.
Impact
En explorant ces scénarios «d’attaque de pilule rouge», ZenGo Wallet a trouvé six dapps de portefeuille de crypto-monnaie vulnérables à l’exploitation.
Il s’agit du portefeuille Coinbase, du portefeuille Rabby, de Blowfish, de PocketUniverse, de Fire Extension et d’une extension sans nom qui n’a pas encore résolu le problème.
Tous les autres fournisseurs mentionnés ci-dessus ont mis en place des correctifs sur leur simulation de transaction peu de temps après avoir reçu le rapport de ZenGo Wallet.
La solution à cette attaque consiste à cesser d’utiliser des valeurs arbitraires pour les variables vulnérables, empêchant leur utilisation comme « pilules rouges » dans les contrats malveillants.