Usurpation d'adresse IP
L'usurpation d'adresse IP (en anglais : IP spoofing ou IP address spoofing) est une technique de piratage informatique utilisĂ©e en informatique qui consiste Ă envoyer des paquets IP en utilisant une adresse IP source qui n'a pas Ă©tĂ© attribuĂ©e Ă l'ordinateur qui les Ă©met. Le but peut ĂȘtre de masquer sa propre identitĂ© lors d'une attaque d'un serveur, ou d'usurper en quelque sorte l'identitĂ© d'un autre Ă©quipement du rĂ©seau pour bĂ©nĂ©ficier des services auxquels il a accĂšs.
Explications
Le protocole IP et le routage sur Internet ne vérifient pas l'adresse source. Cette caractéristique du protocole IP n'est pas un défaut mais une fonctionnalité voulue. Le protocole IP a été conçu pour permettre au routage des paquets IP de s'adapter en fonction des coupures réseau, la fiabilité des liens de point à point étant faible dans les années 70. Ainsi les routeurs ne sont pas censés avoir de préjugé sur l'origine des paquets.
Sauf en cas de restriction du point d'accÚs à Internet, n'importe quel ordinateur peut fabriquer un paquet IP avec n'importe quelle adresse source. Cette technique peut ainsi servir à masquer son adresse source réelle ou à attaquer des réseaux en usurpant l'adresse d'un autre ordinateur.
Pour établir un lien bidirectionnel entre deux hÎtes, comme avec le protocole TCP, il est cependant nécessaire que le routage entre les deux systÚmes soit possible. L'usurpation d'adresse d'un autre sous-réseau peut impliquer l'altération de tables de routage des routeurs intermédiaires.
L'usurpation d'adresses IP peut ĂȘtre combinĂ©e avec des attaques de dĂ©nis de service de la machine dont l'IP est usurpĂ©e afin d'empĂȘcher toute rĂ©ponse de celle-ci, car la machine enverrait un paquet qui invaliderait toute connexion car elle n'en a pas de trace dans son systĂšme.
Elle peut aussi ĂȘtre combinĂ© avec la prĂ©diction de pseudo-alĂ©as : les connexions TCP utilisent des numĂ©ros de sĂ©quence dont la valeur initiale est choisie de maniĂšre pseudo-alĂ©atoire. Si l'algorithme de pseudo-alĂ©as est trop prĂ©dictible, l'attaquant peut ĂȘtre capable de prĂ©dire la prochaine valeur Ă partir d'une demande de connexion dont l'attaquant est capable de rĂ©cupĂ©rer la rĂ©ponse. Ainsi il peut forger une suite de paquets qui demandent une connexion TCP et qui semblent rĂ©pondre aux paquets qui Ă©tablissent cette connexion TCP.
Historique
En 1995, un CERT publie le premier avertissement concernant l'usurpation d'adresse IP[1].
En effet, certains services peu sécurisés comme rsh se basent sur l'adresse IP pour identifier l'émetteur. L'exemple typique est d'utiliser une relation de confiance. Un pirate utilisera donc l'adresse IP d'une machine de confiance (autorisée) pour obtenir une connexion à un serveur.
Recommandation
Pour Ă©viter ce genre d'attaques, il est recommandĂ© de ne pas utiliser de service se basant sur l'adresse IP pour identifier les clients. Des algorithmes cryptographiques peuvent ĂȘtre utilisĂ©s pour authentifier le correspondant, comme c'est le cas par exemple dans IPsec, TLS, SSH.
Il est recommandé que le systÚme d'exploitation utilisé génÚre des numéros de séquences difficilement prévisibles au niveau de TCP[2]. Sur un ordinateur, les algorithmes générateurs de nombres aléatoires sont toujours pseudo-aléatoires. L'aspect déterministe du comportement d'un ordinateur qui est ce pourquoi les ordinateurs sont utilisés, devient un problÚme quand les questions de sécurité et de chiffrement sont abordées.
Pour les protocoles utilisant plusieurs connexions TCP (comme FTP), il est recommandé d'utiliser des numéros de port non prévisibles. Quand l'application s'en remet au systÚme pour attribuer le numéro de port c'est alors au systÚme d'implémenter cette recommandation.
Une solution peut ĂȘtre de refuser les paquets TCP SYN successifs depuis une mĂȘme adresse pour Ă©viter que le pirate puisse prĂ©dire le comportement du gĂ©nĂ©rateur de numĂ©ros de sĂ©quences. Mais une telle restriction peut limiter la disponibilitĂ© du service (attaque par dĂ©ni de service ou DoS).
L'usurpation d'adresse IP peut Ă©galement ĂȘtre utilisĂ©e pour masquer l'identitĂ© du hacker lors d'attaques de type dĂ©ni de service ou d'attaque par rebond. Dans ce cas-lĂ , une adresse IP diffĂ©rente peut ĂȘtre utilisĂ©e pour chacun des paquets de l'attaque, ce qui rend inefficace toute tentative de filtrage intelligent.
Les administrateurs de rĂ©seaux locaux peuvent utiliser le filtrage des adresses IP sources entrantes des clients finaux[3]. Ceci peut aussi ĂȘtre accompli de façon automatique grĂące au reverse path forwarding (uRPF), qui indique au routeur de vĂ©rifier le routage de l'adresse IP source de tout paquet entrant par une interface, et si l'interface de rĂ©ception diffĂšre de l'interface de routage, de dĂ©truire le paquet, ce qui rend toute tentative d'usurpation inopĂ©rante. Ceci n'est pas possible en cas de routage asymĂ©trique. Ce filtrage sera plus efficace s'il est effectuĂ© proche de la source. Un utilisateur final qui voudrait donc partager le trafic sortant entre deux liens vers des fournisseurs d'accĂšs diffĂ©rents s'en verrait empĂȘchĂ©, chacun des fournisseurs n'autorisant que des adresses source attendues[4].
Notes et références
- premier avertissement du CERT sur l'usurpation d'adresse IP
- (en) « Defending Against Sequence Number Attacks », Request for comments no 1948, .
- (en) « Ingress Filtering for Multihomed Networks », Request for comments no 3704, .
- « Different Types of IP's » lundi 28 février 2022
Annexes
Articles connexes
Liens externes
- (en) premier avertissement du CERT sur l'usurpation d'adresse IP
- (en) deuxiĂšme avertissement du CERT sur l'usurpation d'adresse IP
- (fr) Explication détaillée de l'IP spoofing
- (fr)
- (en) L'alliance globale sur l'authentification sur l'Internet
- (en) Spoofing exemple - Ă©tude de cas