Qu'est-ce qu'une Attaque Eclipse ?
HomeArticles

Qu'est-ce qu'une Attaque Eclipse ?

Avancé
2mo ago
6m

Contenu de cet article


Une attaque d'éclipse est une attaque relativement simple qu'un acteur malveillant peut déployer pour interférer avec des nœuds sur un réseau. Comme le nom peut le suggérer, l’attaque vise à masquer la vue qu'a un participant du réseau pair à pair, afin de causer des perturbations générales, ou de se préparer à des attaques plus sophistiquées.

Les attaques Eclipse peuvent paraître similaires, en surface, aux attaques Sybil. Bien qu'elles partagent certaines similitudes – l'acteur malveillant inondera le réseau de faux pairs – leur objectif final est différent. Une attaque éclipse vise un seul nœud (pour des raisons expliquées dans une section ultérieure), alors qu'une attaque Sybil est une attaque réseau conçue pour corrompre le système de réputation du protocole.

Le concept est longuement discuté dans l'article paru en 2015 nommé  Eclipse Attacks on Bitcoin’s Peer-to-Peer Network, dans lequel des chercheurs de l'Université de Boston et de l'Hebrew University rapportent les conclusions de leurs expériences en matière d'attaques éclipse, ainsi que des contre-mesures possibles pour les combattre.


Comment fonctionne une attaque éclipse

Les mineurs de Bitcoin ont besoin d'équipements spécialisés pour générer de nouveaux blocs, mais les nœuds non-mineurs (ou complets) sont facilement exécutables avec une puissance de calcul minimale. Cela aide à la décentralisation du réseau Bitcoin, car tout le monde peut faire tourner un nœud même sur un appareil peu performant. Le logiciel maintient une base de données de transactions qu'il synchronise avec ses pairs immédiats, de manière à rester en phase avec le réseau.

La bande passante est un facteur limitant pour de nombreux nœuds. Bien qu'il y ait une quantité énorme d'appareils qui exécutent le logiciel, un périphérique moyen est incapable de se connecter directement à beaucoup d'entre eux en raison des limitations définies dans le logiciel Bitcoin (qui ne permet qu'un maximum de 125 connexions).

Lors d'une attaque d'éclipse, l'acteur malveillant s'assurera que toutes les connexions de la cible soient effectuées sur des nœuds contrôlés par l'attaquant. L'entité inondera d'abord la cible de ses propres adresses IP, auxquelles la victime se connectera probablement au redémarrage de son logiciel. Un redémarrage peut être forcé (avec une attaque DDoS sur la cible), ou alors l'attaquant peut simplement attendre que cela se produise. 

Une fois l'attaque lancée, la victime sans méfiance est à la merci des nœuds malveillants – sans aucune vue disponible sur le réseau plus large, ainsi il peut être abreuvé de données incorrectes par l'attaquant.


Les conséquences d'une attaque éclipse

Si un attaquant dépense des ressources pour aliéner un pair du réseau, il a probablement une raison de le faire. Il y a une poignée d'attaques successives qui peuvent être lancées plus facilement une fois qu'un nœud a été étouffé.


Double dépense sur des transactions 0-confirmations

Si une personne accepte une transaction sans confirmations, elle est exposée au risque d'une double dépense. La transaction peut avoir été diffusée, mais jusqu'à ce qu'elle ait été incluse dans un bloc (et donc engagée dans la blockchain), l'expéditeur peut facilement créer une nouvelle transaction qui dépense les mêmes fonds ailleurs. Si la nouvelle transaction a des frais plus élevés, un mineur l'inclura probablement avant l'original, invalidant la précédente. 

Certaines entreprises et certaines personnes acceptent ces transactions 0-confirmations, comme par exemple un marchand, Bob, qui vend des véhicules haut de gamme. Il ignore qu'Alice a éclipsé son nœud et il ne soupçonne rien alors qu’elle commande sa voiture de luxe. Elle crée une transaction, que Bob diffuse ensuite sur le réseau. Satisfait que le paiement soit en cours, il remet les clés de la voiture et Alice s'échappe.

Bien sûr, la transaction n'a pas été diffusée sur le réseau – Bob n'a fait que la relayer aux nœuds malveillants d'Alice, qui ne la transmettront pas à des noeuds honnêtes. Alors que cette transaction est bloquée en limbo, Alice dépense ces mêmes fonds sur le réseau (réel), que ce soit en direction d'une autre partie ou à une adresse qu'elle possède. Même si la transaction initiale vers Bob est finalement ouverte, elle sera rejetée car les coins ont déjà été dépensés.


Double dépense sur des transactions N-confirmations

Là double dépense sur des transactions à N-confirmations est similaire à celle utilisée pour les transactions 0-confirmations, mais nécessite plus de préparation. Beaucoup d'entreprises préfèrent attendre un certain nombre de confirmations avant de marquer un paiement comme valide. Pour contourner cette situation, l'attaquant doit éclipser en même temps les mineurs et le marchand. Une fois que l'attaquant a établi l'ordre auprès du marchand, il transmet une transaction aux mineurs (éclipsés). La transaction est confirmée et incluse dans la blockchain – mais cette blockchain n'est pas la chaîne que la majorité du réseau partage, puisque le mineur est momentanément coupé du réseau.

À partir de là, l'attaquant relaie cette version de la blockchain au marchand, qui libère les marchandises selon la croyance que la transaction a été confirmée. Une fois que les nœuds éclipsés rejoignent le réseau actuel, la blockchain sur laquelle ils croient par erreur être valides se trouve en réalité devenue orpheline de celle sur laquelle le reste du réseau a travaillé (cela comporte des similitudes avec une attaque à 51%).


Affaiblissement des mineurs concurrents

Un nœud éclipsé continuera à fonctionner, aveugle quant au fait d'avoir été séparé du réseau. Les mineurs continueront à miner des blocs dans le cadre des règles établies par le protocole, mais les blocs ajoutés seront supprimés lorsque les noeuds se synchroniseront de nouveau avec des pairs honnêtes. 

Théoriquement, une attaque à grande échelle contre les plus grands mineurs pourrait être utilisée pour faciliter une attaque à 51 %. Dans l'état actuel des choses, le coût pour prendre en charge la majorité de la puissance de hachage de Bitcoin est tout simplement bien trop élevé même pour le plus riche des attaquants possible – à ~80TH/s, l'entité aurait besoin de plus de 40TH/s pour tenter une telle manœuvre. 

Dans un scénario hypothétique où ce pouvoir de hachage est réparti entre 10 parties (chacune possède 8TH/s), l'attaquant peut réduire considérablement les exigences d'une attaque à 51 % en coupant ces parties du réseau. Si cinq sont éclipsées, 40TH/s sont retirés de la course pour trouver le bloc suivant, et l'attaquant a seulement besoin d'acquérir un peu plus de 20TH/s pour prendre le contrôle du réseau.

D'autres sabotage pouvant être réalisés en éclipsant des cibles incluent la manipulation de nœuds pour du minage égoïste, ou l'ingénierie de courses entre mineurs pour trouver le bloc suivant.


Atténuation

Avec suffisamment d'adresses IP, un attaquant peut éclipser n'importe quel nœud. La méthode la plus simple pour éviter que cela ne se produise est de bloquer les connexions entrantes, et de ne faire que des connexions sortantes vers des nœuds spécifiques (comme ceux qui ont été mis en liste blanche par d'autres pairs). Toutefois, comme le souligne le document de recherche, il ne s’agit pas d’une approche qui fonctionne à grande échelle – si tous les participants adoptent ces mesures. les nouveaux nœuds ne seront pas en mesure de rejoindre le réseau.

Les auteurs proposent une poignée de modifications pour le logiciel Bitcoin, dont certains ont été intégrées depuis la publication du papier. Ces dernières rendent les attaques à éclipses plus coûteuses par le biais de modifications mineures du code, telles que la sélection aléatoire de nouvelles connexions et une plus grande capacité de stockage des adresses.


En conclusion

Les attaques Eclipse se réalisent au niveau du réseau de pair-à-pair. Déployées comme attaques autonomes, elles peuvent se révéler quelque peu gênantes. Leur véritable efficacité est de potentialiser d'autres attaques qui ont un impact financier ou de fournir à l'attaquant un avantage sur les autres mineurs.

Au final, il ne s'est encore jamais produit d'attaque éclipse ayant eu des conséquences sérieuses, mais la menace existe toujours malgré les contre-mesures intégrées dans le réseau. Comme pour la plupart des vecteurs d'attaque qui existent pour Bitcoin et d'autres crypto-monnaies, la défense la plus forte sera celle qui rend financièrement irréalisable les tentatives d'attaque de la part de parties malveillantes.