Comment la blockchain est piratée : attaques sur les réseaux décentralisés

Cet article est disponible dans les langues suivantes :

Author logo
Patrick Dike-Ndulue
Post image

Points essentiels

Cet article explore les différentes façons dont les réseaux blockchain peuvent être attaqués, soulignant que, bien que les blockchains soient plus sûres que les bases de données centralisées, elles restent vulnérables à des menaces telles que les attaques à 51 %, la double dépense, les attaques Sybil, le minage égoïste, les failles des smart contracts et le vol de clés privées. Des exemples concrets illustrent les pertes financières importantes que ces attaques peuvent causer, notamment pour les petits projets. L’article conclut qu’à mesure que les mesures de sécurité progressent, les attaques gagnent en sophistication, rendant la vigilance et l’innovation indispensables à la sécurité de la blockchain.

La blockchain – un registre distribué qui sert de base de données – est une solution bien plus fiable pour stocker des informations et réaliser des transactions que les bases de données centralisées. Pourtant, elle peut aussi être piratée, et les tentatives sont fréquentes. Les attaques sur les réseaux décentralisés sont variées, mais visent souvent à exploiter des failles du mécanisme de consensus et à prendre le contrôle du taux de hachage. Cela permet aux acteurs malveillants de modifier les données du registre, de semer le chaos et de voler des cryptomonnaies.

Dans cet article, nous allons examiner comment la blockchain peut être attaquée et quelles sont les menaces les plus courantes.

Attaque à 51 %

L’attaque à 51 % est la principale menace pour les blockchains. Elle concerne les réseaux utilisant l’algorithme de consensus proof-of-work (PoW).

Mécanisme de l’attaque

Le principe consiste à prendre le contrôle de plus de 50 % de la puissance de calcul du réseau, ou taux de hachage. Les conséquences sont comparables à la détention d’une majorité dans une entreprise : vous pouvez prendre toutes les décisions et faire ce que vous voulez de la société dont vous détenez les parts. Dans le cas du taux de hachage, cela signifie contrôler 51 % de la puissance de calcul de la blockchain.

Si des attaquants contrôlent plus de 50 % de la puissance de minage, ils peuvent réorganiser les transactions, annuler des confirmations et empêcher d’autres mineurs de valider des blocs. En somme, ils peuvent provoquer le chaos et entraîner des dysfonctionnements du réseau. Ils peuvent également agir plus discrètement, par exemple en dépensant plusieurs fois la même cryptomonnaie (double dépense).
 

Comment obtenir autant de puissance ? Plusieurs options existent, comme louer beaucoup de matériel de minage et prendre le contrôle – ou même créer – un pool de minage. Une autre option consiste à tromper d’autres mineurs ou à recourir à des méthodes illégales, comme la gestion d’un botnet de minage via des malwares.

Est-ce risqué ?

Cela dit, attaquer une grande blockchain comme Bitcoin, où le réseau compte un très grand nombre de nœuds et où le matériel et l’électricité coûtent cher, est quasiment impossible. L’effort n’en vaut généralement pas la peine. Les petits projets, en revanche, ne sont pas à l’abri de ce type de menace.

Plusieurs réseaux ont subi des attaques à 51 %, dont ZenCash (ZEN), Litecoin Cash (LCC), MonaCoin (MONA), Verge (XVG) et Bitcoin Gold (BTG).

Exemples concrets

Après une attaque à 51 %, les attaquants peuvent exploiter toutes les failles du protocole. En général, ils cherchent surtout à réaliser une double dépense.

L’attaque réussie sur le réseau ZenCash (ZEN) en 2018 a rapporté aux pirates 550 000 $. Ils ont pu doubler deux transactions majeures de 13 000 et 6 600 ZEN respectivement. L’attaque a duré 110 blocs et 4 heures, mais son coût pour le réseau est resté minime par rapport aux fonds volés, soit environ 30 000 $.

Un autre exemple est Ethereum Classic, attaqué trois fois en 2020 par un pirate ayant loué de la puissance de calcul sur le service NiceHash. Entre juillet et août, le taux de hachage d’ETC a fortement chuté, et l’attaquant en a profité. Il a loué des GPU représentant plus de 51 % du taux de hachage total du réseau Ethereum Classic, ce qui lui a permis de doubler plus d’un million d’ETC, d’une valeur de plus de 9 millions de dollars à l’époque.

Le coût de location du taux de hachage s’est élevé à plusieurs centaines de milliers de dollars, donc le « bénéfice » exact reste inconnu. Malheureusement, ce genre d’histoire est loin d’être rare.

Double dépense

Le problème de la double dépense existait bien avant la blockchain et les cryptomonnaies.

En résumé, lorsqu’on échange un bien contre un autre, si la transaction n’est pas finalisée sur le moment et qu’on promet de remplir sa part plus tard, il existe toujours un risque de ne plus posséder l’actif au moment venu.

En théorie, il est possible de fournir un document promettant un paiement (contrat, reconnaissance de dette, etc.) à plusieurs parties alors que l’actif promis n’existe qu’en un seul exemplaire. C’est la double dépense. Sur la blockchain, le principe est exactement le même.

Comment fonctionne la double dépense ?

La double dépense survient lorsqu’un attaquant dépense plusieurs fois les mêmes coins. Par exemple, un utilisateur possédant 1 BTC l’envoie à plusieurs destinataires en même temps et reçoit quelque chose en échange. Mais au final, une seule personne reçoit réellement ce 1 BTC.

Quand le réseau fonctionne correctement, une seule transaction est validée par la majorité des nœuds, ce qui est le cas le plus fréquent. Les blockchains intègrent des mesures de sécurité pour éviter ce type d’attaque. Néanmoins, le risque de double dépense subsiste.

Il existe différentes manières de parvenir à une double dépense, l’attaque à 51 % en étant un exemple. Lorsqu’un attaquant contrôle plus de la moitié du taux de hachage, il peut générer de nouveaux blocs de façon indépendante, les modifier et rejeter certaines transactions tout en validant celles qui l’arrangent.

atack_img.png

Cet exemple montre que les attaquants ont créé un fork de la chaîne principale et validé de fausses transactions tandis que cinq transactions légitimes étaient traitées.
 

Pendant ce laps de temps, il est possible d’envoyer des coins à une plateforme d’échange, de réaliser des opérations demandant 1 à 5 confirmations blockchain, puis de recevoir une autre cryptomonnaie ou de la monnaie fiduciaire en retour.
 

Ensuite, une fois la « fenêtre d’attaque » refermée, la série de faux blocs est rejetée, mais pour l’attaquant, la situation est la suivante : il a placé ses tokens sur un exchange, les a vendus, mais lorsque la blockchain retrouve le consensus, il possède toujours ces coins sur la chaîne d’origine. Ce qu’il a vendu était en réalité de la « fausse » cryptomonnaie.
 

Attaque de Finney

L’attaque de Finney porte le nom du premier destinataire de bitcoin, Hal Finney, qui fut aussi le premier à évoquer la possibilité de doubler une dépense sur la blockchain.

L’attaque de Finney est une variante de la double dépense qui peut se produire lorsqu’une contrepartie accepte une transaction non confirmée.

L’idée est qu’un mineur génère un bloc et y inclut une transaction de son adresse « A » vers une autre de ses adresses, « B », sans la diffuser immédiatement au réseau. Ensuite, il effectue une autre transaction de l’adresse « A » vers l’adresse « C », appartenant à un autre utilisateur. Si ce dernier accepte la transaction sans confirmation réseau, l’escroc diffuse alors le bloc précédent contenant la première transaction. La transaction de « A » vers « C » devient donc invalide, et l’attaquant en tire double bénéfice.

Attaque par course (Race attack)

Ce type d’attaque consiste en une course entre deux transactions. Un fraudeur envoie les mêmes coins depuis la même adresse sur différents appareils à deux destinataires simultanément. Les deux destinataires envoient leurs biens ou cryptos, mais la seconde transaction traitée est invalidée.
 

Cette attaque n’est possible que si le commerçant accepte une transaction non confirmée. Pour éviter ce piège, il suffit d’attendre au moins une confirmation de l’opération.
 

Attaque Sybil

Cette attaque doit son nom à Sybil, le personnage principal du livre éponyme de Flora Rheta Schreiber, qui relate son traitement pour trouble dissociatif de l’identité. L’idée est que des pirates inondent un réseau de nœuds sous leur contrôle afin d’« encercler » le nœud d’une victime et ainsi contrôler toutes ses transactions.

Cibler les vulnérabilités

Cela est presque impossible sur les grands réseaux comme Bitcoin, car les nœuds sélectionnent aléatoirement d’autres nœuds pour valider les transactions.

C’est pourquoi les attaques Sybil visent généralement de nouveaux projets crypto. Lorsqu’il se connecte au réseau, un nœud peut ne pas connaître les adresses IP de nœuds de confiance et les demander.

Si la requête aboutit sur un nœud contrôlé par l’attaquant, celui-ci peut répondre avec les adresses des nœuds qu’il contrôle.

Cela permet au pirate :

  • De bloquer les transactions de l’utilisateur, le déconnectant ainsi de la blockchain principale ;
  • De choisir à quel bloc « connecter » l’utilisateur (généralement des blocs où une double dépense a lieu) ;
  • De suivre toutes les transactions de l’utilisateur. 

En résumé, les nœuds contrôlés par l’attaquant peuvent convaincre d’autres nœuds de valider de fausses données.

Minage égoïste (Selfish mining)

Les blockchains fonctionnant en PoW présentent une faille que des mineurs malhonnêtes peuvent exploiter : la possibilité de valider plusieurs blocs simultanément.
 

Le problème du fork

Si deux blocs sont générés en même temps et liés aux précédents, la blockchain se divise en deux chaînes. Le fork complexifie l’architecture et ralentit les transactions, c’est pourquoi les mineurs doivent diffuser immédiatement les données de confirmation après avoir validé un bloc pour éviter les conflits.
 

Malgré cela, les mineurs dits « égoïstes » cachent cette information aux autres participants et trompent les nœuds « honnêtes », qui continuent à générer une nouvelle chaîne et allongent ainsi le fork du réseau.

Scénario concret

Supposons qu’un mineur égoïste ait miné le bloc 2 001 mais ne l’ait pas diffusé au réseau. Les autres nœuds continuent à miner de nouveaux blocs à partir du bloc 2 000. Il y a donc deux blocs revendiquant le numéro 2 000 : l’un d’un mineur honnête, l’autre d’un attaquant. Chacun de ces blocs est suivi de son propre bloc 2 001.
 

Les fraudeurs continuent à générer des blocs et à les ajouter à leur chaîne, qui s’allonge ainsi. Ensuite, les pirates transmettent les données du bloc 2 001 qu’ils ont miné ; le réseau reconnaît qu’il a été trouvé en premier, considère la chaîne égoïste comme valide et rejette les blocs ajoutés par les nœuds honnêtes pendant la même période. Résultat : les mineurs honnêtes ne reçoivent pas de récompense et leurs efforts sont perdus.
 

Attaques de routage

Ces attaques ne sont pas directement liées à la sécurité intrinsèque de la blockchain. Elles exploitent plutôt des failles dans les protocoles de connexion des fournisseurs d’accès à Internet (FAI).

En accédant au protocole, un pirate peut publier de fausses routes. Ce type d’attaque peut notamment servir à réaliser une double dépense. Si la livraison de nouveaux blocs est retardée, ils ne seront pas visibles du réseau, créant ainsi une fenêtre durant laquelle les cryptos peuvent être dépensées deux fois.
 

Exploitation des failles des smart contracts

Les smart contracts sont codés par des humains, et l’erreur est humaine.

Le coût des erreurs de code

De nombreuses vulnérabilités peuvent exister dans les smart contracts. Il peut s’agir d’un problème complexe difficile à détecter, ou d’une simple faute de frappe dans le code. Dans tous les cas, chaque erreur peut entraîner la perte de millions de dollars.

Dans un rapport du 30 juin 2023, la société de sécurité Web3 Beosin indiquait que la valeur totale des cryptomonnaies perdues à cause des fraudes, piratages et arnaques au premier semestre 2023 s’élevait à 656 millions de dollars. La majorité (56 %) des fonds volés provenait de failles dans les smart contracts.

Ce ne sont pas seulement les vulnérabilités des smart contracts eux-mêmes qui peuvent entraîner des piratages, mais aussi le langage dans lequel ils sont écrits. Le 30 juillet 2023, quatre pools de liquidité Curve Finance ont été compromis à cause

 d’une faille dans Vyper, le langage de programmation utilisé pour les smart contracts de la plateforme Curve. Curve Finance est un exchange décentralisé basé sur la technologie AMM (automated market-making) et le principal hub de liquidité stablecoin de la DeFi. Au total, environ 60 millions de dollars ont été volés, dont 20 millions récupérés par des hackers éthiques et restitués à Curve. La plus grande partie du préjudice provient du hack du principal pool CRV/ETH, vidé de toute sa liquidité (environ 40 millions de dollars).

Attaques DDoS et dilatation temporelle

Les attaques DDoS ne visent pas à voler des cryptos, mais à nuire aux projets crypto et à discréditer les startups. Elles consistent à envoyer un grand nombre de transactions inutiles (« transactions poussière ») sur le réseau, ce qui complique son fonctionnement, ralentit le transfert des données, la mise à jour de la blockchain et la création de nouveaux blocs.

Attaques sur les clés privées

Pour garantir la confidentialité des échanges sur la blockchain, on utilise la cryptographie asymétrique, c’est-à-dire des clés privées et publiques liées par un algorithme mathématique. Si vous connaissez la clé publique d’un utilisateur, vous pouvez lui envoyer un message chiffré qu’il pourra lire avec sa clé privée. Si vous avez la clé privée, vous pouvez retrouver la clé publique – mais l’inverse n’est pas possible.

Les clés privées donnent un accès total à tous les actifs crypto d’un utilisateur, ce qui explique pourquoi les attaquants cherchent à s’en emparer.

Vulnérabilités et protection

Le moyen le plus simple d’obtenir une clé privée et les cryptos associées est de s’emparer d’une phrase de récupération, par exemple en volant un papier contenant le code mnémonique, ou par d’autres méthodes comme l’ingénierie sociale et les attaques de phishing.

Pour protéger efficacement votre clé privée et donc tous vos actifs crypto, vous pouvez confier son stockage à Tangem Wallet. Le wallet Tangem n’utilise pas de phrase de récupération, ce qui empêche tout vol de celle-ci. La clé privée est générée et stockée sur les puces de deux ou trois cartes (la carte principale et les cartes de sauvegarde), où elle reste et d’où il est impossible de l’extraire.

Conclusion

Il est important de garder à l’esprit que la blockchain fait actuellement face à de nombreuses menaces, dont toutes les attaques majeures citées ci-dessus, mais aussi des problèmes propres à certains réseaux, comme des erreurs de code, des méthodes de chiffrement et plus encore. Les hackers cherchent en permanence de nouvelles failles et tentent d’en profiter, que ce soit en exploitant des bugs dans les smart contracts, des faiblesses dans la technologie blockchain elle-même, ou en attaquant les plateformes d’échange de cryptomonnaies.

Menaces hypothétiques

Il existe d’autres formes d’attaque qui restent, pour le moment, purement théoriques :

  • Le cannibalisme entre pools (détruire un pool pour perturber la blockchain) ;
  • L’attaque P + epsilon : selon Vitalik Buterin, c’est l’un des problèmes les plus préoccupants sur les réseaux PoW, qui consiste à soudoyer d’autres participants pour qu’ils soutiennent des modifications de la blockchain ;
  • Le timejacking (tentatives de manipulation des horodatages des transactions).

Pour l’instant, ces stratégies n’intéressent pas les hackers.

Perspectives

La seule solution à tous ces enjeux : améliorer sans cesse les mécanismes de sécurité des réseaux décentralisés. L’expérience montre toutefois que plus le niveau de protection augmente, plus les méthodes développées par les mineurs et les hackers pour les contourner se sophistiquent. Cette bataille semble sans fin. Dans la finance traditionnelle, les DAB sont piratés, les cartes bancaires volées et les banques braquées. Il n’existe aucune garantie de sécurité à 100 %.

Author logo
Auteur Patrick Dike-Ndulue

Senior editor covering crypto, onchain equities, and technology.

Author logo
Examiné par Rukkayah Jigam

Writer & editor covering digital assets and product updates.