Qu'est-ce que le piratage de session ?

Publié: 2023-04-27

Le détournement de session est un type de cyberattaque que les propriétaires de sites WordPress doivent connaître. Également connu sous le nom de piratage de session TCP, le piratage de session fait passer les attaquants pour des utilisateurs correctement connectés. L'attaquant prend le contrôle d'une session utilisateur en obtenant son ID de session à l'insu ou sans l'autorisation de l'utilisateur valide. Une fois qu'un attaquant a volé l'ID de session d'un utilisateur, il peut se faire passer pour l'utilisateur ciblé. L'attaquant pourra faire tout ce que l'utilisateur autorisé peut faire une fois que l'utilisateur autorisé s'est connecté au même système.

L'une des pires choses que les pirates puissent faire avec une session piratée est d'accéder à une application Web ou à des contrôles de serveur sans authentification. Lorsqu'un attaquant détourne la session d'un utilisateur, il n'a pas besoin de s'authentifier tant que la session est active. L'application qui a généré la session pense être l'utilisateur authentifié dont elle a piraté la session.

En d'autres termes, le pirate bénéficiera du même accès que l'utilisateur qu'il a compromis. Étant donné que l'utilisateur légitime a déjà authentifié sa session avant l'attaque, un piratage réussi permet à un attaquant de contourner complètement l'authentification.

Dans ce guide, nous allons plonger dans les détails du piratage de session. Nous vous montrerons exactement ce que vous devez faire pour éviter que cela n'arrive à votre site WordPress.

Qu'est-ce qu'une session exactement ?

Une session est simplement une série d'interactions entre des points de terminaison de communication qui se produisent tout au long d'une seule connexion HTTP.

Le protocole de transfert hypertexte (HTTP) est à la base du Web. C'est ce qui vous permet d'utiliser des liens hypertextes et de charger des pages Web. HTTP est également un protocole de couche application permettant de transmettre des informations entre les périphériques d'un réseau.

Une caractéristique clé de HTTP est qu'il est « sans état ». Cela signifie qu'il n'enregistre aucune donnée sur les clients (comme vous et votre navigateur) qui ouvrent une session avec un site Web. Chaque session est complètement nouvelle. HTTP ne conserve pas les données sur les utilisateurs de leurs sessions précédentes.

Faire face à l'apatridie

Les applications Web telles que WordPress doivent suivre l'état entre plusieurs connexions du même utilisateur et d'utilisateurs différents. Il doit identifier la session de chaque utilisateur, une fois qu'il s'est connecté, potentiellement sur plusieurs appareils ou navigateurs.

Lorsqu'un utilisateur se connecte à une application comme WordPress, le serveur crée une session. La session maintiendra « l'état » de la connexion pour l'utilisateur en stockant des paramètres qui lui sont propres. Les sessions sont maintenues actives sur le serveur pendant toute la période pendant laquelle un utilisateur est connecté à l'application.

Une session se termine lorsqu'un utilisateur se déconnecte du système ou après une période prédéfinie d'inactivité. Lorsqu'une session utilisateur se termine, l'application doit supprimer ses données de la mémoire du serveur.

Identifiants de session

Les identifiants de session (ou « clés » ou « jetons ») sont les identifiants de session uniques. Généralement, il s'agit de longues chaînes alphanumériques aléatoires que le serveur et le client se transmettent. L'application d'authentification stocke normalement les ID de session dans des URL, des cookies ou des champs masqués sur des pages Web.

Bien que les ID de session soient utiles pour maintenir l'état dans un système sans état, ils présentent également des risques de sécurité potentiels. Par exemple, si nous comprenons les algorithmes qui génèrent les identifiants de session pour une application Web, nous pouvons les générer nous-mêmes. De plus, si l'application Web n'utilise pas le cryptage SSL pour crypter HTTP en HTTPS, elle transmettra les identifiants de session en clair. Sur un réseau public, n'importe qui peut espionner les connexions non chiffrées et voler les identifiants de session.

Comment fonctionne exactement le détournement de session en pratique ?

Une attaque de piratage de session réussie est extrêmement furtive. Ils sont généralement effectués sur des réseaux très occupés avec de nombreuses sessions de communication actives.

Certaines des formes les plus courantes de piratage de session utilisent :

  • ID de jeton de session prévisibles
  • Reniflage de session
  • Détournement de session
  • Logiciel malveillant de l'homme dans le navigateur
  • Script intersite
  • Fixation de session

Examinons chacun de ces vecteurs de menace individuellement.

ID de jeton de session prévisibles

De nombreux serveurs Web utilisent des algorithmes personnalisés ou des modèles prédéfinis pour générer leurs identifiants de session. Plus la prévisibilité globale d'un jeton de session unique est élevée, plus il est faible.

Et plus il est facile pour un pirate de prévoir.

Reniflage de session

Le reniflage de session est l'une des méthodes les plus simples et les plus élémentaires utilisées par les pirates pour le piratage de session de la couche application.

Un attaquant utilisera un renifleur de paquets, tel que Wireshark, ou un proxy comme OWASP Zed pour capturer le trafic réseau. Si ce trafic contient des identifiants de session non chiffrés pour les connexions entre les clients et un site Web, les identifiants peuvent être volés. Les pirates peuvent utiliser l'identifiant ou le jeton valide pour obtenir rapidement un accès non autorisé au site et aux comptes de ses utilisateurs.

Session Sidejacking

Un attaquant peut utiliser le reniflage de paquets pour intercepter les cookies de session des utilisateurs lorsqu'ils se connectent à un site. Si les pages de connexion ne sont pas cryptées ou si un cryptage faible est utilisé, un cybercriminel peut facilement détourner les sessions utilisateur de cette manière.

Homme-dans-le-navigateur

Dans cette attaque, l'attaquant doit d'abord infecter l'ordinateur ou le navigateur de la victime avec un logiciel malveillant.

Ce logiciel malveillant peut modifier de manière invisible les informations de transaction du navigateur et créer des transactions à l'insu de l'utilisateur. Les requêtes du navigateur corrompu sont initiées par l'appareil physique de la victime, elles sont donc supposées être valides.

Script intersite

Un cybercriminel peut exploiter les vulnérabilités des applications ou des serveurs pour injecter du code arbitraire dans les pages Web d'un site. Cela amènera les navigateurs des visiteurs à exécuter ce code lorsqu'une page compromise est chargée.

Lorsque HTTP uniquement n'est pas défini dans les cookies de session, il est possible de voler une clé de session via du code injecté. Cela donnerait aux attaquants tout ce dont ils ont besoin pour détourner une session utilisateur.

Fixation de session

Cela utilise un ID de session valide qui n'a pas encore été authentifié. En utilisant la fixation de session, un attaquant tentera d'inciter un utilisateur à s'authentifier avec cet ID particulier.

Une fois l'authentification effectuée, un attaquant a désormais un accès complet à l'ordinateur de la victime.

La fixation de session explore une grande limitation dans la façon dont l'application Web gère un ID de session.

Qu'est-ce qu'un pirate obtient du piratage de session ?

Lorsqu'un pirate détourne une session, il peut faire tout ce qu'un utilisateur légitime était autorisé à faire dans cette session active.

Le piratage de session le plus efficace et le plus dommageable peut entraîner :

  • Comptes bancaires compromis
  • Achats en ligne non autorisés d'articles en ligne
  • L'usurpation d'identité
  • Vol de données des systèmes internes de l'entreprise

Pas bon! Une session de piratage de session réussie peut faire beaucoup de dégâts.

Quels sont quelques exemples de détournement de session ?

À l'automne 2012, deux chercheurs en sécurité nommés Juliano Rizzo et Thai Duong ont annoncé CRIME, une attaque qui tire parti d'une fuite d'informations dans le taux de compression des requêtes TLS comme canal secondaire. Cela leur a permis de décrypter les requêtes faites par le client au serveur.

À son tour, cela leur a permis de récupérer le cookie de connexion d'un utilisateur et de détourner la session, en se faisant passer pour lui sur des destinations en ligne de grande valeur comme les sites de commerce électronique et les banques.

Cette démonstration montrait comment un pirate pouvait exécuter ce type d'attaque pour récupérer les en-têtes d'une requête HTTP.

CRIME fonctionne pour décrypter les cookies HTTPS qui sont définis par les sites Web pour se souvenir des utilisateurs authentifiés en utilisant la force brute. Le code d'attaque force le navigateur de la victime à envoyer des requêtes HTTPS spécialement conçues à un site Web ciblé et analyse la variation de leur longueur après leur compression pour déterminer la valeur du cookie de session de la victime. Ceci est possible car SSL/TLS utilise un algorithme de compression appelé DEFLATE, qui élimine les chaînes en double, comme nous l'avons vu plus haut.

Le code d'attaque ne peut pas lire le cookie de session inclus dans les requêtes en raison des mécanismes de sécurité du navigateur. Cependant, il peut contrôler le chemin de chaque nouvelle requête et y insérer différentes chaînes pour tenter de faire correspondre la valeur du cookie.

Les valeurs des cookies de session peuvent être très longues. Ils sont constitués de lettres majuscules et minuscules et de chiffres.

De ce fait, le code d'attaque CRIME doit initier un très grand nombre de requêtes pour les décrypter, ce qui peut prendre plusieurs minutes.

Prévention du piratage de session

Il est important de se rappeler que les attaquants peuvent voler et réutiliser les identifiants de session (ou d'autres valeurs de cookies sensibles) lorsqu'ils sont transmis ou stockés de manière non sécurisée. Bien qu'une protection à 100 % ne soit pas une garantie, l'utilisation du cryptage est une défense majeure.

Lorsque les utilisateurs s'authentifient, les cookies SSL et sécurisés doivent être obligatoires. Et lorsque des utilisateurs authentifiés visitent plusieurs pages sécurisées, ils doivent être contraints d'utiliser HTTPS.

Au-delà de cela, les propriétaires de sites WordPress doivent utiliser le plugin de sécurité iThemes Security Pro WordPress pour la protection contre le piratage de session. La fonctionnalité Périphériques de confiance intégrée à iThemes Security Pro fonctionnera 24 heures sur 24, sept jours sur sept, pour aider à protéger votre site contre cette attaque dangereuse. Découvrez comment le configurer pour les utilisateurs de votre site.

Comprendre et prévenir le piratage de session

Grâce aux informations contenues dans ce guide, vous savez tout ce dont vous avez besoin pour protéger votre site WordPress contre le piratage de session :

  1. Assurez-vous que votre site est entièrement crypté à l'aide de SSL et obligera les utilisateurs à rester en HTTPS.
  2. Téléchargez et installez le plugin iThemes Security Pro.

En suivant ces étapes simples, vous protégerez votre site contre le piratage de session.