Qu'est-ce qu'une attaque par rejeu?
Accueil
Articles
Qu'est-ce qu'une attaque par rejeu?

Qu'est-ce qu'une attaque par rejeu?

Intermédiaire
Publié le Feb 4, 2019Mis à jour le Oct 25, 2023
4m

Une attaque par rejeu, parfois Ă©galement appelĂ©e attaque par relecture, est une cyberattaque dans laquelle l'entitĂ© malveillante intercepte puis rĂ©itĂšre (on dit Ă©galement rejoue, ou rĂ©pĂšte) une transmission de donnĂ©es valide en passant 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 originaux sont interceptĂ©s et retransmis textuellement, les pirates informatiques utilisant des attaques par rejeu n’ont pas forcĂ©ment besoin de les dĂ©chiffrer.


Que peuvent faire les pirates avec une attaque par rejeu?

Les attaques par rejeu peuvent ĂȘtre utilisĂ©es pour accĂ©der aux informations stockĂ©es sur un rĂ©seau normalement protĂ©gĂ©, en lui transmettant des informations d'identification apparemment valides. Elles peuvent Ă©galement ĂȘtre utilisĂ©es pour tromper les institutions financiĂšres en dupliquant des transactions, permettant ainsi aux attaquants de retirer de l’argent directement sur les comptes de leurs victimes. Dans certains cas, les pirates informatiques assembleront des parties de plusieurs messages cryptĂ©s et transmettront le texte chiffrĂ© rĂ©sultant au rĂ©seau, dans le cadre d'une attaque dite de “couper-coller”. La rĂ©action du rĂ©seau Ă  ce type d'attaque donnera souvent au pirate informatique des informations prĂ©cieuses pouvant ĂȘtre ensuite utilisĂ©es pour exploiter davantage le systĂšme.

Malgré les dangers évidents qui y sont associés, il y a des limites à ce que les pirates informatiques peuvent réaliser avec les seules attaques par rejeu. Les attaquants ne peuvent pas modifier les données envoyées sans que le réseau les rejette, ce qui limite l'efficacité de l'attaque à la répétition d'actions passées. De plus, ces attaques sont également relativement faciles à défendre. Une défense aussi simple que l'ajout d'un horodatage à la transmission de données peut vous protéger contre des tentatives de rejeu simples. Les serveurs peuvent également mettre en cache des 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 faire, en répétant rapidement et successivement la « relecture » des messages.


Pourquoi les attaques par rejeu concernent particuliĂšrement le monde des crypto-monnaies ?

Bien qu’elles ne soient pas seulement limitĂ©es Ă  ce milieu, ces attaques sont particuliĂšrement pertinentes dans le monde liĂ© aux transactions des crypto-monnaie et des registres blockchain. Notamment parce que les registres basĂ©s sur la blockchain subissent parfois des modifications de protocole ou des mises Ă  jour, connues sous le nom de «hard forks». Quand un « hard fork » (ou bifurcation rigide) a lieu, le registre existant se scinde en deux, l'un exĂ©cutant la version originale du logiciel et l'autre exĂ©cutant la nouvelle version mise Ă  jour. Certains « hard forks » sont simplement destinĂ©s Ă  mettre Ă  jour le registre, alors que d'autres crĂ©ent une nouvelle ramification et forment alors concrĂštement de nouvelles crypto-monnaies. L'un des exemples les plus connus de ce dernier type de « hard fork » est la mise Ă  jour qui a permis Ă  Bitcoin Cash de se sĂ©parer du registre Bitcoin, le 1er aoĂ»t 2017.

Lorsque ce type de « hard fork » intervient, il devient thĂ©oriquement possible pour les attaquants d’utiliser des attaques par rejeu contre les registres blockchain. Une transaction exĂ©cutĂ©e sur un registre par une personne dont le portefeuille Ă©tait valide avant ce « hard fork » sera Ă©galement valide sur l'autre. Ainsi, quelqu’un qui a reçu un certain nombre d’unitĂ©s de crypto-monnaie d’une autre personne depuis le registre original, pourrait en basculant sur l’autre registre, dupliquer la transaction et transfĂ©rer frauduleusement un nombre identique d’unitĂ©s sur son compte une seconde fois. Étant donnĂ© que leurs portefeuilles ne font pas partie de l’historique partagĂ© sur les registres, les utilisateurs qui se servent d’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 blockchain « forkĂ©s » aux attaques par rejeu soit une prĂ©occupation lĂ©gitime, la plupart des « hard forks » incluent des protocoles de sĂ©curitĂ© spĂ©cifiquement conçus pour empĂȘcher le succĂšs de ces attaques. Les mesures efficaces contre les attaques par rejeu des chaĂźnes de blocs se rĂ©partissent en deux catĂ©gories, appelĂ©es protection forte contre le rejeu (Strong Replay Protection) et protection contre le rejeu optionnelle (Opt-in Replay Protection). Dans la protection anti-rejeu forte, un marqueur spĂ©cial est ajoutĂ© au nouveau registre qui Ă©merge du hard fork, afin de garantir que les transactions effectuĂ©es sur celui-ci ne seront pas valables dans l’ancien registre, et inversement. C'est le type de protection qui a Ă©tĂ© implĂ©mentĂ© lorsque Bitcoin Cash s’est sĂ©parĂ© de Bitcoin.

Une fois implĂ©mentĂ©e, la protection anti-replay forte est exĂ©cutĂ©e automatiquement dĂšs que le hard fork intervient. De l’autre cĂŽtĂ©, la protection de rejeu optionnelle oblige les utilisateurs Ă  modifier manuellement leurs transactions pour s'assurer que celles-ci ne puissent pas ĂȘtre exĂ©cutĂ©es Ă  nouveau. La protection optionnelle peut ĂȘtre utile dans les cas oĂč le hard fork est pensĂ© comme une mise Ă  jour du registre principal d'une crypto-monnaie, plutĂŽt que comme une scission complĂšte de du registre (et donc de la chaĂźne de blocs).

Outre ces solutions Ă  l'Ă©chelle du registre, les utilisateurs individuels peuvent Ă©galement prendre des mesures pour se protĂ©ger des attaques par rejeu. Une mĂ©thode consiste Ă  empĂȘcher les coins d'ĂȘtre transfĂ©rĂ©es jusqu'Ă  ce que le registre atteigne un certain nombre de blocs, bloquant ainsi toute attaque par rejeu impliquant les unitĂ©s en question, le rĂ©seau ne pouvant les vĂ©rifier. Il convient de noter, cependant, que tous les portefeuilles ou tous les registres n'offrent pas cette fonction.


Pour conclure

Les attaques par rejeu reprĂ©sentent une menace rĂ©elle 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 renforcĂ©s. En raison des « hard forks » utilisĂ©es pour les mettre Ă  jour ou les sĂ©parer, les registres blockchain sont particuliĂšrement vulnĂ©rables Ă  ce type de cyberattaques. Cependant, il existe des solutions robustes qui sont suffisamment efficaces pour protĂ©ger les systĂšmes blockchain. En particulier, l’utilisation d’une protection renforcĂ©e contre le rejeu peut garantir que les attaquants ne seront pas en mesure de rĂ©pliquer les transactions aprĂšs qu’un « hard fork » soit exĂ©cutĂ©.