Cryptonews

Un énorme braquage découvert : un outil pratique devient fatal alors que les pirates détournent 270 millions de dollars de la dérive sur la blockchain Solana

Source
cryptonewstrend.com
Publié
Un énorme braquage découvert : un outil pratique devient fatal alors que les pirates détournent 270 millions de dollars de la dérive sur la blockchain Solana

L’attaque contre Drift Protocol n’était pas un hack au sens traditionnel du terme.

Personne n’a trouvé de bug ni déchiffré une clé privée. Il n’y a pas non plus eu d’exploit de prêt flash ni d’oracle manipulé.

Au lieu de cela, un attaquant a utilisé une fonctionnalité légitime de Solana, « occasions durables », pour inciter le conseil de sécurité de Drift à approuver au préalable des transactions qui seraient exécutées des semaines plus tard, à un moment et dans un contexte que les signataires n'avaient jamais prévu.

Le résultat a été une perte d’au moins 270 millions de dollars qui a pris moins d’une minute à exécuter mais plus d’une semaine à mettre en place.

Que sont les occasionnels durables et pourquoi ils existent

Sur Solana, chaque transaction comprend un « blockhash récent », essentiellement un horodatage qui prouve que la transaction a été créée récemment. Ce blockhash expire après environ 60 à 90 secondes. Si la transaction n'est pas soumise au réseau dans cette fenêtre, elle devient invalide. Il s'agit d'une fonction de sécurité qui permet d'éviter que d'anciennes transactions obsolètes ne soient réexécutées ultérieurement.

Les occasionnels durables remplacent cette fonction de sécurité. Ils remplacent le blockhash expirant par un « nonce » fixe, un code à usage unique stocké dans un compte onchain spécial, qui maintient la transaction valide indéfiniment jusqu'à ce que quelqu'un choisisse de la soumettre.

La fonctionnalité existe pour des raisons légitimes. Les portefeuilles matériels, les configurations de signature hors ligne et les solutions de conservation institutionnelles doivent tous pouvoir préparer et approuver les transactions sans être obligés de les soumettre dans les 90 secondes.

Mais les transactions valables indéfiniment créent un problème. Si l’on parvient à convaincre quelqu’un de signer une transaction aujourd’hui, celle-ci pourra être exécutée la semaine prochaine ou le mois prochain, selon les règles codées en dur du système. Le signataire n'a aucun moyen de révoquer son approbation une fois qu'elle est donnée, à moins que le compte occasionnel ne soit avancé manuellement, ce que la plupart des utilisateurs ne surveillent pas.

Comment l'attaquant les a utilisés

Le protocole de Drift était régi par un « Conseil de sécurité multisig », un système dans lequel plusieurs personnes (dans ce cas, cinq) partagent le contrôle, et toute action nécessite l'approbation d'au moins deux d'entre elles. Les multisigs sont une pratique de sécurité standard dans DeFi, où l'idée est que compromettre une seule personne ne suffit pas pour voler des fonds.

Mais l’attaquant n’avait pas besoin de compromettre les clés de qui que ce soit. Tout ce dont ils avaient besoin, c'était de deux signatures, et ils semblent les avoir obtenus grâce à ce que Drift décrit comme « des approbations de transactions non autorisées ou déformées », ce qui signifie que les signataires pensaient probablement qu'ils approuvaient une transaction de routine.

Voici la timeline Drift publiée dans un post du jeudi X.

Le 23 mars, quatre comptes occasionnels durables ont été créés. Deux d’entre eux étaient associés à des membres légitimes du Conseil de sécurité de Drift. Deux d'entre eux étaient contrôlés par l'agresseur. Cela signifie que l'attaquant avait déjà obtenu des signatures valides de deux des cinq membres du conseil, bloqués dans des transactions temporaires durables qui n'expireraient pas.

Le 27 mars, Drift a exécuté une migration prévue du Conseil de sécurité pour remplacer un membre du conseil. L'attaquant s'est adapté. Le 30 mars, un nouveau compte temporaire durable est apparu, lié à un membre du multisig mis à jour, indiquant que l'attaquant avait de nouveau obtenu le seuil d'approbation requis de deux sur cinq dans la nouvelle configuration.

Le 1er avril, l'agresseur a été exécuté.

Tout d’abord, Drift a effectué un test légitime de retrait de son fonds d’assurance. Environ une minute plus tard, l’attaquant a soumis les transactions non occasionnelles durables pré-signées. Deux transactions, espacées de quatre emplacements sur la blockchain Solana, ont suffi pour créer et approuver un transfert d'administrateur malveillant, puis l'approuver et l'exécuter.

En quelques minutes, l’attaquant avait le contrôle total des autorisations au niveau du protocole de Drift. Ils ont utilisé ce contrôle pour introduire un mécanisme de retrait frauduleux et vider les coffres-forts.

Ce qui a été pris et où il est allé

Les chercheurs d'Onchain ont suivi les flux de fonds en temps réel. La répartition des actifs volés, compilée par le chercheur en sécurité Vladimir S., s'élève à environ 270 millions de dollars répartis sur des dizaines de jetons.

La catégorie la plus importante était de 155,6 millions de dollars en jetons JPL, suivis de 60,4 millions de dollars en USDC, 11,3 millions de dollars en CBBTC (Bitcoin enveloppé par Coinbase), 5,65 millions de dollars en USDT, 4,7 millions de dollars en éther enveloppé, 4,5 millions de dollars en DSOL, 4,4 millions de dollars en WBTC, 4,1 millions de dollars en FARTCOIN et des montants plus petits dans JUP, JITOSOL, MSOL, BSOL, EURC et autres.

Le portefeuille de drain principal a été financé huit jours avant l'attaque via les intentions du protocole NEAR, mais est resté inactif jusqu'au jour de l'exécution. Les fonds volés ont été transférés vers des portefeuilles intermédiaires qui ont été financés la veille via Backpack, un échange cryptographique décentralisé qui nécessite une vérification d'identité, donnant potentiellement une piste aux enquêteurs.

À partir de là, les fonds ont été transférés vers les adresses Ethereum via Wormhole, un pont inter-chaînes. Ces adresses Ethereum ont été préfinancées à l'aide de Tornado Cash, le mélangeur de confidentialité sanctionné.

ZachXBT, un éminent enquêteur sur la chaîne, a noté que plus de 230 millions de dollars en USDC ont été transférés de Solana à Ethereum via le CCTP (Cross-Chain Transfer Protocol) de Circle sur plus de 100 transactions.

Il a critiqué Circle, l'émetteur centralisé de $USDC,