Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

Attaques - Spoofing IP

Usurpation d'adresse IP (Spoofing IP - Mystification) Encyclopédie


L'usurpation d'adresse IP

L'« usurpation d'adresse IP » (également appelé mystification ou en anglais spoofing IP) est une technique consistant à remplacer l'adresse IP de l'expéditeur d'un paquet IP par l'adresse IP d'une autre machine.

Cette technique permet ainsi à un pirate d'envoyer des paquets anonymement. Il ne s'agit pas pour autant d'un changement d'adresse IP, mais d'une mascarade de l'adresse IP au niveau des paquets émis.

Ainsi, certains tendent à assimiler l'utilisation d'un proxy (permettant de masquer d'une certaine façon l'adresse IP) avec du spoofing IP. Toutefois, le proxy ne fait que relayer les paquets. Ainsi même si l'adresse est apparemment masquée, un pirate peut facilement être retrouvé grâce au fichier journal (logs) du proxy.

Attaque par usurpation

La technique de l'usurpation d'adresse IP peut permettre à un pirate de faire passer des paquets sur un réseau sans que ceux-ci ne soient interceptés par le système de filtrage de paquets (pare-feu).

En effet, un système pare-feu (en anglais firewall) fonctionne la plupart du temps grâce à des règles de filtrage indiquant les adresses IP autorisées à communiquer avec les machines internes au réseau.

Franchissement d'un firewall par la technique du spoofing

Ainsi, un paquet spoofé avec l'adresse IP d'une machine interne semblera provenir du réseau interne et sera relayé à la machine cible, tandis qu'un paquet contenant une adresse IP externe sera automatiquement rejeté par le pare-feu.

Cependant, le protocole TCP (protocole assurant principalement le transport fiable de données sur Internet) repose sur des liens d'authentification et d'approbation entre les machines d'un réseau, ce qui signifie que pour accepter le paquet, le destinataire doit auparavant accuser réception auprès de l'émetteur, ce dernier devant à nouveau accuser réception de l'accusé de réception.

Modification de l'en-tête TCP

Sur internet, les informations circulent grâce au protocole IP, qui assure l'encapsulation des données dans des structures appelées paquets (ou plus exactement datagramme IP). Voici la structure d'un datagramme :

Version Longueur d'en-tête Type de service Longueur totale
Identification
Drapeau Décalage fragment
Durée de vie Protocole Somme de contrôle en-tête
Adresse IP source
Adresse IP destination
Données

Usurper une adresse IP revient à modifier le champ source afin de simuler un datagramme provenant d'une autre adresse IP. Toutefois, sur internet, les paquets sont généralement transportés par le protocole TCP, qui assure une transmission dite « fiable ».

Avant d'accepter un paquet, une machine doit auparavant accuser réception de celui-ci auprès de la machine émettrice, et attendre que cette dernière confirme la bonne réception de l'accusé.

Les liens d'approbation

Le protocole TCP est un des principaux protocoles de la couche transport du modèle TCP/IP. Il permet, au niveau des applications, de gérer les données en provenance (ou à destination) de la couche inférieure du modèle (c'est-à-dire le protocole IP).

Le protocole TCP permet d'assurer le transfert des données de façon fiable, bien qu'il utilise le protocole IP (qui n'intègre aucun contrôle de livraison de datagramme) grâce à un système d'accusés de réception (ACK) permettant au client et au serveur de s'assurer de la bonne réception mutuelle des données.

Les datagrammes IP encapsulent des paquets TCP (appelés segments) dont voici la structure :

URG ACK PSH RST SYN FIN
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Port Source Port destination
Numéro d'ordre
Numéro d'accusé de réception
Décalage
données
réservée
Fenêtre
Somme de contrôle
Pointeur d'urgence
Options Remplissage
Données

Lors de l'émission d'un segment, un numéro d'ordre (appelé aussi numéro de séquence) est associé, et un échange de segments contenant des champs particuliers (appelés drapeaux, en anglais flags) permet de synchroniser le client et le serveur.
Ce dialogue (appelé poignée de mains en trois temps) permet d'initier la communication, il se déroule en trois temps, comme sa dénomination l'indique:

  • Dans un premier temps, la machine émettrice (le client) transmet un segment dont le drapeau SYN est à 1 (pour signaler qu'il s'agit d'un segment de synchronisation), avec un numéro d'ordre N, que l'on appelle numéro d'ordre initial du client.
  • Dans un second temps la machine réceptrice (le serveur) reçoit le segment initial provenant du client, puis lui envoie un accusé de réception, c'est-à-dire un segment dont le drapeau ACK est non nul (accusé de réception) et le drapeau SYN est à 1 (car il s'agit là encore d'une synchronisation). Ce segment contient un numéro de séquence égal au numéro d'ordre initial du client. Le champ le plus important de ce segment est le champ accusé de réception (ACK) qui contient le numéro d'ordre initial du client, incrémenté de 1.
  • Enfin, le client transmet au serveur un accusé de réception, c'est-à-dire un segment dont le drapeau ACK est non nul, et dont le drapeau SYN est à zéro (il ne s'agit plus d'un segment de synchronisation). Son numéro d'ordre est incrémenté et le numéro d'accusé de réception représente le numéro de séquence initial du serveur incrémenté de 1.
. La machine spoofée va répondre avec un paquet TCP dont le drapeau RST (reset) est non nul, ce qui mettra fin à la connexion.

Annihiler la machine spoofée

Dans le cadre d'une attaque par usurpation d'adresse IP, l'attaquant n'a aucune information en retour car les réponses de la machine cible vont vers une autre machine du réseau (on parle alors d'attaque à l'aveugle, en anglais blind attack).

La machine spoofée répond au ACK par un RST

De plus, la machine « spoofée » prive le hacker de toute tentative de connexion, car elle envoie systématiquement un drapeau RST à la machine cible. Le travail du pirate consiste alors à invalider la machine spoofée en la rendant injoignable pendant toute la durée de l'attaque.

Prédire les numéros de séquence

Lorsque la machine spoofée est invalidée, la machine cible attend un paquet contenant l'accusé de réception et le bon numéro de séquence. Tout le travail du pirate consiste alors à « deviner » le numéro de séquence à renvoyer au serveur afin que la relation de confiance soit établie.

Pour cela, les pirates utilisent généralement le source routing, c'est-à-dire qu'ils utilisent le champ option de l'en-tête IP afin d'indiquer une route de retour spécifique pour le paquet. Ainsi, grâce au sniffing, le pirate sera à même de lire le contenu des trames de retour...

Recherche des numéros de séquence

Ainsi, en connaissant le dernier numéro de séquence émis, le pirate établit des statistiques concernant son incrémentation et envoie des accusés de réception jusqu'à obtenir le bon numéro de séquence.

Plus d'information

Discussions pertinentes trouvées dans le forum

10/05 16h08 mac spoofing carte virtuelle Mac Spoofing Carte virtuelle Réseaux 30/01 20h21->jack4
15/08 09h34 piratage spoofing SOS piratage-spoofing Virus/Sécurité 10/02 13h51->innorky58
04/09 11h00 e mail spoofing E-mail spoofing Internet 04/09 14h50->dodo13
06/04 11h45  Internet Explorer+Flash: Attention spoofing!! Actualités 06/04 21h39->Zempachi4
18/08 18h16 spoofing ip Le spoofing d'IP Réseaux 20/08 11h40->tessai3
19/07 15h09 igmp spoofing IGMP spoofing Réseaux 31/08 11h33->-flo-2
15/08 09h39 piratage spoofing SOS piratage-spoofing Développement 20/08 11h31->Bertrand1
15/02 15h20 spoofing ip spoofing IP?????? Virus/Sécurité 15/02 15h35->regis591
03/06 21h26 spoofing ip [spoofing IP?] Virus/Sécurité 03/06 22h48->Kristopher1
15/08 09h32 piratage spoofing SOS piratage-spoofing Développement 15/08 09h32->Colombina0
Discussion fermée Problème résolu Spoofing Plus de discussions sur « Spoofing »

Ce document intitulé « Attaques - Spoofing IP » issu de l'encyclopédie informatique Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.