Découvrons les attaques sur le Bitcoin

Introduction des attaques sur le Bitcoin:

Nous avons vu dans l’article précédent le principe de fonctionnement de Bitcoin. Aujourd’hui, nous allons découvrir les attaques connues affectant le système Bitcoin.

Dans ce domaine, des attaquants qui invalideraient les transactions, ou encore s’octroieraient des unités de crypto-monnaies par une quelconque manière, pourraient faire chuter la valeur de la monnaie. En effet, les utilisateurs ne voudront plus acheter les unités de la monnaie en raison du manque de confiance et, par sa nature décentralisée et non régulée, la monnaie chutera. De plus, si l’attaque crée une nouvelle quantité de monnaie, cet acte entraînera une dévaluation de celle-ci par rapport aux autres.

Toutefois, le système Bitcoin est résiliant aux attaques. Si une fraude est détectée, la transaction et les actions mises en place seront annulées.

Vulnérabilités :

Double dépense « double-spending »

La double dépense consiste à dépenser plus d’une fois le même jeton numérique. Cela créera une certaine quantité de monnaie en utilisant plusieurs fois la valeur du jeton.

Pour le Bitcoin, le problème apparaîtrait lorsque deux blocs, possédant des transactions de double dépense, sont produits au même moment. Ces deux transactions coexisteront dans deux instances concurrentes de la blockchain et les nœuds du réseau accepteront la plus longue chaîne de blocs, comme étant la vraie chaîne Bitcoin.

Figure 1 : Attaque double dépense – source : https://coinsutra.com/bitcoin-double-spending/

Si un attaquant crée deux transactions, l’une pour payer un destinataire et l’autre pour récupérer la somme dépensée, il devra faire en sorte que sa blockchain soit la plus longue afin qu’elle soit jugée valide. Une fois la transaction légitime confirmée, l’attaquant va miner une blockchain parallèle à partir du bloc précédent, cette blockchain contenant donc la transaction frauduleuse. La transaction légitime doit être effectuée pour que l’attaque soit rentable. Par la suite, l’attaquant révèle sa blockchain parallèle au réseau. Les mineurs se concentreront donc sur la plus longue blockchain puisqu’elle possède la plus forte probabilité d’être validée. Par conséquent, les transactions de la blockchain légitime seront remises dans le mempool[1] . Ainsi, la transaction légitime sera invalidée puisqu’elle possède les mêmes fonds que la transaction frauduleuse.

Attaque des 51%

Afin d’assurer des gains de bitcoin, les mineurs se regroupent pour former des pools. Cette coopérative leur permet de posséder une plus grande puissance de calcul et ainsi maximiser les gains.

Le problème de l’attaque des 51% apparaît lorsqu’un pool devient trop important par rapport aux autres. Lorsqu’un mineur introduit un bloc comprenant une erreur ou étant corrompu, il ne sera pas intégré dû à la vérification des autres mineurs qui auront la majorité en termes de puissance de calcul.

Or, si plus de la moitié des mineurs valident ce bloc corrompu, celui-ci sera validé. Si un pool possède plus de 50% des capacités de minage d’un bloc, elle pourra valider et enregistrer un bloc corrompu.

De plus, le problème de double dépense vu précédemment devient alors possible étant donné que le pool pourra miner sa blockchain plus vite que les autres mineurs sur la blockchain principale.

En pratique, un pool officiel n’aurait aucun intérêt à attaquer le système Bitcoin compte tenu du fait que ces coopératives ont beaucoup dépensé dans ce projet avec un business dépendant de ce système. De plus, la plus grande coopérative comporte à ce jour environ 26% des capacités de minage. Nous sommes encore loin des 51%.

Figure 2 : Réparation des coopératives – Source : Cryptoast.fr

Une organisation ou un gouvernement serait plus susceptible de procéder à cette attaque si ce système de monnaie leur devient trop dérangeant.

Race attaque

Cette attaque est basée sur le principe de l’attaque de la double-dépense. L’attaquant envoie la même pièce en succession rapide à deux adresses différentes. Le résultat final, comme vu précédemment, est qu’une seule d’entre elles sera incluse dans la blockchain.

Si le destinataire n’attend pas de confirmation de paiement, il y a 50% de chances qu’il ne reçoive pas l’argent. En effet, les commerçants qui acceptent un paiement immédiatement en voyant « 0 / non confirmé » s’exposent à une annulation de la transaction. L’attaquant envoie une transaction payant le commerçant directement à ce dernier et envoie une transaction en concurrence dépensant la pièce pour lui-même au reste du réseau. Il est plus probable que la deuxième transaction en conflit soit minée dans un bloc et acceptée par les nœuds bitcoin comme authentique.

Attaque Sybil

L’attaque Sybil est une attaque qui touche le plus souvent les réseaux de type peer-to-peer comme c’est le cas dans les transactions de Bitcoin. Le but de cette attaque est de perturber le réseau de bitcoin. Pour procéder à cette attaque, un mineur crée plusieurs nœuds virtuels dans le réseau et ces nœuds pourraient perturber le fonctionnement normal de la blockchain en injectant de fausses informations dans le réseau, comme créer un grand nombre de fausses transactions ou voter positivement pour une transaction frauduleuse.

La vulnérabilité à l’attaque Sybil d’un système dépend de la facilité de génération de nouvelles identités, de la facilité du système à accepter l’entrée d’entités n’ayant pas de lien de confiance avec des identités de confiance et si le système de réputation traite toutes les entités de manière identique.

Bitcoin, grâce à son algorithme Proof-of-Work, oblige les nœuds à dépenser des ressources sous forme d’énergie pour recevoir des pièces, ce qui rend la grande majorité des nœuds très coûteux rendant cette attaque impossible en pratique.

Trojan Horse

Les attaques menaçant le Bitcoin ne se limitent pas aux failles présentées ci-dessus. En effet, il s’agit des programmes malveillants qui profitent d’une faiblesse système extérieure à celui de Bitcoin telle que le détournement du presse-papier.

InnfiRAT

Ce malware a été identifié comme un RAT, un cheval de Troie d’accès à distance. Il est conçu pour voler les données des portefeuilles cryptographiques. Pour se faire, InnfiRAT utilise sa fonctionnalité de capture d’écran afin d’extraire les données pour les transmettre ensuite à son centre de contrôle.

CryptoShuffler, clipboard hijacking

Ce malware réside discrètement dans la mémoire de l’ordinateur et agit à partir du presse-papier. Il contrôle ce dernier et détecte l’adresse d’un portefeuille lorsque l’utilisateur l’intègre au presse-papier pour le coller ailleurs. Par la suite, il va remplacer l’adresse présente dans le presse-papier par une autre, celle de l’attaquant par exemple.

Si l’utilisateur ne vérifie pas et valide l’adresse collée, la transaction aura bien lieu si l’adresse remplacée est valide, mais le bénéficiaire de la somme ne sera plus le même.

Vulnérabilité quantique

L’informatique quantique, certains le considèrent comme « une menace pour la cryptographie ». En effet, bien que ce mécanisme futur soit capable de résoudre plus rapidement des problèmes cryptographiques complexes, la puissance de calcul des ordinateurs quantiques peut mettre en danger la confidentialité de nos données, notamment ceux protégées par des algorithmes à clé publique reposant sur la factorisation tels que RSA.

L’algorithme de Shor, un algorithme quantique factorisant les entiers naturels, pourra casser nos clés de chiffrement actuelles dès lors que l’informatique quantique atteindra un nombre de qubits utiles suffisants. Or, le système des transactions Bitcoin intègre le mode p2pk « Pay To Pubkey ». Ce mode de transaction s’appuie directement sur la clé publique.

Étant donné que les ordinateurs quantiques seront à même de factoriser nos clés publiques, ce mode, largement utilisé dans le système Bitcoin, s’en retrouvera vulnérable.

Le système possède tout de même du temps pour changer ce mode de transaction avant que ces ordinateurs ne soient accessibles.

Comment y remédier ?

Les principales remédiations visent à améliorer le fonctionnement des crypto-monnaies. Certaines crypto-monnaies utilisent des implémentations afin de se protéger contre des failles telles que l’attaque de la double dépense ou encore d’éviter la dépense d’énergie.

Minage plus décentralisé : la première solution pour empêcher les attaques telles que l’attaque 51% est de rendre le minage plus décentralisé. Le but étant d’augmenter le nombre de coopératives afin de disperser la puissance de calcul des mineurs des crypto-monnaies sur plusieurs coopératives.

Le passage à la preuve d’enjeu : la preuve d’enjeu (proof-of-stake) est un algorithme de consensus pour les blockchains qui présente une alternative de l’algorithme de preuve de travail (proof-of-work) et qui demande à un utilisateur de prouver la possession de ses crypto-monnaies (« sa participation »). Le principal avantage de ce mécanisme est qu’il est moins couteux en termes d’énergie par rapport à la preuve de travail. Peercoin est la première crypto-monnaie utilisant cet algorithme. Ethereum 2.0 représente une mise à jour majeure du protocole Ethereum et vise à basculer de la preuve de travail (POW) vers la preuve d’enjeu (POS). Quant au Bitcoin, le passage à la preuve d’enjeu (POS) n’est pas encore planifié, mais prévu une fois qu’Ethereum confirmera la validation de l’algorithme avec succès, d’après Nikolas Nikolajsen, le fondateur du courtier crypto-monnaie[2] « Bitcoin Suisse ».

Utilisation de protocole de consensus dédiés aux identités et aux accès aux ressources réseau : un mécanisme de consensus mettant en place un coût supplémentaire pour les identités usurpées ou encore la création des nœuds virtuels sur le réseau comme l’attaque Sybil. Cela n’empêchera pas ces attaques, mais rendra leur coût plus élevé ce qui limitera ce type d’attaques.

Conclusion des attaques sur le Bitcoin

Le bitcoin depuis son début est basé sur des règles bien sécurisées et difficiles à contourner, notamment par le biais des mécanismes cryptographiques mis en place. La majorité des attaques de Bitcoin présentées ci-dessus sont des attaques plutôt « stratégiques » que techniques. On ne parle pas de renforcement d’un algorithme de signature ou augmentation de la taille d’une paire de clés, les remédiations sont plutôt orientées « logique » telle que la décentralisation du minage ou encore des pénalités telles que l’augmentation du coût des actions, suite à une attaque par double dépense par exemple.

[1] Le mempool (ou memory pool) représente la zone d’attente des transactions d’une blockchain.

[2] Intermédiaire numérique qui permet l’achat, la vente ou l’échange des devises numériques.

Je partage

Derniers articles

Illustration de sécurité WordPress avec logo central et éléments numériques de sécurité

Renforcer la sécurité WordPress, du développement des plugins à la configuration serveur

Il y a peu, dans le cadre de recherches sur des plugins WordPress, notre pentester Vincent Fourcade a découvert une injection de code, côté client, dans un module du célèbre CMS. Celle-ci fut vérifiée et validée par les équipes de WPScan. Aujourd’hui, une CVE lui a été attribuée. L’occasion de revenir aujourd’hui sur la sécurité, au sens large, dans le CMS WordPress, que ce soit au niveau de la couche applicative, de la configuration du serveur ou du bureau. C’est parti !

Lire l'article

Analyse des Métriques XSS : comprendre l’Impact des injections de code côté client

Lors des tests d’intrusion, l’injection de code côté client est généralement plus aisée à découvrir qu’une injection côté serveur. Le nombre de paramètres dynamiques transitant du back au front, la difficulté d’échapper correctement à l’entrée et à la sortie et la multitude d’encodage liés à l’affichage peuvent être des vrais casse-têtes pour qui souhaite faire la chasse à la XSS. Le JavaScript malveillant semble ainsi avoir de beaux jours devant lui. Cependant, il n’est pas rare qu’à l’issu de l’audit, la criticité d’une telle injection découle directement de la configuration des cookies présents sur l’application. En effet, l’absence de l’attribut HttpOnly majore irrémédiablement les risques liés à ce type d’attaque. Néanmoins, cela signifie-t-il que la présence de cet attribut doive absolument amenuiser la criticité d’une injection ?

Lire l'article