Post Populaire



L'IP Spoofing

Qu'est-ce que c'est ?


L'IP Spoofing signifie usurpation d'adresse IP. Bien que cette attaque soit ancienne, certaines formes d'IP Spoofing sont encore d'actualité. Effectivement, cette attaque peut être utilisée de deux manières différentes :
La première utilité de l'IP Spoofing va être de falsifier la source d'une attaque. Par exemple, lors d'une attaque de type déni de service, l'adresse IP source des paquets envoyés sera falsifiée pour éviter de localiser la provenance de l'attaque.
L'autre utilisation de l'IP Spoofing va permettre de profiter d'une relation de confiance entre deux machines pour prendre la main sur l'une des deux. Il s'agit de cette attaque dont il va être question ici.

Description de l'attaque

Il existe plusieurs types d'IP Spoofing. La première est dite Blind Spoofing, c'est une attaque "en aveugle". Les paquets étant forgés avec une adresse IP usurpée, les paquets réponses iront vers cette adresse. Il sera donc impossible à l'attaquant de récupérer ces paquets. Il sera obligé de les "deviner". Cependant, il existe une autre technique que le Blind Spoofing. Il s'agit d'utiliser l'option IP Source Routing qui permet d'imposer une liste d'adresses IP des routeurs que doit emprunter le paquet IP. Il suffit que l'attaquant route le paquet réponse vers un routeur qu'il contrôle pour le récupérer. Néanmoins, la grande majorité des routeurs d'aujourd'hui ne prennent pas en compte cette option IP et jettent tous paquets IP l'utilisant.

La cible de cette attaque sera un service de type rlogin ou rsh (qui ne sont plus très utilisés de nos jours). Ce sont des services avec une authentification basée sur l'adresse IP de la machine cliente. En outre, les protocoles utilisés par ces services sont simples, les réponses attendues n'en sont que plus facilement prédictibles quand il y en a.
A noter : L'IP Spoofing peut être utilisé pour faire du DNS Spoofing...

Cette attaque va se dérouler en plusieurs étapes :

Trouver la machine de confiance (son adresse IP) qu'accepte le service du serveur cible.
Mettre hors service cette machine de confiance (avec un SYN Flooding par exemple) pour éviter qu'elle ne réponde aux paquets éventuellement envoyés par le serveur cible.
Prédire les numéros de séquence TCP du serveur cible. Ce numéro caractérise une connexion TCP (un numéro de séquence initial est généré à chaque nouvelle connexion TCP). C'est un champ de l'en-tête du protocole TCP. De nos jours ce numéro est difficilement prédictible voir impossible sur des systèmes type Linux. Ce qui n'était pas le cas il y a quelques années.
Lancer l'attaque. Elle va consister à créer une connexion TCP sur le serveur cible. Pour cela, l'attaquant va forger un paquet TCP avec le flag SYN et l'adresse IP source de la machine de confiance. Le serveur cible va répondre par un paquet TCP avec les flags SYN-ACK. L'attaquant, qui aura prédis le numéro de séquence TCP, pourra forger un paquet TCP avec le flag ACK et le bon numéro d'acquittement (numéro de séquence envoyé par le serveur cible incrémenté de 1). Une connexion TCP est alors établie au niveau du serveur cible. L'attaquant n'a plus qu'à envoyer un paquet TCP avec le flag PSH (permettant de remonter directement à l'application les données du paquet) pour envoyer une commande au service (par exemple echo ++ >> /.rhosts). L'attaquant peut accéder librement au serveur cible.

Le schéma suivant illustre cette attaque. La machine A est celle de l'attaquant, la C celle de confiance et enfin Cible qui est le serveur cible. A(C) signifie que la machine A va envoyer un paquet en spoofant l'adresse IP de la machine C :

Conséquences :

Usurpation d'identité.
Prise de contrôle du serveur cible.
Comment s'en protéger ?

Supprimer tous les services de type rsh et rlogin.
Ne pas utiliser uniquement l'adresse IP comme méthode d'authentification (ajouter au moins un login et un password).
Vérifier que son système n'a pas des numéros de séquence TCP facilement prédictible.
Vérifier que la fonction anti-spoofing est bien présente sur le firewall.

- sebdelkil 2009-2015 - Aucun droit réservé -