Comment se faire 30 millions de $ en 4 heures ? Ils réussissent le coup du siècle, sur la Binance Smart Chain (BSC) !
Un hack qui laisse un goût amer – Les hacks de protocoles DeFi évoluant sur la Binance Smart Chain ne cessent de se multiplier. Après l’attaque à 50 millions de dollars qui a visé Uranium Finance la semaine dernière, c’est au tour de Spartan Protocol d’essuyer 30 millions de pertes.
Quand 4 h suffisent pour créer une grosse perte
Dans la nuit du samedi 1 mai au dimanche 2 mai, aux alentours de 2h du matin, les équipes du protocole DeFi Spartan Protocol ont alerté leur communauté qu’une attaque était en cours.
Quelques heures plus tard, l’entreprise PeckShield avait publié un rapport relatant le déroulement de l’attaque. Comme à son habitude, le chercheur Igor Igamberdiev travaillant pour TheBlock est, lui aussi, revenu sur les évènements.
Au total, l’attaquant a réussi à siphonner l’équivalent de 30 millions de dollars de cryptomonnaies sur 4 pools différentes via 9 attaques distinctes.
Une attaque orchestrée de main de maître
En pratique, l’attaquant a profité d’une faille dans le calcul des parts de liquidités déposées lors de leur retrait.
« Cet incident est dû à une logique erronée dans le calcul de la part de liquidités lorsque les jetons de pools (LP tokens) sont brûlés pour retirer les actifs sous-jacents. »
Rapport de PeckShield
Dans les faits, la fonction callLiquidityShare du contrat ne mettait plus à jour le nombre total de jetons de liquidités émis. Pour rappel, les jetons de liquidités (ou LP Tokens) sont émis lors d’un dépôt et représente la part des liquidités déposées par un utilisateur.
« Spartan utilisait les soldes actuels au lieu des soldes en cache (comme Uniswap) pour calculer la valeur des jetons LP. Comme le nombre de jetons LP n’augmentait pas, chaque jeton LP permettait de drainer plus de jetons. »
Igor Igamberdiev
L’attaquant aurait procédé en 5 étapes :
- L’attaquant a effectué un flashswap sur Pancakeswap d’un montant de 100 000 WBNB. Avec cet argent, il a échangé les WBNB contre des jetons SPARTA ;
- Il a ensuite ajouté 2 536 SPARTA et 11 853 WBNB à la pool SPARTA/WBNB du protocole via la méthode addLiquidity, permettant la création de 933 350 LP Token SPT1-WBNB ;
- Puis, il a échangé 1 674 WBNB contre 2 639 121 SPARTA sur la même pool et il a envoyé les jetons sur la pool, sans utiliser la méthode addliquidity ;
- Pour continuer, il a commencé à drainer les fonds en brûlant les 933 350 LP Token générés précédemment, récupérant 2 538 199 SPARTA et 20 694 WBNB soit 9 000 WBNB de plus que ceux déposés ;
- Finalement, l’attaquant ajouté les liquidités de la troisième étape pour générer 1,414,010 LP Tokens avant de les retirer immédiatement contre 2 643 882 SPARTA and 21 555 WBNB, enregistrant une fois de plus un large profit.
Par la suite, il a répété les différentes étapes ci-dessus pour continuer de vider les pools.
Au total, l’attaquant a récupéré :
- 30 700 WBNB (18,9 millions de dollars) ;
- 4,6 millions de SPARTA (7,8 millions de dollars) ;
- 1,3 millions de BUSD-T (1,3 millions de dollars) ;
- 23,2 BTCB (1,3 millions de dollars) ;
- 924 000 BUSD (900 000 dollars).
Ces fonds ont ensuite été convertis en anyETH et anyBTC et l’attaquant a retiré l’ensemble de son profit (moins 30 % perdus en slippage) via le pont d’Anyswap vers Ethereum. De ce fait, les fonds n’étaient plus sur la Binance Smart Chain et Binance, bien qu’ayant la possibilité de rollback, ne pouvait plus intervenir.
Un protocole pourtant audité
Cet énième hack repose diverses questions quant à la qualité des audits réalisés. En effet, Spartan Protocol avait été audité par Certik en septembre 2020. Lors de l’audit en question, Certik, pourtant réputé dans le milieu, n’avait pas décelé la faille. Spartan avait été présenté comme un protocole sûr, car audité, alors même que celui-ci présentait une faille depuis 8 longs mois.
Au total, 80 millions de dollars ont été dérobés au cours de la semaine passée sur la Binance Smart Chain. Une facture insupportable qui sera, une fois de plus, payée par les investisseurs lésés. Certes, la DeFi propose des rendements intéressants, mais ces évènements nous ramènent à la dure réalité des risques encourus lors de l’utilisation de tels protocoles. Il en va des protocoles et des utilisateurs de redoubler de vigilance.