TCP / IP
Transcription
TCP / IP
TCP / IP Frédéric Dumas Modèle OSI Service par couche Interface Définit les primitives et les types de données Dépendant du système sockets sous BSD winsock sous Microsoft SAP (Service Access Point) Boites aux lettres Prise de téléphone sockets Communication intra couche Internet Protocol RFC 791 service non connecté s'adapte à tous les réseaux sous jacent adressage universel routage des datagrammes gestion locale des congestions contrôle du réseau ICMP Interconnexion des réseaux Interconnexion des réseaux Utilisation des routeurs routage au saut par saut Couche 3, Couche 4 Quelques protocoles IP, ICMP TCP, UDP, RTP, RTCP, RTSP RIP, OSPF ARP DHCP DNS IGMP, Mobile IP IPSec, L2TP, SSL FTP, HTTP, SNMP, SMTP DiffServ, IntServ, RSVP, SIP Adressage IP Universel 4 octets Faiblement hiérarchisé Host ID Net ID Notation décimale pointée Classe d'adresse Peu d'adresse ... Classe d'adresse Autorités IP IANA (Internet Assigned Numbers Authority) RIR (registres Internet Régionaux) ARIN (American Registry for Internet Numbers) RIPE NCC (Réseaux IP Européens - Network Coordination Centre) APNIC (Asia and Pacific Network Information Centre) LACNIC (Regional Latin-American and Caribbean IP Address Registry) AfriNIC (African Network Information Centre) LIR (registres Internet locaux) NIR (registres Internet nationaux) Adresses spéciales Host ID tout à 0 : network adress Host ID tout à 1 : broadcast adress tout à 1 : broadcast limited 127 quelque chose : local host Multicast IGMP : 224.0.0.1 Privées 10.0.0.0 172.16.0.0 à 172.31.0.0 et 169.254.0.0 192.168.0.0 à 192.168.255.0 Multi interface Au moins 1 IP par Interface Exemple Routage : algorithme 3 questions Adresse locale ? Adresse adjacente ? ARP Remise indirecte ! Quel routeur choisir ? Remarque : aucune réponse = message ICMP 1 implémentation la table de routage ARP Principe Requête Broadcast Lu par tout le monde Réponse Unicast Cache ARP mis à jour Requête et Réponse détection de doublon IP changement de carte Table de routage Notion de masque Notion d'interface Route par defaut Exemple table de routage Contraintes de routage Routage de proche en proche Routage dynamique Temps de traitement Optimisation des routes Goulet d'étranglement Saturation Traitements critiques Subnetting Un réseau physique = 1 réseau IP Table de routage et nombre d'adresse Utilisation du masque Subnetting classe B Subnetting classe C Des recommandations Vue de l'extérieur Diffusion Notation avec le masque (/bits) Exemple 139.124.0.0 / 16 (Université) Plusieurs sites géographiques Plusieurs réseaux par site Subnetting => classe C exemple interne / externe 198.198.198.0 / 24 2 réseaux de 60 machines 4 réseaux de 30 machines 1 réseau de 60 machines et 2 de 30 machines Attention : réseau de 32 machines ou même 31 machines Subnetting Optimisation des routes Prévision des évolutions Exemples 1 seule adresse de classe C A : 60 postes, B : 30 postes, C : 10 postes Combien d'adresse disponibles ? Optimisation des tables : exemple CIDR Classless Inter-Domain Routing RIR Table de routage simplifiée Allocation des adresses optimisée Classe => obsolète !!! Adressage privé NAT Statique NAT Dynamique NAT / PAT Exemples Virtual Server et Port Forwarding Le domaine anglaisfacile.com possède 320 postes sur le réseau 198.198.198.0 / 24 répartis comme décrit sur le schéma ci dessous. Ce domaine possède 2 sous domaines : toefl (60 postes) et toeic (140 postes). Encapsulation IP Type Ethernet 0800 Entete IP : 20 Octet minimum Datagramme 64 Ko maximum Les champs VER 4 sur 4 bits HLEN (Header Length) nombre de mot de 4 octets Pour les options Longueur totale Entête + Données 65535 maximum Les champs ToS (1 octet) 3 bits de priorité priorité de 0 à 5 priorité de 6 à 7 Bits D, T et R Delay (Délai) Throughput (Débit) Reliability (Taux de perte) 2 bits ignorés ToS en pratique ! Les champs TTL Nombre de routeurs traversés Si 0 : message ICMP Évite les boucles Protocole Démultiplexage 0,1,2,6,17 Checksum Entête seulement Chaque routeur obligatoirement Champs de fragmentation Identification (2 octets) identifiant relatif à IP Source Flag : 0DM D : Don't Fragment M : More Offset Déplacement par rapport à l'origine Multiple de 8 octets Fragmentation Réassemblage au bout exemple de double fragmentation reséquencement mise en attente utilisation du TTL Les Champs Adresses Source et destination Options code de l'option bit C, 2 bits classe, 5 bits code longueur de l'option (1 octet) données associées exemple : timestamp, sourcerouting, ... pointeur, dep, flag, adresse, date Padding entête multiple de 4 octets ICMP Internet Contrôle Message Protocole Tous les équipements IP Ne doit pas engendrer de message ICMP Utilise IP Entête ICMP Type Code Checksum Données ICMP Entête IP et 64 bits données ICMP Exemple de type et code 3, destination inaccessible 0, Network Unreachable 1, Host Unreachable 3, Port Unreachable 5, source route failed 4, source quench 5, redirection 0, for Network 1, for Host 11, ttl expired 0, in transit 1, fragment reassembly time exceeded Ping et Traceroute Utilisation de ICMP Ping Echo Request Type 8 Echo Reply Type 0 Traceroute TTL Expired Type 11 Port Unreachable Type 3 ICMP Redirect ... Cache poisoning Configuration IP Informations nécessaires Adresse IP Masque Routeur par défaut DHCP (Dynamic Host Configuration Protocol) Centraliser les configurations IP DHCP DHCP Discover DHCP Offer Toujours broadcast IP (2 causes) DHCP Request Broadcast IP, source 0.0.0.0 Réponse du client en broadcast DHCP Ack durée du bail et option DHCP Au démarage, au ½ bail et au 7/8 du bail 1 serveur par segment ou relais DHCP RIP Request, Response Echanges de vecteur <NetID, Cost> Toutes les 30 secondes Problème route inaccessible boucle de routage : route > 16 poison reverse : route directement à 16 split horizon : non renvoie vers la source triggered updates : boucle de routage à 3 Problème de sécurité Détournement de route OSPF Adapté au grands réseaux Protocole hello Topologie téléchargeable Arbre de recouvrement Complexe Sécurisé CPU des routeurs ... IGP <> EGP ! BGP-4 Routage dynamique ou statique => 1 seule route RIP route la plus courte OSPF route la moins « coûteuse » ECMP pour OSPF Equal Cost MultiPath (limité) Répartition de charge ? DNS architecture client serveur notion de domaine et sous domaine lecture inverse adresse IP zone de résolution directe domaine racine délégation serveur de nom resolver interrogation itérative ou récursive serveur racine (100000 requêtes /heure) Résolution inverse domaine in-addr.arpa adresse ip en sens inverse in-addr.arpa : a.root-server.net 193.in-addr.arpa : ns.ripe.net 148.193.in-addr.arpa : ns.ripe.net 37.148.193.in-addr.arpa : first.tvt.fr Enregistrement DNS SOA = Autorité administrative NS = liste de NS pour un domaine toujours tous les root servers A = Nom - @IP PTR = @IP – Nom CNAME = Alias MX = Mail eXchanger Services et limitations Services Contacter un hôte Durée de vie limitée Détection d'erreur sur entête Gestion des erreurs ICMP Limites Pas d'adressage d'application Pas de garantie de livraison Pas de détection d'erreur données Possible déséquencement Intérêt de la couche Transport Adressage des applications Correction d'erreur éventuelle 2 protocoles : UDP : transport rapide sans connexion TCP : transport fiable avec connexion UDP (User Datagram Protocol) Adressage des applications (65535 ports) Contrôle d'intégrité facultatif Pas de contrôle de flux Pas de séquencement Checksum Somme des mots de 16 bits Pseudo Entête Utilisation Time => port 37 Daytime => pour 13 DNS => port 53 TFTP => port 69 DHCP => 67 Client DHCP => 68 Multicast TCP Transmission Control Protocol Port d'application Mode connecté full duplex 1 connexion = 2 couples (adresses IP – port) Sans erreur, sans perte, ordonné Système d'acquittement De bout en bout Contrôle de flux Segment Notion de pile TCP Segment de 64 Ko maximum 1 segment par datagramme IP Segment d'ouverture de session Segment de donnée Segment d'ack Segment de fermeture de connexion 3-Way Handshake séquence aléatoire Détermination MSS Maximum Segment Size (MTU – 40) MSS pour chaque sens Fermeture en 2 temps Send And Wait On attend l'ACK pour continuer d'envoyer Un timer permet le renvoie en cas de perte Send And Wait Assure le séquencement Assure la non perte des paquets Numéro de séquence Gestion de la perte de l'ack Retard d'un message Détermination du timer RTD et RTT Piggybacking (ACK in Data) Mauvaise gestion de la bande passante Sliding Window Optimisation de la bande passante Sliding Window Taille de la fenêtre transmission de plusieurs segments Détermination de la taille de la fenêtre par le recepteur au début (négociation) en cours (contrôle de flux) Ack au niveau des octets dernier octet du dernier segment reçu dans l'ordre pas forcément à chaque segment reçu 1 fenêtre pour chaque sens (full duplex) Problèmes & Améliorations Minisegments et Nagle Apache, X11 TCP Tahoe & TCP Reno RED (Random Early Detection) routeur IP Slow Start Congestion Window (cwnd) Slow Start Fonctionnement phase 1 : détermination du seuil de saturation phase 2 : utilisation en 2 phases utilisation phase 1 : augmentation exponentielle phase 2 : augmentation linéaire remarque cwnd bornée par la fenêtre glissante une cwnd pour chaque sens (full duplex !!) Fast Retransmit Problème Temps de détection long Alerte pour un simple retard Récepteur envoie un ACK à chaque réception de segment Alerte = 3 ACK du même segment Détection plus rapide Évite les inondations du en cas de RED Segment TCP Les champs TCP Numéro de séquence et d'ack sliding window LET : Longueur de l'entête (multiple de 4) Flags Bit URG et Pointeur urgent (ex: Ctrl c) Bit SYN, FIN, ACK Bit RST : Fin brutale Bit PSH : remise forcée Option : par exemple MSS Checksum TCP Obligatoire Intégrité des données Pseudo Entête Ports TCP FTP => 20,21 SSH => 22 SMTP => 25 POP => 110 HTTP => 80 RTP Transport Temps Reel sur UDP sur IP données estampillées séquencement perte fréquence RTCP contrôle RTP Sender et Receiver Report, Description source, Bye Visioconférences RTSP (streaming) Firewall Pourquoi ? Entrée Sortie filtrage par paquet (stateless) couches 3 et 4 ACL connexion à la demande Firewall filtrage par paquet à état (statefull) checkpoint connexion à la demande (port > 1024) ICMP (type 3 et 4) UDP protocole propriétaire Firewall Filtrage applicatif pare-feu de type proxy ou proxying applicatif nouveau protocole protocole propriétaire performance réglages Une configuration Type de firewall Firewall bridge pas d'IP, pas de MAC, pas d'attaques !! configuration série souvent stateless Firewall matériel intégré à un routeur performance de traitement administration simplifiée OS signé RSA fonctionnalités liées à un constructeur Type de firewall Firewall logiciel type personnel protection en bout de chaine protection limitée (config par l'utilisateur) réseau non protégé type réseau proche du firewall matériel iptables temps de traitement administration système fonctionnalités non limitées Attaques et parades Failles OS, failles logiciel, failles humaines Obtenir un accès Voler des informations Troubler le fonctionnement Utiliser un rebond Utiliser les ressources Les risques Accès physique vandalisme, vol de machine, coupure de courant Interception de communication usurpation d'identité vol de session détournement de messages Dénis de service exploitation des failles TCP/IP exploitation des failles Logiciels Les risques Intrusions balayage des ports Elévations des privilèges (Buffer Overflow) Maliciel Ingénierie sociale Trappe (Backdoor) Les étapes Collecte d'information Balayage Repérage des failles DoS possible Intrusion retour au balayage éventuel Extension des privilège Compromission Backdoor Nettoyage des traces Collecte d'information Interrogation bases publiques Recherche Google Observation d'échanges inter site Tout information est utile !! adressage IP protocoles utilisés services disponibles type des serveurs noms du personnel noms des produits Les Sniffer Ethereal TCPDump AirDump Mode promiscuous intérêt difficultés Détecter les sniffer Les mappeur passif (Siphon) Balayage Scan non furtif : TCP Connect Syn scan : s'arrête à la demi ouverture Scan FIN : réponse RST si port fermé Scan avec IP Spoofing (Sniff du scan) Idle Scan : Numéro de séquence IP Un outils : nmap !! Après le scan ... Lecture des bannières HTTP GET / HTTP/1.0 Server: Apache 1.3.20 (UNIX) Debian/GNU FTP à la connexion 220 ProFTPD 1.2.5rc1 Server (default installation) Telnet NetCat Repérage de failles Etude de l'inventaire du parc logiciel matériel Script kiddies Nessus DoS possible L'intrusion : l'accès à un compte Ingénierie social : le meilleur moyen Auprès des utilisateurs Auprès du service technique usurpation du mail (voir SMTP) site web falsifié téléphone téléphone urgence Consultation de service messagerie partage de fichier Key Logger Espionnage Force Brute L'intrusion Essai de plusieurs combinaisons Extrêmement long Par dictionnaire Très rapide Hybride Lophtcrack John The Ripper Dictionnaire plus un mot aléatoire Protection trop d'essais bloquent la protection est une faille ! Le compte de l'utilisateur lambda est un compte important !!! Extension des privilèges et compromission Modification des outils de base ls et path ./ Utilisation de l'Overflow Shellcode, pile et adresse de retour AeDebug sous Windows L'état de root sur une machine même mineure permet de faire des scans, des sniffs, et des intrusions plus performantes Backdoor et nettoyage Utilisation à retardement Machine Zombie Scan discret Attaques par rebond DoS massif Rootkit Discrétion assurée outils modifiés Les techniques IP Spoofing forgeur de paquet HPING, IPSend, Nemesis, FrameIP passage d'un firewall discrétion blind attack (à l'aveugle) annihiler le spoofé Auto TCP Connect TCP hijacking Les techniques Vol de session TCP Laisser la session s'établir Faire penser au client qu'il a perdu le serveur Se faire passer pour le client auprès du serveur MIN (Man In the Middle) ARP Spoofing ICMP Redirect Attaque par REJEU Encapsulation IP IPoHTTP => Routeur, Serveur IPoDNS Les attaques DoS Attaque par reflexion (smurfing) Ping sur un serveur de broadcast Ping of Death Out Of Date Attaque par fragmentation (Teardrop) Attaque Land IP et port source = destination TCP/SYN Flooding UDP Flood Chargen DoS Attack Vulnérabilité HTTP Injection de code Affichage dynamique PHP ou ASP Balises HTML : formulaire de saisie Balises Script, Embed, Applet, ... Cross Site Scripting Injection de commandes SQL Traversement de répertoire Les arnaques SCAM 419 Phishing fishing et phreaking faux mail, faux site, vrais utilisateurs ...