Skip to main content

19 Fév, 2019

Autrefois considérées comme inviolables, les blockchains sont maintenant piratées.

Autrefois considérées comme inviolables, les blockchains sont maintenant piratées.

De plus en plus de failles de sécurité apparaissent dans les plates-formes de cryptomonnaie et de contrats intelligents, et certaines sont fondamentales dans la façon dont elles ont été construites.

Au début du mois dernier, l’équipe de sécurité de Coinbase a remarqué quelque chose d’étrange dans Ethereum Classic, l’une des cryptomonnaies que les gens peuvent acheter et vendre en utilisant la plateforme d’échange populaire de Coinbase. Sa Blockchain, l’historique de toutes ses transactions, était attaquée.

Un pirate 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 permettait de dépenser la même cryptomonnaie plus d’une fois, ce que l’on appelle les  » doubles dépenses « . L’agresseur a été repéré en train d’en tirer 1,1 million de dollars. Coinbase affirme qu’aucune monnaie n’a été volée sur aucun de ses comptes. Mais une seconde source d’échange populaire, Gate.io, a admis qu’elle n’avait pas eu cette chance, perdant environ 200 000 dollars au profit de l’attaquant (qui, étrangement, a rendu la moitié quelque temps après).

Il y a tout juste un an, ce scénario cauchemardesque était surtout théorique. Mais l’attaque dite de 51% contre Ethereum Classic n’était que la dernière d’une série d’attaques récentes contre des chaînes de blocage qui ont augmenté les enjeux pour l’industrie naissante.

Au total, depuis le début de 2017, les pirates informatiques ont volé pour près de 2 milliards de dollars de cryptomonnaies, principalement sur les bourses, et c’est exactement ce qui a été révélé publiquement. Ce ne sont pas seulement des attaquants solitaires opportunistes. Des organisations cybercriminelles sophistiquées le font maintenant aussi : la société d’analyse Chainalysis a récemment déclaré que seulement deux groupes, qui sont apparemment toujours actifs, ont peut-être volé un milliard de dollars aux bourses.

Nous ne devrions pas être surpris. Les Blockchains sont particulièrement attrayantes pour les voleurs parce que les transactions frauduleuses ne peuvent pas être inversées, comme c’est souvent le cas dans le système financier traditionnel. En outre, nous savons depuis longtemps que, tout comme les blockchains ont des caractéristiques de sécurité uniques, elles présentent des vulnérabilités uniques. Les slogans de marketing et les manchettes qui qualifiaient la technologie d' » inaccessible  » étaient complètement faux.

Cela a été compris, du moins en théorie, depuis l’apparition de Bitcoin il y a dix ans. Mais au cours de l’année écoulée, au milieu d’une « explosion cambrienne » de nouveaux projets de cryptologie, nous avons commencé à voir ce que cela signifie dans la pratique et ce que ces faiblesses inhérentes pourraient signifier pour l’avenir des chaînes de blocage et des actifs numériques.

Comment pirater une chaîne de blocs ?

Avant d’aller plus loin, mettons les choses au clair.

Une Blockchain est une base de données cryptographiques gérée par un réseau d’ordinateurs qui stockent chacun une copie de la version la plus récente. Un protocole de Blockchain est un ensemble de règles qui dictent comment les ordinateurs du réseau, appelés nœuds, doivent vérifier les nouvelles transactions et les ajouter à la base de données. En général, plus de la moitié des nœuds doivent convenir qu’une transaction est valide pour qu’elle soit vérifiée.

Le protocole utilise la cryptographie, la théorie des jeux et l’économie pour inciter les nœuds à sécuriser le réseau au lieu de l’attaquer pour leur profit personnel. S’il est correctement configuré, ce système peut rendre l’ajout de fausses transactions extrêmement difficile et coûteux, mais relativement facile à vérifier si elles sont valides.

C’est ce qui a rendu la technologie si attrayante pour de nombreuses industries, à commencer par la finance. Bientôt, les services de grandes institutions comme Fidelity Investments et Intercontinental Exchange, propriétaire de la Bourse de New York, commenceront à enchevêtrer des Blockchains dans le système financier existant. Même les banques centrales envisagent maintenant de les utiliser pour de nouvelles formes numériques de monnaie nationale.

Mais plus un système de Blockchain est complexe, plus il y a de façons de commettre des erreurs lors de sa mise en place. Plus tôt ce mois-ci, la société en charge de Zcash-une cryptomonnaie qui utilise des maths extrêmement compliquées pour permettre aux utilisateurs d’effectuer des transactions en privé- a révélé qu’elle avait secrètement réparé un « défaut cryptographique subtil » accidentellement introduit au protocole. Un attaquant aurait pu l’exploiter pour fabriquer des faux Zcash illimités. Heureusement, personne ne semble l’avoir fait.

Le protocole n’est pas la seule chose qui doit être sécurisée. Pour échanger de la cryptomonnaie de votre propre chef, ou exécuter un nœud, vous devez exécuter un client logiciel, qui peut également contenir des vulnérabilités. En septembre, les développeurs du client principal de Bitcoin, appelé Bitcoin Core, ont dû se précipiter pour corriger un bogue (également en secret) qui aurait pu laisser les attaquants frapper plus de bitcoins que le système n’est censé le permettre.

Pourtant, la plupart des récents piratages qui ont fait la une des journaux n’étaient pas des attaques contre les Blockchains elles-mêmes, mais contre les échanges, les sites Web où les gens peuvent acheter, échanger et détenir des cryptomonnaies. Et beaucoup de ces braquages pourraient être imputés à de mauvaises pratiques de sécurité de base. Cela a changé en janvier avec l’attaque de 51% contre Ethereum Classic.

La règle des 51 %

La sensibilité aux attaques à 51% est inhérente à la plupart des cryptomonnaies. C’est parce que la plupart sont basées sur des Blockchains qui utilisent des « proof of work » (preuves de fonctionnement) comme protocole pour vérifier les transactions. Dans ce processus, également connu sous le nom d’exploitation minière, les nœuds dépensent de grandes quantités de puissance de calcul pour se montrer suffisamment fiables afin d’ajouter des informations sur les nouvelles transactions à la base de données.

Un mineur qui, d’une manière ou d’une autre, prend le contrôle de la majorité de la puissance minière du réseau peut frauder d’autres utilisateurs en leur envoyant des paiements et en créant ensuite une version alternative de la Blockchain dans laquelle les paiements n’ont jamais eu lieu. Cette nouvelle version s’appelle une « Fork »  (fourchette). L’attaquant, qui contrôle la majeure partie de la puissance minière, peut faire de la fourchette la version autoritaire de la chaîne et passer à nouveau la même cryptomonnaie.

Pour les Blockchains populaires, tenter ce genre de casse est susceptible d’être extrêmement coûteux. Selon le site crypto51.com, louer assez de puissance minière pour attaquer le Bitcoin coûterait actuellement plus de 260 000 dollars de l’heure. Mais il devient beaucoup moins cher rapidement comme vous vous déplacez vers le bas de la liste des plus de 1500 cryptomonnaies là-bas. L’effondrement du prix des pièces de monnaie le rend encore moins cher, puisqu’il oblige les mineurs à éteindre leurs machines, laissant les réseaux avec moins de protection.

Vers le milieu de 2018, les attaquants ont commencé à lancer des attaques sur 51 % contre une série de pièces relativement petites et peu échangées, dont Verge, Monacoin et Bitcoin Gold, volant environ 20 millions de dollars au total. À l’automne, des pirates informatiques ont volé environ 100 000 dollars à l’aide d’une série d’attaques contre une monnaie appelée Vertcoin. Le succès contre Ethereum Classic, qui a rapporté plus d’un million de dollars, a été le premier contre une devise du top-20.

David Vorick, cofondateur de la plateforme de stockage de fichiers Sia, prévoit que les attaques sur 51% continueront à augmenter en fréquence et en sévérité, et que les échanges feront les frais des dommages causés par les doubles dépenses. L’un des moteurs de cette tendance, dit-il, a été l’essor des marchés dits hashrate, que les attaquants peuvent utiliser pour louer de la puissance de calcul pour les attaques. « En fin de compte, les échanges devront être beaucoup plus restrictifs dans le choix des cryptomonnaies à prendre en charge « , a écrit David Vorick après le piratage d’Ethereum Classic.

Une toute nouvelle boîte de vers à bugs

En plus des attaques sur 51%, il y a un tout nouveau niveau de faiblesses dans la sécurité de la Blockchain dont les implications commencent à peine à être explorées par les chercheurs : les bogues du contrat intelligent. Par coïncidence, Ethereum Classic, et plus précisément l’histoire qui se cache derrière son origine, est aussi un bon point de départ pour les comprendre.

Un contrat intelligent est un programme informatique qui s’exécute sur un réseau de Blockchain. Il peut être utilisé pour automatiser le mouvement de la cryptomonnaie selon les règles et conditions prescrites. Cela peut servir à de nombreuses fins, par exemple pour faciliter de véritables contrats juridiques ou des transactions financières compliquées. Une autre utilisation – le cas de l’intérêt ici – est de créer un mécanisme de vote par lequel tous les investisseurs d’un fonds de capital-risque peuvent collectivement décider comment allouer l’argent.

C’est précisément un tel fonds, baptisé Decentralized Autonomous Organization (DAO) oy Organisation Autonome Décentralisée (OAD), qui a été créé en 2016 à l’aide du système de la Blockchain appelé Ethereum. Peu de temps après, un attaquant a volé pour plus de 60 millions de dollars de cryptomonnaie en exploitant une faille imprévue dans un contrat intelligent qui régissait le DAO. Essentiellement, la faille permettait au pirate informatique de continuer à demander de l’argent à partir de comptes sans que le système n’enregistre que l’argent avait déjà été retiré.

Comme l’illustre le piratage, un bogue dans un contrat intelligent en direct peut créer une situation 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. Selon Petar Tsankov, chercheur à l’ETH Zurich et cofondateur d’une startup de sécurité à contrat intelligent appelée ChainSecurity, le déploiement d’un contrat intelligent est un peu comme le lancement d’une fusée, car les transactions sur une Blockchain ne peuvent être annulées. « Le logiciel ne peut pas faire d’erreur. »

Il y a des correctifs, en quelque sorte. 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 intégrer des commutateurs d’arrêt 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’histoire, de revenir au point sur la Blockchain avant l’attaque, de créer une fourchette vers une nouvelle Blockchain et de demander à tous les membres du réseau d’accepter d’utiliser celle-ci à 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 chaîne, que nous appelons maintenant Ethereum. Un plus petit groupe de résistances est resté fidèle à la chaîne d’origine, qui est devenue Ethereum Classic.

Le mois dernier, l’équipe de Petar Tsankov de ChainSecurity a sauvé Ethereum d’une répétition possible de la catastrophe de la DAO. La veille d’une mise à jour logicielle majeure, la société a déclaré aux principaux développeurs d’Ethereum qu’elle aurait la conséquence involontaire de laisser certains contrats sur la Blockchain nouvellement vulnérables au même type de bogue que celui qui a conduit au piratage du DAO. Les développeurs ont rapidement reporté la mise à jour et lui donneront un autre essai plus tard ce mois-ci.

Néanmoins, selon Victor Fang, cofondateur et PDG de la société de sécurité AnChain.ai, des centaines de contrats intelligents d’Ethereum étaient déjà vulnérables à ce soi-disant bogue de la réentrée, selon lui. Des dizaines de milliers de contrats peuvent contenir une autre forme de vulnérabilité, selon une étude menée l’année dernière. Et la nature même des Blockchains publiques signifie que si un bogue du contrat intelligent existe, les pirates le trouveront, puisque le code source est souvent visible sur la Blockchain. « C’est très différent de la cybersécurité traditionnelle « , explique Fang, qui travaillait auparavant pour la société de cybersécurité FireEye.

Les contrats bogués, en particulier ceux qui détiennent des milliers ou des millions de dollars, ont attiré des pirates informatiques tout aussi avancés que ceux qui attaquent les banques ou les gouvernements. En août, AnChain a identifié cinq adresses Ethereum derrière une attaque extrêmement sophistiquée qui exploitait un défaut de contrat dans un jeu de jeu populaire pour voler 4 millions de dollars.

Les hackers peuvent-ils être vaincus ?

AnChain.ai est l’une des nombreuses startups récemment créées pour faire face à la menace de piratage de la Blockchain. Il utilise l’intelligence artificielle pour surveiller les transactions et détecter les activités suspectes, et il peut analyser le code des contrats intelligents à la recherche de vulnérabilités connues.

D’autres entreprises, dont ChainSecurity de Petar 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 voulaient. Ces outils de vérification, qui ont commencé à voir le jour au cours de la dernière année, ont permis aux créateurs de contrats intelligents d’éliminer bon nombre des bogues qui étaient des  » fruits à portée de main « , explique M. Tsankov. Mais le processus est coûteux et prend beaucoup de temps ; une seule vérification peut prendre des mois et coûter des centaines de milliers de dollars.

Il peut également être possible d’utiliser des contrats intelligents supplémentaires pour mettre en place des  » bug bounties  » (des chasseurs de prime de bug) basées sur une chaîne de blocs. Selon Philip Daian, chercheur à l’Initiative for Cryptocurrencies and Contracts de l’Université Cornell, ces mesures encourageraient les gens à signaler les failles en échange d’une récompense en cryptomonnaie.

Mais s’assurer que le code est propre n’ira pas plus loin. Après tout, une Blockchain est un système économique complexe qui dépend du comportement imprévisible des humains, et les gens seront toujours à la recherche de nouvelles façons d’y jouer. Philip Daian et ses collègues ont montré comment les attaquants ont déjà compris comment tirer profit des contrats Ethereum, par exemple.

Bref, si la technologie de la Blockchain a longtemps été vantée pour sa sécurité, dans certaines conditions, elle peut être très vulnérable. Parfois, une exécution de mauvaise qualité peut être blâmée, ou des bogues logiciels non intentionnels. D’autres fois, il s’agit plutôt d’une zone grise – le résultat compliqué des interactions entre le code, l’économie de la chaîne de blocage et la cupidité humaine. Cela est connu en théorie depuis le début de la technologie. Maintenant qu’il y a tant de chaînes de blocage dans le monde, nous apprenons ce que cela signifie réellement, souvent à la dure.

https://www.technologyreview.com/s/612974/once-hailed-as-unhackable-blockchains-are-now-getting-hacked/

http://hackingdistributed.com/2017/08/13/cost-of-decent/

https://chainsecurity.com/

https://blog.sia.tech/fundamentals-of-proof-of-work-beaa68093d2bv

https://www.crypto51.app/