Balayage de port

Un article de Wikipédia, l'encyclopédie libre.

Le balayage de port en informatique, appelé portscan en anglais, est une technique pour rechercher les ports ouverts chez un hôte du réseau. Elle est souvent utilisée par les administrateurs pour contrôler la sécurité des hôtes de leurs réseaux, et par les pirates informatique pour tenter de la compromettre. Un balayage de port effectué sur un système tiers est généralement considéré comme tentative d'intrusion dans la mesure où un balayage de port sert souvent à préparer une intrusion.

Le balayage de ports est une des activités considérées comme suspectes par un Système de détection d'intrusion. Celui-ci peut être réglé à différents niveaux de sensibilité. Un niveau de sensibilité haut génèrera plus de fausses alertes, un niveau de sensibilité bas risque de laisser passer les balayages effectués avec les options "paranoïaques" des outils comme Nmap.

Pour tromper la vigilance des systèmes de détection, les balayages peuvent se faire dans un ordre aléatoire, avec une vitesse excessivement lente, ou à partir de plusieurs adresses IP.

Les balayages de ports se font usuellement sur le protocole TCP; néanmoins certains logiciels permettent aussi d'effectuer des balayages UDP. Cette dernière fonctionnalité est néanmoins beaucoup moins fiable, UDP étant orienté sans connexion, par conséquent le service ne répondra que si la requête correspond à un modèle précis variant selon le logiciel serveur utilisé.

Sommaire

[modifier] Techniques

[modifier] TCP

Un balayage de ports vise typiquement le protocole TCP car c'est celui qui est utilisé par la majorité des applications. L'objectif est de savoir si un logiciel est en écoute sur un numéro de port donné ou non. Si un logiciel écoute on dit que le port est ouvert, sinon on dit qu'il est fermé. Le balayage d'un port se passe en deux étapes :

  1. Envoi d'un paquet sur le port testé
  2. Analyse de la réponse

Il existe de nombreuses variantes pour le paquet émis. Il y a le paquet valide selon la norme TCP, le paquet « TCP SYN », et les paquets invalides. L'intérêt des paquets non standards est de tromper les systèmes de détection d'intrusion pour passer inaperçu. Liste de paquets invalides :

  • ACK
  • FIN
  • Mainon[1] (FIN/ACK)
  • NULL (aucun)
  • Xmas[2] (tous)
  • Window (ACK)

Le serveur peut répondre de différentes manières :

  1. Ouverture de connexion acceptée : envoi d'un paquet TCP SYN/ACK
  2. Fermeture de la connexion : envoi d'un paquet TCP RST
  3. Absence de réponse : on dit que le paquet est droppé

Une connexion acceptée indique clairement que le port est ouvert. En réponse à un paquet TCP SYN, le paquet TCP RST indique que le port est fermé. L'absence de réponse est souvent due à un pare-feu qui vise à contrer le balayage de port. Le pare-feu peut détecter le trafic anormal et décider d'ignorer tous les paquets provenant de notre machine pendant un temps donné. On ne peut donc pas savoir avec certitude si le port est ouvert ou fermé.

La technique Window envoie un paquet TCP ACK et observe la taille de la fenêtre TCP du paquet de réponse (TCP RST). Si le port est fermé, la fenêtre de la réponse est nulle.

La technique Mainon est utilisée sur les systèmes BSD. Uriel Maimon a constaté que ces systèmes ignorent un paquet TCP FIN/ACK (invalide) si le port est ouvert au lieu d'envoyer la réponse TCP RST.

[modifier] Autres techniques pour TCP

Une autre technique est de passer par un serveur FTP. On utilise la fonctionnalité de proxy des serveurs FTP pour balayer les ports.

Dernière technique : idlescan qui utilise la fragmentation du protocole IP. Un système de détection d'intrusion pense que l'analyse provient d'un hôte zombi. Consultez l'article (en) Idle Scanning and Related IPID Games pour les détails.

[modifier] UDP et IP

Pour le protocole UDP, on envoie un paquet UDP vide (de longueur nulle). Si le port est fermé, un message ICMP de type 3 (destinataire inaccessible) et code 3 est envoyé.

Il est également possible de lister les protocoles IP supportés par un hôte. On appelle cette technique IP protocol scan.

[modifier] Version du logiciel

On peut détecter le système d'exploitation et sa version par la prise d'empreinte de la pile TCP/IP. Un logiciel tel que Nmap permet également de détecter le nom du logiciel écoutant sur un port voire même sa version.

[modifier] Discrétion

Pour éviter qu'un système de prévention d'intrusion ou un pare-feu ne perturbe le balayage de port, on peut espacer les échanges dans le temps. Une analyse discrète peut s'étaler sur plusieurs jours par exemple.

[modifier] Balayeurs de port en ligne

[modifier] Balayeurs de port hors ligne

[modifier] Références

  1. Le nom de la technique Mainon porte le nom de son auteur : Uriel Maimon. Elle a été publiée dans le magazine électronique Phrack numéro 49
  2. Le nom de la technique Xmas ou christmas, noël en anglais, a été donné en hommage à l'attaque du serveur de Tsutomu Shimomura par Kevin Mitnick le Noël 1994. Lire l'article sur Kevin Mitnick pour les détails.

[modifier] Voir aussi

[modifier] Liens externes