Une attaque par relecture, parfois également appelée attaque par réexécution, est une cyberattaque dans laquelle l'entité malveillante intercepte puis répète une transmission de données valide transitant par un réseau. En raison de la validité des données d'origine (qui proviennent généralement d'un utilisateur autorisé), les protocoles de sécurité du réseau traitent l'attaque comme s'il s'agissait d'une transmission de données normale. Étant donné que les messages d'origine sont interceptés et retransmis mot pour mot, les pirates informatiques qui utilisent des attaques par relecture n'ont pas nécessairement besoin de les décrypter.
Que peuvent faire les pirates informatiques avec une attaque par relecture ?
Les attaques par rejeu peuvent être utilisées pour accéder à des informations stockées sur un réseau protégé en leur transmettant des informations d'identification apparemment valides. Elles peuvent également être utilisées pour tromper les institutions financières en les incitant à dupliquer des transactions, ce qui permet aux attaquants de prélever directement de l'argent sur les comptes de leurs victimes. Dans certains cas, les pirates combinent des parties de différents messages cryptés et transmettent le texte chiffré obtenu au réseau dans ce que l'on appelle une attaque par copier-coller. La réaction du réseau à ce type d'attaque fournit souvent au pirate des informations précieuses qui peuvent être utilisées pour exploiter davantage le système.
Malgré les dangers évidents qui y sont associés, les attaques par relecture sont limitées. Les pirates ne peuvent pas modifier les données envoyées sans que le réseau ne les rejette, ce qui limite l'efficacité de l'attaque à la répétition d'actions passées. Ces attaques sont également relativement faciles à contrer. Une défense aussi basique que l'ajout d'un horodatage à la transmission de données peut protéger contre de simples tentatives de relecture. Les serveurs peuvent également mettre en cache les messages répétés et les couper après un certain nombre de répétitions afin de limiter le nombre de tentatives qu'un attaquant peut effectuer en rejouant les messages en succession rapide.
Pourquoi les attaques par relecture sont importantes dans le monde des crypto-monnaies
Bien qu’elles soient loin d’être exclusives à ce domaine, ces attaques sont particulièrement pertinentes pour l’environnement des transactions de cryptomonnaie et des registres de blockchain. La raison en est que les registres de blockchain subissent parfois des changements de protocole ou des mises à niveau connus sous le nom de hard forks. Lorsqu’un hard fork a lieu, le registre existant se divise en deux, l’un exécutant la version héritée du logiciel et l’autre la nouvelle version mise à jour. Certains hard forks sont destinés simplement à mettre à niveau le registre, tandis que d’autres se ramifient et forment effectivement des cryptomonnaies entièrement nouvelles. L’un des exemples les plus connus de hard fork de cette dernière variété est celui qui a permis à Bitcoin Cash de se séparer de la blockchain principale de Bitcoin le 1er août 2017.
Lorsque ces hard forks se produisent, il devient théoriquement possible pour les attaquants d'utiliser des attaques par rejeu contre les registres de blockchain. Une transaction traitée sur un registre par une personne dont le portefeuille était valide avant le hard fork sera également valide sur l'autre. En conséquence, une personne qui a reçu un certain nombre d'unités de cryptomonnaie de quelqu'un d'autre via un registre pourrait passer à l'autre registre, répliquer la transaction et transférer frauduleusement un nombre identique d'unités sur son compte une deuxième fois. Étant donné que leurs portefeuilles ne font pas partie de l'historique partagé des registres, les utilisateurs qui accèdent à une blockchain après un hard fork ne sont pas vulnérables à ces attaques.
Comment les blockchains peuvent-elles être protégées contre ces attaques ?
Bien que la vulnérabilité des registres de blockchain bifurqués aux attaques par relecture soit une préoccupation légitime, la plupart des hard forks incluent des protocoles de sécurité spécifiquement conçus pour empêcher la réussite de ces attaques. Les mesures efficaces contre les attaques par relecture de la blockchain se répartissent en deux catégories, appelées protection forte contre la relecture et protection contre la relecture par option. Dans la protection forte contre la relecture, un marqueur spécial est ajouté au nouveau registre qui émerge du hard fork pour garantir que les transactions effectuées sur celui-ci ne seront pas valides sur le registre hérité, ainsi que l'inverse. C'est le type de protection qui a été mis en œuvre lorsque Bitcoin Cash a bifurqué de Bitcoin.
Une fois implémentée, la protection anti-relecture renforcée est exécutée automatiquement dès que le hard fork se produit. Cependant, la protection anti-relecture par opt-in oblige les utilisateurs à modifier manuellement leurs transactions pour garantir qu'elles ne puissent pas être rejouées. La protection par opt-in peut être utile dans les cas où le hard fork est destiné à être une mise à niveau du grand livre principal d'une cryptomonnaie, plutôt qu'à une séparation complète de celui-ci.
Outre ces solutions à l'échelle du grand livre, les utilisateurs individuels peuvent également prendre des mesures pour se protéger contre les attaques par relecture. Une méthode pour y parvenir consiste à bloquer le transfert des pièces jusqu'à ce que le grand livre atteigne un certain nombre de blocs, empêchant ainsi toute attaque par relecture impliquant ces unités de pièces d'être vérifiée par le réseau. Il convient toutefois de noter que tous les portefeuilles ou grands livres n'offrent pas cette fonction.
Réflexions finales
Les attaques par rejeu représentent une véritable menace pour la sécurité du réseau lorsqu'elles réussissent. Contrairement à de nombreux autres types d'attaques, les attaques par rejeu ne reposent pas sur le décryptage des données, ce qui en fait une solution de contournement efficace pour les acteurs malveillants qui sont de plus en plus confrontés à des protocoles de cryptage sécurisés. En raison des hard forks qui sont utilisés pour les mettre à niveau ou les diviser, les registres de blockchain sont particulièrement vulnérables à ce type de cyberattaque. Cependant, il existe des solutions robustes qui sont raisonnablement efficaces pour protéger les systèmes de blockchain contre ces attaques. En particulier, l'utilisation d'une forte protection contre les rejeu peut garantir que les attaquants ne seront pas en mesure de répliquer les transactions après un hard fork.



