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 ...

Documents pareils