Le 10 août 2021, la plateforme d'interopérabilité inter-chaînes Poly Network — qui permet aux utilisateurs de transférer ou d'échanger des jetons entre blockchains — a été vidée de plus de 610 millions de dollars lors de l'un des plus grands vols de monnaie numérique jamais enregistrés. La société de sécurité SlowMist a confirmé que plus de 610 millions de dollars avaient été transférés vers trois adresses, avec d'importantes pertes dans le pool inter-chaînes O3 Swap.
La cause profonde était une faille de conception du smart contract, et non une clé dérobée. Dans les contrats de Poly, la fonction verifyHeaderAndExecuteTx de l'EthCrossChainManager peut exécuter des transactions inter-chaînes, et elle pouvait être utilisée pour appeler putCurEpochConPubKeyBytes — modifiant le rôle de keeper du contrat EthCrossChainData au profit d'une adresse choisie par l'attaquant. Le keeper une fois remplacé, l'attaquant pouvait construire des transactions à volonté et retirer n'importe quel montant.
L'attaquant, ensuite surnommé « Mr. White Hat », a affirmé que l'attaque avait été menée « pour le plaisir » afin d'exposer la vulnérabilité, et a commencé à restituer les fonds dès le lendemain. Poly Network a offert une prime de 500 000 dollars et promis que la personne ne serait pas tenue responsable. Au 12 août, environ 342 millions de dollars avaient été restitués, seuls environ 33 millions de dollars en Tether étant encore gelés par l'émetteur du jeton.
Plus de 610 M$ dérobés sur Ethereum, Binance Smart Chain et Polygon — à l'époque le plus grand braquage DeFi jamais commis ; la quasi-totalité restituée en quelques jours, à l'exception de 33 M$ en Tether gelés.
Le contrat permettait à une transaction inter-chaînes de modifier l'adresse du keeper qui protège tous les fonds.
verifyHeaderAndExecuteTx et le chemin de mise à jour du keeper partageaient une frontière de fonction sans séparation des privilèges.
Le code était déployé sur trois chaînes, et la même faille existait sur toutes.
Il n'existait aucun mécanisme de pause d'urgence assez rapide pour arrêter le drainage une fois celui-ci commencé.
La leçon
Dans les bridges inter-chaînes, le privilège, c'est de l'argent : les fonctions de modification du keeper et de vérification des messages nécessitent des audits distincts, des privilèges minimaux et des tests de logique — et pas seulement la garde des clés.
L'attaquant a restitué la quasi-totalité des actifs dérobés au cours des jours suivants et Poly Network a qualifié la personne de « white hat », transférant le reste vers un portefeuille multi-signatures contrôlé par les deux parties. Le chiffre de 610 millions de dollars dépassait largement les 474 millions de dollars de pertes criminelles enregistrées dans l'ensemble de la DeFi au cours des sept premiers mois de 2021, et l'incident a poussé les projets de bridges à considérer la logique des contrats — et pas seulement les clés privées — comme la surface d'attaque critique. Poly Network a poursuivi ses activités, mais les bridges inter-chaînes sont restés une cible privilégiée dans les années suivantes.
VÉRIFIEZ LES SOURCES
Les sources
- 'White hat' hacker returns most of $600 million crypto tokens taken - Poly Network Reuters · finance.yahoo.com ·
- 'White hat' hacker behind $610m crypto heist returns most of money The Guardian · theguardian.com ·
- Over $600 Million Stolen in Biggest Ever Cryptocurrency Theft Infosecurity Magazine · infosecurity-magazine.com ·