Auteur : Beosin
Le 9 janvier à l'aube, un contrat non open source déployé il y a 5 ans par Truebit Protocol a été attaqué, entraînant une perte de 8 535,36 ETH (d'une valeur d'environ 26,4 millions de dollars). L'équipe de sécurité de Beosin a réalisé une analyse de la vulnérabilité et du suivi des fonds pour cet incident de sécurité, et partage les résultats ci-dessous :
Analyse de la méthode d'attaque
Pour cet incident, nous prenons comme principale analyse la transaction d'attaque suivante, dont le hash est : 0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
1. L'attaquant appelle getPurchasePrice() pour obtenir le prix
2. Il appelle ensuite la fonction défectueuse 0xa0296215(), en définissant une valeur msg.value extrêmement faible
Le contrat n'étant pas open source, le code décompilé suggère que cette fonction présente une vulnérabilité de logique arithmétique, comme un problème de troncature d'entier, permettant à l'attaquant de frapper avec succès un grand nombre de jetons TRU.
3. L'attaquant utilise la fonction burn pour « revendre » les jetons frappés au contrat, extrayant ainsi une grande quantité d'ETH des réserves du contrat.
Ce processus est répété 4 fois, la valeur de msg.value augmentant à chaque fois, jusqu'à ce que presque tout l'ETH du contrat soit extrait.
Suivi des fonds volés
Sur la base des données de transaction on-chain, Beosin a effectué un suivi détaillé des fonds via sa plateforme d'enquête et de suivi blockchain BeosinTrace, et partage les résultats ci-dessous :
Actuellement, les 8 535,36 ETH volés ont été transférés et la grande majorité est détenue sur les adresses 0xd12f6e0fa7fbf4e3a1c7996e3f0dd26ab9031a60 et 0x273589ca3713e7becf42069f9fb3f0c164ce850a.
L'adresse 0xd12f détient 4 267,09 ETH, et l'adresse 0x2735 détient 4 001 ETH. L'adresse à partir de laquelle l'attaquant a lancé l'attaque (0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50) détient encore 267,71 ETH. Aucun transfert supplémentaire n'a été observé depuis ces trois adresses pour le moment.
Diagramme du flux des fonds volés par Beosin Trace
Toutes ces adresses ont été marquées comme adresses à haut risque par Beosin KYT, prenons l'exemple de l'adresse de l'attaquant :
Beosin KYT
Conclusion
Les fonds volés concernent un contrat intelligent non open source déployé il y a 5 ans. Pour ce type de contrat, les projets devraient procéder à une mise à niveau du contrat, en introduisant une fonction d'arrêt d'urgence, des limites de paramètres et les nouvelles fonctionnalités de sécurité de Solidity. De plus, l'audit de sécurité reste une étape essentielle pour les contrats. Grâce à un audit de sécurité, les entreprises Web3 peuvent détecter de manière aussi complète que possible le code des contrats intelligents, identifier et corriger les vulnérabilités potentielles, et améliorer la sécurité des contrats.
*Beosin fournira le rapport complet de l'analyse de tous les flux de fonds et des risques liés aux adresses pour cet incident. N'hésitez pas à le demander via l'e-mail officiel [email protected].











