Euler Finance a subi une attaque par Prêts Flash, avec des pertes de près de 200 millions de dollars.
Récemment, le projet Euler Finance a subi une attaque par prêts flash en raison d'une vulnérabilité dans le contrat intelligent, entraînant d'énormes pertes financières. Cet article analysera en détail cet événement.
Aperçu de l'événement
Le 13 mars 2023, la fonction donateToReserves du contrat Etoken du projet Euler Finance manquait de vérifications de liquidité nécessaires, ce qui a été exploité par des attaquants pour réaliser une attaque par prêts flash. Les attaquants ont effectué plusieurs opérations avec différentes cryptomonnaies, entraînant finalement une perte d'environ 197 millions de dollars, impliquant 6 types de tokens. Les fonds volés sont toujours bloqués sur le compte des attaquants.
Analyse du processus d'attaque
L'attaquant emprunte d'abord 30 millions de DAI via un Prêt Flash sur une plateforme de prêt, puis déploie un contrat de prêt et un contrat de liquidation.
En utilisant la fonction deposit, stakez 20 millions de DAI dans le contrat Euler Protocol et obtenez 19,5 millions d'eDAI.
Utiliser la fonction de levier 10x du protocole Euler pour emprunter 195,6 millions d'eDAI et 200 millions de dDAI.
Utiliser les 10 millions de DAI restants pour rembourser une partie de la dette et détruire la quantité correspondante de dDAI, puis emprunter à nouveau la même quantité d'eDAI et de dDAI.
Appeler la fonction donateToReserves pour faire un don de 100 millions d'eDAI, puis procéder à la liquidation via la fonction liquidate pour obtenir 310 millions de dDAI et 250 millions d'eDAI.
Enfin, retirez 38,9 millions de DAI via la fonction withdraw, remboursez 300 000 DAI Prêts Flash, et réalisez un bénéfice net de 8,87 millions de DAI.
Analyse des causes des vulnérabilités
Après révision du code, il a été constaté que le problème se situe dans la fonction donateToReserves. Par rapport à d'autres fonctions clés comme mint, la fonction donateToReserves manque d'une étape importante de checkLiquidity.
La fonction checkLiquidity appelle généralement le module RiskManager pour vérifier l'utilisateur, en s'assurant que le nombre d'Etoken est supérieur au nombre de Dtoken. Étant donné que la fonction donateToReserves n'exécute pas cette vérification, un attaquant peut exploiter certaines fonctionnalités du protocole pour se placer dans un état pouvant être liquidé, puis réaliser un profit grâce à la liquidation.
Conseils de sécurité
Pour faire face à ce type d'attaque, les équipes de projet doivent prêter attention aux points suivants :
Avant le lancement du contrat, un audit de sécurité complet doit être effectué pour garantir la sécurité du contrat.
Les projets de prêt doivent se concentrer sur des étapes clés telles que le remboursement des fonds, la détection de la liquidité et le règlement de la dette.
Toutes les fonctions pouvant affecter l'état des actifs des utilisateurs doivent inclure les mécanismes de vérification de sécurité nécessaires.
Effectuer régulièrement des revues de code et des programmes de primes de bugs pour détecter et corriger rapidement les menaces potentielles.
Établir un mécanisme de réponse d'urgence pour pouvoir prendre rapidement des mesures correctives en cas d'incident d'attaque.
Avec le développement continu des projets DeFi, les problèmes de sécurité deviennent de plus en plus importants. Les équipes de projet doivent rester vigilantes en tout temps et prendre des mesures de protection de sécurité complètes pour garantir la sécurité des actifs des utilisateurs.
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
19 J'aime
Récompense
19
3
Partager
Commentaire
0/400
BagHolderTillRetire
· 07-24 17:19
Jouer à des projets hardcore n'est pas aussi bien que d'acheter le dip BTC avec moi.
Euler Finance a subi une attaque de Prêts Flash de 200 millions de dollars, les vulnérabilités des smart contracts en sont la cause.
Euler Finance a subi une attaque par Prêts Flash, avec des pertes de près de 200 millions de dollars.
Récemment, le projet Euler Finance a subi une attaque par prêts flash en raison d'une vulnérabilité dans le contrat intelligent, entraînant d'énormes pertes financières. Cet article analysera en détail cet événement.
Aperçu de l'événement
Le 13 mars 2023, la fonction donateToReserves du contrat Etoken du projet Euler Finance manquait de vérifications de liquidité nécessaires, ce qui a été exploité par des attaquants pour réaliser une attaque par prêts flash. Les attaquants ont effectué plusieurs opérations avec différentes cryptomonnaies, entraînant finalement une perte d'environ 197 millions de dollars, impliquant 6 types de tokens. Les fonds volés sont toujours bloqués sur le compte des attaquants.
Analyse du processus d'attaque
L'attaquant emprunte d'abord 30 millions de DAI via un Prêt Flash sur une plateforme de prêt, puis déploie un contrat de prêt et un contrat de liquidation.
En utilisant la fonction deposit, stakez 20 millions de DAI dans le contrat Euler Protocol et obtenez 19,5 millions d'eDAI.
Analyse des causes des vulnérabilités
Après révision du code, il a été constaté que le problème se situe dans la fonction donateToReserves. Par rapport à d'autres fonctions clés comme mint, la fonction donateToReserves manque d'une étape importante de checkLiquidity.
La fonction checkLiquidity appelle généralement le module RiskManager pour vérifier l'utilisateur, en s'assurant que le nombre d'Etoken est supérieur au nombre de Dtoken. Étant donné que la fonction donateToReserves n'exécute pas cette vérification, un attaquant peut exploiter certaines fonctionnalités du protocole pour se placer dans un état pouvant être liquidé, puis réaliser un profit grâce à la liquidation.
Conseils de sécurité
Pour faire face à ce type d'attaque, les équipes de projet doivent prêter attention aux points suivants :
Avant le lancement du contrat, un audit de sécurité complet doit être effectué pour garantir la sécurité du contrat.
Les projets de prêt doivent se concentrer sur des étapes clés telles que le remboursement des fonds, la détection de la liquidité et le règlement de la dette.
Toutes les fonctions pouvant affecter l'état des actifs des utilisateurs doivent inclure les mécanismes de vérification de sécurité nécessaires.
Effectuer régulièrement des revues de code et des programmes de primes de bugs pour détecter et corriger rapidement les menaces potentielles.
Établir un mécanisme de réponse d'urgence pour pouvoir prendre rapidement des mesures correctives en cas d'incident d'attaque.
Avec le développement continu des projets DeFi, les problèmes de sécurité deviennent de plus en plus importants. Les équipes de projet doivent rester vigilantes en tout temps et prendre des mesures de protection de sécurité complètes pour garantir la sécurité des actifs des utilisateurs.