Se connecter à un site ou portail web fait désormais partie du quotidien d’un grand nombre d’entre-nous. Chaque fois que l’on s’identifie sur un site ou un portail web, une session est créée. Pour faire le plus simple possible, on peut définir une session comme le temps de communication entre deux systèmes. La session reste active jusqu'à ce que l'utilisateur mette fin à la communication. On parle alors de session initiée par l'utilisateur.
Le début d'une session est primordial à l'établissement d'une communication sur internet. Cela dit, la menace de détournement de session n'est jamais loin. Dans cet article, nous évoquerons ce qu'est un détournement de session, les circonstances dans lesquelles il peut se produire, et ce que l'on peut faire pour l'éviter.
Qu'est-ce que le détournement de session ?
Le terme de « détournement de session » est explicite : la session d'un utilisateur peut être détournée par un assaillant. L'utilisateur perd alors le contrôle de sa session et ses données personnelles peuvent lui être facilement dérobées. Après le démarrage d’une session utilisateur – lorsque l’utilisateur se connecte à un site de banque en ligne, par exemple – il est possible pour un pirate de la détourner.
Pour cela, l'attaquant doit avoir suffisamment de connaissances concernant les cookies de session utilisateur. Même si n’importe quelle session peut être piratée, les sessions de navigateur sur les applications web sont les plus concernées.
Comment une session peut-elle être détournée ?
Suivant la position de l’assaillant et son vecteur d'attaque, il y a plusieurs façons de détourner une session utilisateur. Voici quelques techniques de détournement de session :
- L'injection de code indirect (XSS, Cross-site scripting) : Les attaquants exploitent les vulnérabilités des serveurs ou des applications pour injecter des scripts Java côté client dans les pages web des utilisateurs. Le navigateur se retrouve à exécuter un code arbitraire lorsqu'il charge une page compromise. Si le serveur ne définit pas l'instruction « HTTPOnly » dans les cookies de session, les scripts injectés peuvent avoir accès à la clé de session de l’utilisateur, et livrer ainsi aux attaquants les informations nécessaires pour détourner sa session.
- Session side jacking : Un attaquant peut utiliser un renifleur de paquets pour surveiller le trafic sur un réseau et intercepter les cookies de session d’un utilisateur après que celui-ci s’est authentifié. Imaginons que le site web ait été conçu à l'économie, et que seules ses pages de connexion soient chiffrées en SSL/TLS. L'attaquant peut alors utiliser la clé de session – récupérée en reniflant les paquets – pour détourner la session de l'utilisateur. Rien ne l’empêche ensuite de se faire passer pour l'utilisateur pour exécuter certaines actions dans l'application web. Les points d’accès sans fil non sécurisés (hotspot WiFi) peuvent ainsi être utilisés par des personnes malintentionnées pour accéder à un réseau, y surveiller le trafic et mettre en place leurs propres points d'accès afin de lancer une attaque.
- L'attaque par fixation de session : Les attaquants fournissent une clé de session à l'utilisateur et le piègent en l'invitant à accéder à un serveur vulnérable.
La menace de détournement de session existe du fait que les protocoles sont sans état. En raison de leurs limites, ces protocoles sont vulnérables aux attaques.
Rôle du chiffrement
L'intégration de certains chiffrements permet aux organisations de protéger les sessions utilisateur contre le risque de détournement. Ces chiffrements se présentent sous la forme de certificats.
- SSL : L'acronyme correspond à Secure Sockets Layer, qui signifie « couche de sockets sécurisés ». Cette technologie standard sécurise une connexion internet et protège toute donnée sensible envoyée entre deux systèmes. Ainsi, les criminels ne peuvent ni lire ni modifier les informations transférées, qui peuvent comprendre d’éventuelles données personnelles.
- TLS : L'acronyme vient de l'anglais Transport Layer Security, qui signifie « sécurité de la couche de transport ». Il s'agit simplement d'une version actualisée et plus sécurisée du SSL.
Exemple de détournement de session
Une attaque de session profite des fuites de données du ratio de compression des requêtes TLS. Les pirates ont ensuite accès aux cookies de session qu'ils peuvent utiliser pour détourner une session d'utilisateur. Un tel incident s'est produit en septembre 2012, lorsqu'une organisation de pirates de session appelée CRIME a pénétré sur le site web d'une organisation.
L'attaque CRIME a réussi à détourner la session en déchiffrant les cookies HTTPS définis par le site web. Les assaillants ont pu s'authentifier à la place des utilisateurs légitimes par force brute, et siphonner une quantité considérable de données.
Comment empêcher le détournement de session
Pour se protéger contre le détournement de session, les mécanismes des applications web doivent être renforcés. Il faut pour cela gérer les communications et les sessions. Voici quelques moyens de réduire le risque de détournement de session :
- HTTPS : L'utilisation du HTTPS garantit un chiffrement SSL/TLS sur l'ensemble du trafic de session. Il devient ainsi impossible pour des attaquants d’intercepter l'ID de session en clair, même si le trafic de la victime a été surveillé. Il est conseillé d'utiliser le protocole HSTS (HTTP Strict Transport Security) pour garantir un chiffrement complet.
- HTTPOnly : La configuration d'un attribut HTTPOnly empêche l'accès aux cookies par des scripts côté client. La technique permet d’éviter le déploiement d’attaques XSS basées sur l'injection de scripts Java dans le navigateur.
- Mises à jour système : Installez un logiciel antivirus connu capable de détecter facilement les virus et de vous protéger contre tout type de malware (y compris ceux utilisés pour le détournement de sessions). Maintenez vos systèmes à jour en configurant des mises à jour automatiques sur tous vos appareils.
- Gestion de session : Afin d'offrir une sécurité suffisante, les exploitants de sites web peuvent intégrer des frameworks web, au lieu d'inventer leurs propres systèmes de gestion de session.
- Clé de session : Il est recommandé de régénérer les clés de session après leur authentification initiale. L'identificateur de session (ou ID de session) extrait par les attaquants devient alors inutile, puisqu’il change immédiatement après l'authentification.
- Vérification d'identité : Effectuez une vérification supplémentaire de l'identité de l'utilisateur au-delà de la clé de session. Vous pouvez notamment vérifier l'adresse IP habituelle de l'utilisateur ou ses habitudes d'utilisation des applications.
- Point d'accès public sans fil (hotspot) : Pour protéger l'intégrité de vos sessions, évitez d'utiliser le WiFi public et optez pour des réseaux sans fil sécurisés.
- VPN : Utilisez un réseau privé virtuel (VPN) pour rester à l'abri des pirates de session. Un VPN masque votre IP et protège votre session en créant un « tunnel privé » à travers lequel toutes vos activités en ligne seront chiffrées.
- Arnaques de type hameçonnage : Évitez de tomber dans le piège du phishing. Lorsque vous recevez un e-mail, vérifiez la légitimité de l’expéditeur avant de cliquer sur un lien.
Conclusion
Le détournement de session représente une menace réelle et les utilisateurs risquent en permanence d'être compromis. Pour réduire ces risques, les responsables de sites web disposent de plusieurs outils, comme l'implémentation de protocoles de sécurité. Ces protocoles de sécurité reposent principalement sur le chiffrement profond d’applications web entières afin de fermer l’ensemble des points d'entrée qui permettraient à des attaquants de détourner une session utilisateur.
Avec l'explosion des volumes de données en ligne et du nombre d’internautes au quotidien, les organisations doivent impérativement sécuriser leurs sites web. Faute de quoi, elles s'exposent à de lourdes sanctions au titre des réglementations mondiales sur la confidentialité des données.
Note : Cet article de blog a été écrit par un contributeur invité dans le but d'offrir une plus grande variété de contenus à nos lecteurs. Les opinions qui y sont exprimées sont uniquement celles de l’auteur et ne reflètent pas nécessairement la position de GlobalSign.