2.2.2. Les Attaques
Réseaux
Ce type d'attaque se base principalement sur des failles
liées aux protocoles ou à leur implémentation. Nous allons
énumérer quelques attaques qu'un réseau informatique peut
rencontrer.
i. Les techniques de scan
Les scans de ports ne sont pas des attaques à
proprement parler. Le but des scans est de déterminer quels sont les
ports ouverts, et donc en déduire les services qui sont
exécutés sur la machine cible (ex : port 80/TCP pour un service
HTTP). Par conséquent, la plupart des attaques sont
précédées par un scan de ports lors de la phase Probe qui
est comme nous l'avons vu, la première phase des 5P's dans le
déroulement d'une attaque.
Il existe un nombre important de techniques de scan.
Idéalement, la meilleure technique de scan est celle qui est la plus
furtive afin de ne pas alerter les soupçons de la future victime. Voici
une description des techniques de scan les plus répandues :
· Le scan simple : aussi appelé le scan connect,
il consiste à établir une connexion TCP complète sur une
suite de ports. S'il arrive à se connecter, le port est ouvert ; sinon,
il est fermé. Cette méthode de scan est très facilement
détectable ;
· Le scan furtif : aussi appelé scan SYN, il
s'agit d'une amélioration du scan simple. Ce scan essaie
également de se connecter sur des ports donnés, mais il
n'établit pas complètement la connexion : pas de commande ACK
(acquittement) après avoir reçu l'accord de se connecter.
Grâce à ceci, la méthode est bien plus furtive que le scan
normal ;
· Les scans XMAS, NULL et FIN : se basent sur des
détails de la RFC du protocole TCP pour déterminer si un port est
fermé ou non en fonction de la réaction à certaines
requêtes. Ces scans sont moins fiables que le scan SYN mais ils sont un
peu plus furtifs. La différence entre ces trois types de scan se situe
au niveau des flags TCP utilisés lors de la requête ;
· Le scan à l'aveugle : s'effectue via une machine
intermédiaire et avec du spoofing (voir plus bas). Le système
attaqué pense que le scan est réalisé par la machine
intermédiaire et non par le pirate ;
· Le scan passif : est la méthode la plus furtive.
Consiste à analyser les champs d'en-tête des paquets (TTL, ToS,
MSS, ...) et les comparer avec une base de signatures qui pourra
déterminer les applications qui ont envoyé ces paquets. Remarque
: l'utilitaire incontournable pour réaliser des scans de ports se nomme
Nmap.
ii. IP Spoofing
Le but est d'usurper l'adresse IP d'une autre machine. Et
comme finalité : se faire passer pour une autre machine en truquant les
paquets IP. Cette technique peut être utile dans le cas
d'authentifications basées sur une adresse IP (services tels que rlogin
ou ssh par exemple). Déroulement : il existe des utilitaires qui
permettent de modifier les paquets IP ou de créer ses propres paquets
(ex : hping2). Grâce à ces utilitaires, il est possible de
spécifier une adresse IP différente de celle que l'on
possède, et ainsi se faire passer pour une autre « machine ».
Cependant, ceci pose un problème : en spécifiant une adresse IP
différente de notre machine, nous ne recevrons pas les réponses
de la machine distante, puisque celle-ci répondra à l'adresse
spoofée. Il existe toutefois deux méthodes permettant de
récupérer les réponses :
· Source routing : technique consistant à placer
le chemin de routage directement dans le paquet IP. Cette technique ne
fonctionne plus de nos jours, les routeurs rejetant cette option ;
· Re-routage : cette technique consiste à envoyer
des paquets RIP aux routeurs afin de modifier les tables de routage. Les
paquets avec l'adresse spoofée seront ainsi envoyés aux routeurs
contrôlés par le pirate et les réponses pourront être
également reçues par celui-ci.
iii. ARP Spoofing (ou ARP Redirect)
Le but est rediriger le trafic d'une machine vers une autre.
Et la grâce à cette redirection, une personne mal
intentionnée peut se faire passer pour une autre. De plus, le pirate
peut re-router les paquets qu'il reçoit vers le véritable
destinataire, ainsi l'utilisateur usurpé ne se rendra compte de rien. La
finalité est la même que l'IP spoofing mais on travaille ici au
niveau de la couche liaison de données. Déroulement : pour
effectuer cette usurpation, il faut corrompre le cache ARP de la victime. Ce
qui signifie qu'il faut lui envoyer des trames ARP en lui indiquant que
l'adresse IP d'une autre machine est la sienne. Les caches ARP étant
régulièrement vidés, il faudra veiller à maintenir
l'usurpation.
iv. DNS Spoofing
Le but est de : fournir de fausses réponses aux
requêtes DNS, c'est-à-dire indiquer une fausse adresse IP pour un
nom de domaine. Et la finalité est de rediriger, à leur insu, des
Internautes vers des sites pirates. Grâce à cette fausse
redirection, l'utilisateur peut envoyer ses identifiants en toute confiance par
exemple. Il existe deux techniques pour effectuer cette attaque qui
sont :
· DNS Cache Poisoning : les serveurs DNS possèdent
un cache permettant de garder pendant un certain temps la correspondance entre
un nom de machine et son adresse IP. Le DNS Cache Poisoning consiste à
corrompre ce cache avec de fausses informations. Ces fausses informations sont
envoyées lors d'une réponse d'un serveur DNS
contrôlé par le pirate à un autre serveur DNS, lors de la
demande de l'adresse IP d'un domaine (ex : www.ledomaine.com). Le cache du
serveur ayant demandé les informations est alors corrompu ;
· DNS ID Spoofing : pour communiquer avec une machine, il
faut son adresse IP. On peut toutefois avoir son nom, et grâce au
protocole DNS, nous pouvons obtenir son adresse IP. Lors d'une requête
pour obtenir l'adresse IP à partir d'un nom, un numéro
d'identification est placé dans la trame afin que le client et le
serveur puissent identifier la requête. L'attaque consiste ici à
récupérer ce numéro d'identification (en sniffant le 9
réseau) lors de la communication entre un client et un serveur DNS,
puis, envoyer des réponses falsifiées au client avant que le
serveur DNS lui réponde.
v. Fragments attacks
Le but de cette attaque est de passer outre les protections
des équipements de filtrage IP. Et en passant outre les protections, un
pirate peut par exemple s'infiltrer dans un réseau pour effectuer des
attaques ou récupérer des informations confidentielles. Il existe
deux types d'attaque sur les fragments IP et nous pouvons
distingués :
· Fragments overlapping : quand un message est
émis sur un réseau, il est fragmenté en plusieurs paquets
IP. Afin de pouvoir reconstruire le message, chaque paquet possède un
offset. Le but de l'attaque est de réaliser une demande de connexion et
de faire chevaucher des paquets en spécifiant des offsets incorrectes.
La plupart des filtres analysant les paquets indépendamment, ils ne
détectent pas l'attaque. Cependant, lors de la défragmentation,
la demande de connexion est bien valide et l'attaque a lieu ;
· Tiny fragments : le but de l'attaque est de fragmenter
une demande de connexion sur deux paquets IP : le premier paquet de taille
minimum (68 octets selon la RFC du protocole IP) ne contient que l'adresse et
le port de destination. Le deuxième paquet contient la demande effective
de connexion TCP. Le premier paquet est accepté par les filtres
puisqu'il ne contient rien de suspect. Quand le deuxième paquet arrive,
certains filtres ne le vérifient pas pensant que si le premier paquet
est inoffensif, le deuxième l'est aussi. Mais lors de la
défragmentation sur le système d'exploitation, la connexion
s'établit. De nos jours, une grande majorité des firewalls2 sont
capables de détecter et stopper ce type d'attaques.
vi. TCP Session Hijacking
Le but de cette attaque est de rediriger un flux TCP afin de
pouvoir outrepasser une protection par mot de passe. Et ensuite le
contrôle d'authentification s'effectuant uniquement à l'ouverture
de la session, un pirate réussissant cette attaque parvient à
prendre possession de la connexion pendant toute la durée de la session.
Dans un premier temps, ou le pirate doit écouter le réseau, puis
lorsqu'il estime que l'authentification a pu se produire (délai de n
secondes par exemple), il désynchronise la session entre l'utilisateur
et le serveur. Pour ce faire, il construit un paquet avec, comme adresse IP
source, celle de la machine de l'utilisateur et le numéro d'acquittement
TCP attendu par le serveur. En plus de désynchroniser la connexion TCP,
ce paquet permet au pirate d'injecter une commande via la session
préalablement établie.
|