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

robot
Création du résumé en cours

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

Le 2 février 2023 après-midi, les contrats OrionProtocol sur Ethereum et Binance Smart Chain ont été attaqués par réentrance en raison de vulnérabilités. L'attaquant a réalisé un profit de 2 844 766 USDT sur la chaîne Ethereum et de 191 606 BUSD sur la chaîne Binance Smart, pour un total d'environ 2,9 millions de dollars.

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

Analyse du processus d'attaque

L'attaquant a d'abord déployé un contrat de Token personnalisé et a effectué les préparatifs nécessaires. Ensuite, l'attaquant a utilisé la fonction de swap d'un DEX pour emprunter des fonds et a appelé la méthode swapThroughOrionPool d'OrionProtocol pour échanger des tokens. Le chemin d'échange contenait l'adresse du contrat Token créé par l'attaquant, ce qui a préparé le terrain pour l'attaque de rappel ultérieure.

Lors de l'exécution de la méthode swapThroughOrionPool, en raison de la logique de rappel dans le contrat Token de l'attaquant, une attaque par réentrance a été déclenchée au cours du processus de transfert. L'attaquant a utilisé la méthode Token.Transfer pour appeler de manière répétée la fonction ExchangeWithAtomic.depositAsset, ce qui a entraîné une accumulation continue du montant du dépôt. 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 portefeuille chaud d'une certaine plateforme de trading. Parmi les 1 651 ETH obtenus lors de l'attaque, 657,5 ETH restent dans l'adresse du portefeuille de l'attaquant, le reste ayant été transféré via un service de mélange.

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

Analyse des vulnérabilités

Le problème principal réside dans la fonction doSwapThroughOrionPool. Cette fonction présente un défaut logique lors de l'exécution de l'opération _doSwapTokens. Plus précisément, le contrat ne met à jour la variable curBalance qu'après la finalisation du transfert, ce qui offre une opportunité aux attaquants. Ces derniers ajoutent une logique de rappel dans la fonction transfer de leur Token personnalisé et appellent à plusieurs reprises la fonction depositAsset, ce qui entraîne une mise à jour incorrecte de curBalance. Finalement, après avoir remboursé le prêt éclair, l'attaquant a réussi à retirer des fonds excédentaires.

Analyse de l'attaque 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

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

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

Conseils de prévention

Pour éviter des attaques similaires, l'équipe du projet doit prendre en compte les points suivants lors de la conception du contrat :

  1. Lors de la mise en œuvre de la fonction d'échange de monnaie virtuelle, il est nécessaire de prendre en compte les différents types de tokens et les chemins d'échange qui peuvent engendrer des risques de sécurité.

  2. Suivre strictement la norme de codage "Vérifications-Effects-Interactions" (Checks-Effects-Interactions), c'est-à-dire d'abord effectuer une vérification d'état, puis mettre à jour l'état du contrat, et enfin exécuter les appels externes.

  3. Mettre en œuvre un verrou de réentrance lors des opérations critiques pour prévenir les attaques par réentrance.

  4. Effectuer régulièrement des audits de code pour détecter et corriger rapidement les vulnérabilités de sécurité potentielles.

  5. Envisager d'introduire un mécanisme de retrait différé, permettant une intervention manuelle en cas de transactions anormales.

En prenant ces mesures, la sécurité des contrats intelligents peut être considérablement améliorée, réduisant ainsi le risque d'attaques. Dans l'écosystème Web3, la sécurité reste toujours un facteur primordial.

TOKEN-8.24%
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
  • 8
  • Partager
Commentaire
0/400
LidoStakeAddictvip
· 07-17 03:22
Encore une fois, c'est un cochon.
Voir l'originalRépondre0
NervousFingersvip
· 07-14 05:42
Encore un projet qui se fait couper les coupons...
Voir l'originalRépondre0
TokenUnlockervip
· 07-14 04:00
Une autre vulnérabilité de réentrance non verrouillée ?
Voir l'originalRépondre0
GasSavingMastervip
· 07-14 03:59
La technologie actuelle n'est pas terrible.
Voir l'originalRépondre0
PanicSeller69vip
· 07-14 03:58
Encore explosé, bon sang !
Voir l'originalRépondre0
PortfolioAlertvip
· 07-14 03:37
Une autre victime de la vulnérabilité du contrat...
Voir l'originalRépondre0
SerumSqueezervip
· 07-14 03:36
C'est la énième fois que cela fuit et a des trous.
Voir l'originalRépondre0
ForkTonguevip
· 07-14 03:33
Encore une attaque par réentrance, ces projets n'apprennent-ils donc rien ?
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)