Commencer gratuitement
Cyberattaque / Howard Poston / 21 déc. 2023

Le détournement de session : la prise de contrôle non autorisée

Session Hijacking: Unauthorized Control

Les sites Web utilisent la notion de session pour suivre l’identité d’un utilisateur pendant qu’il navigue. Sans les sessions, un utilisateur devrait s’authentifier à chaque page d’un site à accès restreint, ce qui nuirait à l’expérience utilisateur. On lui attribue plutôt un identifiant de session qui permet de reconnaître les requêtes suivantes de la même session.

Dans une attaque par détournement de session, un cybercriminel s’empare de la session active d’un utilisateur. Cela lui permet de se faire passer pour cet utilisateur et, potentiellement, de dérober des renseignements sensibles ou d’exécuter des actions malveillantes dans son compte.

Cet article se penche sur l’attaque par détournement de session : les techniques couramment employées, les répercussions possibles de ces attaques et les pratiques exemplaires pour s’en protéger.

Qu’est-ce que le détournement de session ?

Le HTTP — le protocole utilisé pour la navigation Web — est un protocole sans état. Cela signifie que les serveurs Web ne sont pas chargés de suivre l’information relative aux utilisateurs d’une requête HTTP à l’autre.

La notion de session sert à pallier ce problème et permet à un visiteur de conserver un état tout au long de sa navigation. Après s’être authentifié auprès d’un site Web, l’utilisateur reçoit un témoin (cookie) ou un jeton de session. Chaque requête ultérieure comprendra ce jeton, qui authentifie l’identité de l’utilisateur sans qu’il ait à fournir ses identifiants à chaque fois.

Dans une attaque par détournement de session, un cybercriminel vole le témoin ou le jeton associé à une session active. Il peut y parvenir de diverses façons, par exemple en reniflant le trafic réseau ou en menant une attaque de l’intercepteur (MitM).

Puisque le témoin de session sert à identifier la session de l’utilisateur, un attaquant qui y accède peut s’en servir pour prendre le contrôle de cette session. Il peut ainsi se faire passer pour l’utilisateur, dérober des données sensibles ou poser d’autres gestes malveillants dans le contexte de son compte.

Les techniques courantes de détournement de session

Pour mener une attaque par détournement de session, l’attaquant doit obtenir le témoin ou le jeton de session qui sert à suivre l’identité de l’utilisateur. Diverses méthodes lui permettent d’y arriver.

Les attaques de l’intercepteur (MitM)

Dans une attaque de l’intercepteur, aussi appelée attaque sur le chemin, l’attaquant peut intercepter le trafic réseau échangé entre un utilisateur et le serveur Web. Par exemple, il peut exploiter un point d’accès (PA) sans fil malveillant — une attaque du jumeau maléfique — ou avoir recours au détournement BGP ou à l’usurpation ARP pour rediriger le trafic de l’utilisateur vers son propre appareil.

Si un utilisateur navigue sur un site Web en HTTP — plutôt qu’en HTTPS chiffré —, un attaquant en position d’intercepteur pourra examiner les en-têtes et le contenu de chaque requête envoyée au site. Les témoins de session figurent dans ces requêtes, ce qui permet à l’attaquant de dérober le jeton de session servant à valider l’identité de l’utilisateur.

Le reniflage de paquets

Le reniflage de paquets s’apparente à une attaque de l’intercepteur, mais n’oblige pas l’attaquant à intercepter le trafic de l’utilisateur. Il se contente d’écouter le trafic sans y intervenir. Par exemple, tous les utilisateurs d’un réseau sans fil peuvent voir le trafic des autres.

Cette forme de détournement de session suppose elle aussi que l’utilisateur navigue en HTTP plutôt qu’en HTTPS. Si c’est le cas, un attaquant qui renifle son trafic réseau pourra voir et dérober l’identifiant de session qu’il contient.

Les maliciels

Les maliciels sont également capables de dérober des témoins de session et d’autres identifiants. Les témoins étant généralement stockés sous forme de fichiers sur l’ordinateur de l’utilisateur, un maliciel ayant accès au système de fichiers peut les trouver et les exfiltrer vers un attaquant. Autrement, un maliciel ayant accès au navigateur d’un utilisateur peut renifler les témoins de session au moment où ils sont transmis à un site Web.

Le script intersites (XSS)

Dans une attaque par script intersites (XSS), l’attaquant injecte du code de script malveillant dans un site Web. Il peut y parvenir de diverses façons, en visant un utilisateur en particulier ou tous les visiteurs du site.

Au chargement de la page Web, ce code de script s’exécute au même titre que les autres scripts et contenus de la page. Comme il fait partie de la page Web (ou est importé directement par celle-ci), il a accès aux mêmes données que le reste de la page.

Fort de cet accès, le script malveillant peut dérober divers types de renseignements sensibles saisis dans la page. Cela peut comprendre le jeton ou le témoin servant à suivre l’identité d’un utilisateur sur l’ensemble du site. Si le script transmet cette information à l’attaquant, celui-ci pourra s’en servir pour prendre le contrôle de la session active de l’utilisateur.

La fixation de session

La plupart des approches de détournement de session supposent que l’attaquant intercepte ou dérobe l’identifiant de session de l’utilisateur. Dans une attaque par fixation de session, c’est l’attaquant qui fixe l’identifiant de session de l’utilisateur.

Dans cette forme d’attaque, l’attaquant génère un identifiant de session pour un utilisateur et le lui transmet, généralement dans une URL au moyen d’une attaque par hameçonnage. Lorsque l’utilisateur s’authentifie auprès de l’application vulnérable en utilisant l’identifiant de session malveillant, l’attaquant peut se servir de ce même identifiant pour prendre le contrôle de la session.

Les attaques par force brute

Un identifiant de session devrait être une valeur longue, unique et aléatoire qui désigne un utilisateur précis. Toutefois, si le système de gestion des sessions d’un site Web est mal conçu, ce n’est pas nécessairement le cas.

Les identifiants de session peuvent être prévisibles — c’est-à-dire séquentiels ou fondés sur des valeurs comme les adresses IP — ou assez courts pour être vulnérables à la force brute. Le cas échéant, un attaquant pourrait deviner l’identifiant de session d’un utilisateur et s’en servir pour prendre le contrôle de sa session.

La falsification de requête intersites

Une attaque par falsification de requête intersites (CSRF) consiste à amener par la ruse le navigateur d’un utilisateur à envoyer une requête à un autre site Web. Par exemple, l’utilisateur peut être incité à visiter une page d’hameçonnage ou un site Web comportant une publicité malveillante. Pour afficher cette page, le navigateur devra peut-être envoyer plusieurs requêtes subséquentes pour des images et d’autres contenus.

Dans une attaque CSRF, l’une de ces requêtes est adressée au site où l’attaquant cherche à prendre le contrôle de la session de l’utilisateur. Si celui-ci a une session active sur ce site, son navigateur y joindra automatiquement le témoin ou le jeton de session.

À la réception de cette requête, le site ciblé authentifiera l’identité de l’utilisateur au moyen du témoin ou du jeton fourni. Comme cet identifiant est légitime, le site ouvrira la page associée et exécutera les actions demandées. En l’absence de protection contre le CSRF, cela peut entraîner la modification du mot de passe de l’utilisateur, le déclenchement d’un virement bancaire ou tout autre geste dommageable.

Dans une attaque CSRF, l’attaquant n’obtient jamais le contrôle direct de la session de l’utilisateur ni la connaissance de l’identifiant de session. Il contrôle néanmoins cette session dans les faits, puisqu’il amène le navigateur de l’utilisateur à exécuter des requêtes en son nom.

Exemples récents de détournement de session

Les attaques par détournement de session donnent à un attaquant le contrôle de la session active d’un utilisateur et de son compte connecté. Elles peuvent lui permettre de dérober des données sensibles ou de poser d’autres gestes malveillants liés au compte.

CVS Health

Une brèche de données survenue chez CVS Health en 2021 a illustré le risque que représentent les attaques par détournement de session à grande échelle. La chaîne de pharmacies avait laissé une base de données infonuagique contenant des milliards de dossiers clients accessible publiquement dans le nuage.

En plus d’autres renseignements sensibles, cette base de données contenait les identifiants de session et les identifiants de visiteur servant à suivre les paniers d’achat des clients et d’autres détails de session. En y accédant, un attaquant aurait pu prendre le contrôle du compte d’un utilisateur et potentiellement relier son identité à des achats et à d’autres données médicales sensibles.

Le Zoom-bombing

Un autre exemple courant de détournement de session est la vague d’attaques de Zoom-bombing survenue pendant la pandémie de COVID-19. À cette époque, de nombreuses organisations se sont tournées vers Zoom pour tenir des réunions et d’autres rassemblements qui se seraient auparavant déroulés en personne.

Or, ces réunions n’étaient pas toujours protégées par un mot de passe et étaient accessibles au moyen de liens pouvant être volés ou devinés. Résultat : de nombreuses réunions ont été envahies par des intrus qui criaient des obscénités ou diffusaient des images inappropriées. Ces attaques risquaient aussi d’exposer des renseignements sensibles si un attaquant parvenait à consulter des fichiers partagés ou à écouter des conversations privées.

La prévention du détournement de session

Les attaques par détournement de session permettent à un cybercriminel d’usurper l’identité d’un utilisateur et de prendre le contrôle de ses sessions en ligne. Les utilisateurs et les organisations disposent de plusieurs moyens de s’en protéger, dont les suivants :

  • Gestion sécurisée des sessions : Les témoins de session devraient être générés de façon aléatoire et stockés de manière sécurisée sur l’ordinateur du client. Lorsque ces témoins sont présentés à un site Web, celui-ci devrait les vérifier afin de s’assurer qu’ils sont légitimes.
  • Utiliser le HTTPS : Le HTTPS chiffre et authentifie l’ensemble des données d’une session de navigation Web pendant leur transit sur le réseau. Il protège ainsi contre les attaques de l’intercepteur et le reniflage de paquets en chiffrant les témoins de session servant à suivre l’identité des utilisateurs.
  • Utiliser un VPN : Si le HTTPS n’est pas offert pour un site ou une application, un réseau privé virtuel (VPN) constitue une bonne solution de rechange. Un VPN chiffre tout le trafic entre l’ordinateur de l’utilisateur et le point d’extrémité du VPN, ce qui protège contre l’écoute clandestine et les attaques de l’intercepteur.
  • Ne pas cliquer sur les liens suspects : Les liens malveillants contenus dans les courriels d’hameçonnage ou sur les sites Web peuvent renfermer un identifiant de session prédéterminé ou un script XSS malveillant. Soyez prudent avant de cliquer sur un lien, surtout s’il contient des requêtes HTTP (des données ajoutées à l’URL).
  • Utiliser un antivirus : Les maliciels peuvent dérober des témoins de session et rendre possible le détournement de session. Le recours à un antivirus pour détecter, bloquer et corriger les infections par maliciel contribue à se protéger contre ces attaques.
  • Utiliser l’attribut HttpOnly : L’attribut HttpOnly empêche les témoins de session d’être accessibles au code JavaScript. Il évite ainsi que les scripts malveillants utilisés dans les attaques XSS accèdent à cette information.
  • Réduire les délais d’expiration des sessions : Les témoins de session ont généralement un délai d’expiration qui détermine pendant combien de temps le témoin peut servir à identifier un utilisateur. En fixant des délais relativement courts, un site Web réduit la période pendant laquelle un attaquant peut se servir de ce témoin pour accéder au compte d’un utilisateur.
  • Lier le témoin à l’adresse IP : Les témoins de session peuvent être associés à l’adresse IP précise ayant servi à ouvrir la session. Le site Web empêche ainsi un attaquant d’utiliser un témoin de session volé à partir d’une autre adresse IP.
  • Authentification renforcée au besoin : Les témoins de session peuvent servir à identifier les utilisateurs pour les actions courantes, mais un site peut exiger une vérification supplémentaire pour les activités plus risquées. Par exemple, le site pourrait exiger une authentification multifactorielle (MFA) avant un achat, même si la requête provient d’une session active.
  • Notifications aux utilisateurs : Un serveur Web peut recourir à l’analyse comportementale pour repérer les activités suspectes, comme une session qui change d’adresse IP. Le site peut alors informer l’utilisateur par courriel, par SMS ou autrement, ce qui lui permet de prendre des mesures pour verrouiller son compte.

Conclusion

Le détournement de session est une attaque conçue pour permettre à un cybercriminel de se faire passer pour un utilisateur légitime. Une fois qu’un utilisateur s’est authentifié auprès d’un site Web et a reçu un jeton de session, l’attaquant dérobe ce jeton d’une manière ou d’une autre. En y accédant, il peut détourner la session de l’utilisateur et se faire passer pour lui.

Les attaques par détournement de session peuvent avoir de nombreuses répercussions négatives sur les personnes et les organisations. Une telle attaque peut permettre à un attaquant de dérober des données personnelles ou d’affaires sensibles accessibles par la session détournée de l’utilisateur. L’attaquant peut aussi poser des gestes malveillants au moyen de la session détournée : soutirer de l’argent à l’utilisateur ou se servir du compte compromis pour mener du harponnage et d’autres attaques.

Pour les particuliers, la protection la plus efficace contre le détournement de session consiste à utiliser le HTTPS et un VPN dès que possible. Les organisations peuvent mettre en place diverses défenses, comme limiter l’accès aux témoins de session grâce à l’attribut HttpOnly et exiger une authentification supplémentaire avant l’exécution d’actions à risque élevé.

KZero Passwordless : Multi-Pass permet aux entreprises d’assurer une authentification forte des utilisateurs avec une incidence minimale sur l’expérience utilisateur. L’authentification biométrique multifactorielle confirme l’identité de l’utilisateur sans qu’il ait à saisir de mots de passe ou d’autres renseignements. Découvrez dès aujourd’hui comment renforcer la sécurité de vos clients et de vos employés avec Multi-Pass.

Howard Poston



Howard Poston est rédacteur, auteur et concepteur de cours possédant une expérience en cybersécurité, en sécurité des chaînes de blocs, en cryptographie et en analyse de maliciels. Il détient une maîtrise en cyberopérations, compte dix ans d’expérience en cybersécurité et plus de cinq ans d’expérience comme consultant indépendant.