L’essor des cryptomonnaies est principalement basé sur la confiance qu’ont les utilisateurs dans le concept de la blockchain. La complexité du protocole et son processus de vérification des transactions via les nœuds du réseau ont toujours été vantés comme un système virtuellement impossible à attaquer. Cependant, au cours des derniers mois, des hackers ont montré que ce n’était pas le cas. Ces attaques révèlent que plusieurs défauts de sécurité sont présents dans les blockchains et plates-formes de transaction, certains étant intrinsèquement liés à la nature même de la blockchain utilisée.
Au début du mois dernier, l’équipe de sécurité de Coinbase a remarqué que quelque chose d’étrange se passait dans l’Ethereum Classic, l’une des cryptomonnaies que l’on peut acheter et vendre à l’aide de la plate-forme d’échange populaire Coinbase (ou d’autres plates-formes). Sa blockchain, l’historique de toutes ses transactions, était attaquée.
Un attaquant avait en quelque sorte pris le contrôle de plus de la moitié de la puissance de calcul du réseau et l’utilisait pour réécrire l’historique des transactions. Cela a permis de dépenser la même cryptomonnaie plus d’une fois, ce que l’on appelle les « doubles dépenses ». L’attaquant a été repéré en train de retirer cette somme pour un montant de 1.1 million de dollars. Coinbase affirme qu’aucune devise n’a été volée sur l’un de ses comptes.
De plus en plus d’attaques sur la blockchain
Mais une deuxième plate-forme d’échange populaire, Gate.io, a admis qu’elle n’avait pas été aussi chanceuse, perdant environ 200 000 $ au profit de l’attaquant (qui, étrangement, en a rendu la moitié quelques jours plus tard). Il y a à peine un an, ce scénario de cauchemar était essentiellement théorique. Mais l’attaque dite des 51% contre l’Ethereum Classic n’était que la dernière d’une série d’attaques récentes contre les blockchains.
Au total, les pirates ont volé près de 2 milliards de dollars de cryptomonnaie depuis le début de 2017, principalement dans des échanges, et c’est exactement ce qui a été révélé publiquement. Ce ne sont pas seulement des attaquants isolés opportunistes. Les organisations de cybercriminalité sophistiquées le font maintenant aussi : la société d’analyse Chainalysis a récemment déclaré que seuls deux groupes, qui sont apparemment toujours actifs, pourraient avoir volé 1 milliard de dollars.
Une blockchain est une base de données cryptographique maintenue par un réseau d’ordinateurs, dont chacun stocke une copie de la version la plus à jour. Un protocole blockchain est un ensemble de règles qui dictent la manière dont les ordinateurs du réseau, appelés nœuds, doivent vérifier les nouvelles transactions et les ajouter à la base de données.
Le protocole utilise la cryptographie, la théorie des jeux et l’économie pour inciter les nœuds à travailler à la sécurisation du réseau au lieu de l’attaquer à des fins personnelles. S’il est correctement configuré, ce système peut rendre extrêmement difficile et coûteux l’ajout de fausses transactions, mais il est relativement facile de vérifier les transactions valides.
Règle des 51% : elle est majoritairement adoptée par les cryptomonnaies
La sensibilité aux attaques à 51% est inhérente à la plupart des cryptomonnaies. En effet, la plupart sont basés sur des blockchains qui utilisent la preuve de travail comme protocole de vérification des transactions. Dans ce processus, également connu sous le nom de minage, les nœuds dépensent de grandes quantités de puissance de calcul pour prouver qu’ils sont suffisamment fiables pour ajouter des informations sur les nouvelles transactions à la base de données.
Un mineur qui prend en quelque sorte le contrôle de la majorité de la puissance minière du réseau peut frauder d’autres utilisateurs en leur envoyant des paiements, puis en créant une version alternative de la blockchain dans laquelle les paiements n’ont jamais eu lieu. Cette nouvelle version s’appelle un fork. L’attaquant, qui contrôle la majeure partie de la puissance minière, peut faire du fork la version faisant autorité de la chaîne et continuer à dépenser à nouveau la même cryptomonnaie.
Pour les blockchains populaires, tenter ce type d’exploit est susceptible d’être extrêmement coûteux. Selon le site Web Crypto51, louer suffisamment de puissance minière pour attaquer Bitcoin coûterait actuellement plus de 260 000 $ par heure. Mais cela devient beaucoup moins cher rapidement lorsque vous vous déplacez dans la liste des plus de 1500 cryptomonnaies disponibles. La chute du prix des monnaies les rend encore moins chères, car elles obligent les mineurs à éteindre leurs machines, laissant les réseaux avec moins de protection.
Le défaut de sécurité des contrats intelligents
Outre les attaques à 51%, il existe un tout nouveau niveau de faiblesses de sécurité de la blockchain dont les implications commencent tout juste à être explorées : les bugs des contrats intelligents. Un contrat intelligent est un programme informatique qui s’exécute sur un réseau blockchain. Il peut être utilisé pour automatiser le mouvement de la cryptomonnaie selon les règles et conditions prescrites. Cela a de nombreuses utilisations potentielles, telles que la facilitation de vrais contrats légaux ou de transactions financières compliquées.
Une autre utilisation — le cas qui nous intéresse ici — est de créer un mécanisme de vote par lequel tous les investisseurs d’un fonds de capital-risque peuvent décider collectivement comment allouer l’argent. Comme le piratage l’a illustré, un bug dans un contrat intelligent en direct peut créer une sorte d’urgence unique. Dans les logiciels traditionnels, un bug peut être corrigé avec un patch. Dans le monde de la blockchain, ce n’est pas si simple.
Bien qu’ils ne puissent pas être corrigés, certains contrats peuvent être « mis à niveau » en déployant des contrats intelligents supplémentaires pour interagir avec eux. Les développeurs peuvent également créer des kill switch centralisés dans un réseau pour arrêter toute activité une fois qu’un piratage est détecté. Mais pour les utilisateurs dont l’argent a déjà été volé, il sera trop tard.
La seule façon de récupérer l’argent est, en fait, de réécrire l’historique — pour revenir au point de la blockchain avant l’attaque, créer une fourchette vers une nouvelle blockchain et faire en sorte que tout le monde sur le réseau accepte de l’utiliser à la place. C’est ce que les développeurs d’Ethereum ont choisi de faire. La plupart des membres de la communauté, mais pas tous, sont passés à la nouvelle blockchain, que nous connaissons maintenant sous le nom d’Ethereum. Un petit groupe de résistants est resté fidèle à la blockchain d’origine, qui est devenue Ethereum Classic.
Comment arrêter les hackers ?
AnChain.ai est l’une des nombreuses startups récentes fondées pour faire face à la menace de piratage de la blockchain. Elle utilise l’intelligence artificielle pour surveiller les transactions et détecter les activités suspectes, et peut analyser le code des contrats intelligents à la recherche de vulnérabilités connues.
D’autres sociétés, dont ChainSecurity de Tsankov, développent des services d’audit basés sur une technique informatique établie appelée vérification formelle. L’objectif est de prouver mathématiquement que le code d’un contrat fera réellement ce que ses créateurs ont voulu. Ces outils d’audit, qui ont commencé à émerger au cours de l’année écoulée, ont permis aux créateurs de contrats intelligents d’éliminer bon nombre des bugs, déclare Tsankov. Mais le processus peut être coûteux et prendre du temps.
Il peut également être possible d’utiliser des contrats intelligents supplémentaires pour mettre en place des « primes de bogues » basées sur la blockchain. Celles-ci encourageraient les gens à signaler les failles en échange d’une récompense en cryptomonnaie, explique Philip Daian, chercheur à l’Initiative pour les cryptomonnaies et les contrats de l’Université Cornell.