Skip to main content

18 Mai, 2021

Une fois saluées comme non piratables, les blockchains sont maintenant piratées

Une fois saluées comme non piratables, les blockchains sont maintenant piratées

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

Au début du mois dernier, l’équipe de sécurité de Coinbase a remarqué que quelque chose d’étrange se passait dans Ethereum Classic, l’une des crypto-monnaies que les gens peuvent acheter et vendre à l’aide de la plate-forme d’échange populaire de Coinbase. 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 crypto-monnaie 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é effectivement volée sur l’un de ses comptes. Mais un deuxième échange populaire, Gate.io, a admis qu’il n’avait pas été aussi chanceux, perdant environ 200000 dollars 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 de 51% contre Ethereum Classic n’était que la dernière d’une série d’attaques récentes contre les blockchains qui ont accru les enjeux pour l’industrie naissante.

Au total, les pirates ont volé près de 2 milliards de dollars de crypto-monnaie 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 combinés aux échanges.

Nous ne devrions pas être surpris. Les blockchains sont particulièrement attrayantes pour les voleurs car les transactions frauduleuses ne peuvent pas être annulées comme elles peuvent souvent l’être dans le système financier traditionnel. En plus de cela, nous savons depuis longtemps que, tout comme les blockchains ont des fonctionnalités de sécurité uniques, elles ont des vulnérabilités uniques. Les slogans de marketing et les gros titres qui qualifiaient la technologie d ‘«inhackable» étaient totalement faux.

Cela a été compris, du moins en théorie, depuis que Bitcoin est apparu il y a dix ans. Mais au cours de l’année écoulée, au milieu d’une explosion cambrienne de nouveaux projets de crypto-monnaie, nous avons commencé à voir ce que cela signifie dans la pratique – et ce que ces faiblesses inhérentes pourraient signifier pour l’avenir des blockchains et des actifs numériques.

Comment pirater une blockchain?

Avant d’aller plus loin, clarifions quelques termes. 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.

C’est ce qui a rendu la technologie si attrayante pour de nombreuses industries, à commencer par la finance. Bientôt, les services d’institutions de renom comme Fidelity Investments et Intercontinental Exchange, propriétaire de la Bourse de New York, commenceront à intégrer les 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 faire des erreurs lors de sa configuration. Plus tôt ce mois-ci, la société en charge de Zcash – une crypto-monnaie qui utilise des mathématiques extrêmement compliquées pour permettre aux utilisateurs d’effectuer des transactions en privé – a révélé qu’elle avait secrètement corrigé une « faille cryptographique subtile » accidentellement incrustée dans le protocole. Un attaquant aurait pu l’exploiter pour fabriquer des Zcash contrefaits illimités. Heureusement, personne ne semble avoir fait cela.

Le protocole n’est pas la seule chose qui doit être sécurisée. Pour échanger de la crypto-monnaie par vous-même 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 principal client de Bitcoin, appelé Bitcoin Core, ont dû se démener pour corriger un bogue (également en secret) qui aurait pu permettre aux attaquants de frapper plus de bitcoins que le système est censé permettre.

Pourtant, la plupart des hacks récents 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 crypto-monnaies. 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 crypto-monnaies. 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 de la fourche la version faisant autorité de la chaîne et continuer à dépenser à nouveau la même crypto-monnaie.

Pour les blockchains populaires, tenter ce type de braquage 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 260000 $ par heure. Mais cela devient beaucoup moins cher rapidement lorsque vous vous déplacez dans la liste des plus de 1500 crypto-monnaies disponibles. La chute du prix des pièces les rend encore moins chères, car elles obligent 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 à 51% sur une série de pièces relativement petites et peu échangées, notamment Verge, Monacoin et Bitcoin Gold, volant un total estimé à 20 millions de dollars. À l’automne, des pirates ont volé environ 100000 dollars en utilisant une série d’attaques contre une monnaie appelée Vertcoin. Le coup 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 plate-forme de stockage de fichiers basée sur la blockchain Sia, prédit que 51% des attaques continueront de croître en fréquence et en gravité, et que les échanges prendront le plus gros des dommages causés par les doubles dépenses.

Selon lui, l’un des facteurs à l’origine de cette tendance a été la montée en puissance des marchés dits de hashrate, que les attaquants peuvent utiliser pour louer de la puissance de calcul pour les attaques. «Les échanges devront finalement être beaucoup plus restrictifs lors de la sélection des crypto-monnaies à prendre en charge», a écrit Vorick après le piratage Ethereum Classic.

Une toute nouvelle boîte de bogues de vers

Outre les 51% d’attaques, il existe un tout nouveau niveau de faiblesses de sécurité de la blockchain dont les implications commencent tout juste à explorer: les bogues des contrats intelligents. Par coïncidence, Ethereum Classic – en particulier, l’histoire derrière son origine – est également un bon point de départ pour les comprendre.

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 crypto-monnaie 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.

Un tel fonds, appelé Organisation autonome décentralisée (DAO), a été créé en 2016 à l’aide du système de blockchain appelé Ethereum. Peu de temps après, un attaquant a volé plus de 60 millions de dollars de crypto-monnaie en exploitant une faille imprévue dans un contrat intelligent qui régissait le DAO. Essentiellement, la faille permettait au pirate de continuer à demander de l’argent à des comptes sans que le système enregistre que l’argent avait déjà été retiré.

Comme le piratage l’a illustré, un bogue dans un contrat intelligent en direct peut créer une sorte d’urgence unique. Dans les logiciels traditionnels, un bogue peut être corrigé avec un correctif. Dans le monde de la blockchain, ce n’est pas si simple. Parce que les transactions sur une blockchain ne peuvent pas être annulées, déployer un contrat intelligent est un peu comme lancer une fusée, explique Petar Tsankov, chercheur à l’ETH Zurich et cofondateur d’une start-up de sécurité de contrat intelligent appelée ChainSecurity . «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 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’histoire – pour revenir au point sur 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 chaîne, que nous connaissons maintenant sous le nom d’Ethereum. Un petit groupe de résistants est resté fidèle à la chaîne d’origine, qui est devenue Ethereum Classic.

Le mois dernier, l’équipe de Tsankov chez ChainSecurity a sauvé Ethereum d’une possible répétition de la catastrophe DAO. Juste un jour avant une mise à niveau logicielle majeure prévue, la société a déclaré aux principaux développeurs d’Ethereum qu’elle aurait pour conséquence involontaire de laisser certains contrats sur la blockchain nouvellement vulnérables au même type de bogue qui a conduit au piratage DAO. Les développeurs ont rapidement reporté la mise à niveau et la réessayeront plus tard ce mois-ci.

Néanmoins, des centaines de contrats intelligents Ethereum précieux étaient déjà vulnérables à ce soi-disant bogue de réentrance, selon Victor Fang, cofondateur et PDG de la société de sécurité blockchain AnChain.ai. Des dizaines de milliers de contrats  peuvent contenir un autre type 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 bug de smart-contract existe, les pirates le trouveront, car le code source est souvent visible sur la blockchain. «C’est très différent de la cybersécurité traditionnelle», déclare Fang, qui travaillait auparavant pour la société de cybersécurité FireEye.

Les contrats de buggy, en particulier ceux qui détiennent des milliers ou des millions de dollars, ont attiré des pirates 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 une faille de contrat dans un jeu de hasard populaire pour voler 4 millions de dollars.

Les hackers peuvent-ils être vaincus?

AnChain.ai est l’une des nombreuses startups récentes 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 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. Le but est de prouver mathématiquement que le code d’un contrat fera réellement ce que ses créateurs voulaient. 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 bogues qui étaient «des fruits faciles à suspendre», dit 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. Cela encouragerait les gens à signaler les failles en échange d’une récompense en crypto-monnaie, explique Philip Daian , chercheur à l’Initiative pour les crypto-monnaies et les contrats de l’Université Cornell.

Mais s’assurer que le code est propre n’ira que jusque-là. Une blockchain, après tout, 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 de jouer. Daian et ses collègues ont montré comment les attaquants avaient déjà compris comment tirer profit des contrats intelligents Ethereum populaires , par exemple.

En bref, alors que la technologie blockchain a longtemps été vantée pour sa sécurité, dans certaines conditions, elle peut être assez vulnérable. Parfois, une exécution de mauvaise qualité peut être mise en cause, ou des bogues logiciels involontaires. D’autres fois, c’est plus une zone grise – le résultat compliqué des interactions entre le code, l’économie de la blockchain et la cupidité humaine. Cela est connu en théorie depuis le début de la technologie. Maintenant que tant de blockchains existent dans le monde, nous apprenons ce que cela signifie réellement – souvent à la dure

https://www.technologyreview.com/2019/02/19/239592/once-hailed-as-unhackable-blockchains-are-now-getting-hacked/

https://z.cash/blog/zcash-counterfeiting-vulnerability-successfully-remediated

https://chainsecurity.com/

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