Allez au contenu, Allez à la navigation

Comprendre les blockchains : fonctionnement et enjeux de ces nouvelles technologies

20 juin 2018 : Comprendre les blockchains : fonctionnement et enjeux de ces nouvelles technologies ( rapport de l'opecst )

B. RÉPONDRE AU DÉFI DES RISQUES D'ATTAQUES

La sécurité est probablement la caractéristique des blockchains la plus mise en avant. Effectivement, il est plus ardu de pirater un registre distribué entre plusieurs milliers de « noeuds » disséminés à travers le monde, que présent sur un unique serveur centralisé. Si la longévité de la blockchain du bitcoin semble une garantie de l'intégrité de ses transactions, elle n'est pas, en réalité, exempte de failles et a déjà été attaquée. Les autres protocoles, en particulier ceux qui développent des applications complexes, sont au moins autant exposés à des attaques, en proportion de leur valeur financière.

1. Attaques contre les interfaces

Plus une blockchain possède un réseau étendu et dispersé, plus il est difficile de modifier son code ou de créer une transaction frauduleuse. Ainsi, beaucoup de piratages recensés (vols massifs de cryptomonnaies, en particulier) ne portaient pas sur le protocole lui-même mais sur des interfaces avec celui-ci, tels que des sites internet de change. De telles attaques consistent simplement à subtiliser les clés privées confiées par des utilisateurs à ces sites et à les utiliser afin de transférer les sommes en cryptomonnaies auxquelles elles correspondent vers un autre compte.

La disparition de 850 000 bitcoins en février 2014 (l'équivalent de 660 millions de dollars au cours du 10 décembre 2016) de la plateforme japonaise MtGox, alors l'une des principales places d'échange de bitcoins au monde, témoigne de cette vulnérabilité. Plus récemment, en août 2016, 120 000 bitcoins (l'équivalent de 93 millions de dollars au cours du 10 décembre 2016) ont été subtilisés à Bitfinex, l'une des principales « bourses » de bitcoin. Selon une estimation de l'agence Reuters, un tiers des plateformes d'échange auraient ainsi été hackées depuis 200934(*).

2. Attaques contre les applications et le cas de TheDAO

Plusieurs blockchains cherchent à dépasser le simple usage transactionnel pour proposer des applications plus développées, qui prennent la forme de programmes informatiques inscrits dans la chaîne de blocs, des smart contracts. Ces perspectives nouvelles ont cependant une contrepartie en termes de sécurité, ces programmes ajoutant de la complexité dans le protocole et, par voie de conséquence, de potentielles failles exploitables par des attaquants. Pour le professeur Gérard Memmi, en raison de l'immuabilité du code inscrit dans la blockchain, les erreurs de programmation dans les smart contracts sont particulièrement gênantes.

Ces risques sont d'autant plus élevés que les langages de script mis sur pied pour Bitcoin ou Ethereum l'ont été dans des délais bien plus restreints que ceux qui prévalent normalement, sous l'effet d'un besoin rapide de nouvelles solutions. Selon Vincent Danos, chercheur en informatique, la solidité de ces langages de programmation ne peut pas être vérifiée par une simple lecture mais demande à être testée de manière itérative avec des outils complexes conçus à cette fin. Il en résulte, selon Gérard Memmi, qu'on ne peut pas dire aujourd'hui que les smart contracts sont techniquement au point.

Le cas du piratage de l'application TheDAO (The Decentralized Autonomous Organisation) sur Ethereum est probablement le plus emblématique à ce titre. Le très ambitieux projet TheDAO cherchait en effet à repousser les limites offertes par les smarts contracts en recréant le fonctionnement complet d'une organisation en permettant par exemple le vote, l'élection, la certification, la rémunération... Chaque utilisateur de TheDAO devait ainsi pouvoir participer au fonctionnement d'une organisation sans autorité centrale de contrôle, ayant pour but de financer des projets en échange de revenus. Il s'agissait d'un système à mi-chemin entre actionnariat et financement par la foule (crowdfunding). Cent-cinquante millions d'euros furent collectés sous forme d'ethers pour une opération qui n'en nécessitait que quelques centaines de milliers.

Le 17 juin 2016, un hacker a utilisé une vulnérabilité dans une fonction du contrat pour détourner un tiers de la somme collectée en ethers, ce qui correspondait alors à près de 5 % de la totalité des ethers en circulation. Faisant face à un vol d'une telle ampleur, mais alors que le protocole en lui-même n'était pas mis en danger, les développeurs décident de proposer au réseau d'adopter une mise à jour afin de revenir à un état antérieur du registre, tout en conservant l'ensemble des transactions échangées sur la blockchain depuis l'accident. Cette proposition ayant été massivement acceptée, elle a donné lieu à un hard fork.

3. Attaques utilisant le procotole

Le protocole d'une blockchain « permissionless », c'est-à-dire ouverte à tous, ne prévoit, par définition, aucune gouvernance, donc aucun moyen de contrôle ou de sanction. Tant qu'il respecte le fonctionnement du protocole, un utilisateur malveillant peut donc réaliser des actions frauduleuses sans encourir le risque d'une pénalité. Dans un contexte de preuve de travail, l'attaque la plus évidente est celle des 51 % : il s'agit pour un mineur de réunir plus de 50 % de la puissance de calcul à un instant donné, et ainsi de pouvoir valider des blocs plus rapidement que l'ensemble des autres utilisateurs. Cela lui permet alors d'effectuer des double dépenses, c'est-à-dire de réaliser plusieurs transactions avec la même unité de cryptomonnaie. Une autre technique, appelée eclipse attack, consiste à présenter à un noeud donné une fausse version du registre, de sorte que celui-ci ne puisse pas se prémunir d'une double transaction de la part de l'assaillant. En pratique, il s'agit pour l'assaillant de prendre le contrôle de tous les noeuds connectés à un utilisateur donné.

Il est assez simple d'envisager le coût d'une attaque 51 % dans un système utilisant la preuve de travail, puisqu'elle est égale au coût lié à la puissance de calcul de l'ensemble du réseau. Ainsi, la blockchain Bitcoin Gold, dont la capitalisation dépasse les 500 millions de dollars, a subi une telle attaque le 24 mai 2018.

De ce point de vue, la blockchain du bitcoin semble particulièrement sûre : au vu du nombre de mineurs et de la quantité d'argent en jeu pour récompenser leur minage, aucune double dépense ne semble suffisamment rentable pour compenser les moyens à investir dans une attaque 51 %. Cette sécurité repose sur l'hypothèse d'une rationalité de l'attaquant, celui-ci ne pouvant pas envisager une opération qui lui coûterait plus qu'elle ne lui rapporterait. Il est cependant possible qu'un attaquant fortement doté en moyens (comme un gouvernement ou une multinationale) souhaite simplement s'attaquer au réseau pour créer un bouleversement économique à l'échelle mondiale à des fins politiques, c'est ce qu'on appelle une attaque Goldfinger.

Il est à noter que les blockchains fermées ou permissionned, ne sont pas susceptibles de subir une attaque 51 % car les membres du réseau sont connus et un contrôle est donc possible. Elles ne sont cependant pas à l'abri d'un bug dans leur code source.

4. Attaques contre le protocole lui même

Enfin, bien que les protocoles soient en accès libre et que les communautés qui les entourent s'assurent de leur sécurité, une faille dans leur code même n'est pas inenvisageable ou pourrait apparaître avec les progrès de l'informatique. Ainsi, les primitives cryptographiques soutenant les algorithmes de signature ECDSA ont une durée de vie limitée à long terme, en particulier dans le cas hypothétique du développement de l'ordinateur quantique, dont la faisabilité reste toutefois sujette à caution. Une telle évolution n'est pas une menace pour les fonctions de hachage, mais leur espérance de vie reste tout de même limitée, entre 20 et 100 ans pour SHA-256, selon les experts.

En outre, même les plus anciens protocoles ne sont pas à l'abri d'une faille. Ainsi, le bitcoin a été attaqué avec succès le 15 août 2010 à l'occasion de ce que l'on a appelé le value overflow incident et la découverte que le bloc 74638 contenait une transaction créant 184 467 440 407 bitcoins (soit environ 184 milliards de bitcoins) pour 3 adresses différentes. À l'époque cependant, le bitcoin était loin d'avoir sa valeur actuelle. Lors de cette attaque, deux adresses ont reçu 92,2 milliards de bitcoins chacune. L'erreur provient de ce que le code utilisé pour vérifier les transactions avant de les inclure dans un bloc ne prenait pas en compte des valeurs aussi grandes, ce qui explique le nom de « bug de dépassement de capacité ».

Une nouvelle version du client (programme gérant un noeud) a été publiée moins de 5 heures après la découverte du bug. Cette correction rejette toute transaction de plus de 21 millions de bitcoins. Cependant, de nombreux noeuds non corrigés ont continué à construire la « mauvaise » blockchain pendant plusieurs heures. La « bonne » blockchain finit par s'imposer neuf heures après le début de l'incident, au bloc 74691, ce qui provoqua l'annulation des transactions frauduleuses, mais aussi d'autres transactions qui ne l'étaient pas.


* 34 Gertrude Chavez-Dreyfuss, « Cyber Threat Grows for Bitcoin Exchanges », Reuters, 29 août 2016.