WebSocket Security Testing
devsecopsDéfinition
Le WebSocket Security Testing désigne les tests de sécurité spécifiques aux connexions WebSocket, protocole de communication bidirectionnel temps-réel (RFC 6455) utilisé dans les applications web modernes pour des fonctionnalités comme le chat en temps réel, les notifications push, les tableaux de bord live, et les applications collaboratives. Les WebSockets présentent des vecteurs d'attaque différents des requêtes HTTP classiques car ils maintiennent une connexion persistante bidirectionnelle après le handshake HTTP initial. Les vulnérabilités spécifiques aux WebSockets incluent : le Cross-Site WebSocket Hijacking (CSWSH — analogue CSRF pour WebSockets : un site malveillant peut initier une connexion WebSocket vers l'application cible en utilisant les cookies de session de la victime, puisque les WebSockets ne sont pas soumis à la Same-Origin Policy pour l'initiation de connexion), les injections via les messages WebSocket (les messages envoyés via WebSocket peuvent contenir des payloads d'injection SQL, XSS, ou de commandes si les données ne sont pas validées côté serveur), l'absence d'authentification sur les endpoints WebSocket (distinct de l'authentification HTTP, le serveur WebSocket doit re-valider l'identité après le handshake), et les DoS par connexions massives ou messages surdimensionnés (sans limite sur le nombre de connexions ou la taille des messages). Les outils de test de sécurité WebSocket incluent : Burp Suite Professional (qui intercepte et modifie les messages WebSocket via son interface graphique, et permet le fuzzing de messages WebSocket), OWASP ZAP (WebSocket extension permettant l'interception et la modification des messages), wscat (client WebSocket CLI pour les tests manuels), et socket.io-parser-fuzzer (fuzzing spécifique aux connexions Socket.io). La sécurisation des WebSockets nécessite : validation de l'en-tête Origin lors du handshake (pour prévenir le CSWSH), ré-authentification du client après le handshake (en ne se fiant pas uniquement aux cookies de session HTTP), validation de tous les messages reçus (validation du schéma JSON, limitation de taille), rate limiting des messages, et chiffrement TLS (wss:// obligatoire, jamais ws:// en production).
Cross-Site WebSocket Hijacking (CSWSH)
Le CSWSH est la vulnérabilité WebSocket la plus répandue : un site malveillant crée une connexion WebSocket vers wss://target.app/ws avec les cookies de session de la victime (les WebSockets incluent automatiquement les cookies lors du handshake HTTP initial, contrairement aux fetch() soumis à la SOP). Si le serveur ne valide pas l'en-tête Origin, il accepte la connexion, donnant au site malveillant accès à toutes les données WebSocket de la session. Correction : valider que l'en-tête Origin du handshake correspond à une liste d'origines autorisées (allowlist), sinon rejeter le handshake avec 403.
Test avec Burp Suite Professional
Burp Suite Professional intercepte nativement les connexions WebSocket : l'onglet "WebSockets history" liste tous les messages échangés, permettant de les inspecter et modifier. Le module Repeater permet de rejouer des messages WebSocket modifiés (insertion de payloads XSS, SQL, commandes). Pour tester le CSWSH, Burp propose un outil de génération de PoC CSRF qui génère une page HTML démontrant l'hijacking de connexion WebSocket. OWASP ZAP offre des fonctionnalités similaires via son extension WebSocket dans les versions récentes.
Validation des messages WebSocket côté serveur
Chaque message WebSocket reçu par le serveur doit être traité comme une entrée non fiable : validation du schéma JSON (type des champs, valeurs attendues), limitation de la taille des messages (rejeter les messages dépassant une taille maximale configurable), validation du type du message (seuls les types de messages attendus sont acceptés), et application des mêmes contrôles de sécurité (autorisation, validation, encodage) que pour les requêtes HTTP. Les bibliothèques WebSocket (ws pour Node.js, websockets pour Python) n'incluent aucune validation de sécurité par défaut — toute la validation est responsabilité du développeur.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h