OrionProtocol a subi une attaque par réentrance, 2,9 millions de dollars ont été volés.

robot
Création du résumé en cours

La vulnérabilité du contrat OrionProtocol entraîne une perte de 2,9 millions de dollars

Le 2 février 2023, les contrats Orion Protocol sur Ethereum et Binance Smart Chain ont subi une attaque par réentrance, entraînant une perte d'environ 2,9 millions de dollars. Les pertes spécifiques comprennent 2 844 766 USDT sur la chaîne Ethereum et 191 606 BUSD sur la chaîne Binance Smart.

Analyse du processus d'attaque

L'attaquant a d'abord déployé un contrat Token sur mesure et a effectué des opérations de transfert et d'autorisation connexes. Ensuite, l'attaquant a emprunté des fonds via la méthode swap d'un certain DEX et a appelé la méthode swapThroughOrionPool d'OrionProtocol pour échanger des tokens. Le chemin d'échange comprend l'adresse du contrat Token créé par l'attaquant.

Lors de l'exécution de la méthode swapThroughOrionPool, en raison de la fonction de rappel dans le contrat Token de l'attaquant, il est possible d'appeler plusieurs fois la méthode depositAsset pendant le processus de transfert. Cela entraîne un double calcul du montant du dépôt, permettant finalement à l'attaquant d'obtenir des gains excessifs par le biais d'opérations de retrait.

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

Flux de fonds

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

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

Noyau de la vulnérabilité

Le problème réside dans la fonction doSwapThroughOrionPool. Cette fonction effectue d'abord l'opération de transfert lors de l'exécution de _doSwapTokens, puis met à jour la variable curBalance. L'attaquant exploite le rappel de la méthode depositAsset via la fonction transfer de son Token personnalisé, ce qui entraîne une mise à jour incorrecte de curBalance. Cela permet à l'attaquant, après avoir remboursé le prêt flash, d'extraire des fonds excédentaires via la fonction withdraw.

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

Analyse des attaques de 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

Analyse des attaques par réentrées 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 de l'attaque par réinjection OrionProtocol avec PoC

Conseils de sécurité

Pour les contrats intelligents ayant une fonction d'échange de jetons, les développeurs doivent prendre en compte les points suivants :

  1. Prendre en compte les imprévus que peuvent entraîner divers Token et chemins d'échange.
  2. Suivre le modèle de codage "Vérifications-Effets-Interactions" (Checks-Effects-Interactions), c'est-à-dire d'abord effectuer une vérification de l'état, puis mettre à jour l'état du contrat, et enfin interagir avec des contrats externes.
  3. Mettre à jour les variables d'état clés avant d'effectuer des appels externes.
  4. Mettre en œuvre des mécanismes de sécurité tels que le verrouillage de réentrées.
  5. Effectuer un audit de sécurité complet du contrat.

En prenant ces mesures, il est possible de réduire considérablement le risque d'attaque des contrats intelligents et d'améliorer la sécurité et la stabilité du projet.

TOKEN4.22%
ETH2.31%
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
  • 1
  • Partager
Commentaire
0/400
BoredStakervip
· Il y a 17h
C'est encore une attaque par réentrance
Voir l'originalRépondre0
  • Épingler
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)