L`analyse des ports

publicité
Avant de commencer
Avant de débuter cet exposé sur l’analyse des ports, je vais vous expliquer quelques termes,
quelques notions dont nous allons avoir besoin pour être à même de comprendre en quoi
consiste le balayage de ports.
Le protocole IP
L’Internet Protocole est un protocole de communication en matière de réseau informatique.
Conçu pour Internet, il permet un adressage unique pour les différentes machines connectées.
Le protocole IP fait partie de la 3ème couche du modèle OSI.
Le protocole TCP
TCP pour protocole de contrôle de transmissions, c’est un protocole de transport fiable. Les
applications envoient des flux de données et le protocole TCP les découpe en segments pour
mieux les acheminer. Le protocole TCP fait partie de la 4ème couche du modèle OSI.
Le protocole UDP
UDP pour protocole de datagramme utilisateur, c’est un protocole de télécommunication
utilisé par Internet. Moins fiable que le TCP, l’UDP ne nécessite pas d’authentification, nous
ne sommes pas sûrs que les données soient bien arrivées, chez qui elles sont arrivées et en
combien d’exemplaires. Le protocole UDP permet donc lui aussi de transporter des données et
se trouve sur la 4ème couche du modèle OSI.
Le pare-feu
Un pare-feu est un logiciel qui régit les différents niveaux de sécurité au niveau d’un réseau :
c’est-à-dire les différentes connexions reliant le réseau privé au réseau public, les différents
paquets qui peuvent passer.
Le modèle OSI
Le modèle OSI est un système d’interconnexion en réseau, un modèle de communication
entre ordinateurs. Il régit les différentes fonctions pour la communication et l’organisation
d’un réseau.
PERSEO Benoît
6ème U
ECCSA 2011-2012
L’analyse de ports
L’analyse de port – ou balayage de port – est une technique informatique visant à rechercher
les ports ouverts d’une machine (ordinateur, serveur, …). Utilisé majoritairement par deux
catégories de personnes : le balayage de port servira aux administrateurs réseaux afin de
vérifier la sécurité de leur réseau, leur serveur ou alors permettra aux pirates informatiques de
préparer une intrusion sur une machine en tentant de trouver une faille dans le système
informatique.
Le balayage de port est considéré comme une tentative d’intrusion par les pare-feu. Selon le
niveau sur lequel ce dernier est réglé, il détectera oui ou non les intrusions. Avec un
programme spécialisé dans le scan de ports tel que NMAP, il n’est pas toujours facile de
détecter une intrusion car ce programme possède beaucoup de caractéristiques permettant le
camouflage du balayage. Par exemple, un scan peut s’effectuer très lentement (jusqu’à
plusieurs jours) et dans un ordre aléatoire avec plusieurs adresse IP, la machine victime armée
de son pare-feu n’y verra que du feu.
Qu’est-ce qu’un port ?
Un port est comme une adresse web. Quand vous souhaitez vous rendre sur un site Internet,
vous tapez son adresse et vous y êtes redirigé. Pareil pour les ports, imaginons que l’adresse
du site corresponde au port 80, alors en me rendant sur le port 80, je serai redirigé vers le
service, le protocole adéquat. Cela permet de distingué les différentes connexions possibles
sur un ordinateur. Le port fait partie de la 4ème couche du modèle OSI qui est la couche de
transport.
Voici une liste non-exhaustive de ports :
• 20/21, pour l'échange de fichiers via FTP
• 22, pour l'accès à un shell sécurisé Secure SHell, également utilisé pour l'échange de fichiers
sécurisés SFTP
• 23, pour le port telnet
• 25, pour l'envoi d'un courrier électronique via un serveur dédié SMTP
• 53, pour la résolution de noms de domaine en adresses IP : DNS
• 67/68, pour la connexion au DHCP
• 80, pour la consultation d'un serveur HTTP par le biais d'un Navigateur web
• 110, pour la récupération de son courrier électronique via POP
• 143, pour la récupération de son courrier électronique via IMAP
• 389, pour la connexion à un LDAP
• 443, pour les connexions HTTP utilisant une surcouche de sécurité de type SSL : HTTPS
• 500, port utilisé pour le canal d'échange de clés IPsec
• 636, pour l'utilisation d'une connexion à un LDAP sécurisé par une couche SSL/TLS
• 1723, pour l'utilisation du protocole de VPN PPTP
• 3306, serveur de base de données MySQL
• 3389, pour le RCP de microsoft (Remote connection protocol)
• 6667, pour la connexion aux serveurs IRC
• 25565, pour les serveurs Minecraft
PERSEO Benoît
6ème U
ECCSA 2011-2012
Un port à plusieurs états :
 Ouvert : On dira d’un port qu’il est ouvert s’il accepte des connexions TCP ou des paquets
UDP. C’est ce que l’on recherche lorsqu’on fait un balayage de port. Toute personne se
souciant un tant soit peu de la sécurité informatique et plus particulièrement de son réseau
sait qu’un port ouvert est un point faible dans un réseau et permet facilement des attaques.
 Fermé : Un port fermé reste tout de même accessible – il répond aux paquets qu’on lui envoie
– mais il n’y a pas d’application possible. C’est avec cet état qu’on va pouvoir déterminer l’OS.
On pourrait bloquer ce genre de ports à l’aide d’un pare-feu mais ils ne seraient alors plus
« fermés » mais « filtrés ».
 Filtré : Comme dit précédemment, si un pare-feu bloque certains ports, ils seront filtrés. C’est
ce qui arrive quand le logiciel de balayage de ports ne peut déterminer si un port est ouvert ou
non.
 Non-filtré : On obtiendra ce genre de réponse lorsque l’on utilisera la technique de balayage
ACK, c’est lorsque le logiciel n’arrive pas à déterminer si le port est ouvert ou fermé malgré le
fait qu’il soit accessible.
 Ouvert/filtré : Le logiciel de balayage classera les ports dans cette catégorie lorsqu’il
n’arrivera pas à faire la différence en ouvert et filtré, cela arrive lorsque les ports ouverts ne
renvoient pas de réponses. Cela peut aussi signifier qu’un logiciel de filtrage est présent et
que les tests ont été refusés.
 Fermé/filtré : C’est la réponse que l’on obtiendra lorsque ça sera impossible pour le logiciel
de balayage de déterminer si un port est fermé ou filtré. Ce genre de réponse est seulement
utilisé par les Idle scan.
Nmap
Nmap est un logiciel gratuit et open source permettant l’analyse de ports. Il permet de détecter
comment réagissent les ports d’une machine. Il donne aussi accès à des informations telles
que le système d’exploitation utilisé, sa version, certains logiciels installés et surtout, il est
d’une grande aide aux administrateurs réseaux souhaitant tester ou vérifier la sécurité de leur
réseau.
PERSEO Benoît
6ème U
ECCSA 2011-2012
Différentes techniques de balayages de ports
Il y a une douzaine de techniques de scan, en voici quelques-unes :
Le scan TCP SYN : C’est celui utilisé par défaut par Nmap et le plus populaire. Sa vitesse
d’exécution est très rapide, il peut scanner des milliers de réseaux par secondes lorsqu’il n’est
pas gêné par un logiciel de filtrage. Il est très discret et permet une distinction claire entre les
états ouvert, fermé et filtré.
Le scan TCP connect() : Lorsque le scan TCP SYN est inutilisable, c’est celui-ci qui est
utilisé par défaut. Cela peut aussi arriver lorsque l’utilisateur n’a pas les droits
d’administrateurs afin d’utiliser les paquets bruts (types de paquets envoyés lors d’un scan
TCP SYN) ou lors d’un scan d’adresse IPv6. Le scan TCP connect(), comme son nom
l’indique, utilise la fonction connect() pour établir la connexion au port contrairement aux
autres scans qui utilisent les paquets bruts : c’est une fonction d’appel système de haut-niveau
qui est utilisée par exemple par les navigateurs web, les clients P2P ou des applications
réseaux. Ce type de scan est moins efficace qu’un scan SYN car Nmap a moins de contrôle
sur la fonction d’appel connect(). Aussi, beaucoup de machines tournant avec un système
UNIX noteront cette tentative d’intrusion dans le journal des logs.
Scan UDP : Moins connu et moins utilisé que le protocole TCP, le port UDP n’est pas a
négligé car il est facilement exploitable (dû au fait qu’on le néglige) et ça, les pirates ne
l’oublient pas. Grâce à Nmap, on peut combiner un scan UDP avec un scan TCP afin de
répertorier les ports ouverts sur les deux protocoles. La faiblesse du scan UDP est sa vitesse
d’exécution. Il obtient souvent une réponse de port ouvert/filtré et laissant Nmap dans le
doute, ne sachant pas si le port est ouvert ou si un logiciel de filtrage bloque les tentatives de
scan, le délai de transmission de Nmap expire alors et les paquets envoyés pour effectuer le
test se perdent.
Scan ACK : Contrairement aux autres scans, le scan ACK ne peut pas nous dire si le port est
ouvert ni même ouvert/filtré. Ce type de scan est utilisé afin de déterminer le niveau de
sécurisation utilisé par un pare-feu et quels sont les ports filtrés. Le scan ACK utilise le
système de drapeau, dit flag en anglais. Cela fonctionne comme en programmation, un flag est
une valeur booléenne qui donc renverra true ou false. Les systèmes non-filtrés renverront un
paquet RST, Nmap considérera alors le port comme non-filtré, ce qui veut dire qu’il est
accessible grâce à un scan ACK : c’est donc similaire au true mais on ne sait pas réellement si
le port est ouvert ou fermé. Les ports ne répondant pas sont considérés comme filtré : c’est
donc similaire au false.
Scan Idle : C’est une technique de scan avancée, elle permet de faire un balayage de port dit
« à l’aveugle », c’est-à-dire qu’aucun paquet n’est envoyé directement depuis votre vraie
adresse IP. Cette une technique qui consiste à récolter des informations sur les ports ouverts
de la cible en utilisant un exploit, une faille basé sur la prédictibilité de la génération des
identifiants de fragmentation IP de l'hôte relais. Cela veut donc dire, que l’on se fait passer
pour un ordinateur de confiance auprès de l’ordinateur ciblé, cela va permettre d’établir les
ouvertures de ports entre eux et c’est d’une très grande furtivité car l’attaque vient d’une
machine de confiance.
PERSEO Benoît
6ème U
ECCSA 2011-2012
Scan IP : Le scan IP n’est pas un scan de port à proprement parler car il va analyser les
différents protocoles IP pour savoir lesquels sont supportés par les cibles mais la technique
utilisée par Nmap suit à peu de choses près le même schéma qu’une analyse de ports. Comme
le scan UDP, le scan IP va envoyer des paquets et attendre une réponse. Une fois cette réponse
reçue, si elle est positive le protocole est ouvert, si elle est négative : le port est fermé, s’il n’y
a pas de réponse, il est ouvert/filtré.
Quelques protections
Pour se protéger contre ce genre d’attaque, l’utilisateur lambda utilise un pare-feu. Celui-ci
étant configurable sur plusieurs niveaux de sécurisation, ça ne bloque pas toutes les
possibilités de scan.
Les professionnels, eux, font appel à des logiciels que l’on appelle IDS pour « systèmes de
détection d'intrusion ».
C’est un logiciel qui écoute de manière furtive le réseau afin de repérer les activités anormales
ou suspectes, ainsi il peut effectuer de la prévention. Il y a deux grands types d’IDS :
• Les N-IDS : ils assurent la sécurité au niveau du réseau.
• Les H-IDS : ils assurent la sécurité au niveau des hôtes.
Le N-IDS nécessite un matériel dédié et est un système capable de contrôler les paquets qui
circulent sur un ou plusieurs réseaux afin de savoir si quelque chose de suspect ou d’anormal
se passe. Le N-IDS place plusieurs interfaces réseaux en mode furtif, de cette manière elles
n’ont pas d’adresses IP et n’est rattaché à aucun protocole. On peut placer plusieurs N-IDS
dans un réseau, par exemple un avant le réseau privé et un avant le réseau publique avec entre,
un pare-feu.
Le H-IDS quant à lui va analyser en profondeur le journal des logs et intercepter les paquets
entrants et sortants des connexions qu’il pense être suspectes ou anormales (tentative
d’intrusion, chevaux de Troie, exécution de code malicieux).
Le balayage de port aux yeux de la justice
Le balayage de ports n’est pas condamnable par la justice car il ne dépasse pas le stade
préparatoire. Jusque-là, la personne malintentionnée n’est pas encore passée à l’acte et ce
n’est donc pas punissable. Les informations que l'on peut récupérer grâce au scanning ne
peuvent être qualifiées de confidentielles et donc cela n’est pas non plus punissable. Enfin, il
n’y a pas d’intrusion à proprement parler, le pirate ne fait qu’analyser, regarder ce qu’il y a
d’ouvert et de fermer, un peu comme un cambrioleur qui ferait du repérage pour un vol futur,
ce n’est pas condamnable sauf si on sait clairement prouver les intentions de la personne.
PERSEO Benoît
6ème U
Les ports les plus scannés
445 : Port pour le réseau windows
1433 : Port de connexion au serveur MySQL
51972 : Port qui a rapport avec le système UNIX
3389 : Port utilisé pour se connecter aux serveurs d’un logiciel Microsoft
23 : Port utilisé pour effectuer des connexions Telnet
ECCSA 2011-2012
PERSEO Benoît
6ème U
ECCSA 2011-2012
Questions/réponses
1. Qu’est-ce que le balayage de port ?
» Le balayage de port consiste à analyser les ports d’une machine (serveur, …) afin
d’en vérifier la sécurité si on est administrateur réseau ou la vulnérabilité si on est un
pirate informatique.
2. Quelles sont les différentes techniques de balayage ?
» TCP SYN, TCP connect(), TCP UDP, TCP ACK, scan Idle ou scan IP.
3. Citer un programme de balayage de port
» Nmap
4. Le balayage de port est-il punissable par la loi ? Justifier votre réponse.
» Non car le pirate informatique ne viole en rien les utilisateurs, il ne fait qu’observer,
il reste à la phase préparatoire.
5. Comment pouvons-nous nous protéger face aux tentatives d’intrusions ?
» Soit grâce à un pare-feu en le configurant de manière optimale, soit grâce à un IDS.
Sources
•
•
•
•
•
•
•
http://fr.wikipedia.org/wiki/Balayage_de_port
http://fr.wikipedia.org/wiki/Nmap
http://fr.wikipedia.org/wiki/Couche_de_transport
http://fr.wikipedia.org/wiki/Mod%C3%A8le_OSI
http://fr.wikipedia.org/wiki/Internet_Protocol
http://fr.wikipedia.org/wiki/User_Datagram_Protocol
http://nmap.org/
Téléchargement