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

robot
Création du résumé en cours

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

Le 2 février 2023 après-midi, OrionProtocol sur Ethereum et la chaîne Binance a subi une attaque par réentrance en raison d'une vulnérabilité de contrat, entraînant des pertes d'environ 2,9 millions de dollars. Les pertes spécifiques comprennent 2 844 766 USDT sur Ethereum et 191 606 BUSD sur la chaîne Binance.

Analyse du processus d'attaque

L'attaquant a d'abord créé un contrat Token et a effectué des opérations de transfert et d'autorisation en préparation de 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 comme [USDC, Token créé par l'attaquant, USDT]. Au cours du processus d'échange, en raison de la fonction de rappel présente dans le contrat Token créé par l'attaquant, l'attaquant a pu continuer à rappeler la méthode depositAsset du contrat ExchangeWithAtomic via la méthode Transfer du Token, réalisant ainsi une attaque par réentrance, ce qui a permis d'accumuler continuellement le montant du dépôt. Finalement, l'attaquant a terminé avec un bénéfice grâce à l'opération de retrait.

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

Analyse des vulnérabilités

Le cœur de la vulnérabilité réside dans la fonction doSwapThroughOrionPool du contrat ExchangeWithAtomic. Cette fonction présente les problèmes suivants lors de l'exécution de _doSwapTokens :

  1. La variable curBalance ne sera mise à jour qu'après l'opération de transfert.
  2. Ne pas suivre le modèle "Vérifications-Effects-Interactions" (Checks-Effects-Interactions).

L'attaquant a exploité cette vulnérabilité en ajoutant une fonction de rappel dans la fonction transfer du contrat Token contrefait, ce qui a entraîné l'appel de la fonction depositAsset lors du transfert. Cela a conduit à une mise à jour incorrecte de la variable curBalance, permettant à l'attaquant de retirer des fonds excédentaires 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 d'attaque par réinjection d'OrionProtocol avec PoC

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

Analyse des attaques par réinjection de 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

Flux de fonds

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

Conseils de prévention

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

  1. Lors de la conception d'un contrat, il est nécessaire de prendre en compte les situations imprévues que peuvent apporter la diversité des tokens et des chemins d'échange.
  2. Suivez strictement les normes de codage "vérifier - effet - interaction", assurez-vous de d'abord faire un jugement, puis de mettre à jour les variables d'état, et enfin d'exécuter les appels externes.
  3. Mettre en œuvre des contrôles de sécurité et des restrictions plus stricts pour les opérations clés impliquant des transferts de fonds.
  4. Effectuer régulièrement des audits de sécurité des contrats pour détecter et corriger rapidement les vulnérabilités potentielles.

Cet incident nous rappelle une fois de plus que la sécurité est primordiale dans le développement des contrats intelligents. Les équipes de projet doivent rester vigilantes et mettre en place des mesures de protection multiples pour réduire au maximum les risques liés aux contrats.

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
  • Reposter
  • Partager
Commentaire
0/400
OptionWhisperervip
· 08-16 06:37
C'est encore disparu.
Voir l'originalRépondre0
CryptoGoldminevip
· 08-16 06:37
Les vulnérabilités sont des actifs à rendement négatif.
Voir l'originalRépondre0
RektButSmilingvip
· 08-16 06:35
Encore une faille.
Voir l'originalRépondre0
GasSavingMastervip
· 08-16 06:35
Encore une attaque par réentrance ?
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)