Qu’est-ce que le scan de ports ?
Dans les réseaux informatiques, un « port » est un concept abstrait qui sert à identifier le point d’accès réseau d’un processus ou d’un service spécifique exécuté sur un ordinateur. Chaque port possède un numéro unique, compris entre 0 et 65535, qui permet à l’ordinateur de savoir à quelle application envoyer les données reçues.
Tu peux imaginer un ordinateur comme un grand immeuble, et les ports comme les numéros des portes des pièces à l’intérieur. Parmi les « numéros de porte » courants, on trouve : le service Web HTTP utilise généralement le port 80, le Web sécurisé HTTPS utilise le port 443, et le service de messagerie SMTP utilise le port 25. Lorsqu’un paquet de données arrive sur l’ordinateur, le système le « livre » précisément au service ou à l’application correspondant, en fonction du numéro de port.
Qu’est-ce que le scan de ports ?
Le scan de ports consiste à envoyer des paquets de données spécifiques vers les différents ports d’une machine cible, puis à déterminer quels ports sont ouverts ou fermés en fonction des réponses reçues. C’est comme si quelqu’un frappait une à une aux portes d’un immeuble depuis l’extérieur, afin de savoir quelles pièces sont occupées et lesquelles sont vides selon qu’une personne répond ou non.
Le scan de ports est en soi une technologie neutre : les administrateurs réseau l’utilisent pour vérifier les vulnérabilités de sécurité d’un système, les testeurs d’intrusion l’utilisent pour évaluer les capacités de protection d’un système, tandis que les attaquants peuvent l’utiliser pour rechercher un point d’entrée en vue d’une intrusion.
Comment un site Web peut-il effectuer un scan de ports dans un navigateur ?
Cela peut sembler étrange : comment une simple page Web pourrait-elle scanner les ports de ton ordinateur ? Cela repose sur certains mécanismes de fonctionnement du navigateur.
Méthode de scan basée sur le temps
Les premières techniques de scan de ports depuis le navigateur reposaient sur des « attaques par mesure du temps ». Lorsqu’une page Web envoie une requête vers un port via XMLHttpRequest ou fetch :
Si le port est fermé, le navigateur reçoit immédiatement une réponse de type « connexion refusée », et la requête échoue rapidement
Si le port est ouvert, le navigateur attend la réponse du serveur, ce qui prend plus de temps
En mesurant le temps de réponse de la requête, le site Web peut déduire quels ports sont ouverts. Toutefois, cette méthode est fortement affectée par les fluctuations du réseau, et sa précision reste limitée.
Méthode de scan basée sur les iframe
Des chercheurs ont ensuite découvert une technique plus fiable, principalement ciblée sur le navigateur Chrome. Lorsque Chrome tente de se connecter à un port fermé, le navigateur modifie l’adresse de la page en chrome-error://chromewebdata/. En exploitant cette caractéristique :
Le site Web crée une iframe masquée et charge l’adresse cible (par exemple http://127.0.0.1:8080)
Si le port est fermé, l’événement onload de l’iframe est déclenché deux fois (car l’URL a changé)
Si le port est ouvert, l’événement onload n’est déclenché qu’une seule fois
En comptant le nombre de déclenchements de l’événement onload, le site Web peut déterminer avec précision si le port est ouvert ou non.
Méthode de scan basée sur WebSocket
Certains outils utilisent également les connexions WebSocket pour détecter l’état des ports : une connexion réussie signifie que le port est ouvert, tandis qu’un échec de connexion signifie qu’il est fermé.
Pourquoi les sites Web scannent-ils tes ports ?
1. Lutte contre la fraude et détection des robots
De nombreux grands sites Web (y compris certains sites de services gouvernementaux et plateformes de commerce en ligne) utilisent le scan de ports pour vérifier si l’utilisateur est une personne réelle. Par exemple, certains systèmes anti-robots tentent de se connecter à 127.0.0.1:8888 : il s’agit du port proxy par défaut d’outils de test de sécurité comme Burp Suite. Si ce port est détecté comme ouvert, le système peut soupçonner que le visiteur est un chercheur en sécurité ou un script automatisé, et déclencher ainsi une vérification supplémentaire.
2. Suivi par empreinte utilisateur
Des recherches montrent que les résultats d’un scan de ports effectué depuis le navigateur sont suffisamment uniques pour servir de moyen de suivi des utilisateurs. En détectant les ports ouverts localement, un site Web peut déduire quels logiciels l’utilisateur exécute : par exemple, l’ouverture des ports 80 ou 443 peut indiquer qu’un serveur Web est en cours d’exécution, tandis que l’ouverture du port 25 peut indiquer qu’un serveur de messagerie fonctionne. Les combinaisons de logiciels installés varient énormément d’un utilisateur à l’autre, ce qui constitue une « empreinte logicielle » unique.
Plus préoccupant encore, certaines études montrent que même un scan d’une seule seconde peut générer une empreinte de ports présentant un degré élevé d’unicité. Lorsque les résultats du scan de ports sont combinés à d’autres techniques d’empreinte (comme l’empreinte Canvas, l’empreinte WebGL, etc.), la capacité de suivi est encore renforcée.
3. Détection des appareils du réseau interne
La plupart des navigateurs autorisent par défaut les sites Web publics à envoyer des requêtes vers des adresses IP privées (comme 127.0.0.1 ou 192.168.x.x). Cela signifie qu’un site malveillant peut non seulement scanner les ports locaux de ton ordinateur, mais aussi ceux des appareils de ton réseau interne, comme ton routeur domestique, ta télévision connectée ou tes caméras réseau, afin de rechercher des appareils potentiellement vulnérables à attaquer.
Comment se protéger contre le scan de ports dans le navigateur ?
1. Utiliser des extensions de navigateur
uBlock Origin : dans la section « Confidentialité » des paramètres, coche l’option « Bloquer les intrusions externes dans le réseau local » pour l’activer
NoScript : propose une option permettant de bloquer l’accès au réseau local
Certaines extensions de protection spécialisées peuvent également empêcher les sites Web de scanner les ports locaux
2. Utiliser un navigateur avec protection intégrée
Certains navigateurs intègrent déjà des fonctionnalités de protection contre le scan de ports. Par exemple, certains navigateurs bloquent activement les scripts de scan malveillants connus et limitent l’accès des sites Web publics aux ressources locales. Des navigateurs comme Chrome déploient également progressivement la norme « Private Network Access », qui exige qu’un site obtienne l’autorisation de l’utilisateur avant d’accéder aux ressources locales.
3. Utiliser un navigateur anti-empreinte
Pour les utilisateurs ayant des besoins plus élevés en matière de confidentialité, les navigateurs anti-détection offrent une solution de protection plus complète. Ces outils peuvent simuler différents états de ports, empêchant ainsi les sites Web d’obtenir les véritables résultats du scan de ports, et protégeant efficacement la confidentialité de l’empreinte de ton appareil.
Conclusion
Le scan de ports est une technologie qui peut être utilisée aussi bien pour des audits de sécurité légitimes que détournée à des fins d’atteinte à la vie privée. Comprendre son fonctionnement et ses risques potentiels constitue la première étape pour protéger sa cybersécurité. Comme le dit un vieil adage du domaine de la sécurité : « Ce n’est qu’en sachant où tes ‘ portes ’ sont ouvertes que tu sais lesquelles fermer. »
