NFT : auriez-vous pu tout perdre à cause de ce bug critique ? Retour sur le fail Rarible
Un danger pour vos NFT – Rarible est une plateforme d’achat et de vente de NFT. Celle-ci attire chaque mois plus d’un millier d’utilisateurs et a enregistré 270 millions de dollars de volume en 2021. Néanmoins, ce succès aurait pu tourner au vinaigre suite à la présence d’une vulnérabilité critique sur la plateforme.
Vulnérabilité critique sur Rarible
La semaine dernière, l’entreprise spécialisée dans la cybersécurité Check Point a publié un rapport concernant une vulnérabilité découverte sur la plateforme Rarible.
Tout a commencé après une attaque visant le chanteur taïwanais Jay Chou. En effet, celui-ci s’est fait dérober son BoredApe #3738 dans le cadre d’une transaction frauduleuse.
Cet épisode a poussé Check Point à mener l’enquête. Une fois n’est pas coutume, le vol du NFT a pu être réalisé, car Jay Chou avait signé une transaction autorisant l’accès à ses NFT.
En pratique, celui-ci a signé une transaction exécutant la fonction setApprovalForAll. Celle-ci permet de définir les permissions d’accès à des jetons ou NFT. En temps normal, elle est largement utilisée par les plateformes telles que Rarible pour réaliser les ventes des jetons.
Cependant, bon nombre d’attaquants réussissent à faire signer un setApprovalForAll à leurs victimes. Cela leur permet par la suite de gagner le contrôle sur leurs NFT. Habituellement, les attaquants ont recours à des techniques de phishing pour piéger leurs victimes. Ce fut récemment le cas sur OpenSea. Dans le cadre de Rarible, l’attaque était bien plus sophistiquée.
Quand les NFT mènent l’attaque
En menant leur enquête, les équipes de Check Point ont tenté diverses manipulations, avant de déceler une vulnérabilité critique sur Rarible.
Ainsi, Rarible permet à ses utilisateurs de téléverser différents types de fichiers ayant les extensions PNG, GIF, SVG, MP4, WEBM, ou MP3.
Toutefois, Check Point s’est rendu compte qu’il était possible d’intégrer du code JavaScript aux images SVG. Une fois l’image publiée sur Rarible, le code malicieux intégré à l’image n’a plus qu’à attendre ses victimes.
« En cliquant sur l’art et en l’ouvrant dans un autre onglet, ou en cliquant sur le lien IPFS dans la liste déroulante, le code JavaScript sera exécuté. »
Check Point
En pratique, le code récupère la liste des NFT détenus par l’utilisateur. Par la suite, celui-ci va boucler sur ces NFT et envoyer des transactions de type setApprovalForAll pour les collections jugées intéressantes par l’attaquant.
De son côté, l’utilisateur va être notifié d’une transaction en attente. Malheureusement, si l’utilisateur a le malheur de signer cette transaction machinalement, celui-ci scelle le sort de ses NFT et permet à l’attaquant d’en prendre le contrôle.
Rarible, seule victime ?
Évidemment, les équipes de Check Point ont rapidement partagé leurs découvertes à celles de Rarible. S’est ensuivie la publication d’un correctif permettant de corriger la vulnérabilité.
Bien qu’aucune estimation sur l’envergure qu’aurait pu prendre cette vulnérabilité en termes de pertes, Check Point souligne qu’elle aurait pu affecter n’importe quel utilisateur de Rarible.
De surcroit, Check Point n’exclut pas la possibilité qu’une telle vulnérabilité puisse être présente sur d’autres plateformes de vente NFT.
Face à cette menace, Check Point rappel quelques bonnes pratiques pour se protéger face à ce type d’attaques :
- Examiner attentivement chaque demande de signature émanant de votre wallet ;
- En cas de doute, rejeter la demande afin de prendre le temps de l’examiner plus en détail ;
- Révoquer fréquemment les approbations de votre wallet via l’interface d’Etherscan.
Plus tôt dans l’année, une première vulnérabilité avait été découverte sur OpenSea. Celle-ci avait entrainé la perte de plusieurs centaines de NFT dont la valeur totale dépassait les 300 ETH.
Sur Rarible, comme sur d’autres plateformes DeFi, soyez prudents et appliquez les bonnes pratiques de sécurité. Si cela vous effraie, privilégiez les exchanges qui ont fait leurs preuves. Inscrivez-vous sur Swissborg et bénéficiez d’un bonus exceptionnel pouvant aller jusqu’à 200€ en cryptomonnaies (lien affilié, pour un dépôt minimum de 50€) !