OrionProtocol a subi une attaque de réentrance de 2,9 millions de dollars, affectant à la fois les chaînes ETH et BSC.

robot
Création du résumé en cours

Analyse de l'incident d'attaque par réinjection d'OrionProtocol

Aperçu de l'événement

Le 2 février 2023, OrionProtocol a subi une attaque par réentrance sur Ethereum et Binance Smart Chain, entraînant une perte d'environ 2,9 millions de dollars. L'attaquant a exploité une vulnérabilité du contrat pour voler 2 844 766 USDT sur la chaîne Ethereum et 191 606 BUSD sur la chaîne Binance Smart.

Analyse de l'attaque par réinjection d'OrionProtocol avec PoC

Analyse du processus d'attaque

  1. L'attaquant a d'abord déployé un contrat de Token personnalisé pour préparer l'attaque suivante.

  2. Effectuer un prêt via la méthode swap de UNI-V2 et appeler la méthode ExchangeWithAtomic.swapThroughOrionPool pour échanger des tokens. Le chemin d'échange contient l'adresse du contrat Token créée par l'attaquant.

  3. Lors de l'exécution de la méthode swapThroughOrionPool, un attaquant exploite la fonction de rappel dans le contrat Token personnalisé pour appeler plusieurs fois la méthode ExchangeWithAtomic.depositAsset, ce qui entraîne une accumulation multiple du montant déposé.

  4. Enfin, l'attaquant réalise des bénéfices en effectuant des opérations de retrait.

Analyse des attaques par réentrance d'OrionProtocol avec PoC

Analyse des attaques par réentrance d'OrionProtocol avec PoC

Flux de fonds

Les fonds initiaux de l'attaquant proviennent du portefeuille chaud d'une plateforme d'échange. Sur les 1 651 ETH de bénéfices, 657,5 ETH restent dans le portefeuille de l'attaquant, le reste ayant été transféré via un service de mélange.

Analyse des attaques par réentrance d'OrionProtocol avec PoC

Analyse des vulnérabilités

Le problème central réside dans la fonction doSwapThroughOrionPool. Cette fonction, lors de l'exécution de _doSwapTokens, effectue d'abord l'opération de transfert, puis met à jour la variable curBalance. L'attaquant exploite la fonction transfer de Token personnalisée en y ajoutant un rappel, ce qui entraîne un nouvel appel à la fonction depositAsset avant la mise à jour de curBalance, entraînant une erreur de calcul de solde.

Analyse des attaques par réentrance d'OrionProtocol avec PoC

Analyse de l'attaque par réentrance d'OrionProtocol avec PoC

Analyse des attaques par réentrées d'OrionProtocol avec PoC

Analyse des attaques par réentrance d'OrionProtocol avec PoC

Analyse des attaques par réentrance d'OrionProtocol avec PoC

Analyse des attaques de réentrées d'OrionProtocol avec PoC

Analyse des attaques par réentrance d'OrionProtocol avec PoC

Conseils de prévention

  1. Lors de la conception du contrat, il est nécessaire de prendre en compte les risques de sécurité potentiels liés à l'utilisation de plusieurs tokens et chemins d'échange.

  2. Suivez le modèle "Vérifications-Effets-Interactions" (Checks-Effects-Interactions) pour écrire le code des contrats, c'est-à-dire d'abord effectuer des vérifications de condition, puis mettre à jour les variables d'état, et enfin procéder aux appels externes.

  3. Ajouter des mécanismes de sécurité tels que des verrous de réentrées pour prévenir les attaques par réentrées.

  4. Effectuer régulièrement des audits de code et des analyses de vulnérabilités, et réparer rapidement les dangers potentiels pour la sécurité.

  5. Limiter le montant maximum d'une transaction unique, mettre en place des restrictions de fréquence de transaction et d'autres mesures pour réduire les pertes potentielles causées par des attaques.

En prenant ces mesures, l'équipe du projet peut considérablement améliorer la sécurité des contrats et réduire le risque de subir des attaques similaires. Une attention continue à la sécurité des contrats intelligents est essentielle pour maintenir le développement sain de l'écosystème Web3.

ETH0.71%
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
  • 5
  • Reposter
  • Partager
Commentaire
0/400
StakeOrRegretvip
· 07-15 17:28
Encore un piège des smart contracts.
Voir l'originalRépondre0
TokenEconomistvip
· 07-15 07:15
laisse-moi décomposer cela : vulnérabilité de réentrance classique, essentiellement arbitrage économique mais avec des défauts de contrat intelligent
Voir l'originalRépondre0
FreeRidervip
· 07-12 19:16
Encore un nouveau contributeur pigeons
Voir l'originalRépondre0
WenMoon42vip
· 07-12 19:09
Un autre projet est mort.
Voir l'originalRépondre0
LiquidationSurvivorvip
· 07-12 19:08
Le contrat a encore été exploité, je suis sans voix.
Voir l'originalRépondre0
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)