-
Bitcoin
$93,896.3151
-0.50% -
Ethereum
$1,792.8912
-0.40% -
Tether USDt
$1.0005
-0.01% -
XRP
$2.2209
0.98% -
BNB
$599.5062
-1.41% -
Solana
$149.1795
-0.03% -
USDC
$1.0001
-0.01% -
Dogecoin
$0.1804
-1.32% -
Cardano
$0.6944
-2.28% -
TRON
$0.2487
-0.89% -
Sui
$3.5517
2.82% -
Chainlink
$14.4560
-3.00% -
Avalanche
$21.8617
-0.82% -
Stellar
$0.2844
-1.83% -
UNUS SED LEO
$9.0114
-0.89% -
Toncoin
$3.2421
-1.03% -
Shiba Inu
$0.0...01353
-4.88% -
Hedera
$0.1865
-3.31% -
Bitcoin Cash
$351.8563
-2.57% -
Litecoin
$86.3083
-0.34% -
Polkadot
$4.1004
-4.37% -
Hyperliquid
$17.8225
-0.13% -
Dai
$1.0001
0.00% -
Bitget Token
$4.3983
-0.48% -
Ethena USDe
$0.9997
0.01% -
Pi
$0.6317
-2.14% -
Monero
$228.5255
-0.43% -
Pepe
$0.0...08841
-4.28% -
Uniswap
$5.5674
-4.38% -
Aptos
$5.3855
-3.72%
Comment une attaque de rentrée sur une blockchain se produit-elle?
Les attaques de retour exploitent les vulnérabilités du contrat intelligent en appelant à plusieurs reprises les fonctions avant la fin des transactions, risquant le drainage du fonds s'il n'est pas sécurisé correctement.
Apr 11, 2025 at 08:21 pm

Introduction aux attaques de rentrée
Une attaque de rentrée est un type d'exploit qui peut se produire sur les contrats intelligents de la blockchain, en particulier ceux qui gèrent les transactions financières. Ce type d'attaque profite des vulnérabilités dans le code du contrat, permettant à un attaquant d'appeler à plusieurs reprises une fonction avant la fin de la transaction initiale. Comprendre comment ces attaques se produisent est crucial pour les développeurs et les utilisateurs de protéger leurs actifs et de maintenir l'intégrité de la blockchain.
La mécanique d'une attaque de rentrée
Une attaque de rentrée cible généralement les contrats intelligents qui impliquent le transfert de fonds. L'attaque exploite une faille dans la logique du contrat où le contrat envoie des fonds à une adresse externe avant de mettre à jour son état interne. Voici comment cela fonctionne:
- Appel initial : un attaquant initie une transaction qui appelle une fonction dans le contrat intelligent vulnérable, qui est conçu pour envoyer des fonds à l'adresse de l'attaquant.
- Appel externe : Avant que le contrat ne mette à jour son état interne (par exemple, réduisant le solde de l'expéditeur), il envoie les fonds à l'adresse de l'attaquant.
- Réentr : L'adresse de l'attaquant est configurée pour appeler automatiquement la même fonction à nouveau lors de la réception des fonds, réintégrant ainsi le contrat avant que la transaction initiale ne soit entièrement traitée.
- LOOP : Ce processus peut se répéter plusieurs fois, permettant à l'attaquant de vider les fonds du contrat jusqu'à ce que la logique du contrat mette finalement à jour son état ou à court de fonds.
Code de contrat intelligent vulnérable
Pour comprendre comment une attaque de rentrée peut être exécutée, examinons un exemple simplifié d'un contrat intelligent vulnérable écrit en solidité, le langage de programmation utilisé pour les contrats intelligents Ethereum:
contract VulnerableContract {
mapping(address => uint) public balances; function withdraw(uint amount) public { require(balances[msg.sender] >= amount, 'Insufficient balance'); // Send funds to the caller (bool success, ) = msg.sender.call{value: amount}(''); require(success, 'Transfer failed'); // Update the balance balances[msg.sender] -= amount; } function deposit() public payable { balances[msg.sender] += msg.value; }
}
Dans cet exemple, la fonction withdraw
envoie d'abord les fonds à l'appelant, puis met à jour le solde. Cette séquence permet à un attaquant de réintégrer le contrat avant que le solde ne soit mis à jour.
Exécuter une attaque de rentrée
Pour exécuter une attaque de rentrée, un attaquant devrait mettre en place un contrat malveillant qui peut automatiquement appeler la fonction withdraw
lors de la réception de fonds. Voici un exemple simplifié d'un tel contrat malveillant:
contract AttackContract {
VulnerableContract public vulnerableContract; constructor(address _vulnerableContractAddress) { vulnerableContract = VulnerableContract(_vulnerableContractAddress); } function attack() public { vulnerableContract.withdraw(vulnerableContract.balances(address(this))); } receive() external payable { if (address(vulnerableContract).balance >= msg.value) { vulnerableContract.withdraw(msg.value); } }
}
- Déploiement du contrat d'attaque : l'attaquant déploie le
AttackContract
et l'initialise avec l'adresse de laVulnerableContract
. - Initier l'attaque : l'attaquant appelle la fonction
attack
sur leAttackContract
, qui à son tour appelle la fonctionwithdraw
surVulnerableContract
. - Boucle de rentrée : lors de la réception de fonds, la fonction
receive
de l'AttackContract
appelle automatiquementwithdraw
, créant une boucle qui draine laVulnerableContract
.
Empêcher les attaques de rentrée
Pour éviter les attaques de rentrée, les développeurs doivent s'assurer que l'état interne du contrat est mis à jour avant que des appels externes ne soient effectués. Voici une version mise à jour du VulnerableContract
qui résiste aux attaques de retour:
contract SecureContract {
mapping(address => uint) public balances; function withdraw(uint amount) public { require(balances[msg.sender] >= amount, 'Insufficient balance'); // Update the balance first balances[msg.sender] -= amount; // Then send funds to the caller (bool success, ) = msg.sender.call{value: amount}(''); require(success, 'Transfer failed'); } function deposit() public payable { balances[msg.sender] += msg.value; }
}
Dans cette version sécurisée, le solde est mis à jour avant l'envoi des fonds, empêchant toute tentative de rentrée.
Exemples du monde réel d'attaques de rentrée
L'un des exemples les plus tristement célèbres d'une attaque de rentrée est le hack Dao sur la blockchain Ethereum en 2016. Le DAO (organisation autonome décentralisée) était un contrat intelligent conçu pour fonctionner comme un fonds de capital-risque, mais il contenait une vulnérabilité similaire à celle décrite ci-dessus. Un attaquant a exploité cette vulnérabilité pour égoutter environ 3,6 millions d'ETH du DAO, conduisant à une fourche dure de la blockchain Ethereum pour inverser l'attaque.
Un autre exemple est le piratage de portefeuille de parité en 2017, où les attaquants ont exploité une vulnérabilité de rentrée dans le portefeuille multi-signature parité, entraînant le vol de plus de 150 000 ETH.
Questions fréquemment posées
Q: Des attaques de rentrée peuvent-elles être détectées en temps réel sur une blockchain?
R: La détection des attaques de rentrée en temps réel peut être difficile en raison de la nature décentralisée des blockchains. Cependant, certaines plates-formes de blockchain et les entreprises de sécurité utilisent des outils de surveillance avancés et des algorithmes de détection d'anomalies pour identifier les modèles suspects qui peuvent indiquer une attaque de réintégration. Ces outils peuvent alerter les utilisateurs et les développeurs sur les vulnérabilités potentielles avant que des dommages importants ne se produisent.
Q: Tous les contrats intelligents sont-ils vulnérables aux attaques de rentrée?
R: Non, tous les contrats intelligents ne sont pas vulnérables aux attaques de retour. Les contrats qui n'impliquent pas le transfert de fonds ou qui ne font pas d'appels externes ne sont généralement pas sensibles. Cependant, tout contrat qui envoie des fonds à une adresse externe avant de mettre à jour son état interne peut être en danger.
Q: Quelles étapes les utilisateurs peuvent-ils prendre pour se protéger des attaques de rentrée?
R: Les utilisateurs peuvent se protéger en étant prudent pour interagir avec les contrats intelligents, en particulier ceux qui gèrent de grosses sommes d'argent. Ils devraient rechercher le code et les rapports d'audit du contrat, utiliser des plateformes réputées et conserver leurs fonds dans des portefeuilles sécurisés. De plus, rester informé des vulnérabilités communes et des meilleures pratiques en matière de sécurité des contrats intelligents peut aider les utilisateurs à prendre des décisions plus sûres.
Q: Comment les développeurs peuvent-ils s'assurer que leurs contrats intelligents sont sécurisés contre les attaques de rentrée?
R: Les développeurs peuvent s'assurer que leurs contrats intelligents sont sécurisés en suivant les meilleures pratiques telles que le modèle de «chèques-effets-interactions», où l'état interne du contrat est mis à jour avant que des appels externes ne soient effectués. Ils devraient également effectuer des audits de code complets, utiliser des outils de vérification formels et rester à jour sur les dernières directives de sécurité et vulnérabilités dans l'espace blockchain.
Clause de non-responsabilité:info@kdj.com
Les informations fournies ne constituent pas des conseils commerciaux. kdj.com n’assume aucune responsabilité pour les investissements effectués sur la base des informations fournies dans cet article. Les crypto-monnaies sont très volatiles et il est fortement recommandé d’investir avec prudence après une recherche approfondie!
Si vous pensez que le contenu utilisé sur ce site Web porte atteinte à vos droits d’auteur, veuillez nous contacter immédiatement (info@kdj.com) et nous le supprimerons dans les plus brefs délais.
-
JST
$0.0421
30.55%
-
WAL
$0.6394
22.84%
-
SIREN
$0.0817
21.89%
-
ZBCN
$0.0011
19.61%
-
XMW
$0.0853
17.54%
-
KEEP
$0.1060
17.18%
- Après avoir atteint un creux record plus tôt ce mois-ci, Pi s'est négocié entre 0,60 $ et 0,65 $
- 2025-04-28 00:01:06
- L'Arctic Pablo Coin (APC) se fraye un chemin vers le haut des mèmes tendance
- 2025-04-28 00:01:06
- Des entrées massives dans les fonds négociés en bitcoin (BTC) et Ethereum (ETH) échangent en échange au fur et à mesure que les prix augmentent
- 2025-04-27 23:55:12
- Le prix du bitcoin (BTC) pourrait passer devant 100 000 $ à un nouveau sommet de tous les temps
- 2025-04-27 23:55:12
- Les contrats à terme Bitcoin (BTC) lancent sur CME Group, préparant la voie à de nouveaux produits cryptographiques
- 2025-04-27 23:50:12
- Les 4 meilleurs cryptos haussiers à acheter en ce moment (mis à jour pour 2025)
- 2025-04-27 23:50:12
Connaissances connexes

Qu'est-ce que la génération de nombres aléatoires pour la blockchain? Pourquoi est-ce critique?
Apr 27,2025 at 09:07pm
La génération de nombres aléatoires (RNG) dans le contexte de la technologie de la blockchain est un élément crucial qui joue un rôle important dans l'assurance de la sécurité, de l'équité et de l'imprévisibilité des diverses opérations de blockchain. Le RNG est utilisé dans une variété d'applications au sein de l'écosystème de la bl...

Quelle est la structure DAG de la blockchain? En quoi est-ce différent de la blockchain?
Apr 27,2025 at 08:56pm
La structure du graphique acyclique dirigé (DAG) représente une alternative fascinante à la technologie traditionnelle de la blockchain au sein de l'écosystème de crypto-monnaie. DAG est un type de structure de données qui est utilisé dans plusieurs crypto-monnaies pour améliorer l'évolutivité et la vitesse de transaction. Contrairement aux bloc...

Qu'est-ce que la blockchain Trilemma? Comment faire des compromis?
Apr 27,2025 at 08:15pm
Le trilemme de la blockchain est un concept fondamental dans le monde des crypto-monnaies et de la technologie de la blockchain. Il fait référence au défi de réaliser simultanément trois propriétés clés: l'évolutivité , la sécurité et la décentralisation . Ces trois aspects sont cruciaux pour le succès et l'adoption généralisée de tout réseau de...

Qu'est-ce qu'un client apatride pour la blockchain? Comment réduire le fardeau de stockage?
Apr 27,2025 at 08:01pm
Un client apatride pour la blockchain fait référence à un type de logiciel qui interagit avec un réseau de blockchain sans avoir besoin de stocker l'ensemble de l'état de la blockchain. Cette approche réduit considérablement le fardeau de stockage sur les nœuds individuels, ce qui le rend plus possible pour les appareils avec des ressources limi...

Qu'est-ce que le rouleau optimiste de la blockchain? Comment ça marche?
Apr 27,2025 at 04:56pm
Qu'est-ce que le rouleau optimiste de la blockchain? Optimiste Rollup est une solution d'échelle de couche 2 conçue pour augmenter le débit des transactions de blockchain tout en maintenant la sécurité et la décentralisation de la blockchain sous-jacente. Le terme «optimiste» fait référence à l'hypothèse selon laquelle les transactions sont ...

Qu'est-ce que le routage du réseau Lightning de la blockchain? Comment assurer un paiement réussi?
Apr 27,2025 at 05:35pm
Le réseau Lightning représente une progression importante de la technologie de la blockchain, en particulier pour les crypto-monnaies comme Bitcoin. Il s'agit d'une solution d'échelle de deuxième couche conçue pour faciliter les transactions plus rapides et moins chères en créant des canaux de paiement entre les parties. Comprendre le routag...

Qu'est-ce que la génération de nombres aléatoires pour la blockchain? Pourquoi est-ce critique?
Apr 27,2025 at 09:07pm
La génération de nombres aléatoires (RNG) dans le contexte de la technologie de la blockchain est un élément crucial qui joue un rôle important dans l'assurance de la sécurité, de l'équité et de l'imprévisibilité des diverses opérations de blockchain. Le RNG est utilisé dans une variété d'applications au sein de l'écosystème de la bl...

Quelle est la structure DAG de la blockchain? En quoi est-ce différent de la blockchain?
Apr 27,2025 at 08:56pm
La structure du graphique acyclique dirigé (DAG) représente une alternative fascinante à la technologie traditionnelle de la blockchain au sein de l'écosystème de crypto-monnaie. DAG est un type de structure de données qui est utilisé dans plusieurs crypto-monnaies pour améliorer l'évolutivité et la vitesse de transaction. Contrairement aux bloc...

Qu'est-ce que la blockchain Trilemma? Comment faire des compromis?
Apr 27,2025 at 08:15pm
Le trilemme de la blockchain est un concept fondamental dans le monde des crypto-monnaies et de la technologie de la blockchain. Il fait référence au défi de réaliser simultanément trois propriétés clés: l'évolutivité , la sécurité et la décentralisation . Ces trois aspects sont cruciaux pour le succès et l'adoption généralisée de tout réseau de...

Qu'est-ce qu'un client apatride pour la blockchain? Comment réduire le fardeau de stockage?
Apr 27,2025 at 08:01pm
Un client apatride pour la blockchain fait référence à un type de logiciel qui interagit avec un réseau de blockchain sans avoir besoin de stocker l'ensemble de l'état de la blockchain. Cette approche réduit considérablement le fardeau de stockage sur les nœuds individuels, ce qui le rend plus possible pour les appareils avec des ressources limi...

Qu'est-ce que le rouleau optimiste de la blockchain? Comment ça marche?
Apr 27,2025 at 04:56pm
Qu'est-ce que le rouleau optimiste de la blockchain? Optimiste Rollup est une solution d'échelle de couche 2 conçue pour augmenter le débit des transactions de blockchain tout en maintenant la sécurité et la décentralisation de la blockchain sous-jacente. Le terme «optimiste» fait référence à l'hypothèse selon laquelle les transactions sont ...

Qu'est-ce que le routage du réseau Lightning de la blockchain? Comment assurer un paiement réussi?
Apr 27,2025 at 05:35pm
Le réseau Lightning représente une progression importante de la technologie de la blockchain, en particulier pour les crypto-monnaies comme Bitcoin. Il s'agit d'une solution d'échelle de deuxième couche conçue pour faciliter les transactions plus rapides et moins chères en créant des canaux de paiement entre les parties. Comprendre le routag...
Voir tous les articles
