Le 3 janvier, le projet Radiant Capital a subi une grave attaque de prêt flash, entraînant une perte de 1 900 ETH (environ 4,5 millions de dollars). Radiant Capital est un protocole de prêt inter-chaînes décentralisé qui permet aux utilisateurs de déposer et de prêter divers actifs sur différentes blockchains, éliminant ainsi les silos de liquidité.

Selon les données en chaîne, le pirate informatique a profité d'une fenêtre de temps pour l'activation d'un nouveau marché et d'un problème d'arrondi dans la base de code Compound/Aave pour exécuter une attaque de prêt flash. Cette méthode d'attaque consiste à emprunter une grande quantité de fonds, à effectuer une série d'opérations au sein d'un bloc, puis à restituer les fonds avant la fin du bloc pour réaliser un profit.

Attaque de vulnérabilité brièvement

Selon les rapports de PeckShield et PeckShield, les attaquants ont exploité une vulnérabilité informatique dans Radiant Capital, leur permettant de retirer de grandes quantités d'USDC à bas prix en contrôlant la précision et l'arrondi. L'USDC est une monnaie stable dont la valeur est rattachée au dollar américain et constitue l'un des actifs couramment utilisés dans les protocoles financiers décentralisés.

Le processus d'attaque de l'attaquant est le suivant :

1. L’attaquant a d’abord emprunté 3 millions USDC via le prêt flash AAVE pour les utiliser comme fonds de démarrage pour l’attaque. Les prêts flash font référence à l'emprunt d'une grande quantité de fonds, à la réalisation d'une série d'opérations au sein d'un bloc, puis à la restitution des fonds avant la fin du bloc pour réaliser un profit.

2. L'attaquant a promis 2 millions USDC pour le contrat Radiant et a obtenu 2 millions de jetons de certificat rUSDCn.

3. L'attaquant effectue un prêt flash via le contrat Radiant, emprunte 2 millions d'USDC, restitue les 2 millions d'USDC dans la fonction de rappel et extrait l'USDC promis dans la deuxième étape. Enfin, la fonction de prêt flash appellera la fonction de transfert avec. intérêts. Transférez l’USDC de l’attaquant dans le contrat. À ce moment-là, des frais de traitement de 9/10 000 seront facturés, et les frais de traitement perçus deviennent la liquidité du pool.

4. En répétant l'étape 3 plusieurs fois, l'attaquant contrôle le LiquidIndex comme étant très grand, LiquidIndex=2718000000009999999999999998631966035920. LiquidityIndex est une variable utilisée dans le contrat Radiant pour enregistrer la croissance de la liquidité. Elle augmentera avec l'accumulation de temps et d'intérêts.

5. Ensuite, l'attaquant crée un nouveau contrat et y place 543 600 USDC, car 5436 (valeur USDC) est exactement le double du 2718 (valeur LiquidityIndex) à l'étape 4, qui peut être facilement contrôlée par arrondi.

6. L'attaquant a hypothéqué la totalité des 543 600 USDC dans le contrat Radiant et a obtenu le même montant de rUSDCn.

7. L'attaquant a extrait 407 700 USDC, ce qui aurait dû détruire 407 700 rUSDCn, mais comme mentionné ci-dessus, la fonction de gravure a effectué des calculs d'expansion et d'arrondi de précision. 407700000000000000000000000000000000000/2718000000009999999999999998631966035920=1,49999999, et le résultat de l'arrondi est 1, ce qui rend le résultat 1/3 plus petit. Comme le montre l'image ci-dessous, 407 700 USDC auraient dû être détruits, mais il en reste 271 800, ce qui indique que seulement 271 800 ont été détruits et que l'attaquant a retiré 407 700 USDC.

8. L'attaquant exploite la vulnérabilité de l'étape 7 pour répéter l'opération de retrait de gage, et le retrait est toujours 1/3 de plus que le montant promis, et échange finalement tous les USDC du pool.

Les fonds ne sont actuellement pas menacés

Radiant Capital a reconnu le problème dans son message officiel et a déclaré qu'il avait suspendu son marché de prêts sur Arbitrum et qu'il enquêtait sur la cause et l'impact de l'incident. Arbitrum est une solution de mise à l'échelle de deuxième couche qui augmente la vitesse des transactions et réduit les coûts sur Ethereum. Radiant Capital a également déclaré qu'aucun fonds d'utilisateur n'est actuellement en danger et prévoit de publier un rapport de détection et de reprendre ses opérations une fois le problème résolu.

Conclusion:

Cet incident nous rappelle une fois de plus que la sécurité des protocoles financiers décentralisés est essentielle et doit être continuellement auditée et testée pour prévenir les vulnérabilités et les attaques potentielles. Les utilisateurs doivent également être conscients des risques et participer uniquement aux prêts et aux investissements sur des plateformes fiables. Bien que Radiant Capital ait subi de lourdes pertes, elle a également fait preuve d'une attitude positive et d'un sens des responsabilités, dans l'espoir de pouvoir se rétablir et améliorer la sécurité et la stabilité de son protocole le plus rapidement possible. Dans le même temps, j'espère également que d'autres protocoles financiers décentralisés pourront tirer les leçons de cet incident, renforcer leurs propres précautions de sécurité et offrir aux utilisateurs de meilleurs services et expériences. #RadiantCapital #黑客攻击