Avez-vous conscience qu’un individu malveillant peut réaliser des transferts bancaires ou des achats en ligne à votre place, sans pour autant avoir dérobé vos informations de connexion ?
Bien que nous associions souvent les cookies à la traque et aux publicités en ligne intrusives, il est important de noter qu’ils mémorisent également nos requêtes de recherche et nous permettent de naviguer sur des sites web sans avoir à ressaisir nos identifiants.
Néanmoins, si un tiers intercepte ce cookie, cela peut engendrer une cyberattaque dévastatrice, connue sous le nom de détournement de session. Cette attaque peut exposer vos données sensibles à des individus malintentionnés et causer des préjudices considérables avant même que vous ne réalisiez ce qui s’est passé.
Explorons ensemble ce phénomène et découvrons comment s’en prémunir !
Qu’est-ce que le détournement de session ?
Le détournement de session se produit lorsqu’un attaquant intercepte et prend le contrôle d’une session active entre un utilisateur et un hôte, tel qu’un serveur web, une session Telnet ou toute autre connexion basée sur le protocole TCP. Une session débute dès que vous vous connectez à un site web ou une application, comme par exemple, un réseau social.
Elle se poursuit pendant que vous êtes connecté à votre compte, que vous explorez votre profil ou que vous participez à une discussion, et se termine lorsque vous vous déconnectez. Mais comment le serveur web fait-il pour savoir que chacune de vos requêtes émane bien de vous ?
C’est là que les cookies entrent en jeu. Après votre identification, vous soumettez vos informations de connexion au serveur web. Celui-ci vérifie votre identité et vous attribue un identifiant de session, stocké dans un cookie, qui sera lié à votre session. C’est la raison pour laquelle vous n’êtes pas déconnecté d’une application lorsque vous consultez un profil ou pourquoi une boutique en ligne conserve les articles que vous avez mis dans votre panier même après avoir actualisé la page.
Cependant, des individus malveillants peuvent détourner une session en utilisant des techniques de gestion de session spécifiques ou en s’emparant de votre cookie. Ils peuvent ainsi abuser du serveur web en lui faisant croire que les requêtes proviennent bien de vous, l’utilisateur légitime.
Bien que le détournement de session soit devenu un problème majeur au début des années 2000, il reste une des méthodes les plus utilisées par les pirates informatiques.
Le groupe Lapsus$, qui figure parmi les personnes les plus recherchées par le FBI cette année, en est un exemple récent. Il utilise le logiciel malveillant InfoStealer pour détourner des sessions.
De même, GenesisStore, un magasin accessible sur invitation géré par un groupe éponyme, commercialise des données de cookies compromises, avec une liste qui dépasse les 400 000 robots.
Types de capture de session
Le détournement de session peut être classé en deux grandes catégories, selon les objectifs de l’attaquant.
Actif : Dans une attaque active, l’attaquant prend le contrôle de votre session et interrompt la connexion légitime du client à la ressource. En fonction du site de la session, l’attaquant peut effectuer des achats en ligne, modifier des mots de passe ou récupérer des comptes. Les attaques par force brute, XSS ou même DDoS sont des exemples typiques d’attaques actives.
Source : OSWAP
Passif : Dans une attaque passive, l’attaquant ne prend pas le contrôle de la session et ne la modifie pas. Il surveille simplement le trafic de données entre votre appareil et le serveur, en collectant toutes les informations sensibles. L’usurpation d’adresse IP et l’injection de logiciels malveillants sont généralement utilisées pour mener des attaques par injection passive.
Source : OSWAP
Comment fonctionne le détournement de session ?
Le protocole HTTP est un protocole sans état, ce qui signifie que le serveur ne conserve aucune information sur les actions du client. Chaque nouvelle requête HTTP correspond à une nouvelle opération. Autrement dit, le serveur fournit des pages au client sans se souvenir des requêtes précédentes.
Cependant, lorsque nous naviguons sur le web, nous constatons que les applications sont capables d’identifier le client (parfois même trop bien !). Grâce à cette « mémoire » du serveur, il est possible de concevoir des espaces réservés modernes pour les sites web, les banques en ligne, les services de messagerie, etc.
Pour cela, un complément a été créé afin de rendre un protocole sans état comme HTTP avec état : les cookies.
Sessions avec état
Une fois connectées, les applications web qui utilisent les sessions avec état déposent un cookie de session. Autrement dit, elles s’appuient sur ce cookie pour identifier le client. Ce cookie contient un code unique qui permet la reconnaissance du client, par exemple :
ID DE SESSION=ACF3D35F216AAEFC
Toute personne disposant de l’identifiant ou du code de session unique mentionné ci-dessus serait considérée comme le client authentifié par le serveur. Si un attaquant parvient à obtenir cet identifiant, comme le montre l’image ci-dessous, il pourrait exploiter la session validée initialement pour sa victime, soit en espionnant une session légitime, soit même en prenant le contrôle total de la session. Cet identifiant est généralement intégré à l’URL, dans le champ masqué d’un formulaire ou dans les cookies.
OSWAP
Sessions sans état
Avec l’évolution du web, des solutions ont émergé pour gérer la « mémoire » du serveur sans recourir aux cookies de session. Dans une application web où l’interface utilisateur (frontend) et la logique (backend) sont bien séparées et communiquent uniquement via une API, un JWT (JSON Web Token), qui est un jeton signé, constitue une solution idéale. Il permet à l’interface utilisateur de consommer les API fournies par le backend.
En général, le JWT est enregistré dans le sessionStorage du navigateur, un espace mémoire que le client maintient actif tant que l’onglet est ouvert. Par conséquent, l’ouverture d’un nouvel onglet crée une nouvelle session (contrairement aux cookies).
Le vol du jeton d’identification du client permet de voler la session de l’utilisateur et de mener une attaque de détournement de session. Mais comment voler ce jeton ?
Voici les méthodes les plus utilisées par les pirates :
#1. Détournement de session côté client
Cette méthode exploite des réseaux non sécurisés pour dérober votre identifiant de session. L’attaquant utilise le reniflage (un logiciel spécial) et cible généralement les réseaux Wi-Fi publics ou les sites web sans certificat SSL, connus pour leur faible niveau de sécurité.
#2. Fixation de session
La victime utilise l’identifiant de session créé par l’attaquant. Cela peut être réalisé par le biais d’une attaque de phishing (via un lien malveillant) qui « fixe » votre identifiant de session.
#3. Attaque par force brute
Il s’agit de la méthode la plus longue et la moins efficace. Dans cette attaque, le pirate ne vole pas vos cookies. Il essaie toutes les combinaisons possibles pour deviner votre identifiant de session.
#4. XSS ou Cross-site Scripting
Un pirate informatique exploite les failles des sites web ou des applications pour injecter du code malveillant. Lorsqu’un utilisateur visite le site, le script s’active, dérobe les cookies de l’utilisateur et les envoie à l’attaquant.
#5. Injection de logiciels malveillants
Les logiciels malveillants peuvent effectuer des actions non autorisées sur votre appareil afin de dérober des informations personnelles. Ils sont aussi souvent utilisés pour intercepter les cookies et envoyer des informations à un attaquant.
#6. Usurpation d’IP
Un cybercriminel modifie l’adresse IP source de son paquet pour faire croire qu’il provient de vous. En raison de cette fausse adresse IP, le serveur web pense qu’il s’agit bien de vous et la session est compromise.
Comment prévenir le détournement de session ?
Le risque de détournement de session dépend principalement de la sécurité des sites web ou des applications que vous utilisez. Cependant, vous pouvez prendre certaines mesures pour vous protéger :
- Évitez les réseaux Wi-Fi publics, car les points d’accès gratuits sont des cibles privilégiées pour les cybercriminels. Ils ont souvent une sécurité médiocre et peuvent être facilement usurpés. De plus, ils sont généralement fréquentés par un grand nombre de victimes potentielles dont le trafic de données peut être facilement compromis.
- Tout site qui n’utilise pas de certificat SSL vous rend vulnérable, car il ne peut pas chiffrer le trafic. Vérifiez si le site est sécurisé en recherchant un petit cadenas à côté de l’URL.
- Installez une application anti-malware pour détecter et protéger votre appareil contre les logiciels malveillants qui peuvent dérober vos informations personnelles.
- Évitez de télécharger des logiciels malveillants en utilisant les boutiques d’applications ou les sites web officiels pour télécharger des applications.
- Si vous recevez un message vous demandant de cliquer sur un lien inconnu, abstenez-vous. Il pourrait s’agir d’une attaque de phishing susceptible d’infecter votre appareil et de dérober vos informations personnelles.
L’utilisateur ne peut pas faire grand-chose face à une attaque de détournement de session. En revanche, l’application peut détecter qu’un appareil différent s’est connecté avec le même identifiant de session. En partant de cette observation, il est possible de mettre en place des stratégies d’atténuation telles que :
- Associer à chaque session une empreinte technique ou des caractéristiques de l’appareil connecté afin de détecter toute modification des paramètres enregistrés. Ces informations doivent être stockées dans le cookie (pour les sessions avec état) ou le JWT (pour les sessions sans état), en étant absolument chiffrées.
- Si la session est basée sur des cookies, supprimer le cookie avec l’attribut HTTPOnly pour le rendre inaccessible en cas d’attaque XSS.
- Mettre en place un système de détection d’intrusion (IDS), un système de prévention d’intrusion (IPS) ou une solution de surveillance réseau.
- Certains services effectuent des vérifications secondaires de l’identité de l’utilisateur. Par exemple, un serveur web peut vérifier à chaque requête que l’adresse IP de l’utilisateur correspond à la dernière adresse utilisée pendant cette session. Cependant, cela ne protège pas contre les attaques d’une personne partageant la même adresse IP et peut être contraignant pour les utilisateurs dont l’adresse IP est susceptible de changer au cours d’une session de navigation.
- Par ailleurs, certains services modifient la valeur du cookie à chaque requête. Cela réduit considérablement la période durant laquelle un attaquant peut agir et permet d’identifier plus facilement une attaque, mais peut engendrer d’autres problèmes techniques.
- Utiliser des solutions d’authentification multifacteur (MFA) pour chaque session utilisateur.
- Maintenir tous les systèmes à jour avec les derniers correctifs et mises à jour de sécurité.
FAQ
Quelle est la différence entre le détournement de session et l’usurpation de session ?
Le détournement de session consiste à se faire passer pour l’utilisateur, tandis que l’usurpation consiste à se substituer à l’utilisateur. Au cours des dernières années, certains spécialistes de la sécurité ont commencé à qualifier l’usurpation de session comme un type de détournement de session.
En conclusion
Les attaques par détournement de session ont augmenté en fréquence ces dernières années. Il est donc devenu impératif de comprendre ces attaques et de suivre les mesures préventives. Cependant, tout comme la technologie évolue, les attaques deviennent plus sophistiquées. Il est donc essentiel d’élaborer des stratégies de défense efficaces contre le détournement de session.
Vous pourriez également être intéressé de savoir combien valent vos données sur le dark web.