Vous êtes sur la page 1sur 3

ATTAQUE

RGIS SENET

Attaque par IP
Spoofing
Degr de difficult

Comment obtenir lacces non autoris sur une machine ? La


rponse est simple : usurpation dadresse IP qui consiste
remplacer ladresse IP de lexpditeur dun paquet par ladresse IP
dune autre machine. Comment sen dfendre ? La rponse dans
cet article.
Quest ce que lIP Spoofing

La technique de lIP Spoofing est une attaque


informatique qui commence dater mais elle
demeure lgendaire par l'utilisation qu'en a fait
Kevin Mitnick en 1995 contre le Supercomputer
Center de SanDiego protg par Tsatumo
Shimomura. Kevin Mitnick na fait que reprendre
une faille connue depuis Fvrier 1985 mais qui
navait jamais t mise en place.
L' usurpation d'adresse IP (galement
appele mystification ou en anglais IP Spoofing)
est une technique consistant remplacer l'adresse
IP de l'expditeur d'un paquet IP par l'adresse IP
d'une autre machine.
Ce type dattaque sutilise de deux manires
diffrentes :

La premire utilit de l'IP Spoofing est la


falsification de la source d'une attaque. Par

exemple, lors d'une attaque de type dni


de service, l'adresse IP source des paquets
envoys sera falsifie afin dviter de localiser
la provenance de l'attaque permettant
lattaquant dtre anonyme.
La seconde utilisation de l'IP Spoofing permet
de profiter d'une relation de confiance entre
deux machines pour prendre la main sur l'une
des deux.
Cet article vous prsentera la seconde
utilisation de lIP Spoofing, utilisation qui peut avoir
des retombes beaucoup plus dsastreuses.
Certains tendent assimiler l'utilisation d'un
proxy (permettant de masquer d'une certaine
faon l'adresse IP) avec de lIP Spoofing. Toutefois,
le proxy ne fait que relayer les paquets. Ainsi,
mme si l'adresse est apparemment masque,
un pirate peut facilement tre retrouv grce au
fichier journal (logs) du proxy.

CET ARTICLE
EXPLIQUE...
Ce quest lIPSpoofing

Les risques encourus


Comment sen protger

CE QU'IL FAUT
SAVOIR...
Connaissance en systme
dexploitation Linux et les bases
des rseaux
20 HAKIN9 2/2010

Figure 1. Utilisation de paquets spoof

ATTAQUE PAR IPSPOOFING


L'IP Spoofing a souvent lieu contre les
services rlogin et rsh car leur mcanisme
d'authentification est fond sur l'adresse
IP. Le principe est simple : ds qu'un client
possde une connexion tablie sur le
serveur avec un mode d'authenfication fond
sur l'adresse IP, le pirate essaiera de se faire
passer pour le client auprs du serveur. Pour
cela, il empchera le client de dialoguer avec
le serveur et rpondra sa place.

Un peu de thorie ne fait


jamais de mal

Le protocole IP est un protocole nonorient connexion, il n'assure aucune


vrification de la rception des paquets
et ne se soucie que peu de la faon de
les traiter. Le protocole IP n'assure qu'un
routage d'une adresse vers autre. Il est
donc ais de duper le routage IP en
injectant des paquets falsifis ayant des
adresses IP valides sur le rseau.
A linverse, le protocole TCP assure
une fiabilit de la remise des paquets
grce des numros de squences qui
les distingue un un. Chaque paquet TCP
possde deux numros, le numro de
squence et le numro d'acquittement.
Ces deux nombres sont cods sur 32 bits.
Ils sont uniques, afin de ne pas confondre
les paquets lors de leurs traitements.
Nous dcrirons l'attaque sur ces
bases.
Imaginons que le client A est connect
grce au protocole rsh sur le serveur B.
Le pirate C tentera de voler la connexion
au client.
En premier lieu, il rduira au silence
le client en le saturant avec des attaques

telles que le syn-flooding ou encore les


attaques par dni de service.
La seconde partie de l'attaque est
assez simple. Le pirate envoie une srie
de demandes de connexion au serveur
en utilisant l'adresse du client A. Le
serveur rpond avec une srie de paquets
d'acquittement. C'est l que rside toute la
finesse de l'IP Spoofing.

Rappels sur le protocole


TCP

Afin de raliser une connexion TCP, le client


envoie un paquet avec un numro de
squence initial (NS1). Le serveur rpond
avec un paquet d'acquittement ayant son
propre numro de squence (NS2), mais
ayant un numro d'acquittement (NA1) gal
au numro de squence initial incrment
d'une unit (NA1=NS1+1). Ensuite, le
client renvoie un paquet avec un numro
d'acquittement (NA2=NS2+1). Une connexion
TCP s'tablit donc en trois parties.
Ce principe de numros de squences
et d'acquittement est utilis durant toute la
transaction pour en assurer la fiabilit. La
subtilit de l'attaque rside dans le fait que le
serveur gnre la valeur NS2 suivant un cycle
particulier. Il peut utiliser, par exemple, soit
une fonction gnrant un nombre alatoire,
soit incrmenter une valeur initiale de 128
toutes les secondes et de 64 aprs chaque
connexion. Tout dpend de l'implmentation
de la pile TCP/IP du systme.
Revenons notre problme. Le pirate
envoie un grand nombre de demandes
de connexion dans un laps de temps
dtermin et analyse les acquittements
du serveur pour dterminer l'algorithme

Listing 1. Dtermination de la difficult de lattaque


nocrash:~# nmap -O -v 192.168.1.4
Starting nmap V. 2.54BETA31 ( www.insecure.org/nmap/ )
[]
Remote operating system guess : Linux 2.1.19 - 2.2.19
Uptime 0.122 days (since Thu Mar 27 16 :02 :38 2003)
TCP Sequence Prediction : Class=random positive increments
Difficulty=4687481 (Good luck !)
IPID Sequence Generation : Incremental
Nmap run completed -- 1 IP address (1 host up) scanned in 3 seconds
Les lignes intressantes sont :
TCP Sequence Prediction : Class=random positive increments
Difficulty=4687481 (Good luck !)

d'incrmentation. Si cet algorithme


s'appuie sur la gnration de nombres
alatoires, l'attaque a peu de chances
d'aboutir. Mais si l'algorithme est
facilement comprhensible, le pirate
envoie alors une requte de connexion
au serveur en utilisant l'adresse IP du
client. Le serveur rpond avec un paquet
d'acquittement de numro de squence
(NS). Le client mis hors service ne pourra
rpondre, le pirate le fera sa place.
Pour cela, il doit injecter un paquet
ayant un numro d'acquittement de valeur
NA = NS +1. Mais, ayant usurp l'adresse
du client, il ne peut intercepter les paquets
lui tant destins. Il ne peut donc pas
connatre cette valeur NS. Il va donc la
gnrer lui-mme partir de son analyse
de l'algorithme d'incrmentation. C'est
pourquoi cette attaque est aussi qualifie
d'attaque aveugle. Si le numro est valide,
le pirate a tabli la connexion au serveur en
se faisant passer pour le client.
Le fait que l'attaque ne se restreigne
qu' une petite partie de systme vient
du fait que la plupart des piles TCP/IP
utilisent des numros de squences
fonds sur des nombres alatoires.
Certains systmes comme BSD ou HPUX connaissent de gros problmes
cause de l'IP-Spoofing.
Dans le cadre d'une attaque par
usurpation d'adresse IP, l'attaquant n'a aucune
information en retour car les rponses de la
machine cible vont vers une autre machine
du rseau (il s'agit alors d'attaque l'aveugle,
en anglais blind attack).

Se dfendre de lIP
Spoofing

Le filtrage IP n'a jamais t considr


comme un lment permettant de
scuriser un systme. Tout au plus est-il
un frein. Une authentification s'appuyant
sur ladresse IP peut tre une bonne
chose mais cette dernire doit tre
couple avec un autre mcanisme
dauthentification comme le classique
couple nom dutilisateur/mot de passe.
Comme
indiqu
prcdemment,
certains services comme rsh et rlogin
ne se fondent que sur ladresse IP, il est
impratif de supprimer ces services pour
les remplacer par, au pire du Telnet et au
mieux du SSH avec login et mot de passe.
2/2010 HAKIN9

21

ATTAQUE
Une solution consiste refuser les
paquets TCP SYN successifs depuis une
mme adresse pour viter que le pirate
prdise le comportement du gnrateur
de numros de squences. Mais une telle
restriction peut limiter la disponibilit du
service (attaque par dni de service ou
DoS).
Sous GNU/Linux, il existe des modules
tels que rp_filter permettant de se dfendre
contre ces types dattaques.
Il est maintenant possible de vrifier
que son systme na pas de numro de
squence TPC facilement prdictible.

Prvenir lIP Spoofing grce


Nmap

Nmap invoqu avec l'option -O et -v


vous fournit une indication sur la difficult
qu'aura le pirate procder une attaque
par IP Spoofing contre votre serveur.
Celles-ci nous renseignent sur la
difficult d'une attaque par IP-Spoofing. Plus
le nombre associ la valeur Difficulty est
lev, plus il est difficile d'entreprendre une
attaque. Inversement, si lors d'un scan,
vous obtenez un nombre trs bas avec un
message du type Trivial Joke, cela signifie
que votre systme est trs vulnrable une
attaque par IP-Spoofing.

Conclusion

LIP spoofing est une menace moins


importante aujourdhui en raison des
patches de scurit appliqus. La
scurit des syste`mes dexploitation ainsi
que lutilisation tendue de squence
de nombre totalement alatoire rend
de moins en moins vident ce type
dattaque. Bien que cette attaque soit de
plus en plus difficile mettre en place, il
est nanmoins ncessaire de la garder
en tte et de tenter de lviter. Pour cela,
la mthode la plus simple reste encore
de dsactiver lensemble des protocoles
dauthentification ne se basant que sur
ladresse IP.
Auteur

Rgis SENET, actuellement stagiaire pour la socit


JA-PSI, est tudiant en cinquime anne lcole
Suprieure dinformatique Supinfo. Passionn par les
tests dintrusion et les vulnrabilits Web, il tente
de dcouvrir la scurit informatique dun point de vue
entreprise. Il soriente actuellement vers les certifications
Offensive Security et CEH.
Contact : regis.senet@supinfo.com
Site internet : http://www.regis-senet.fr
22 HAKIN9 2/2010