Raydium annonce les détails du piratage et propose une indemnisation pour les victimes

L'équipe derrière l'échange décentralisé Raydium (DEX) a annoncé des détails sur la manière dont le piratage du 16 décembre s'est produit et a proposé une proposition d'indemnisation aux victimes.

Selon un message officiel de l'équipe sur le forum, le pirate informatique a réussi à remporter plus de 2 millions de dollars de butin cryptographique en exploitant une vulnérabilité dans les contrats intelligents du DEX qui permettait aux administrateurs de retirer des pools de liquidités entiers, malgré les protections existantes destinées à empêcher un tel comportement. 

L'équipe utilisera ses propres jetons débloqués pour compenser les victimes ayant perdu des jetons Raydium, également connus sous le nom de RAY. Cependant, le développeur ne dispose pas du stablecoin et d'autres jetons non-RAY pour indemniser les victimes, il demande donc un vote aux détenteurs de RAY pour utiliser le trésor de l'organisation autonome décentralisée (DAO) pour acheter les jetons manquants afin de rembourser les personnes touchées par le exploiter.

Selon un rapport d'autopsie distinct, la première étape de l'attaquant dans l'exploit a été de Gain contrôle d’une clé privée du pool d’administrateur. L'équipe ne sait pas comment cette clé a été obtenue, mais elle soupçonne que la machine virtuelle qui détenait la clé a été infectée par un cheval de Troie.

Une fois que l'attaquant avait la clé, il a appelé une fonction permettant de retirer les frais de transaction qui seraient normalement versés à la trésorerie du DAO pour être utilisés pour les rachats de RAY. Sur Raydium, les frais de transaction ne vont pas automatiquement à la trésorerie au moment d'un swap. Au lieu de cela, ils restent dans le pool du fournisseur de liquidité jusqu'à ce qu'ils soient retirés par un administrateur. Cependant, le contrat intelligent garde une trace du montant des frais dus au DAO via des paramètres. Cela aurait dû empêcher l'attaquant de pouvoir retirer plus de 0.03 % du volume total des transactions survenues dans chaque pool depuis le dernier retrait.

Néanmoins, en raison d'une faille dans le contrat, l'attaquant a pu modifier manuellement les paramètres, donnant l'impression que l'intégralité du pool de liquidités était constituée de frais de transaction qui avaient été collectés. Cela a permis à l’attaquant de retirer tous les fonds. Une fois les fonds retirés, l'attaquant a pu les échanger manuellement contre d'autres jetons et transférer le produit vers d'autres portefeuilles sous le contrôle de l'attaquant.

Connexe: Le développeur affirme que les projets refusent de verser des primes aux pirates informatiques

En réponse à cet exploit, l'équipe a mis à niveau les contrats intelligents de l'application pour supprimer le contrôle de l'administrateur sur les paramètres exploités par l'attaquant.

Dans le message du forum du 21 décembre, les développeurs ont proposé un plan pour indemniser les victimes de l'attaque. L'équipe utilisera ses propres jetons RAY débloqués pour compenser les détenteurs de RAY qui ont perdu leurs jetons à cause de l'attaque. Il a demandé un forum de discussion sur la manière de mettre en œuvre un plan de compensation utilisant la trésorerie du DAO pour acheter des jetons non-RAY qui ont été perdus. L'équipe demande qu'une discussion de trois jours ait lieu pour trancher la question.

Le piratage Raydium de 2 millions de dollars était première découverte le 16 décembre. Les premiers rapports indiquaient que l'attaquant avait utilisé la fonction retirer_pnl pour supprimer les liquidités des pools sans déposer de jetons LP. Mais comme cette fonction aurait dû uniquement permettre à l'attaquant de supprimer les frais de transaction, la méthode réelle par laquelle il pourrait vider des pools entiers n'était connue qu'après qu'une enquête ait été menée.