Sécurité de TCP / IP

Le protocole IP ne fait que transmettre des paquets (en clair) d’une station à une autre. Par
construction, ce protocole souffre donc de certaines.....
lacunes en termes de SSI :....
· il est possible d’intercepter les paquets pour en lire le contenu (sniffing),
· il n’y a pas d’authentification, on peut prétendre avoir un numéro IP qui n’est pas le sien (IP spoofing),
· une connexion TCP peut être interceptée et manipulée par un attaquant situé sur le chemin de cette connexion (TCP hijacking),
· les implémentations du protocole TCP sont susceptibles d’être soumis à des attaques visant le déni de service (SYN flooding, Land attack, ping of death...).
Le protocole UDP
Le protocole UDP demeure problématique du point de vue de la sécurité. En effet, ce protocole fonctionne en mode non connecté, ce qui signifie qu’il ne peut exister de garantie de remise des messages à leur destinataire (donc pas de « Three way handshake » comme dans TCP). Une des conséquences de l’utilisation de ce protocole réside alors dans le fait que l’on ne peut pas réellement établir une notion de « contexte de session » dans le cas d’une communication UDP (une requête = une réponse – dans le meilleur des cas) ; nous verrons plus tard que ce point particulier revêt une importance capitale dès lors qu’il s’agira de mettre en place des solutions de filtrages réseaux évoluées.
De nombreux protocoles réseaux utilisent UDP comme vecteur de communication, c’est par exemple le cas du DNS (service de nommage Internet), du système NFS (partages de fichiers Unix) et de NIS (service de partage d’informations) tous deux reposant sur des mécanismes d’appels RPC (port UDP 111).
IP Sniffing
Le principe de l’IP sniffing consiste pour un agresseur à écouter les trames circulant sur son segment réseau puis à les décoder, protocole par protocole, couche par couche. Il s’agit principalement d’une méthode passive (les trames ne sont pas modifiées par cette opération), essentiellement utilisée pour atteindre en confidentialité à l’information. On utilise pour ce faire des outils de type « analyseurs réseaux », soit spécifiques à une action particulière (cas des analyseurs spécifiquement développés pour extraire des mots de passe en clair transitant sur le réseau), soit généralistes (Sniffer Pro de Network Associates, Ethereal,
tcpdump…) mais détournés de leur fonction initiale (à savoir l’analyse des problèmes réseaux).
Cette technique ne peut être mise en oeuvre que si l’on satisfait à l’une des deux conditions suivantes :
· L’agresseur doit être situé sur le chemin réseau entre le client et le serveur,
· Le segment réseau d’appartenance de l’agresseur doit utiliser une technologie à diffusion (token ring ou Ethernet dans leurs concepts initiaux par exemple)
Port Scanning
Le « port scanning » est une méthode active utilisée pour recenser les services réseaux accessibles sur une machine. Dans le protocole TCP, un service écoute sur un ou plusieurs ports TCP, identifiant ainsi le type de service disponible. Ainsi, le protocole HTTP utilise le port TCP 80, le protocole SMTP le port 25, etc.
Il existe de nombreuses techniques de « port scanning », toutes utilisant les particularités des protocoles réseau pour déterminer la présence (ou l’absence) d’un service précis.
La technique la plus simple pour réaliser un « TCP port scanning » est celle dite du « SYN scan ». Le SYN scan consiste à profiter du « Three way handshake » de TCP pour déterminer si un service est en écoute sur un port.
En effet, à tout segment TCP de type SYN (flag SYN positionné) sur un port actif, le serveur doit répondre par un segment de type ACK-SYN. Au cas où aucun service ne serait en écoute sur le port considéré, la pile TCP/IP doit répondre par un segment de type RST (flag RST – ou ReSeT – positionné). Ainsi, pour tout segment de type ACK-SYN reçu suite à l’émission d’un segment SYN, on considérera que le port TCP est ouvert :
Cette technique souffre cependant de nombreux inconvénients et peut donc être mise en défaut :
· Si un équipement réseau filtre les segments entre l’agresseur et le serveur, la nonréception d’un segment ACK-SYN à une requête ne permet pas de conclure (le segment peut être absorbé par l’élément de filtrage, ce dernier peut couper la connexion par un segment RST en usurpant l’adresse du serveur laissant croire à
l’attaquant que le port est fermé…).
· La méthode n’est pas discrète : sous UNIX, ces connexions réussies seront systématiquement enregistrées dans les journaux SYSLOG.
· Il est facile de détecter un tel scan (65535 segments en provenance de la même machine, sur l’ensemble des ports TCP et dans un court laps de temps)
· Le scan peut être long à s’achever : si un équipement intermédiaire absorbe les segments SYN du pirate, on rentre dans une procédure de ré-émission, puis de « timeout », extrêmement pénalisante en termes de temps de traitement.
De nombreuses autres méthodes de port scanning ont alors été développées pour contrer ces inconvénients. Un outil comme « nmap » les implémente presque toutes, mais son utilisation demeure moins aisée que d’autres outils.
Parmi ces autres méthodes, citons le « half-syn scan », le « Xmas scan », le « Ymas scan », « l’ICMP scan » et la technique du « idle host scanning » utilisant un outil comme « hping ».
IP Spoofing
L’IP Spoofing consiste à falsifier son adresse IP pour faire passer sa propre machine pour une autre. L’IP spoofing est souvent utilisé par des attaquants pour bénéficier des mécanismes de confiances qui peuvent être mis en oeuvre dans certains systèmes. ...

De nombreuses techniques peuvent être mises en oeuvre pour réaliser cette opération d’usurpation d’identité d’une machine :
· Modification de l’adresse IP d’une machine.
· Modification de l’adresse hardware d’une station de travail (adresse MAC).
· Création de messages ICMP-redirect pour rediriger des paquets IP vers une station contrôlée par un intrus.
· Compromission d’un serveur DNS pour rediriger une requête DNS vers une station contrôlée par un intrus.
· Introduction de segments TCP avec des numéros de séquence appropriés dans une connexion.
· …
SYN Flooding
Le SYN flooding est une attaque visant à mettre en oeuvre un déni de service sur la machine cible. Elle consiste à émettre un flot ininterrompu de demandes de connexion sur un port TCP ouvert sans poursuivre les échanges, et de préférence en falsifiant l’adresse source.
Dans les piles TCP/IP vulnérables, cette action mène à une saturation de l’espace mémoire réservée à la pile réseau puis à son plantage.

 Source Routing
Le source routing profite de la possibilité offerte à l’émetteur d’un paquet IP de spécifier la route de retour pour les paquets émis, ce qui permet d’outrepasser les règles de routages des routeurs intermédiaires.
Ce mécanisme est souvent utilisé en cas d’IP Spoofing en conjonction avec la prédiction de numéros de séquence TCP/IP. Il permet à un attaquant de rediriger une partie du trafic sur son poste et d’usurper l’identité d’un utilisateur.
Fragmentation IP
Quand un paquet IP de taille supérieure à la MTU6 est rencontré sur un routeur, il est fragmenté en plusieurs paquets de taille inférieure ou égale à la MTU du routeur.




Ce mécanisme de fragmentation a deux conséquences directes sur la sécurité du protocole :
1. Le premier paquet fragmenté est le seul à contenir un en-tête TCP => problème de filtrage !
2. Le premier paquet contient les informations nécessaires pour reconstituer le paquet d’origine => que se passe t-il si ces informations sont invalides ?
Attaques « Man in the middle »
Les attaques « Man in the Midlle », également appelées « Monkey in the Middle » (attaque du singe7 répéteur), sont des attaques communes à la quasi-totalité des protocoles réseaux.
6 Maximum Transfer Unit : taille maximale d’un paquet IP qu’un équipement actif de réseau est capable de
traiter. Typiquement, la MTU IP est presque toujours réglée à 1500, ce qui correspond à la taille maximum
d’une trame Ethernet.

Elles consistent pour un agresseur à s’insérer dans une communication en se positionnant en coupure entre un client et un serveur. L’agresseur peut alors :
· Relayer les requêtes (écoute quasi passive)
· Remplacer le serveur ou le client à tout moment (usurpation totale)
La seule parade efficace contre ce type d’attaque demeure la signature des paquets réseaux entre le client et le serveur (en cas de modification des paquets IP en cours d’acheminement, celle-ci sera alors détectée par le destinataire puisque la signature sera devenue invalide)
Exemple de mise en oeuvre sur un protocole d’authentification basé sur un mécanisme de défiréponse
(authentification Windows NT par exemple) :
Smurf
L’attaque « smurf » est une attaque en déni de service bénéficiant d’une particularité du protocole ICMP implémenté essentiellement dans les systèmes UNIX : un émetteur d’un paquet ICMP sur une adresse de broadcast IP (typiquement un ping sur le réseau 255.255.255.255) recevra autant de réponses qu’il existe de machines joignables par ce réseau de broadcast. Ceci permet donc de démultiplier le nombre de paquets réseaux à destination d’une cible donnée.
Il suffit alors de forger de nombreux paquets ICMP de type « echo request » (un simple ping donc), sur une adresse de destination en broadcast et en falsifiant son adresse source (l’adresse source étant alors celle de la victime du smurf) pour que la victime reçoive autant de paquets ICMP de type « echo-reply » qu’il existe de machines ayant reçu les premiers types de paquet.
La conséquence de cette attaque est donc une inondation de la machine visée sous un flot de paquets ICMP.



0 com:

Enregistrer un commentaire

Suggérer des améliorations à apporter au blog, des articles, des commentaires ou des liens sur la sécurité informatique.Merci