Autrefois saluées comme impossibles à pirater, les blockchains sont désormais piratées

Un bloc ouvert révélant des pièces numériques à l

Un bloc ouvert révélant des pièces numériques à l'intérieur Mme Tech





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 crypto-monnaies que les gens peuvent acheter et vendre en utilisant 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'agresseur a été aperçu en train de tirer cela à hauteur de 1,1 million de dollars. Coinbase affirme qu'aucune devise n'a été volée sur aucun de ses comptes. Mais un deuxième échange populaire, Gate.io, a admis il n'a pas été aussi chanceux, perdant environ 200 000 $ au profit de l'attaquant (qui, étrangement, en a rendu la moitié jours plus tard).

Il y a tout juste un an, ce scénario cauchemardesque était essentiellement théorique. Mais la soi-disant attaque à 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 des échanges, et c'est exactement ce qui a été révélé publiquement. Ce ne sont pas seulement des attaquants solitaires opportunistes non plus. Les organisations sophistiquées de la cybercriminalité le font maintenant aussi : la société d'analyse Chainalysis a récemment déclaré que seuls deux groupes, apparemment toujours actifs, pourraient avoir volé 1 milliard de dollars combinés aux échanges.

Nous ne devrions pas être surpris. Les chaînes de blocs 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 marketing et les gros titres qui qualifiaient la technologie d'impossible à pirater étaient tout à fait faux.

Cela a été compris, du moins en théorie, depuis que Bitcoin est apparu il y a une décennie. Mais au cours de la dernière anné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, précisons quelques termes.

À chaîne de blocs est une base de données cryptographique maintenue par un réseau d'ordinateurs, dont chacun stocke une copie de la version la plus récente. Une chaîne de blocs protocole est un ensemble de règles qui dictent la façon dont les ordinateurs du réseau, appelés nœuds , doit 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 configuré correctement, ce système peut rendre extrêmement difficile et coûteux l'ajout de fausses transactions, mais il est relativement facile de vérifier celles qui sont valides.



C'est ce qui a rendu la technologie si attrayante pour de nombreuses industries, à commencer par la finance. Les services qui seront bientôt lancés par des institutions de renom telles que Fidelity Investments et Intercontinental Exchange, le propriétaire de la Bourse de New York, commenceront à intégrer les chaînes de blocs dans le système financier existant. Même les banques centrales envisagent désormais 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é un faille cryptographique subtile accidentellement intégré au protocole. Un attaquant aurait pu l'exploiter pour faire de la contrefaçon illimitée de Zcash. 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 crypto-monnaie par vous-même ou exécuter un nœud, vous devez exécuter un logiciel client , qui peut également contenir des vulnérabilités. En septembre, les développeurs du client principal de Bitcoin, appelé Bitcoin Core, ont dû se démener pour corriger un bogue ( aussi en cachette ) qui aurait pu permettre aux attaquants de frapper plus de bitcoins que le système n'est censé autoriser.



Pourtant, la plupart des hacks récents qui ont fait la une des journaux n'étaient pas des attaques contre les chaînes de blocs elles-mêmes, mais contre des échanges , les sites Web où les gens peuvent acheter, échanger et détenir des crypto-monnaies. Et bon nombre de ces cambriolages 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 de 51% est inhérente à la plupart des crypto-monnaies. C'est parce que la plupart sont basés sur des blockchains qui utilisent preuve de travail comme protocole de vérification des transactions. Dans ce processus, également connu sous le nom de exploitation minière , 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 le contrôle d'une manière ou d'une autre 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 fourchette . L'attaquant, qui contrôle la majeure partie de la puissance de minage, peut faire du fork 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. D'après le site Crypto51 , louer suffisamment de puissance minière pour attaquer Bitcoin coûterait actuellement plus de 260 000 $ par heure. Mais cela devient rapidement beaucoup moins cher à mesure que vous parcourez la liste des plus de 1 500 crypto-monnaies disponibles. La chute des prix des pièces le rend encore moins cher, car elle 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 de 51 % sur une série de pièces relativement petites et peu échangées, notamment Verge, Monacoin et Bitcoin Gold, volant environ 20 millions de dollars au total. À l'automne, les pirates ont volé environ 100 000 $ en utilisant une série d'attaques sur 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 des 20 premières devises.

David Vorick, cofondateur de la plateforme de stockage de fichiers basée sur la blockchain Sia, prédit que 51 % des attaques continueront d'augmenter en fréquence et en gravité, et ces échanges subiront le plus gros des dommages causés par les doubles dépenses. L'un des moteurs de cette tendance, dit-il, a été la montée en puissance des soi-disant marchés 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 d'Ethereum Classic.

Une toute nouvelle boîte de vers de bugs

Outre les attaques à 51 %, il existe un tout nouveau niveau de faiblesses de la sécurité de la blockchain dont les chercheurs commencent à peine à explorer les implications : 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.

À 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 contrats juridiques réels ou de transactions financières complexes. 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 en utilisant le 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 sur des 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 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, c'est un peu comme lancer une fusée, explique Petar Tsankov, chercheur à l'ETH Zurich et cofondateur d'une startup de sécurité des contrats intelligents appelée ChaîneSécurité . Le logiciel ne peut pas se tromper.

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 interrupteurs 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 que l'attaque ne se produise, de créer un fork vers une nouvelle blockchain et de faire en sorte que tout le monde sur le réseau accepte d'utiliser celui-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 connaissons maintenant sous le nom d'Ethereum. Un petit groupe de récalcitrants est resté fidèle à la chaîne d'origine, qui est devenue Ethereum Classic.

Le mois dernier, l'équipe de Tsankov à ChainSecurity a sauvé Ethereum d'une éventuelle répétition de la catastrophe DAO. Juste un jour avant une mise à jour logicielle majeure prévue, la société a déclaré aux principaux développeurs d'Ethereum que cela 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 précieux contrats intelligents Ethereum étaient déjà vulnérables à ce soi-disant bug 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 bogue de 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 détenant des milliers ou des millions de dollars, ont attiré des pirates 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 a exploité une faille contractuelle dans un jeu de hasard populaire pour voler 4 millions de dollars.

Les pirates peuvent-ils être vaincus ?

AnChain.ai est l'une des nombreuses startups récemment créées pour lutter contre 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 de contrat intelligent à 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 prévu. Ces outils d'audit, qui ont commencé à émerger au cours de la dernière année environ, ont permis aux créateurs de contrats intelligents d'éliminer de nombreux bogues qui n'étaient que des fruits à portée de main, explique 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 configurer des primes de bogue basées sur la blockchain. Cela encouragerait les gens à signaler les failles en échange d'une récompense en crypto-monnaie, dit Philippe 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 pas plus loin. Une blockchain, après tout, est un système économique complexe qui dépend du comportement imprévisible des humains, et les gens chercheront toujours de nouvelles façons de le jouer. Daian et ses collègues ont montré comment les attaquants ont déjà compris comment tirer profit des jeux de contrats intelligents Ethereum populaires , par exemple.

En bref, alors que la technologie blockchain a longtemps été vantée pour sa sécurité, sous certaines conditions, elle peut être assez vulnérable. Parfois, une mauvaise exécution peut être mise en cause, ou des bogues logiciels involontaires. D'autres fois, c'est plutôt une zone grise - le résultat compliqué d'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 qu'il existe tant de blockchains dans le monde, nous apprenons ce que cela signifie réellement, souvent à la dure.

cacher