Ankr : 60 000 milliards de jetons créés d’un coup après le vol d’une clé de développeur

Une clé de développeur compromise a suffi pour faire naître 60 000 milliards de jetons aBNBc sur BNB Chain. Ankr promet d'indemniser les fournisseurs de liquidité, mais l'épisode rappelle ce qu'un audit de code ne couvre pas.

Voir la table des matières Ne plus voir la table des matières

Le jalonnement liquide repose sur une promesse simple : vous immobilisez vos jetons pour aider à sécuriser un réseau, et vous recevez en retour un jeton représentatif qui reste librement échangeable. Sur BNB Chain, ce jeton s’appelait aBNBc, et il était émis par Ankr, une société d’infrastructure blockchain dont le réseau principal tourne depuis 2019. La mécanique paraissait rodée.

Le 1er décembre 2022, elle s’est retournée contre ses utilisateurs. Un attaquant a mis la main sur la clé privée d’un développeur, remplacé le contrat du jeton par une version modifiée, puis fabriqué 60 000 milliards d’aBNBc en six transactions. Le cours du jeton s’est effondré de 99,5 % en quelques minutes. Comment une infrastructure passée par un audit en arrive-t-elle là ?

Une clé de déploiement, et le contrat n’est plus le même

Avant l’attaque, le contrat du jeton était protégé contre toute émission par un tiers, comme le rappelle Ankr dans le rapport d’incident publié le 2 décembre. L’attaquant n’a pas cherché la faille dans le code déployé : il a obtenu la clé du compte autorisé à mettre le contrat à jour, puis a téléversé une nouvelle version comportant une méthode d’émission dépourvue de tout contrôle d’autorisation.

À partir de là, tout est allé vite. L’adresse commençant par 0xf3a a frappé 60 000 milliards de jetons en six transactions, en a échangé une partie contre de l’USDC sur des places décentralisées, et a commencé à transférer les fonds de BNB Chain vers Ethereum avant que les mouvements ne soient signalés. Quelque 900 BNB ont fini dans un service de mixage sur Ethereum, dont le principe est précisément de rompre la traçabilité des fonds.

La société chiffre le préjudice direct à environ 5 millions de dollars de BNB ponctionnés dans les réserves de liquidité des plateformes d’échange décentralisées. Ses validateurs, son interface d’accès aux nœuds et ses services d’AppChain ont continué de fonctionner sans interruption. Restait à répondre, et vite.

La riposte tient en quelques heures

Ankr décrit une séquence menée en parallèle de l’attaque, sans attendre d’en comprendre l’origine exacte. Quatre gestes ont été posés dans la nuit du 1er au 2 décembre, et ils dessinent assez bien le manuel de crise d’un protocole de jalonnement.

  • Alerte des plateformes de sortie connues, avec pour consigne minimale de suspendre les échanges du jeton ;
  • sécurisation des contrats avec une nouvelle clé, pour empêcher toute modification supplémentaire ;
  • gel temporaire des mouvements du collatéral BNB sous-jacent ;
  • photographie des positions au 2 décembre 2022 à 0 h 43 (UTC), qui sert de référence à toute la suite.

Cette photographie est le point d’ancrage du dédommagement : elle fige qui détenait quoi avant que le marché ne soit inondé de jetons sans contrepartie. Tout ce qui a été acheté ensuite, à prix cassé, en est exclu.

Ce qu’Ankr promet aux fournisseurs de liquidité

L’engagement pris le 2 décembre est chiffré. La société achètera pour 5 millions de dollars de BNB et s’en servira pour indemniser les fournisseurs de liquidité vidés par l’attaque. Elle précise ne rembourser que ceux qui ont été pris de court, pas les acheteurs ayant spéculé sur un jeton déjà dilué.

Les jetons aBNBc et aBNBb sont abandonnés dans la foulée. Un nouveau jeton, ankrBNB, est émis puis distribué aux détenteurs identifiés par la photographie, proportionnellement à ce qu’ils détenaient. Le collatéral BNB immobilisé n’a jamais quitté les contrats, ce qui explique qu’une restitution intégrale ait pu être annoncée plutôt qu’une décote.

Grâce à la rapidité d’action de l’équipe Ankr et de plusieurs protocoles, nous avons pu réduire les dégâts extrêmement vite. Les piratages et les attaques de ce type sont une possibilité malheureuse dans le Web3, même avec la plus grande attention portée aux processus de sécurité, mais nous y étions bien préparés. Contrairement à d’autres événements survenus dans le secteur cette année, nous faisons ce qu’il faut pour notre communauté.

Chandler Song, cofondateur et directeur général d’Ankr, dans le rapport d’incident publié par la société le 2 décembre 2022

Helio Protocol, la victime collatérale

L’effondrement du prix d’aBNBc a ouvert une seconde brèche, ailleurs. Helio Protocol acceptait ce jeton en garantie pour émettre son stablecoin HAY, et son oracle de prix n’a pas suivi la chute. Le protocole a donc continué de valoriser à plein une garantie devenue sans consistance.

Un intervenant s’est engouffré dans l’écart. Avec 10 BNB, il a acheté 183 885 aBNBc au prix effondré, les a déposés en garantie, puis a emprunté 16 millions de HAY qu’il a revendus contre 15,5 millions de BUSD. Sa mise de départ a été multipliée par plus de cinq mille.

Le stablecoin a décroché jusqu’à 0,20 dollar avant de remonter autour de 0,96 dollar, l’équipe d’Helio annonçant le rachat puis la destruction des HAY émis en excès. Ankr a de son côté engagé un fonds de sauvetage de 15 millions de dollars pour couvrir l’ensemble des protocoles touchés, soit le triple du préjudice direct annoncé la veille.

L’audit avait pointé le problème sans le résoudre

Ankr n’était pas un protocole sans revue de code. PeckShield avait examiné ses contrats de jalonnement BNB et documenté l’étendue des pouvoirs accordés aux rôles privilégiés, propriétaire, émetteur et opérateur, en classant cette concentration comme un problème de confiance. L’équipe avait accusé réception de la remarque sans revoir l’architecture.

Le cabinet n’avait pas prédit le scénario exact, mais il en avait décrit la conséquence : des rôles autorisés capables d’émettre, de détruire et de reconfigurer à volonté. Un audit reste une revue datée d’un code donné, pas une garantie sur la gestion des clés ni sur la chaîne de compilation, et la revue d’un code de contrat s’arrête là où commence l’organisation qui le déploie. La signature multiple et les délais de verrouillage répondent à ce risque, l’audit non.

Ce que le jalonnement liquide fait porter au détenteur

L’épisode replace une question rarement posée au moment de cliquer sur le bouton de jalonnement : qui peut modifier le contrat qui garde vos jetons, et selon quelle procédure ? Un rendement affiché ne dit rien de cette gouvernance technique, et c’est pourtant elle qui décide de tout le jour où une clé fuit.

BNB Chain avait déjà connu l’arrêt du réseau en octobre après l’exploitation de son pont inter-chaînes. Deux mois plus tard, c’est un jeton de jalonnement de son écosystème qui vacille. Le point commun n’est pas le code, c’est la concentration des droits : un pont contrôlé par une poignée de signatures, un contrat modifiable par une seule clé.

Pour qui construit une position sur plusieurs années, la leçon ne tient pas à éviter le jalonnement liquide, mais à le regarder comme un produit dont le risque principal est organisationnel. Les signaux d’alerte en finance décentralisée se lisent autant dans les statuts d’un protocole que dans son code, et le prochain incident dira si le secteur a fait la différence.

Associé à : , , , ,


Vous appréciez cet article ?

Partagez-le avec vos proches Ajoutez-nous comme source préférée