• Aucun résultat trouvé

Geoffroy Rabouin Page 74 le 09/06/2005 Lycée Bel Air

ANNEXE 6

Les risques, les

Geoffroy Rabouin Page 75 le 09/06/2005 Lycée Bel Air

a- Le DoS, Denial of Service (déni de service)

Dans ce type d’attaque le premier but est d’empêcher la machine cible d’exécuter ce pour quoi elle est prévue, si c’est est un serveur web, il ne pourra plus fournir les pages web demandées. Il y a au moins deux types d’attaques par DoS, le déni de service par

consommation de bande passante (Denial of service attacks via Bandwidth Consumption) et le déni de service par la consommation d’une autre ressource.

1- Déni de service par consommation de Bande Passante

Le flooding (envoi de beaucoup de données) d’un réseau peut agir sur des équipements de réseau tel que des switchs et des hubs de façon à affecter la vitesse ou le succès du routage du trafic. En résumé, toute la bande passante est consommée pour la réception de l’attaque, et non plus pour le trafic normal. Généralement un réseau est inondé par des paquets d'ICMP ECHO pour essayer de consommer toute la largeur de bande disponible. Dans la pratique ce peut être n'importe quel type de paquet. De nos jours un attaquant ne peut pas simplement utiliser un ordinateur pour assurer une attaque de la mode ci-dessus. La raison de cela est qu’une simple machine ne peut pas créer assez de demandes pour saturer l'équipement de réseau, par conséquent il est nécessaire qu’un attaquant coordonne plusieurs ordinateurs pour inonder une victime.

Comment les ordinateurs sont-ils victimes ? Simple, par email virus/worms qui répandent le virus aux millions d'ordinateurs. Une fois que le virus "est installée" sur un ordinateur il peut être dirigé par l'attaquant pour attaquer des victimes serveur.

2- Déni de service par la consommation d’une autre ressource

On peut saturer un serveur par une trop grosse demande de requête sur celui-ci (courrier ou impression), ainsi il rejettera les demandes légitimes. Les sites Web peuvent tomber parce qu'un attaquant crée une grande quantité de demandes au serveur. Cela veut dire envoyer des centaines et des milliers de paquets faux dans une quantité de temps très courte. Dans un bureau vos capacités d'impression peuvent être détruites par un ouvrier malveillant qui cause une attaque en envoyant plusieurs grands tirages ou des tirages corrompus qui peuvent planter l'imprimante. Les attaquants peuvent tirer profit des bogues dans le logiciel qui peut faire augmenter considérablement l'utilisation de CPU/mémoire pour refuser l’accès non seulement au service visé mais à tous les services offerts par cette machine. Un firewall peut arrêter un nombre limité d'attaques de DoS, il peut également filtrer des attaques visant le logiciel d'exploitation ou des applications. Les firewalls de votre ordinateur familial ne peuvent généralement pas se protéger contre le flooding. Votre ligne sera pour un temps inondée.

Cependant un firewall peut réduire le flux en bloquant vos réponses à l’attaquant.

b- L'IP Spoofing

C’est une technique largement utilisée dans de nombreux types d'attaques. Du fait de la possibilité de créer des paquets bruts à l'aide de la programmation RAW SOCKET, il est possible d'envoyer des paquets avec une fausse adresse IP de source.

Geoffroy Rabouin Page 76 le 09/06/2005 Lycée Bel Air

1- L’ICMP Spoofing

L'ICMP Spoofing est très certainement le plus répandu car c'est le plus facile à mettre en oeuvre. Il est très utilisé dans les attaques de type DoS. En effet, les DoS consistent à

déconnecter (ou molester) donc il est préférable de les lancer avec une fausse IP de source de manière à ne pas se faire repérer. Mais il y a d’autres utilisations plus intelligentes de l'ICMP Spoofing.

Un exemple d'une telle attaque est l'envoie massif de paquets ICMP type 3

(Destination Unreachable) vers un host donné. Si par exemple on sait que ce host est connecté à un serveur et qu'on a l'IP du serveur et bien il suffit d'envoyer une multitude de paquets ICMP type 3 avec une adresse de source correspondant à l'IP du serveur auquel est connecté l'host en question. Celui-ci va penser que les paquets proviennent effectivement du serveur et qu'il ne peut pas l'atteindre et donc il va déconnecté spontanément.

Une autre utilisation possible est très bien représentée par le très célèbre Smurf. Il suffit d'envoyer un paquet ICMP type 8 (Echo request) vers un serveur Broadcast pour que celui-ci transfert le paquet à toutes les machines de son sous réseau. A la réception de ce paquet les machines vont répondre par un ICMP type 0 (Echo Reply) à la machine qui avait envoyé le request. De ce fait si l'on envoie un paquet ICMP type 8 avec une fausse IP de source à un broadcast, tous les Reply vont être envoyer vers cette fausse IP. Donc si l'on envoie beaucoup de paquets a beaucoup de broadcast et bien la machine dont on a mis l'IP en adresse source risque fort d'être déconnectée.

Enfin le dernier type d'attaque et certainement le meilleur est l'utilisation du ICMP type 5 (Redirect). Ce message est généralement envoyé par un routeur à un host pour lui préciser qu'il devrait l'utiliser, car la route est plus rapide. Il suffit donc en théorie d'envoyer un paquet ICMP type 5 à un host avec une IP de source correspond à notre IP et ainsi l'host va dévier sa route pour passer par notre PC en pensant que c'est un routeur. A ce moment là tout le jeu consiste à émuler le fonctionnement d'un routeur, c'est à dire router les paquets vers leur destination et bien sur au passage on les écoute. On peut donc soit recueillir des informations importantes, soit récupérer des numéros de séquences afin de lancer une attaque de type TCP Hijack, procédé qui s'apparente au TCP spoofing et qui consiste en fait à prendre la place de l'host sur la connexion qu'il a avec un serveur.

2- L’UDP Spoofing

Si l'on envoie un paquet à un serveur qui fonctionne avec le protocole UDP, celui-ci traite le paquet directement. Il n'y a aucunement besoin de satisfaire le processus de connection en 3 étapes nécessaire sous TCP. De ce fait, il est très simple d'envoyer des paquets UDP spoofés.

Un service qui fonctionne sous UDP est le service Talk qui permet à un utilisateur de discuter avec un autre utilisateur. Si l'on spoof son IP en prenant celle d'un autre utilisateur on pourra se faire passer pour celui-ci sur le service Talk. Et c'est ainsi qu'on peut obtenir des

informations importantes en se faisant passé pour une personne importante dans la hiérarchie de l’entreprise.

3- Le TCP Spoofing

Sans doute la meilleure mais aussi la plus difficile a mettre en place, le TCP Spoofing permet de cacher son IP sur la plupart des services (Telnet, Ftp, Smtp, …) utilisés sur les réseaux TCP/IP. Le problème avec le TCP Spoofing provient du fait que ce protocole fonctionne en mode connecté. De ce fait il est nécessaire d’établir une connection. En effet lorsque l'on envoie notre Syn avec une fausse IP, le serveur renvoie le Ack/Syn vers la fausse IP. Tout le

Geoffroy Rabouin Page 77 le 09/06/2005 Lycée Bel Air

problème consiste donc à connaître la valeur de l'ISN (Initial Sequence Number) envoyée par le serveur et ici deux cas se présentent :

- vous êtes sur un LAN (réseau local) et vous essayez de vous faire passer aux yeux du serveur pour une autre machine. Dans ce cas la manipulation est assez simple. Vous envoyez votre Syn avec la fausse IP (qui est celle d'une autre machine sur le réseau) le serveur envoie le Ack/Syn vers cette fausse IP mais la vous avez lancé un sniffer qui va récupérer le

Ack/Syn au passage et donc vous avez la valeur de l'ISN du serveur. Il ne vous reste plus qu’à renvoyer le Ack correspondant (toujours avec la fausse IP) et la connection est établie.

Cependant encore une fois ce n'est pas aussi simple car la machine dont vous essayez de spoofer l'IP va aussi recevoir le Ack/Syn du serveur mais puisqu'elle n'a pas envoyé de Syn elle va automatiquement envoyé un Rst au serveur ce qui aura pour but de fermer la

connexion. Pour que ce phénomène ne se produise pas il y 2 possibilités: soit on déconnecte la machine du réseau physiquement, soit on utilise une attaque de type DoS de manière à prendre toute la bande passante de la machine dont on veut prendre l'IP et ainsi l'empêcher d'envoyer le Rst ou même l'empêcher de recevoir le Syn/Ack. Cette méthode est très utile quand on l'utilise sur des services de type rlogin par exemple.

- vous êtes sur internet et vous souhaitez avoir une IP quelconque pour vous connecter a un serveur qui utilise TCP. Et bien là les choses se compliquent pour récupérer le Ack/Syn du serveur, si vous avez accès au réseau local du serveur (routeur compromis) la technique est identique à celle utilisée sur un LAN, vous sniffez le Ack/Syn au niveau du routeur. Si par contre vous n'avez accès à rien et bien la seule solution est de prédire l'ISN que va envoyer le serveur de manière à acquitter le serveur. Les ISN sont gérés 'aléatoirement' mais comme rien n'est vraiment aléatoire en informatique il est possible de prédire l'ISN qui va être envoyé à partir de valeurs d'ISN envoyés précédemment. De manière à étudier l'évolution des ISN en fonction du temps notamment, il faudra récupérer plusieurs ISN et essayer d'établir des corrélations avec le temps et le nombre de connections à l'aide de régressions (linéaires, exponentielles....) et aussi vérifier l'algorithme de génération des ISN dans la pile TCP/IP de l'OS en question. Bref c'est loin d'être facile surtout sur des systèmes de type *nix qui nous renvoient souvent des Difficulty=999999 lorsque l'on scan avec Nmap. Ce nombre correspond à la difficulté de la prédiction de séquence. Mais, vous avez certainement remarqué que les OS Microsoft renvoyaient des valeurs comprises en 1 et 50 pour la plupart du temps (avec une petite remarque précisant que la génération des numéros de séquence dépend

implicitement du temps). Il est donc assez facile de prédire l'ISN sur de tels systèmes.

Le TCP Spoofing a été le plus largement utilisé avec le service rlogin. Ce service permet de se connecter à un serveur comme avec un Telnet, mais à ceci près que l'authentification se fait par l'IP et non par la combinaison login/pass. Si l'on spoofe l'IP de quelqu'un autorisé à se connecter au serveur en rlogin et bien on pourra se connecter sans aucun problème et obtenir un shell.

c- Le cheval de troie

Le cheval de troie est un programme informatique effectuant des opérations malicieuses à l'insu de l'utilisateur. Le nom "Cheval de Troie" provient d'une légende narrée dans l'Iliade (Homère) à propos du siège de la ville de Troie par les Grecs. La légende veut que les Grecs, n'arrivant pas à pénétrer dans les fortifications de la ville, aient l'idée de donner en cadeau un énorme cheval de bois en offrande à la ville en abandonnant le siège. Les troyens (peuple de

Documents relatifs