Commencer gratuitement
Cybersécurité / KZero Staff / 8 nov. 2023

Sécurité de la chaîne de blocs : protéger les technologies de registre distribué

Blockchain Security: Protecting Distributed Ledger Technology

La technologie de la chaîne de blocs – et plus largement les technologies de registre distribué – a connu une adoption et des investissements fulgurants ces dernières années. Des solutions fondées sur la chaîne de blocs, comme la finance décentralisée (DeFi), ont atteint des milliards en valeur totale bloquée (TVL).

L'un des principaux arguments de vente de la chaîne de blocs est qu'elle mise sur des protocoles cryptographiques et du code pour assurer sa sécurité, plutôt que sur une organisation centralisée. Or, des erreurs de conception et de mise en œuvre des protocoles et des projets de chaîne de blocs les ont exposés à des attaques de grande envergure et très coûteuses, qui ont entraîné à ce jour des pertes de plusieurs milliards de dollars. Bon nombre des principaux piratages — comme ceux de Ronin, de Poly Network et de BNB Bridge — ont exploité des failles dans les ponts inter-chaînes qui relient les chaînes de blocs entre elles, pour plus de 500 000 $ chacun.

La cybersécurité de la chaîne de blocs est essentielle pour protéger ces systèmes et la valeur qu'ils détiennent contre les attaques potentielles. Cela suppose de veiller à ce que les systèmes de chaîne de blocs soient conçus, mis en œuvre et exploités correctement.

Comprendre la cybersécurité de la chaîne de blocs

La chaîne de blocs a pour vocation première de créer un registre numérique décentralisé et immuable. Ce registre peut servir à consigner des transactions en cryptomonnaie ou le code exécuté sur une plateforme de contrats intelligents.

Plutôt que de s'en remettre à une autorité centrale unique – comme une institution financière – pour tenir un registre officiel, la chaîne de blocs repose sur un réseau décentralisé de nœuds qui se méfient mutuellement.

Le protocole de la chaîne de blocs est conçu pour inciter ces nœuds à bien se comporter en rendant cette conduite plus profitable que d'éventuelles attaques. Voici quelques-unes des composantes clés de la sécurité de la chaîne de blocs.

L'immuabilité du registre

Le registre numérique d'une chaîne de blocs est conçu pour être immuable : il doit être impossible en pratique de le modifier une fois qu'une transaction a été incluse dans un bloc. L'immuabilité est vitale pour la sécurité, car chaque nœud du réseau tient sa propre copie du registre. Si cette copie était modifiable, le nœud pourrait réécrire l'histoire à son avantage.

Les algorithmes de consensus de la chaîne de blocs

Les systèmes de chaîne de blocs n'ont pas d'autorité centrale chargée de définir la version officielle de chaque bloc ou du registre dans son ensemble. Les algorithmes de consensus, comme la preuve de travail (PoW) ou la preuve d'enjeu (PoS), visent à décentraliser le contrôle du processus d'ajout de blocs au registre, afin d'empêcher qu'une seule partie détienne trop de pouvoir ou puisse censurer des transactions.

L'une des caractéristiques clés d'un algorithme de consensus est la tolérance aux fautes byzantines (BFT). La BFT garantit que le réseau peut parvenir à un consensus sur l'état du registre même si certains nœuds sont malveillants et mentent à leur propre avantage.

La sécurité applicative

Les systèmes de chaîne de blocs sont des applications à plusieurs couches. Le logiciel de la chaîne de blocs est lui-même une application que les nœuds exécutent pour maintenir l'environnement. Dans les plateformes de contrats intelligents, ces applications comprennent des machines virtuelles (VM) qui exécutent le code des contrats intelligents. Les contrats intelligents exécutés dans ces VM sont eux aussi des applications.

La sécurité applicative est donc vitale pour la sécurité des systèmes de chaîne de blocs. La plupart des incidents de sécurité découlent d'erreurs de conception ou de mise en œuvre dans les applications. Par exemple, le plus important piratage de la chaîne de blocs Bitcoin — qui a par la suite été annulé — a exploité une vulnérabilité de dépassement d'entier, et non une faille du protocole lui-même.

Les principaux défis de sécurité de la chaîne de blocs

400;”>Les piratages sont fréquents dans les écosystèmes de chaîne de blocs et peuvent avoir des causes variées. De façon générale, toutefois, les causes profondes de ces incidents se regroupent en quelques grandes catégories.

Les vulnérabilités des protocoles

Les protocoles de chaîne de blocs sont conçus pour assurer l'immuabilité du registre numérique et protéger contre diverses menaces potentielles. Dans l'ensemble, ils ont fait un excellent travail. Par exemple, Bitcoin – la chaîne de blocs originale – n'a jamais subi de piratage attribuable à une erreur de conception du protocole. Ce n'est cependant pas le cas des systèmes bâtis par-dessus la chaîne de blocs, et certains risques de sécurité sont inhérents au protocole lui-même.

Le plus connu de ces risques est l'attaque des 51 %, où un attaquant qui contrôle plus de 51 % de la puissance de calcul d'un réseau PoW peut réécrire l'historique de la chaîne de blocs. Comme la PoW est conçue pour mettre en œuvre un vote majoritaire (la puissance de calcul tenant lieu de voix), il s'agit d'un risque inévitable, puisque la majorité doit l'emporter au vote (même si elle est malveillante).

La plupart des erreurs de conception dans les protocoles de chaîne de blocs surviennent à des niveaux supérieurs, comme dans les contrats DeFi. Par exemple, les vulnérabilités de réentrance et de manipulation des prix – deux causes fréquentes de piratages DeFi – découlent de la conception du protocole.

Les vulnérabilités de programmation

L'autre grande source de vulnérabilités dans les protocoles de chaîne de blocs est l'erreur de mise en œuvre. Les chaînes de blocs sont créées au moyen de logiciels, et les fonctionnalités inscrites dans le code ne correspondent pas toujours à l'intention du concepteur.

Les vulnérabilités sont particulièrement courantes dans les contrats intelligents, ces programmes qui s'exécutent sur une plateforme de chaîne de blocs. La réentrance est un exemple célèbre de vulnérabilité des contrats intelligents : elle est à l'origine du piratage du DAO sur la chaîne de blocs Ethereum, qui a coûté 50 millions de dollars.

La gestion des clés

Les protocoles de chaîne de blocs utilisent la cryptographie à clé publique pour contrôler l'accès aux comptes. Toutes les transactions sur la chaîne de blocs sont signées numériquement à l'aide de la clé privée associée au compte.

De nombreux piratages de chaînes de blocs ont été causés par des clés privées compromises. Un attaquant peut voler une clé privée au moyen d'attaques d'hameçonnage, de maliciels ou de méthodes semblables. Avec l'accès à ces clés, il peut transférer la cryptomonnaie hors du compte de l'utilisateur ou s'en servir pour accéder à des fonctions privilégiées. Le piratage du réseau Mixin de septembre 2023 — au cours duquel les attaquants ont dérobé environ 200 millions de dollars — a probablement été causé par des clés privées compromises.

Enjeux de sécurité de la chaîne de blocs et stratégies d'atténuation

Les protocoles de chaîne de blocs sont exposés à divers risques de sécurité et attaques potentielles. Voici quelques bonnes pratiques pour gérer les principaux risques.

L'attaque des 51 %

L'attaque des 51 % est un risque de sécurité inhérent aux réseaux de chaîne de blocs. Dans un système fondé sur la règle de la majorité, il existe toujours un risque qu'un attaquant obtienne une participation majoritaire.

Le moyen le plus efficace de se protéger d'une attaque des 51 % est de bâtir une vaste communauté de mineurs, ce qui rend l'acquisition d'une participation majoritaire beaucoup plus coûteuse pour un attaquant. Par exemple, si Ethereum Classic a subi plusieurs attaques des 51 % en 2020 alors que Bitcoin n'en a subi aucune, c'est que Bitcoin dispose d'une communauté de minage et d'une puissance de hachage nettement plus importantes.

Les vulnérabilités des contrats intelligents

Les contrats intelligents, comme les projets DeFi, peuvent contenir des erreurs de programmation qui les rendent vulnérables aux attaques. Plusieurs des piratages de contrats intelligents les plus importants et les plus coûteux – comme le piratage de Poly Network, d'une valeur de 611 millions de dollars – ont exploité des vulnérabilités dans des contrats intelligents.

Le risque de vulnérabilité des contrats intelligents peut être grandement réduit en réalisant des audits de sécurité avant de déployer le code sur la chaîne de blocs. Parmi les 20 plus importants piratages de contrats intelligents où un audit aurait pu aider, 18 visaient un protocole non audité ou un protocole dont la vulnérabilité exploitée se situait hors de la portée des audits antérieurs.

La confidentialité des données

Les registres distribués de la plupart des chaînes de blocs — à l'exception des chaînes axées sur la confidentialité comme Monero — sont conçus pour être transparents. Quiconque fait partie du réseau peut lire le contenu des blocs et des transactions. Les données sensibles stockées sur la chaîne de blocs risquent donc d'être exposées à des utilisateurs non autorisés.

La bonne pratique en matière de confidentialité consiste à ne pas stocker de données sensibles sur la chaîne de blocs. On peut plutôt s'en servir pour stocker une empreinte (hachage) des données, afin d'en assurer l'intégrité, ou un lien vers des données hors chaîne à accès contrôlé.

Si des données sensibles doivent absolument être stockées sur la chaîne, il vaut mieux utiliser une chaîne de blocs privée à permissions plutôt qu'une chaîne publique comme Bitcoin ou Ethereum. L'organisation peut ainsi contrôler l'accès à la chaîne et déterminer quelles données chaque utilisateur peut consulter.

La gestion des clés

L'une des causes les plus fréquentes des piratages de chaînes de blocs est la compromission des clés privées. Un attaquant qui obtient la clé privée d'un compte peut effectuer des transactions pour ce compte. Il peut ainsi voler les fonds qui s'y trouvent ou profiter des accès privilégiés que le compte détient auprès de contrats intelligents.

Le risque de vol de clés peut être géré au moyen de portefeuilles multisignatures, une technologie également utilisée dans Multi-Pass de KZero Passwordless. Un portefeuille multisignature découpe une clé secrète en plusieurs fragments, dont plusieurs sont nécessaires pour générer une signature numérique valide, ou exige les signatures de plusieurs clés pour approuver une transaction. Par exemple, un portefeuille multisignature peut exiger que 3 signataires sur 5 s'entendent pour générer une transaction. Cela protège contre le vol de clés, puisque l'attaquant doit obtenir plusieurs clés pour mener son attaque.

Le piratage DeFi le plus coûteux à ce jour a exploité une mauvaise gestion des clés du pont inter-chaînes du réseau Ronin. Le pont utilisait un schéma d'approbation de 5 sur 9, où la même organisation contrôlait quatre clés et avait accès à la cinquième. Un attaquant ayant obtenu l'accès aux systèmes de cette organisation a pu approuver une transaction malveillante et dérober 624 millions de dollars au protocole.

Technologies émergentes et tendances en sécurité de la chaîne de blocs

La chaîne de blocs est un domaine de recherche et de développement actif et en évolution rapide. Parmi les technologies actuellement explorées et intégrées aux protocoles et aux projets figurent les preuves à divulgation nulle de connaissance, le calcul multipartite et la sécurité pilotée par l'IA.

Les preuves à divulgation nulle de connaissance

Les preuves à divulgation nulle de connaissance (ZKP) servent à démontrer qu'un secret est véridique sans révéler le secret lui-même. Par exemple, une ZKP peut prouver que la valeur d'une transaction se situe dans une fourchette donnée sans en révéler le montant réel.

Les ZKP ont quelques applications dans l'univers de la chaîne de blocs. La première est de renforcer la confidentialité en limitant l'information divulguée sur le réseau. La seconde est d'améliorer l'évolutivité en effectuant des transactions hors chaîne et en n'inscrivant sur la chaîne que des preuves de leur exactitude, qui sont plus légères que les transactions elles-mêmes.

Le calcul multipartite

L'un des plus grands défis de l'informatique et de la sécurité des données tient au fait que, avec la plupart des algorithmes de chiffrement, les données ne peuvent pas être chiffrées pendant leur utilisation. Confier des calculs à un tiers (ou à la chaîne de blocs) exige donc de lui confier aussi les données.

Le calcul multipartite (MPC) permet à plusieurs parties d'effectuer un calcul commun à partir de données individuelles secrètes. Chaque partie calcule sa portion du casse-tête, et ces contributions sont ensuite combinées pour obtenir la réponse finale.

Le MPC est utile sur la chaîne de blocs, car toutes les données inscrites au registre numérique sont publiques et certains protocoles exigent une configuration de confiance pour amorcer des protocoles décentralisés. Le MPC pourrait décentraliser véritablement ces systèmes en éliminant cette configuration de confiance.

La sécurité pilotée par l'IA

L'intelligence artificielle trouve des applications potentielles dans la plupart des industries. Dans le développement logiciel, un cas d'usage courant consiste à améliorer la production de code sécuritaire.

De nombreux piratages de chaînes de blocs sont rendus possibles par des vulnérabilités logicielles exploitées par les attaquants. L'IA pourrait repérer les vulnérabilités dans le code des contrats intelligents avant sa mise en production, réduisant ainsi le risque de piratages de plusieurs millions de dollars.

Sensibiliser les utilisateurs à la sécurité de la chaîne de blocs

La formation des utilisateurs est essentielle à la sécurité des systèmes de chaîne de blocs. Les arnaques y représentent un risque important. Apprendre aux utilisateurs à repérer les signaux d'alarme des systèmes pyramidaux et des retraits frauduleux de liquidités les aide à éviter d'investir dans des projets risqués.

L'une des causes les plus fréquentes des piratages de chaînes de blocs est la compromission des clés privées. Si un attaquant obtient la clé privée d'un utilisateur, il peut effectuer des transactions en son nom et lui voler sa cryptomonnaie. Les portefeuilles froids et multisignatures offrent une meilleure sécurité que les autres options, car ils éliminent la dépendance à une clé privée unique.

Les utilisateurs disposent de nombreuses options pour se former sur les chaînes de blocs et leur sécurité : contenus gratuits en ligne, formations en ligne et ouvrages qui approfondissent les enjeux de sécurité.

Conclusion

Les chaînes de blocs ont mûri au point de prendre en charge des protocoles complexes et de protéger d'importantes sommes d'argent. Leur sécurité est essentielle pour prémunir ces protocoles contre les attaques et empêcher le vol de fonds. Suivre l'évolution du paysage des menaces est indispensable pour les développeurs et les architectes de solutions de chaîne de blocs.

Sur le plan individuel, le plus grand défi de sécurité demeure la gestion des clés privées. Il peut être difficile de protéger ces clés contre la perte ou le vol, et une clé privée perdue peut être impossible à récupérer ou mener à un piratage et au vol d'actifs de grande valeur.

KZero Passwordless conçoit des systèmes d'authentification sans mot de passe de nouvelle génération qui aident les organisations à outiller leurs utilisateurs pour mieux protéger leurs clés privées et leurs autorisations sur la chaîne de blocs. Réservez une démonstration dès aujourd'hui pour découvrir comment votre entreprise peut remplacer les mots de passe et renforcer la sécurité des clés privées grâce à une MFA de pointe, résistante à l'hameçonnage.

Équipe KZero



Découvrez d'autres contenus éclairants de l'équipe chevronnée de KZero dans notre blogue et notre section de guides.