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

robot
Création du résumé en cours

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

Le 2 février 2023 à 15:40:20 UTC, OrionProtocol sur Ethereum et Binance Smart Chain a subi une attaque par réentrance en raison d'une vulnérabilité de contrat. 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 une perte totale d'environ 2,9 millions de dollars.

Analyse du processus d'attaque

L'attaquant a d'abord déployé un contrat de Token personnalisé et effectué les préparatifs nécessaires. Ensuite, l'attaquant a emprunté des fonds via la fonction swap d'un certain DEX, en appelant la méthode ExchangeWithAtomic.swapThroughOrionPool d'OrionProtocol pour échanger des tokens. Le chemin d'échange inclut l'adresse du contrat Token créé par l'attaquant.

Lors du processus d'échange, un attaquant utilise la fonctionnalité de rappel du contrat Token personnalisé pour appeler de manière répétée la méthode ExchangeWithAtomic.depositAsset, ce qui entraîne une accumulation continue du montant déposé. En fin de compte, l'attaquant réalise un profit grâce à l'opération de retrait.

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

Flux de capitaux

Les fonds initiaux de l'attaquant proviennent du portefeuille chaud d'une plateforme d'échange. Parmi les 1 651 ETH de profits 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 de l'attaque par réinjection d'OrionProtocol avec PoC

Analyse des vulnérabilités

Le problème principal réside dans les fonctions doSwapThroughOrionPool et _doSwapTokens du contrat ExchangeWithAtomic. Ces fonctions mettent à jour la variable curBalance après l'exécution du transfert de tokens, violant le modèle "Checks-Effects-Interactions"(Checks-Effects-Interactions). Un attaquant peut provoquer une mise à jour incorrecte de curBalance en ajoutant une logique de rappel dans la fonction transfer de Token personnalisé, permettant ainsi une attaque par réentrance.

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

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

Reproduction de l'attaque

Les chercheurs ont fourni une partie du code POC, démontrant comment exploiter cette vulnérabilité pour mener des attaques. Les résultats des tests montrent que les attaquants ont réussi à obtenir des USDT supplémentaires.

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

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

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

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

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

Conseils de sécurité

  1. Lors de la mise en œuvre de la fonction d'échange de jetons, l'équipe du projet doit prendre en compte les risques de sécurité potentiels liés aux différents types de jetons et aux chemins d'échange.

  2. Respectez strictement la norme de codage "vérification-activation-interaction", en veillant à ce que la mise à jour des variables d'état soit effectuée avant l'appel externe.

  3. Mettre en œuvre des mécanismes de sécurité tels que des verrous de réentrées pour prévenir les attaques par réentrées.

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

  5. Envisager d'introduire un mécanisme de limite pour contrôler le montant maximum d'une seule transaction et réduire les pertes potentielles.

Cet événement nous rappelle une fois de plus qu'il est essentiel de rester vigilant lors du développement de contrats intelligents et d'accorder une importance particulière à la sécurité. Ce n'est qu'en améliorant continuellement les mesures de sécurité que nous pourrons garantir le développement sain de l'écosystème Web3.

TOKEN-2.73%
ETH-0.19%
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
  • 7
  • Reposter
  • Partager
Commentaire
0/400
LadderToolGuyvip
· 08-10 02:20
La sécurité des contrats est trop importante.
Voir l'originalRépondre0
GreenCandleCollectorvip
· 08-09 21:54
Encore un pigeon éliminé
Voir l'originalRépondre0
LowCapGemHuntervip
· 08-09 16:52
Le projet de fête est trop négligent.
Voir l'originalRépondre0
NeverPresentvip
· 08-07 03:18
Encore une faille ahurissante
Voir l'originalRépondre0
ProposalDetectivevip
· 08-07 03:17
Les vulnérabilités des contrats nuisent aux gens.
Voir l'originalRépondre0
GateUser-a606bf0cvip
· 08-07 03:14
C'est un énorme piège de contrat.
Voir l'originalRépondre0
GateUser-c802f0e8vip
· 08-07 03:13
Les actifs se sont encore échappés.
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)