Les 5 principales techniques de balayage des ports

Ports

Imaginez un long couloir avec des portes de chaque côté. Il y a 131 082 portes au total. Celles de droites utilisent le protocole TCP, celles de gauche UDP. Certaines sont marquées mais la plupart ne le sont pas. Certaines sont dotées de verrous et de caméras de sécurité mais la plupart en sont dépourvues.
C’est ce que voit un cybercriminel lorsqu’il regarde un de vos ordinateurs, sauf qu’il peut regarder en même temps de nombreux couloirs différents et voir toutes les portes. Voyez-vous toutes les portes ? Certaines d’entre elles, peut-être ? Utilisez-vous les mêmes techniques de balayage des ports que les hackers pour voir où vous pouvez être vulnérable aux attaques ? Cela vaudrait mieux pour vous.

Qu’est-ce qu’un scanner de ports ?

Un scanner de port est un programme informatique simple qui contrôle toutes ces portes – que nous allons commencer à appeler « ports » – et qui apporte une réponse parmi trois possibles : Open, Closed ou Filtered.

Sur un ordinateur, il existe deux types de ports, les ports TCP et les ports UDP, et il y en a 65 536 de chaque.

Les 1024 premiers ports TCP sont des ports connus de type FTP(21), HTTP(80) ou SSH(22). Tout port au-delà de ces 1024-là peut être utilisé par des services ou applications.

Les hackers utilisent un scanner de ports pour détecter des points faibles potentiels à exploiter avec un malware ou un cheval de Troie, ou pour utiliser cet ordinateur pour se connecter à d’autres systèmes de votre réseau.

Comment fonctionne le balayage des ports ?

Le balayage des ports est assez simple : un scanner de ports envoie une demande de connexion à un port d’un ordinateur et enregistre la réponse.

ports scanning responses illustrated with descriptions

Il existe trois réponses possibles :

  1. Open, Accepted : l’ordinateur répond et demande s’il peut faire quelque chose pour vous.
  2. Closed, Not Listening : l’ordinateur répond que « Ce port est en cours d’utilisation et indisponible pour le moment » (This port is currently in use and unavailable at this time).
  3. Filtered, Dropped, Blocked : l’ordinateur ne prend pas la peine de répondre, il a d’autres chats à fouetter.

Les hackers sont à l’affût des ports ouverts qu’ils peuvent utiliser comme relais de communication ou vecteurs d’infiltration dans votre réseau. Tout port ouvert sur lequel ils parviennent à mettre la main constitue un point d’accès possible pour pénétrer dans votre réseau.

Passons en revue certaines des techniques de balayage de ports.

Balayage 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) – vous recherchez 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 pour voir qui répond.

Généralement, les administrateurs désactivent la commande ping sur le pare-feu ou le routeur. 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 des 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. Ce balayage est rapide 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. Le scanner n’établit jamais la communication en envoyant le ACK final : la cible est laissée en suspens.

Toute réponse SYN-ACK correspond à des connexions possibles : une réponse RST (reset) signifie que le port est fermé mais que l’ordinateur est actif. L’absence de réponse signifie que SYN est filtré sur le réseau. Toute réponse SYN-ACK offre un moyen rapide aux hackers de trouver leur prochaine cible potentielle.

Connexion TCP

Cette technique de balayage des ports est identique au balayage TCP Half-Open dans les grandes lignes, 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 TCP Half-Open. Pour commencer, vous devez envoyer un paquet supplémentaire par balayage, ce qui augmente la quantité de « bruit » envoyé sur le réseau.* Ensuite, le fait que vous établissiez la connexion avec la cible peut déclencher une alarme, contrairement au balayage Half-Open.

* Jargon technique : un programme « bruyant » est un programme qui envoie un nombre important de paquets sur le réseau. Vous pourrez également entendre parler de programme « bavard ».

UDP

UDP est l’autre moitié de notre « couloir ». Certains services standard tels que DNS, SNMP et DHCP utilisent des ports UDP à la place de ports TCP. Lorsque vous procédez à un balayage des ports UDP, vous envoyez soit un paquet vide soit un paquet contenant une charge différente pour chaque port, selon le cas.

Le piège avec un balayage UDP est que vous n’obtenez de réponse que si le port est fermé, ce qui indique la présence d’un ordinateur. Selon quel port vous a répondu, vous pouvez savoir qu’il exécute DNS ou SNMP, mais c’est à peu près tout. L’absence de réponse peut indiquer que le port est ouvert ou filtré. Plusieurs balayages peuvent alors être nécessaires pour en savoir plus sur la cible. Vous pouvez attendre un moment une réponse qui n’arrivera jamais.

Une utilisation plus logique d’un balayage UDP consiste à envoyer une requête DNS au port UDP 53 et à voir si vous obtenez une réponse DNS. Si vous obtenez une réponse, 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 port 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.

UDP n’intègre aucun contrôle d’erreur mais est plus rapide : c’est la raison pour laquelle les jeux et la vidéo en streaming utilisent souvent ce protocole. Les protocoles qui utilisent UDP se contentent d’envoyer des données, et si vous manquez un paquet, vous ne récupérerez jamais.

Pour ce qui est de choisir entre TCP et UDP, tout dépend de ce que vous recherchez : avez-vous besoin de données complètes ou de rapidité ? Si vous avez besoin de données complètes, utilisez TCP, si vous avez besoin de davantage de rapidité et si vous pouvez tolérer un certain degré de perte de données, utilisez UDP.

Balayage furtif

Il arrive qu’un hacker (qu’il soit bienveillant ou malintentionné) souhaite procéder à un balayage des ports encore plus discret et moins visible que les autres types de scan. Heureusement, TCP intègre certains flags (ou marqueurs) qui permettent de le faire.

Lorsque vous envoyez un balayage des ports avec un paquet et le flag FIN, vous envoyez le paquet et n’attendez pas de réponse. Si vous recevez un 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-feu 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 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 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 intercepter ces balayages. La mauvaise nouvelle, c’est que si l’ordinateur cible est équipé d’un OS Microsoft vous ne verrez que des ports fermés. Par contre, si vous trouvez un port ouvert, vous pouvez supposer 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.

Résumé imagé :

basic ports scanning techniques

Le balayage des ports et les tests de pénétration sont des éléments importants de la chaîne cybercriminelle qui peuvent déboucher sur des intrusions, des exploitations, des élévations de droits, et bien plus encore. Bien souvent, le balayage des ports n’est qu’un des nombreux aspects d’un piratage.

Lorsque vous enquêtez sur des incidents de sécurité des données, le contexte est essentiel : le fait de disposer d’informations détaillées sur l’emplacement en plus des données d’activité des fichiers peut, par exemple, aider à déterminer si l’accès aux fichiers a lieu depuis un emplacement connu ou inconnu. Varonis Edge ajoute le contexte apporté par les appareils situés sur le périmètre à la capacité de surveillance du serveur de fichiers, des e-mails et d’AD apportée par Varonis DatAdvantage. Cela peut faire toute la différence lorsqu’il s’agit d’identifier les comportements anormaux (mais acceptables) des utilisateurs ou de détecter un piratage en cours.

Obtenez une démonstration individuelle personnalisée pour voir comment Varonis peut apporter du contexte à vos enquêtes sur la sécurité des données et vous protéger à chaque étape de la chaîne du cyber-crime.