Scanner de ports : description et fonctionnement techniques de balayage de ports. Les scanners de ports sont des outils essentiels pour les Red Team comme pour les Blue Team. Dans cet article de blog, nous allons nous pencher sur leur fonctionnement.
Découvrez vos points faibles et renforcez votre résilience : Effectuez un Test de Préparation à la Ransomware Gratuit
Un scanner de ports est un programme informatique qui analyse les ports réseau pour déterminer leur statut : ouvert, fermé ou filtré. Ces outils sont très utiles pour diagnostiquer un problème de réseau ou de connectivité. Toutefois, ils permettent aussi aux attaquants de détecter des points d’infiltration possibles et d’identifier les appareils utilisés sur votre réseau, comme les pare-feu, serveurs proxy ou serveurs VPN. Cet article explique tout ce que vous devez savoir sur les scanners de ports. Il aborde notamment les sujets suivants :
- Fonctionnement d’un scanner de ports
- Techniques de balayage de ports
- Outils de balayage de ports
- Comment détecter un balayage de ports
- Intérêt du balayage de ports
Comment fonctionne un scanner de ports ?
Un scanner de ports envoie une demande de connexion à un port TCP ou UDP d’un ordinateur et enregistre la réponse. Il envoie donc un paquet de données réseau à un port pour en contrôler le statut. Par exemple, pour vérifier si votre serveur Web fonctionne correctement, vous devez contrôler le statut du port 80 de ce serveur pour vous assurer qu’il est ouvert et à l’écoute. Cette information permet aux ingénieurs réseau de diagnostiquer les problèmes de réseau et de connectivité applicative, mais aussi aux attaquants de localiser les ports pouvant leur permettre de s’infiltrer dans votre réseau.
Qu’est-ce qu’un port ?
Résumé grossièrement, un port est un emplacement virtuel au niveau duquel les communications commencent et se terminent. Avant d’entrer dans le détail, intéressons-nous au contexte dans lequel s’inscrivent les ports. Chaque ordinateur dispose de 131 082 ports, répartis en nombre égal entre deux catégories :
- les ports TCP et UDP.
Chaque ordinateur dispose aussi d’une adresse IP (Internet Protocol) qui permet au réseau de savoir à quel ordinateur envoyer les paquets. Lorsque vous envoyez un paquet à une adresse IP, l’ordinateur sait vers quel port l’acheminer en fonction de l’application utilisée ou du contenu du paquet. Chaque service s’exécutant sur l’ordinateur doit « écouter » un port spécifique. Les 1 023 premiers ports TCP sont dédiés aux applications les plus connues comme FTP (21), HTTP (80) ou encore SSH (22). L’Internet Assigned Numbers Authority (IANA) a réservé ces ports pour normaliser leur utilisation. Les ports TCP 1024 à 49151 peuvent être utilisés par des services ou applications, et vous pouvez les enregistrer auprès de l’IANA pour qu’ils soient considérés comme semi-réservés. Les ports 49152 et suivants sont totalement libres.
Bases du balayage de ports
Un scanner de ports envoie un paquet réseau TCP ou UDP demandant à un port quel est son statut. Trois réponses sont possibles :
- Ouvert, accepté : l’ordinateur répond et demande s’il peut faire quelque chose pour vous.
- Fermé, n’écoute pas : l’ordinateur répond que le port est en cours d’utilisation et indisponible pour le moment.
- Filtré, ignoré, bloqué : l’ordinateur ne répond pas du tout.
Les balayages de ports interviennent en général tôt dans la chaîne du cybercrime, à savoir pendant la reconnaissance et l’intrusion. Ils permettent aux hackers de détecter des cibles disposant de ports ouverts et non utilisés qu’ils peuvent exploiter pour infiltrer le réseau, transmettre des informations de commande et contrôle, exfiltrer des données ou déterminer quelles applications sont exécutées sur l’ordinateur afin de tirer parti de leurs vulnérabilités.
Techniques de balayage de ports
Nmap compte parmi les outils de balayage de ports open source les plus populaires. Il propose différentes techniques de balayage adaptées à divers scénarios.
Scan par ping
Le plus simple des balayages de ports est le scan par ping. Un ping est une requête echo Internet Control Message Protocol (ICMP) permettant de rechercher n’importe quelle réponse ICMP indiquant que la cible est accessible. Un balayage par ping est un envoi massif de requêtes echo ICMP à différentes cibles permettant de voir qui répond. En réalité, il ne s’agit pas vraiment d’un balayage de ports, car le ping permet seulement de savoir si un ordinateur est effectivement présent derrière la combinaison d’adresse IP et de port que vous avez indiquée. Toutefois, il s’agit en général de la première tâche à effectuer avant un balayage en bonne et due forme. Généralement, les administrateurs désactivent la commande ping sur le pare-feu ou le routeur pour le trafic externe, mais la conservent pour le trafic interne. La désactivation de cette fonctionnalité est simple et rapide, et interdit l’utilisation de cette méthode pour explorer le réseau. Toutefois, le ping est un bon outil de dépannage et sa désactivation complique un peu la recherche des problèmes sur le réseau.
TCP Half Open
Une des techniques de balayage de ports les plus courantes et les plus prisées est le balayage de ports TCP Half-Open, parfois aussi appelée balayage SYN. Cette méthode rapide et rusée tente de trouver d’éventuels ports ouverts sur l’ordinateur cible. Les paquets SYN demandent une réponse à l’ordinateur, qui prend la forme d’un paquet ACK. Dans le cadre d’une transaction TCP classique, un paquet SYN est envoyé, le service renvoie un paquet ACK, puis un message de confirmation ACK est envoyé. Ce balayage est rapide et difficile à détecter, car il ne va jamais au bout du handshake TCP en 3 temps. Le scanner envoie un message SYN et note simplement les réponses SYN-ACK. Il n’établit jamais la communication en envoyant le paquet ACK final : la cible est laissée en suspens. Chaque réponse SYN-ACK correspond à un port potentiellement ouvert. Une réponse RST(reset) signifie que le port est fermé, mais qu’un ordinateur disposant de cette adresse est actif. L’absence de réponse signifie que les paquets SYN sont filtrés sur le réseau. L’absence de réponse ICMP (ping) est également considérée comme une réponse filtrée. Les balayages TCP Half-Open constituent le mode par défaut dans NMAP.
TCP Connect
Cette technique de balayage de ports est identique au balayage TCP Half-Open, mais au lieu de laisser la cible en suspens, le scanner de ports établit la connexion TCP. Cette méthode est moins utilisée que le balayage TCP Half-Open et ce, pour plusieurs raisons. Tout d’abord, vous devez envoyer plusieurs paquets par balayage, ce qui vous fait perdre en discrétion sur le réseau. Ensuite, vous allez jusqu’au bout de la connexion avec la cible, ce qui risque de déclencher une alerte que ne déclencherait pas un balayage Half-Open. Les systèmes cibles auront plus tendance à enregistrer une connexion TCP complète. De même, les systèmes de détection des intrusions ont plus de chances de générer une alerte lorsque plusieurs connexions TCP proviennent du même hôte. Cette méthode présente toutefois un avantage : un utilisateur n’a pas besoin du même niveau de privilèges que pour réaliser un balayage Half-Open Les balayages TCP Connect utilisent les protocoles de connexion dont doit disposer tout utilisateur qui a besoin de se connecter à d’autres systèmes.
UDP
Les balayages UDP sont plus lents que les balayages TCP, mais il existe de nombreux services UDP exploitables par les attaquants, notamment l’exfiltration DNS. Par conséquent, les ports UDP doivent être aussi bien protégés que leurs équivalents TCP. Les balayages UDP sont plus efficaces lorsqu’une charge utile spécifique est envoyée à la cible. Par exemple, pour savoir si un serveur DNS est actif, envoyez une demande DNS. Pour d’autres ports UDP, le paquet envoyé est vide. Une réponse de type « non atteignable » à un paquet ICMP signifie que le port est fermé ou filtré. Si un service est en cours d’exécution, vous pouvez recevoir une réponse UDP. Cela signifie que le port est ouvert. Une absence de réponse peut vouloir dire que le port est ouvert ou filtré. Une utilisation plus logique d’un balayage UDP consiste à envoyer une requête DNS au port UDP 53 pour voir si vous obtenez une réponse DNS. Dans l’affirmative, vous savez qu’un serveur DNS est présent sur cet ordinateur. Un balayage UDP peut être utile pour découvrir quels services sont actifs, et le scanner de ports Nmap est préconfiguré de manière à envoyer des requêtes à de nombreux services standard.
Différence entre TCP et UDP
TCP et UDP sont deux des protocoles les plus couramment utilisés sur les réseaux IP (Internet Protocol). TCP (Transmission Control Protocol) est un protocole de transaction bien ordonné : il envoie chaque paquet dans l’ordre en procédant à un contrôle d’erreur, à une vérification et à un handshake en 3 temps pour confirmer la réussite de chaque paquet. L’UDP n’intègre aucun contrôle d’erreur, mais est en général plus rapide : c’est la raison pour laquelle les jeux en ligne et la vidéo en streaming utilisent souvent ce protocole. UDP est un protocole sans connexion. Ainsi, les programmes qui utilisent UDP se contentent d’envoyer des données, et si vous manquez un paquet, vous ne le récupérerez jamais.
Balayage furtif
Certains ports sont plus faciles à détecter que les autres : il est donc important de connaître les flags TCP qui permettent aux attaquants de rendre difficile la détection de leurs balayages. Lorsque vous envoyez un balayage de ports avec un paquet et le flag FIN, vous envoyez le paquet sans attendre de réponse. Si vous recevez un paquet RST, vous pouvez supposer que le port est fermé. Si vous ne recevez rien en retour, cela signifie que le port est ouvert. Les pare-feux recherchant les paquets SYN, les paquets FIN ne sont pas détectés. Le balayage X-MAS envoie un paquet avec les flags FIN, URG et PUSH et attend un paquet RST ou aucune réponse, tout comme le balayage FIN. Ce balayage a peu d’applications pratiques, mais grâce à lui, le paquet ressemble à un arbre de Noël, alors c’est déjà ça. Vous pouvez aussi envoyer des paquets sans flag (un paquet NULL), et la réponse est soit un paquet RST, soit rien. L’avantage de ces balayages (pour le hacker), c’est qu’ils n’apparaissent généralement pas dans les journaux. Un logiciel de détection des intrusions (IDS) plus récent et, bien sûr, WireShark, pourront toutefois les intercepter. La mauvaise nouvelle, c’est que si l’ordinateur cible est équipé d’un système d’exploitation Microsoft, vous ne verrez que des ports fermés. En revanche, si vous trouvez un port ouvert, vous pouvez partir du principe qu’il ne s’agit pas d’une machine sous Windows. Le principal avantage de l’utilisation de ces flags est qu’ils peuvent franchir le pare-feu, ce qui rend les résultats plus fiables.
Autres techniques de balayage
Les balayages que nous avons évoqués sont les plus couramment utilisés, mais notre liste n’a rien d’exhaustif. En voici d’autres exemples, dont nous expliquons l’intérêt :
- Balayage TCP ACK : pour cartographier les règles du pare-feu
- Balayage TCP Window : permet de différencier les ports ouverts des ports fermés sur un nombre limité de systèmes
- –scanflags : argument réservé aux utilisateurs avancés de Nmap qui souhaitent envoyer des flags TCP personnalisés lors d’un balayage
Outils de balayage de ports
Comment détecter un balayage de ports ?
Les balayages de ports constituent potentiellement des recherches de vulnérabilités sur votre réseau, mais il existe plusieurs méthodes pour les détecter. La première est l’installation d’une application logicielle dédiée, comme PortSentry ou Scanlogd. Netcat inclut quant à lui diverses fonctionnalités liées aux balayages de ports, ainsi que la possibilité de créer un serveur de chat simple ou de programmer divers paquets à des fins de test. Les systèmes de détection des intrusions permettent eux aussi de détecter les balayages de ports. Choisissez un système qui recourt à de nombreuses règles afin de pouvoir détecter les différents types de balayages. Ces règles ne doivent pas reposer uniquement sur des seuils.
Pourquoi effectuer un balayage de ports ?
Réalisez un balayage de ports de manière proactive afin de détecter et combler les vulnérabilités que les attaquants pourraient exploiter. Il s’agit d’une bonne habitude à prendre, qu’il convient de renouveler régulièrement. Passez en revue et auditez tous les ports ouverts pour vous assurer qu’ils sont utilisés correctement et que les applications qui ont besoin de ports ouverts sont sécurisées et protégées contre les vulnérabilités connues.
Implications de l’exécution d’un balayage de ports
Le balayage de ports peut poser certains problèmes. Il peut par exemple entraîner un dysfonctionnement de certains services ou ordinateurs. Ce souci concerne davantage les systèmes internes que ceux connectés à Internet, mais il existe néanmoins. L’exécution de balayages de ports sans autorisation peut être considérée comme une agression. Sur un réseau partagé, vous pouvez balayer les ports d’un système qui ne vous appartient pas, ce qui n’est pas correct. Les balayages de ports constituent une facette essentielle d’une stratégie efficace de défense contre les cyberattaques. Les attaquants ont toutefois eux aussi recours à cette technique. Vous devez les prendre de vitesse et éliminer un maximum de vecteurs d’attaque pour leur rendre la tâche aussi difficile que possible. La protection du périmètre ne suffit pas. Vous devez protéger et surveiller vos données avec la même vigilance que vos ports. La plateforme Varonis de sécurité des données vous aide à protéger vos données en créant des obstacles internes qui bloquent l’accès à vos données les plus sensibles et en surveillant toutes les activités pouvant concerner ces données. Découvrez notre atelier de cyberattaque en laboratoire pour découvrir en direct comment Varonis protège les données contre différents types d’attaques.
Que dois-je faire maintenant ?
Vous trouverez ci-dessous trois solutions pour poursuivre vos efforts visant à réduire les risques liés aux données dans votre entreprise:
Planifiez une démonstration avec nous pour voir Varonis en action. Nous personnaliserons la session en fonction des besoins de votre organisation en matière de sécurité des données et répondrons à vos questions.
Consultez un exemple de notre évaluation des risques liés aux données et découvrez les risques qui pourraient subsister dans votre environnement. Cette évaluation est gratuite et vous montre clairement comment procéder à une remédiation automatisée.
Suivez-nous sur LinkedIn, YouTube et X (Twitter) for pour obtenir des informations sur tous les aspects de la sécurité des données, y compris la DSPM, la détection des menaces, la sécurité de l’IA et plus encore.