OrionProtocol a subi une attaque de réentrance de 290 millions, des fonds ont déjà été partiellement transférés vers un crypto tumbler.

robot
Création du résumé en cours

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

Le 2 février 2023, l'OrionProtocol a subi une attaque par réentrance en raison d'une vulnérabilité du contrat sur Ethereum et la Binance Smart Chain, avec une perte totale d'environ 2,9 millions de dollars. Les pertes spécifiques incluent 2 844 766 USDT sur la chaîne Ethereum et 191 606 BUSD sur la Binance Smart Chain.

Analyse du processus d'attaque

L'attaquant a d'abord déployé un contrat de Token personnalisé et a effectué des opérations de transfert et d'autorisation connexes pour préparer l'attaque. Ensuite, l'attaquant a emprunté via la méthode swap d'un certain DEX et a appelé la méthode ExchangeWithAtomic.swapThroughOrionPool pour échanger des tokens. Le chemin d'échange est défini comme [USDC, Token de l'attaquant, USDT].

Au cours du processus d'échange, un attaquant a exploité la fonction de rappel du contrat Token personnalisé, en appelant à plusieurs reprises la fonction ExchangeWithAtomic.depositAsset par le biais de la méthode Token.Transfer, ce qui a entraîné une accumulation continue du montant déposé. Finalement, l'attaquant a réalisé un profit en effectuant une opération de retrait.

Analyse des attaques par réentrance 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 obtenus grâce à l'attaque, 657,5 ETH restent dans l'adresse du portefeuille de l'attaquant, le reste ayant été transféré par le biais de services de mixage.

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

Analyse des vulnérabilités

Le problème principal réside dans la fonction doSwapThroughOrionPool. Cette fonction appelle la fonction _doSwapTokens, qui met à jour la variable curBalance après le transfert de tokens. L'attaquant a ajouté une logique de rappel dans la fonction transfer de son Token personnalisé, appelant la fonction depositAsset, ce qui entraîne une mise à jour incorrecte de curBalance. L'attaquant a ensuite appelé la fonction withdraw pour retirer des fonds après avoir remboursé le prêt éclair, complétant ainsi l'attaque.

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

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

Reproduction de l'attaque

L'attaquant attaque en créant un contrat de jeton ERC20 personnalisé et en utilisant la fonction de prêt éclair de certains DEX. Les étapes principales incluent :

  1. Créer un Token personnalisé et établir des paires de trading avec USDC et USDT
  2. Préparer le capital initial et fournir de la liquidité
  3. Appeler les fonctions depositAsset et swapThroughOrionPool du contrat ExchangeWithAtomic
  4. Ajouter la logique de rappel dans la fonction transfer du Token personnalisé
  5. Retirer les fonds de profit via la fonction withdraw

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

Analyse de l'attaque par réentrance 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éinjection d'OrionProtocol avec PoC

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

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

Conseils de sécurité

Pour éviter des attaques similaires, l'équipe du projet devrait prêter attention aux points suivants :

  1. Dans la conception des contrats, il est nécessaire de prendre en compte les risques de sécurité que peuvent entraîner diverses Token et chemins d'échange.
  2. Suivre la norme de codage "Vérifications-Effects-Interactions" (Checks-Effects-Interactions)
  3. Mettre en œuvre un audit de sécurité complet, en mettant particulièrement l'accent sur les risques d'attaques par réentrance.
  4. Envisagez d'utiliser des mécanismes de sécurité tels que les verrous de réentrance.
  5. Effectuer régulièrement des scans de vulnérabilité des contrats et des évaluations de sécurité

Cet événement souligne à nouveau l'importance de la sécurité des contrats intelligents. Les équipes de projet doivent continuer à surveiller et à améliorer leurs mesures de sécurité pour protéger les actifs des utilisateurs et maintenir la réputation de la plateforme.

TOKEN-4.94%
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
  • 4
  • Partager
Commentaire
0/400
AirdropF5Brovip
· Il y a 20h
piège cash out, nouveau objectif !~
Voir l'originalRépondre0
ProbablyNothingvip
· Il y a 20h
Le contrat peut-il être encore pire ?
Voir l'originalRépondre0
CountdownToBrokevip
· Il y a 20h
Une autre entreprise est foutue.
Voir l'originalRépondre0
StablecoinAnxietyvip
· Il y a 21h
Aïe, encore un hacker de type arbitre.
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)