Table des matières

  • Comment fonctionne une attaque d'éclipse

  • Les conséquences d'une attaque d'éclipse

    • "Double dépense" sans confirmation

    • "Double dépense" qui nécessite N fois de confirmation

    • Réduire la concurrence entre les mineurs

  • Ralentir l'impact de l'attaque de l'éclipse solaire

  • Résumer


Une attaque Eclipse est une attaque de base relativement simple par laquelle un attaquant peut interférer avec les nœuds d'un réseau. Comme son nom l'indique, cette attaque peut empêcher le nœud attaqué du réseau peer-to-peer d'obtenir des informations efficaces, provoquant ainsi une interruption du réseau ou préparant des attaques plus complexes.

En apparence, l’Attaque Eclipse est similaire à l’Attaque Sybil. Bien qu’ils partagent certaines similitudes (un attaquant perturbe le réseau en attaquant les nœuds), leurs objectifs d’attaque ultimes sont différents. Les attaques Eclipse ciblent un seul nœud (pour les raisons expliquées ci-dessous), tandis que les attaques Sybil ciblent l'ensemble du réseau et visent à altérer la réputation des protocoles réseau.

L'article publié en 2015 (sur les attaques d'éclipse dans le réseau pair à pair de Bitcoin) discute en détail de ce concept, où des chercheurs de l'Université de Boston et de l'Université hébraïque ont rapporté les résultats de leurs expériences d'attaques d'éclipse et les mesures de prévention pour y faire face.


Fonctionnement des attaques d'éclipse

Les mineurs de Bitcoin nécessitent des équipements spécialisés pour générer des blocs nouvellement vérifiés, mais les nœuds non miniers (ou complets) n'ont besoin que d'une très faible puissance de calcul pour fonctionner. De cette manière, n'importe qui peut faire fonctionner un nœud sur des équipements peu coûteux, ce qui contribue également à la décentralisation de Bitcoin. Les programmes logiciels maintiennent une base de données de traitement des transactions synchronisée avec les pairs pour rester en phase avec le réseau.

Le facteur limitant pour la connexion de nombreux nœuds est la bande passante. Ainsi, bien qu'il existe de nombreux appareils capables d'exécuter ce programme, le réseau Bitcoin a mis en place une limite sur le nombre de connexions (un maximum de 125), ce qui empêche les appareils ordinaires de se connecter directement à d'autres appareils.

Dans une attaque d'éclipse, l'attaquant s'assure que toutes les connexions cibles sont établies sur des nœuds contrôlés par l'attaquant. L'attaquant envoie d'abord un flood à l'adresse cible depuis sa propre adresse IP, et la victime peut se connecter à l'adresse IP de l'attaquant lors du redémarrage du programme. Un redémarrage forcé peut être effectué (c'est-à-dire en DDoS l'objectif), ou il peut simplement attendre que le programme redémarre automatiquement.

Si cela se produit, la victime sans méfiance obéira aux caprices des nœuds malveillants, l'attaquant leur fournissant de fausses données, les empêchant de récupérer des données du réseau réel.


Conséquences des attaques d'éclipse

Si un attaquant peut consommer les ressources des nœuds du réseau pour les isoler, alors il a une motivation pour mener de telles attaques. Si un nœud est isolé, l'attaquant peut effectuer plusieurs attaques successives.


Double dépense ne nécessitant pas de confirmations

Si un nœud indépendant accepte une transaction non confirmée, un risque de double dépense se produit. Si la transaction a été diffusée avant d'entrer dans le bloc (soumise à la blockchain), l'expéditeur peut facilement effectuer une nouvelle transaction ailleurs, dépensant le même montant que dans la transaction précédente. Si la nouvelle transaction a des frais plus élevés, les mineurs traiteront cette transaction en priorité, considérant qu'elle est la première, rendant ainsi la première transaction invalide.

Certains commerçants et particuliers acceptent ces transactions à 0 confirmation. Supposons qu'un commerçant Bob, qui vend des voitures haut de gamme, ne sait pas qu'Alice a attaqué son nœud, et en voyant la commande de sa voiture de luxe, il n'a aucun soupçon. Alice crée la transaction, et Bob la diffuse immédiatement sur le réseau. En voyant que le message de paiement est sur le point d'être confirmé, il est très satisfait et remet les clés de la voiture à Alice, qui accélère et s'en va.

En réalité, la transaction n'a pas été diffusée sur le réseau, Bob a simplement transmis la transaction au nœud malveillant d'Alice, et le nœud malveillant contrôlé par Alice ne transmettra pas la transaction aux nœuds réels. Par conséquent, cette transaction sera considérée comme invalide. À ce moment-là, Alice a de nouveau payé le même montant sur le réseau (réel), que ce soit pour elle-même ou pour d'autres. Même si la transaction initiale entre Alice et Bob est finalement vue sur le réseau réel, elle ne peut pas être vérifiée car les fonds sur le compte d'Alice ont déjà été utilisés.


Double dépense nécessitant N confirmations

La double dépense nécessitant N confirmations est similaire à la double dépense ne nécessitant pas de confirmations, sauf qu'elle implique plus de préparation. De nombreux commerçants souhaitent attendre un certain nombre de confirmations avant que le paiement soit marqué comme valide. Pour résoudre ce problème, l'attaquant doit réaliser une attaque d'éclipse sur les mineurs et les nœuds commerçants. Si l'attaquant établit des commandes avec le commerçant, il diffusera la transaction aux mineurs (sous attaque d'éclipse). Le commerçant peut voir la transaction confirmée dans le réseau blockchain, mais comme le réseau des mineurs et celui des commerçants sont isolés, cette blockchain n'est pas visible par la majorité des nœuds réels.

L'attaquant envoie ces informations sur le réseau blockchain frauduleux aux commerçants, qui effectuent la livraison des biens après avoir vu la transaction confirmée. Lorsque ces nœuds soumis à l'attaque d'éclipse rejoignent à nouveau le réseau réel, le réseau blockchain réel considérera ces nœuds comme invalides et les isolera (ce qui est similaire à une attaque à 51 %).


Affaiblir la concurrence entre les mineurs

Les nœuds soumis à l'attaque d'éclipse continueront à fonctionner sans être affectés par l'isolement du réseau. Les mineurs continueront à valider les blocs conformément aux règles établies par le protocole, mais les blocs ajoutés seront abandonnés lors du processus de validation avec les nœuds du réseau réel.

Théoriquement, une attaque d'éclipse à grande échelle sur la plupart des mineurs pourrait faciliter une attaque à 51 %. Pour l'instant, même pour l'attaquant le plus ressourceux, le coût de la prise de contrôle de la majorité de la puissance de calcul de Bitcoin (environ 80TH/s) est trop élevé, l'attaquant doit disposer d'au moins une puissance de calcul supérieure à 40TH/s pour tenter l'attaque.

Supposons que cette puissance de calcul soit répartie entre 10 participants (chaque participant ayant environ 8TH/s), l'attaquant peut réduire considérablement les exigences pour une attaque à 51 % en isolant ces participants du réseau. Si 5 de ces nœuds subissent une attaque d'éclipse, l'attaquant peut réduire la puissance de calcul à 40TH/s pour chercher le prochain bloc, et l'attaquant n'a maintenant besoin que d'augmenter sa puissance de calcul à 20TH/s pour contrôler les nœuds.

En menant une attaque d'éclipse sur les cibles, d'autres activités destructrices peuvent être réalisées, y compris manipuler les nœuds pour mener des activités de minage illégales ou tirer parti de la concurrence de puissance de calcul entre les mineurs pour obtenir le prochain bloc.


Atténuer l'impact des attaques d'éclipse

Si un attaquant a suffisamment d'adresses IP, il peut mener une attaque d'éclipse sur n'importe quel nœud. La méthode la plus directe pour empêcher cela est d'empêcher l'accès illégal aux nœuds et d'établir uniquement des connexions sortantes vers des nœuds spécifiques (par exemple, les adresses IP qui ont été mises sur liste blanche par d'autres nœuds dans le réseau pair à pair). Cependant, comme le souligne le document de recherche, ce n'est pas une solution pouvant être mise en œuvre à grande échelle ; si tous les participants prennent ces mesures, les nouveaux nœuds ne pourront pas rejoindre le réseau.

L'auteur a proposé plusieurs ajustements au programme Bitcoin, dont certains ont été intégrés au programme Bitcoin après la publication du livre blanc. En effectuant de petites modifications du code, comme en choisissant aléatoirement de nouvelles connexions et en augmentant l'espace de stockage des adresses, ces mesures augmentent continuellement le coût des attaques d'éclipse.


Résumé

Les attaques d'éclipse se produisent sur des réseaux pair à pair. En tant que méthode d'attaque pouvant être déployée indépendamment, elles sont dérangeantes. Le véritable objectif des attaques d'éclipse est en réalité de mener d'autres attaques plus impactantes ou d'offrir à l'attaquant un avantage en matière de minage.

En général, les attaques d'éclipse n'ont pas encore causé d'impact significatif, bien que des mesures de prévention aient été mises en place dans le réseau blockchain, la menace demeure. Les attaques d'éclipse, comme la plupart des attaques auxquelles Bitcoin et d'autres cryptomonnaies sont confrontés, la meilleure défense est de rendre l'attaquant malveillant non rentable.