La notion de port ouvert et la sécurité


Dans cette article, nous aborderons la notion de port et la sécurité qui en découle. Une fois n'est pas coutume, cette article s'adresse aussi bien aux utilisateurs Windows qu'aux utilisateurs sous GNU/Linux.

  1. La notion de port et la sécurité
    1. Qu'est ce que sont les ports?
    2. Lister les ports ouverts
      1. Sous Windows
      2. Sous GNU/Linux
      3. Scannez votre ordinateur
    3. Fermer les ports ouverts

Qu'est ce que sont les ports?

Un port est un point d'entré à un service (service web, service dns, service mail,...) sur un équipement (pc, serveur,...) connecté à un réseau.
Concrètement chaque ordinateur possède un peu plus de 65000 ports.

Lorsque vous établissez une connexion, vous vous connectez à un port particulier où tourne un service : un serveur WEB, un serveur FTP, un serveur de messagerie instannée (MSN, AOL messenger, Yahoo! Messenger, etc..).
Cela permet à une seule machine de faire tourner plusieurs service, en donnant le port, l'ordinateur saura sur quel service vous désirez vous connecter.

capture ports
Listes des ports communs :
ixus.net
frameip.com

Comme vous pouvez le constater un port est ouvert par un programme qui est attende de connexion. Il convient donc de vérifier régulièrement les ports ouverts sur votre ordinateur puisque ces derniers peuvent être ouvert par des malwares, généralement des malwares que l'on appelle des backdoor (porte dérobée) puisqu'ils permettent la connexion à l'ordinateur et entre autre la prise de contrôle.

Cela rend aussi votre vulnérable dans le sens où le programme ouvrant le port peut souffrir de failles de sécurités, moins vous avez de ports ouverts moins vous risquez de vous faire hacker.

Lister les ports ouverts

Sous Windows
Pour lister les ports ouverts sous Windows, vous devez ouvrir un shell : Démarrer / executer / tapez cmd puis cliquez sur OK

Dans la nouvelle fenêtre, tapez la commande netstat -ano

Vous obtenez alors sous forme de liste les connexions établies (voir capture à gauche ci-dessous). La colonne :
  • Proto vous informe du protocole : TCP, UDP etc..
  • Local Address vous donne l'adresse locale (0.0.0.0 équivaut à toutes les adresses de l'ordinateur) suivi du port
  • Foreign Adress équivaut à l'adresse destante dans le cas d'une connexion établie.
  • State vous donne l'état :
    • LISTENING signifie en écoute, c'est donc un programme en attente de connexion
    • SYN_SENT pour les connexions en cours d'ouverture
    • ESTABLISHED pour les connexions établies
    • CLOSE_WAIT et TIME_WAIT pour les connexions en cours de fermeture
  • PID correspond au PID du programme responsable de la connexion ou de l'ouverture du port
Ce sont ici les lignes ayant dans leurs colonnes LISTENING qui nous interressent puisqu'elles vous donnent, pour connaître le programme succeptible d'ouvrir le port, vous devez ouvrir le gestionnaire de tâche :
  • Démarrer / executer / tapez taskmgr puis cliquez sur OK
  • Cliquez sur l'onglet Processus
  • Dans le cas où vous n'avez pas de colonne PID, cliquez sur le menu Affichage / Affichage des colonnes puis cochez PID
Il ne reste plus qu'à regarder le numéro PID correspondant à la ligne de ntestat
capture ports
Sous GNU/Linux
  • Ouvrez un terminal
  • tapez la commande : netstat -taupe |grep LISTEN

root@tuxgateway: ~$ netstat -taupe|grep LISTEN
tcp        0      0 *:2049                  *:*                     LISTEN     root       3006       2014/rpc.nfsd
tcp        0      0 *:4002                  *:*                     LISTEN     root       3021       2016/rpc.mountd
tcp        0      0 *:3335                  *:*                     LISTEN     eggdrop    1030325    23103/eggdrop
tcp        0      0 *:smux                  *:*                     LISTEN     root       2955       1984/snmpd
tcp        0      0 *:mysql                 *:*                     LISTEN     root       2305       1825/mysqld
tcp        0      0 localhost.localho:imap2 *:*                     LISTEN     root       1964       1640/couriertcpd
tcp        0      0 *:sunrpc                *:*                     LISTEN     root       1603       1395/portmap
tcp        0      0 *:www                   *:*                     LISTEN     root       3227       2038/apache
tcp        0      0 *:auth                  *:*                     LISTEN     root       2246       1774/gidentd
tcp        0      0 *:ftp                   *:*                     LISTEN     root       2962       2008/xinetd
tcp        0      0 *:ssh                   *:*                     LISTEN     root       2912       1990/sshd
tcp        0      0 *:921                   *:*                     LISTEN     root       2992       2011/rpc.statd
tcp        0      0 *:smtp                  *:*                     LISTEN     root       2653       1960/master

  • La première colonne affiche le protocole
  • Les colonnes de types : *:2049 affiche l'adresse locale suivi du port, ici * équivaut à toutes les adresses de la machine
  • la colonne *:* équivaut à n'importe quelle adresse destante sur n'importe quel port
  • la colonne LISTEN indique que le port local est en écoute, la colonne suivante indique l'utilisateur a partir duquel le programme ouvrant le port a été lancé
  • L'avant dernière colonne vous donne le PID du processus ayant ouvert le port
  • Enfin la dernière colonne vous donne le nom du processus ayant ouvert le port
Scannez votre ordinateur
Certains sites proposent de scanner votre ordinateur afin de vous lister les ports ouverts :
zebulon.fr
hackerwatch.org

Des programmes aussi permettent de scanner votre ordinateur, le plus connu étant Nmap

WWDC (Windows Worms Doors Cleaner) permet de voir d'un coup d'oeil si les ports utilisés par les vers les plus courant sont ouverts ou non sur la machine, et de les fermer en un clic

Télécharger WWDC
Vérifier les ports ouverts exploités par les vers
X-Netstat
est un logiciel sniffer, c.a.d. un outil qui permet d'observer le trafic sur un réseau par l'entremise d'une carte réseau ethernet ou d'une carte réseau sans fil, etc. et de capturer les informations qui y circulent. Son utilité est donc de diagnostiquer d'éventuels problèmes ou des processus suspects ou dit plus clairement, une attaque!

Télécharger X-Netstat
Observez le traffic réseau

Fermer les ports ouverts

Pour fermer les ports, il suffit simplement d'arrêter le programme qui l'ouvre. Si ce dernier se lance au démarrage de l'ordinateur, vous pouvez utiliser Msconfig pour le supprimer du démarrage : L'utilitaire Windows MsConfig

Sous GNU/Linux, ce sont généralement des dameons qui ouvrent des ports, arretez alors le daemond :
  • Sur des distributions de type Redhat/Mandrake : chkconfig <daemon> --level 234 off
  • sur des distributions de type Debian : update-rc.d <daemon> -f remove
Vous pouvez ensuite installer un firewall (pare-feu), un firewall est un programme qui filtre les connexions.