OrionProtocol a subi une attaque par réentrance, avec une perte de 2,9 millions de dollars USDT et BUSD.

Analyse de l'incident d'attaque par réentrée d'OrionProtocol

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

Processus d'attaque

L'attaquant a d'abord déployé un contrat de Token personnalisé et a effectué les opérations de transfert et d'autorisation nécessaires pour préparer l'attaque ultérieure. Ensuite, l'attaquant a emprunté via la méthode swap de UNI-V2 et a appelé la méthode swapThroughOrionPool du contrat ExchangeWithAtomic pour échanger des tokens.

Le chemin d'échange est défini sur [USDC, Token de l'attaquant, USDT]. La clé est que le contrat Token créé par l'attaquant contient une fonction de rappel. Au cours du processus d'échange, l'attaquant utilise la méthode Token.Transfer pour rappeler la fonction ExchangeWithAtomic.depositAsset, réalisant ainsi une attaque par réentrance, entraînant une accumulation continue des montants déposés. Finalement, l'attaquant réalise des profits grâce à l'opération de retrait.

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

Flux de fonds

Les fonds initiaux de l'attaquant proviennent du compte de portefeuille chaud d'une certaine plateforme d'échange. Parmi les 1 651 ETH de profits, 657,5 ETH sont toujours dans l'adresse du portefeuille de l'attaquant, le reste ayant été transféré via un service de mélange.

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

Analyse des vulnérabilités

Le problème central réside dans la fonction doSwapThroughOrionPool du contrat ExchangeWithAtomic. Cette fonction effectue d'abord le transfert lors de l'exécution de l'opération _doSwapTokens, puis met à jour la variable curBalance. L'attaquant a ajouté une logique de rappel dans la fonction transfer de son Token personnalisé, ce qui a entraîné une mise à jour incorrecte de curBalance. Cela a permis à l'attaquant de retirer des fonds excessifs via la fonction withdraw après avoir remboursé le prêt éclair.

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 par réentrance d'OrionProtocol avec PoC

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

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

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

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

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

Conseils de prévention

  1. La conception des contrats doit suivre le modèle "Vérifications-Effects-Interactions" (Checks-Effects-Interactions), en mettant à jour d'abord les variables d'état, puis en effectuant des appels externes.

  2. Implémenter des mécanismes de prévention de la réentrance tels que les verrous de réentrance.

  3. Pour les fonctionnalités impliquant l'échange de tokens, il est nécessaire de prendre en compte les risques de sécurité potentiels que différents types de tokens et chemins d'échange peuvent entraîner.

  4. Renforcer l'audit de code, en prêtant une attention particulière aux fonctions clés impliquant des opérations financières.

  5. Envisagez d'introduire des mesures de sécurité supplémentaires telles que des limites de montant de transaction ou des verrous temporels.

  6. Effectuer régulièrement des évaluations de sécurité et des tests d'intrusion pour détecter et corriger rapidement les vulnérabilités potentielles.

Cet événement souligne encore une fois l'importance de la sécurité des contrats intelligents. Les équipes de projet doivent continuer à surveiller la sécurité des contrats et mettre en place des mesures de protection multiples pour minimiser les risques de sécurité.

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
  • 6
  • Partager
Commentaire
0/400
NewPumpamentalsvip
· 07-11 03:48
Chaque jour, attaqué par un Rug Pull
Voir l'originalRépondre0
HodlBelievervip
· 07-08 12:16
Risques typiques des contrats
Voir l'originalRépondre0
0xSoullessvip
· 07-08 08:06
La réentrance est toujours un point sensible
Voir l'originalRépondre0
PaperHandSistervip
· 07-08 08:03
manquer la demoiselle a pleuré aujourd'hui.
Voir l'originalRépondre0
AirdropHunterXMvip
· 07-08 08:02
Encore un incident d'attaque par réentrance
Voir l'originalRépondre0
ChainWatchervip
· 07-08 07:55
Encore une autre entreprise qui a été coupée les coupons
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)