Balancer a été attaqué par un hacker pour 500 000 dollars, un nouveau signal d'alarme concernant une faille dans un contrat DeFi.

robot
Création du résumé en cours

Analyse de l'incident d'attaque du Hacker sur la plateforme Finance décentralisée Balancer

Dans la nuit du 29 juin, deux pools de tokens ERC20 déflationnistes de la plateforme DeFi Balancer ont été attaqués par des hackers, entraînant des pertes de plus de 500 000 dollars. Après l'intervention des analystes en sécurité pour enquêter, il a été découvert que la source du problème résidait dans l'incompatibilité entre les tokens déflationnistes sur Balancer et leur contrat intelligent dans certains scénarios spécifiques, permettant aux attaquants de créer des pools de tokens avec des écarts de prix et d'en tirer profit.

Les attaques de hackers se divisent en quatre étapes principales :

  1. Obtenir un prêt flash de 104,331 WETH d'une certaine plateforme de prêt.

  2. Exécuter à plusieurs reprises l'appel swapexactMountin(), jusqu'à ce qu'il ne reste presque plus de jetons STA détenus par Balancer, avec seulement 0.000000000000000001 jeton STA restant.

  3. En utilisant l'incompatibilité entre le jeton STA et le contrat intelligent Balancer, c'est-à-dire le déséquilibre entre la comptabilité et les soldes, épuisant les autres actifs du pool de liquidités, pour finalement réaliser un profit de 523 616,52 $ en actifs numériques.

  4. Rembourser le prêt éclair et transférer les actifs numériques obtenus par l'attaque.

À un stade clé de l'attaque, le Hacker a envoyé une très petite quantité de STA à BPool via la fonction swapExactAmountIn(), échangeant ainsi une grande quantité de WETH à une valeur extrêmement élevée. Étant donné que le transfert de STA entraîne une perte de 1 % en frais, BPool ne peut en réalité recevoir aucune STA, ce qui entraîne un déséquilibre entre le solde réel et la comptabilité interne. L'attaquant a ensuite continué à réinitialiser _records( en appelant la fonction gulp)[STA], maintenant ainsi une très petite quantité de STA dans BPool, permettant un échange continu à un prix élevé pour d'autres actifs.

Cet incident a de nouveau mis en lumière les risques de compatibilité liés à la combinaison de la Finance décentralisée. Pour prévenir des attaques similaires, les solutions d'optimisation suivantes peuvent être envisagées :

  1. Lorsque le montant du transfert est insuffisant pour couvrir les frais de transaction, STA/STONK doit directement revenir en arrière ou retourner False lors de l'exécution de transfer() ou transferFrom().

  2. Balancer doit vérifier le solde réel de BPool après chaque appel de la fonction transferFrom().

Cependant, la meilleure solution reste la prévention préalable. Les développeurs de projets DeFi devraient adopter de bonnes normes de code, rechercher l'assistance d'entreprises de sécurité tierces pour effectuer des tests d'attaque et de défense complets, et procéder à une vérification minutieuse des comportements combinés des différents standards de jetons et des projets DeFi.

Les pertes spécifiques causées par cet incident d'attaque de Balancer comprennent :

  • 601,3 WETH
  • 11 031,4 SNX
  • 22 593,2 LINK
  • 116,107.8 STA
  • 53.4 COMP

Total des actifs numériques perdus d'environ 523 616,52 dollars.

Cet événement aura sans aucun doute un impact important sur la communauté de la Finance décentralisée, tout en avertissant tous les développeurs de projets DeFi qu'ils doivent accorder une grande importance à la sécurité des contrats intelligents.

BAL-6.29%
DEFI-4.6%
Voir l'original
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.
  • Récompense
  • Commentaire
  • Partager
Commentaire
0/400
Aucun commentaire
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)