Un petit guide pour la s´curit´ e e Alexandre Viardin (Mirabellug

)

copyright Alexandre Viardin Novembre 2003

Table des mati`res e
1 S´curisation de base e 1.1 Premier conseil : Verrouillez les stations . . . 1.2 Pour Linux . . . . . . . . . . . . . . . . . . 1.3 Pour Windows . . . . . . . . . . . . . . . . . 1.4 Le lecteur de disquettes . . . . . . . . . . . . 1.5 Le lecteur de CDROM . . . . . . . . . . . . 1.6 N’oubliez pas le mot de passe pour le BIOS 8 10 10 10 10 11 11 12 14 14 16 18 19 21 22 24 26 26 26 26 27 27 27 29 31 31 31 34

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

2 La collecte d’informations 2.1 Le Scanner . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Qu’est ce qu’un scanner ? . . . . . . . . . . . . . 2.1.2 Comment marche Nmap ? . . . . . . . . . . . . 2.1.3 La d´termination du syst`me d’exploitation avec e e 2.1.4 Quel est l’intˆret d’utiliser Nmap ? . . . . . . . e 2.2 Identifier les versions des logiciels en ´coute . . . . . . e 2.2.1 Netcat . . . . . . . . . . . . . . . . . . . . . . . 3 Les 3.1 3.2 3.3 failles applicatives Les installations par d´faut . . . . . . . e Les mauvaises configurations . . . . . . Les bogues . . . . . . . . . . . . . . . . 3.3.1 Des d´nis de services applicatifs e 3.3.2 Outrepassement de droits . . . 3.3.3 Les scripts . . . . . . . . . . . . 3.4 Les exploits . . . . . . . . . . . . . . .

. . . . . . . . . . . . Nmap . . . . . . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

4 Les outils indispensables pour la protection 4.1 Le firewall . . . . . . . . . . . . . . . . . . . 4.1.1 La configuration . . . . . . . . . . . . 4.1.2 Les attaques contre les firewalls . . . 4.2 Les NIDS . . . . . . . . . . . . . . . . . . . 1

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

4.2.1 Prelude . . . . . . . . . . . . . . . 4.2.2 Snort . . . . . . . . . . . . . . . . . 4.3 Le tunneling . . . . . . . . . . . . . . . . 4.3.1 Le protocole AH . . . . . . . . . . 4.3.2 Le protocole ESP . . . . . . . . . . 4.3.3 Le protocole IPcomp . . . . . . . . 4.3.4 Le protocole IKE . . . . . . . . . . 4.3.5 Les deux modes de fonctionnements 4.3.6 Les limitations d’IPsec . . . . . . . 4.4 Nessus . . . . . . . . . . . . . . . . . . . . 4.4.1 Pour obtenir tout sur Nessus . . . . 4.5 User Mode Linux - UML . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . de IPsec . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

34 35 36 36 36 36 36 37 37 38 38 39 40 42 43 43 43 45 47 49 51 52 53 54 54 54 55 55 55 56 56 57 59 59 59 60 61

5 Surveillance - Dissimulation - Maintien d’acc`s e 5.1 Les chevaux de Troie . . . . . . . . . . . . . . . . . . . . 5.2 Les backdoors . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 Les backdoors pr´sentes dans les logiciels. . . . . e 5.2.2 Les backdoors d´di´es aux connexions ` distance . e e a 5.3 Les Rootkits . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 L’interception des mots de passe en r´seau. . . . . . . . . e 6 Dispositifs destructeurs 6.1 Le virus . . . . . . . . . . . . . . . . . 6.2 Les vers . . . . . . . . . . . . . . . . . 6.3 Les bombes logiques . . . . . . . . . . 6.4 Les attaques par d´ni de services . . . e 6.4.1 Le SYN flood . . . . . . . . . . 6.4.2 L’UDP Flood . . . . . . . . . . 6.4.3 Fragmentation de paquets . . . 6.4.4 Ping of death . . . . . . . . . . 6.4.5 Attaque par r´flexion : Smurfing e 6.4.6 D´nis de services distribu´s . . e e 6.4.7 Bombes e-mail . . . . . . . . . 7 S´curisation des mots de passe e 7.1 L’attaque par dictionnaire . . . 7.2 Le brute forcing . . . . . . . . . 7.3 Tester la fiabilit´ de vos mots de e 7.4 Choisir le bon mot de passe . . 7.5 Pr´venir l’utilisateur . . . . . . e

. . . . . .

. . . . . .

. . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . passe ! . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

2

. . . . . . .14 SQL .9. . . . . . . . . . . . . . . . . . 8. . . . . . . . . . . 9. . . .9 NFS : Network File System . . . . . . . . . . . . . . . . . 9. . . . . . . . . . . . . . . . . . . . . .17 XWINDOW . . . . . . . . . . . . . . . . . . . . . . . . .16 TELNET . 9. . . . . . . . . e 9. 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 Le protocole SMB . . . . . . . . . . . 9. . .7 IP et l’IP-Spoofing . . . . 9. e 8. . . . . . . . . .8 La base des attaques r´seaux e 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . .1 Attaque par ´puisement de ressources . .2. . . . . . . . . .1 Les serveurs trop bavards . . . . . . . . . .1 Le ”SQL-INJECTION” . . . . . . . . . . . . . . . . . . 62 64 64 65 67 68 69 71 71 71 73 73 74 77 79 79 81 81 81 83 84 84 87 90 91 91 92 92 93 94 94 96 97 97 98 99 100 100 101 9 Description d’attaques sur diff´rents protocoles e 9.4. 9.. .13 SMTP . . . . .18 Peer To Peer (eDonkey. . . . 9. . . e a a 9.1 Le serveur FTP anonyme . . . . . . . . . .8 NETBIOS . . . . . . . . . . . . . . . 9. 9. . . . .1 DHCP : Dynamic Host Configuration Protocol . . . . 9. . . . . . . . . . . 9.1 Les attaques . . . . . . . . . . . . . . . . . . . . . . . . . . 9. . . . . . . . . . . . . . .6 IDENT . . . 9. . 9. . . . . . . . . . . . . . . . . . . . .14.5. e e e 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2 Le DNS cache poisoning . . . . . . . . . . 9. . .17. . .2 Pr´venir l’IP spoofing grˆce ` Nmap . . . . . .1 ARP-Poisoning : . . . . . . . . . 9. . . . . . 9. . . . . 9. . . . Kazaa . . . . . . . . . . . . . .4 FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Encapsulation d’IP dans d’autres protocoles.Man in the Middle . . . . . . . . . . . . .Les services de messagerie . . . . . . . . . . . . . . .1 Un peu de th´orie . . . . . . . . . . . . . . . . . . . . .. . . . . . .10 NIS : Network Information Service . . . . e 8. . . .1 Le DNS ID spoofing . . . . . 9. . . . . . . . . . . . . . . . . . . .11 PORTMAP . . . . . . . .. . . . . . . . .2 MIM . .5 HTTP . . . .2 D´synchronisation TCP : . . . . . . . . . . 9. . . . . . 8. . e 9. . . . . . . . . . .10.12. . . . . . . . . . . . . . . . .1. . . . . .15 SSH . .1. . .) . . . . . 9. . . . . . . . . 9. . . . . .2. .3 FINGER . . . . . . . . . . . .1 Les scans de SMB shares . . .2 Vuln´rabilit´s li´es aux applications web . . . . . . . . . . . . . . . . . . . . . . . 9. . . . 3 . . . .1 Les attaques . . . . .1. . . . 9. 9. . . . . . . . . . . . . . . .1 Les attaques . . . . . . . . . . . .2 Faux serveurs DHCP . . . . .7.2 DNS : Domain Name Server . . . . .7. . . . . . . . . . .5.. . . . .1 D´tournement de flux . . . . . . . . . .

. . . . . . . . . . . . .2 Comment obtenir et compiler le source entier du programme ? . . . . . . . . .2. . . .1 Les sites et revues ` consulter r´gulierement . . . . . . . .2. . . . . 118 11 Annexes 119 11.1. . . . . . . . . . . . . . 10. . .1. . . e e 10. . 118 . . . . . . . .3 Documents . . . . . . . . . . . . . . . . . . . . e e 10. . . . . . . . 122 4 . . . . e e 10.2 Remerciements .1 Le programme . . . . . . . 120 a e 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2. . . e e 10. . . . . . .10 S´curit´ avanc´e e e e 10. . . . .2 Le premier niveau de s´curit´ . .1 Le r´seau de d´part . . . . . . . . . 102 104 104 105 105 106 108 108 . . . . . .3 NDIS : Deuxi`me niveau de s´curisation . . . . .1. . . .2 D´veloppez vos propres utilitaires s´curit´ . .1. . . . . . . e e 10. . . e e e 10. . . . . .4 Les niveaux plus ´lev´s . . . . . . . . . . . . . . . . . .1 L’architecture s´curis´e .

Si vous voulez participer en ´crivant ou en ee e e e compl´tant des chapitres. Je ne suis pas sp´cialiste e en s´curit´ r´seau . et peuvent e e ˆtre perdus devant un probl`me de ce type.Avant-propos ”Qui connaˆt l’autre et se connaˆt. qui ne connaˆ l’autre mais se connaˆt. e e a Le principe est simple : une description assez succinte sur une attaque et ensuite une description compl`te des m´thodes de protection. un descriptif technique et un manuel a d’autoformation ` la s´curit´ r´seau. j’ai juste ´crit ce guide dans le but de donner ` des ade e e e a ministrateurs ou ` des particuliers. Ce guide sert e de point de d´part et d’introduction ` la s´curit´. dense ou tr`s technique. Le masse d’informations dispoe e nible sur Internet est parfois confuse. qui ne connaˆ pas plus l’autre qu’il ne se connaˆ ıt ıt sera toujours d´fait. Vos exp´riences e e e personnelles et vos remarques sont aussi les bienvenues. en cent combats ne sera point ı ı d´fait . ce guide est sous license GPL donc gratuit. Evidemment.fr. a e e e La plupart des administrateurs ne sont pas sp´cialistes en securit´.Sun Tzu Ce guide a ´t´ r´alis´ suite ` un audit de s´curit´ que j’ai r´alis´ pour ee e e a e e e e mon ´cole et aux deux conf´rences sur la s´curit´ r´seau pr´sent´es au groupe e e e e e e e d’utilisateurs Linux de NANCY (coucou le Mirabellug).” e L’art de la guerre . La seule r´compense e que pourront recevoir les ´ventuels participants est la mention de leurs noms e en tant que collaborateurs. sera vainqueur une e ıt ı fois sur deux . Ce guide se compose d’une dizaines de chapitres. 5 . n’h´sitez pas ` me contacter sur guidesecu@free. e a e e Il a ´t´ pens´ dans un but ´volutif.

e Le deuxi`me chapitre d´crit le fonctionnement des outils de r´cup´ration e e e e d’informations ` distance.com/guide/guidesecu. Le septi`me chapitre d´crit les attaques sur les fichiers de mots de passe.pdf 6 . notamment les scanners. e e Le premier chapitre montre comment s´curiser une station pour ´viter toutes e e tentatives de piratage par un acc`s physique. un chapitre contient au moins une section divis´e en diff´rentes sous sections : une e e pour la description d’un probl`me de s´curit´ particulier. une deuxi`me pour e e e e d´crire les diff´rents moyens de s’en prot´ger et une troisi`me pour donner e e e e diff´rents liens vers des documents plus pr´cis sur le sujet. e e a e e O` trouver ce guide ? u C’est tr`s simple. e Le dixi`me chapitre est divis´ en deux parties : la premi`re explique comment e e e architecturer son r´seau de fa¸on s´curis´e.Chaque chapitre comporte une introduction. e Le cinqui`me chapitre explique comment un pirate dissimule sa pr´sence e e sur un syst`me. La plupart du temps. e e Les huiti`me et neuvi`me chapitres traitent de diff´rents probl`mes pos´s e e e e e par certains protocoles r´seaux. e Le troisi`me chapitre introduit la notion de failles. bombes e e mails .. e Le sixi`me chapitre s’int´resse aux dispositifs destructeurs (virus. La deuxi`me partie est un cours e c e e e sur le developpement d’outils d´di´s uniquement ` la s´curit´. il y a deux adresses : e Le site officiel : http://guidesecu. Il montre l’utilit´ qu’ils a e ont pour vous prot´ger.. e Le quatri`me chapitre introduit diff´rentes notions sur les firewalls et les e e principaux autres syst`mes de protection logiciels.).ifrance.

Linux poss`de une certaine avance sur Mie crosoft dans le domaine de la s´curit´ (notamment par un plus grand nombre e e de logiciels performants et gratuits). Je n’oublierai pas de parler de la s´curit´ pour les e e produits Microsoft.Sur le site du Mirabellug : http://www.pdf Les OS vis´s : e La majorit´ des programmes d´fensifs utilis´s et d´crits dans ce guide sont e e e e disponibles sous LINUX.mirabellug.. contactez moi par mail. Bonne Lecture ! 7 . VMS.org/docs/securite/guidesecu.. Les autres OS comme SunOS. Novell. seront pass´s e sous silence mais si vous voulez voir des chapitres pr´cis sur certains OS ape paraitre.. Plan9. MacOS. Cependant.

Chapitre 1 S´curisation de base e 8 .

La plupart des utilitaires de piratage ont besoin des acc`s administrateur pour fonctionner . sans ces acc`s. e e L’objectif est d’empˆcher une personne mal intentionn´e d’obtenir les acc`s e e e adiministrateur sur la machine qu’elle utilise. e e la capacit´ de nuire est fortement diminu´e. e e e Dans ce chapitre. Ces o machines sont en acc`s libre dans une salle non surveill´e. nous ne nous focaliserons pas sur un serveur d´di´ ` un e e a service particulier.Introduction Le but de ce chapitre est de donner diff´rentes m´thodes pour s´curiser e e e physiquement une machine. Il faut savoir qu’une grande partie des piratages sont lanc´s par des pirates ayant un acc`s physique sur un r´seau. e e 9 . mais plutˆt sur les machines constituant les clients.

NTFS2DOS est lanc´ depuis une disquette de boot DOS. 98 et Me. e 1. 1. Si vos machines W indows c fonce tionnent avec de la FAT.4 Le lecteur de disquettes Evitez le boot sur disquette. Trinux est livr´ avec un panel assez impressionnant d’utilitaires exclusivement d´di´s ` e e e a la s´curit´. e 10 . un utilitaire comme Trinux (qui est un OS Linux s’installant en RAM grˆce ` un nombre limit´ de disquettes) donne la a a e possibilit´ de monter tous les syst`mes de fichiers pr´sents sur le(s) disque(s) e e e dur(s) de la machine et d’en modifier le(s) contenu(s).3 Pour Windows Le syst`me de fichier NTFS permet une s´curisation accrue par rapport e e aux syst`mes de fichier FAT et FAT 32. passez en NTFS.1. mais cela ´vitera aussi d’avoir des disques e e durs mont´s en ”secret” avec toute une panoplie d’utilitaires install´s dessus. e e Le conseil ` suivre imp´rativement (et vous comprendrez pourquoi en lia e sant les deux chapitres suivants) : il faut d´sactiver le boot sur le lecteur de e disquette et sur le lecteur de CDROM. De plus.2 Pour Linux Evitez d’avoir l’option ”failsafe” au d´marrage propos´ par Lilo. e e e 1. e e Le programme NTFS2DOS (sous DOS) permet de changer les partitions NTFS en partitions FAT et de pouvoir acc´der ` leurs contenus sans restrice a tions. Je d´conseille fortement d’utiliser Windows 95. Cette e e option peut permettre d’obtenir les acc`s root (sans mot de passe) pour la e maintenance du syst`me.1 Premier conseil : Verrouillez les stations N’h´sitez pas ` poser un cadenas sur les tours des machines. cela empˆchera e a e tout d’abord le vol de mat´riel. le niveau de s´curit´ e e e offert par ces OS en natif n’´tant pas assez ´lev´.

1. Encore une fois. afin d’´viter ` des utilisateurs (encore) mal intentionn´s de retirer e a e la pile du BIOS et d’outrepasser la protection par mot de passe.6 N’oubliez pas le mot de passe pour le BIOS N’oubliez de prot´ger l’acc`s du BIOS par un mot de passe ! Attention e e certains BIOS peuvent comporter des failles logicielles permettant d’outrepasser ces protections.5 Le lecteur de CDROM Des utilitaires comme Knoopix (un OS Linux bootant sur un seul CD et contenant lui aussi un nombre impressionnant d’utilitaires divers) peuvent ˆtre utilis´s pour monter les diff´rents syst`mes de fichiers pr´sents sur le(s) e e e e e disque(s) dur(s). il ne faut pas oublier de cadenasser les tours. 11 . 1.

Chapitre 2 La collecte d’informations 12 .

C’est pour cette e e raison qu’il est indispensable de les d´crire d`s le d´but. e a 13 .Introduction Dans ce chapitre. Ces utilitaires sont fr´quemment e e a e utilis´s par les pirates pour pr´parer de futures attaques. nous allons d´crire le fonctionnement des outils permete tant de r´cup´rer des informations ` distance. Vous apprendrez e e e ´galement ` les utiliser pour votre propre protection.

Le but de ce section est de pr´senter des m´thodes de protections contre le e e scan (en utilisant des r`gles de firewalling sous iptables/ipchains par exemple) e et de savoir utiliser un scanner pour anticiper les futures attaques. permettant de comprendre les diff´rentes m´thodes de protection.1. un serveur Web le port 80. Lorsqu’un service est en ´coute sur un port.1 Qu’est ce qu’un scanner ? C’est tr`s simple : lorsqu’un serveur offre un service particulier (Web.2. mese sagerie. le pirate va utiliser un scanner. un des scanners les plus utilis´s e e et un des plus performants.. il ex´cute un programme assurant ce service. Les clients devant acc´der ` ce service doivent connaˆ e a ıtre l’adresse IP du serveur et le num´ro de port associ´ au service.. Je d´crirai dans une premi`re partie ce qu’est un scanner. e e Ce num´ro de port a ´t´ attribu´ par l’OS du serveur au programme ex´cutant e ee e e ce service. Par exemple. a la version d´crite dans ce chapitre ´tant celle disponible sous Linux. je me e e focaliserai sur Nmap et je le pr´senterai d’un point de vue un peu plus teche nique. Ensuite. Ce programme e est en attente de connexions. Nmap doit ˆtre e e utilis´ avec les acc`s root ! e e 2. on dit que le num´ro de port e e associ´ ` ce service est ouvert. e e un serveur de messagerie utilise le port 25. e e Attention : pour une capacit´ optimale de fonctionnement.1 Le Scanner L’objectif du pirate est de rep´rer les serveurs offrant des services partie culiers et de les identifier. mail). La plupart des services ont un num´ro de port bien d´fini.insecure. ea L’int´rˆt du scanner est tr`s simple : il permet de trouver dans un d´lai ee e e Nmap est disponible sous W indows c et Linux ` l’adresse http ://www. Le scanner d´crit dans ce chapitre est Nmap1 .org/. e e 1 14 . Pour obtenir ces informations.

certains se contentent juste de donner e le listing des ports ouverts.1.1 Starting nmap V.168.tr`s court.. DNS. Nmap donne un aper¸u assez complet des diff´rents services s’ex´cutant sur c e e la machine dans un temps assez bref. POP-3 . 2.1) : (The 1544 ports scanned but not shown below are in state : closed) Port State Service 21/tcp open ftp 53/tcp open domain 80/tcp open http 110/tcp open pop-3 111/tcp open sunrpc 113/tcp open auth 631/tcp open cups 845/tcp open unknown 901/tcp open samba-swat 10000/tcp open snet-sensor-mgmt Nmap run completed – 1 IP address (1 host up) scanned in 2 seconds.net /root]# nmap 192.insecure. e Exemple avec Nmap Utilisons Nmap pour connaˆ les services en ´coute sur la machine d’adresse ıtre e IP 192. e Il existe diff´rents types de scanner. D’autres scanners comme Nessus permettent de tester diff´rentes e failles connues sur ces services ( Nessus sera d´crit dans la section 4.168.1.4).168. sont en attente de connexions.54BETA31 ( www. de donner le type et la version de l’OS tournant sur le serveur (ces fonctionnalit´s seront d´crites dans ce chapitre avec e e Nmap). WEB. 15 . tous les ports ouverts sur une machine.1 [root@nowhere. On peut observer ici que des serveurs FTP..1.org/nmap/ ) Interesting ports on (192.

1.net /root]# nmap -sT [ip de la machine cible] Les scans furtifs Nous rentrons maintenant dans une classe de scans plus difficiles ` d´tecter : a e . Bien e sˆr. e Le scan en ”vanilla TCP connect” est le scan par d´faut avec Nmap. donc diff´rents types d’envois et donc. la e commande est : [root@nowhere. u e e diff´rents types de r´ponses. e Illustration 16 . il renverra un paquet avec les flags SYN et ACK arm´s. e e Nous nous int´resserons aux scans utilisant le protocole TCP (les scans UDP e et ICMP ´tant possibles eux aussi). il y a diff´rents types de scans. e Pour connaˆ les ports ouverts sur une machine. Ce type de scan est facilement rep´rable. e Le scan en ”vanilla TCP connect” Nmap proc`de ` l’appel de la fonction connect() sur tous les ports de la e a machine.Le scan en connexion demi-ouverte ou ”Syn-scan” : Nmap envoie sur chaque port un paquet TCP avec le flag SYN arm´ . si e un port est ouvert. Nmap proc`de ` l’envoi ıtre e a de paquets sur tous les ports de cette machine et analyse les r´ponses.2.net /root]# nmap [ip de la machine cible] ou [root@nowhere.2 Comment marche Nmap ? Je pr´senterai de mani`re tr`s succinte Nmap et me focaliserai principae e e lement sur les fonctions les plus utilis´es.

La commande se fait par l’appel de nmap avec l’option -sS : [root@nowhere.net /root]# nmap -sS [ip de la machine cible] .net /root]# nmap -sN [ip de la machine cible] Le Xmas scan (traduisez le scan de No¨l) consiste en l’envoi de paquets e TCP avec les flags FIN/URG/PUSH arm´s. e La commande se fait par l’appel de nmap avec l’option -sX : [root@nowhere. Le scan FIN consiste en l’envoi de paquets TCP avec seulement le flag FIN arm´ : e La commande se fait par l’appel de nmap avec l’option -sF : [root@nowhere.Les scans Xmas.net /root]# nmap -sX [ip de la machine cible] 17 .net /root]# nmap -sF [ip de la machine cible] Le scan NULL consiste en l’envoi de paquets TCP avec seulement le flag NULL arm´ : e La commande se fait par l’appel de nmap avec l’option -sN : [root@nowhere. FIN et NULL.

54BETA31 ( www.insecure.org/nmap/ ) Interesting ports on (192. Le NULL scan ne e e fonctionne pas contre des plateformes Microsoft.net /root]# nmap -O 192. Illustration 2.1.1. 2.168.1) : (The 1544 ports scanned but not shown below are in state : closed) Port State Service 21/tcp open ftp 53/tcp open domain 80/tcp open http 110/tcp open pop-3 111/tcp open sunrpc 113/tcp open auth 631/tcp open cups 845/tcp open unknown 18 .168.1.3 La d´termination du syst`me d’exploitation avec e e Nmap Si on lance Nmap avec l’option -O : [root@nowhere. les syst`mes r´pondent avec un paquet RST si e e le port est ferm´ et ne r´pondent pas si le port est ouvert.1 Starting nmap V.Pour ces trois types de scans.

et aussi de poue voir connaˆ quels services tournent sur une machine.1.901/tcp open samba-swat 10000/tcp open snet-sensor-mgmt Remote operating system guess : Linux 2.2.19 Nmap run completed – 1 IP address (1 host up) scanned in 3 seconds Notez bien l’avant-derni`re ligne : e Remote operating system guess : Linux 2.2.19.12 .19 Nmap parvient ` d´terminer le syst`me d’exploitation tournant sur la maa e e chine cible. Nmap ne s’est pas tromp´.12 .2.2. a e Nmap est un logiciel tr`s complet et tr`s ´volutif. Nmap envoie donc des paquets tests ` la machine cible a et compare les paquets re¸us en r´ponse ` ceux de sa base de donn´es et en c e a e d´duit le type d’OS. 2. Nmap contient une base de donn´es d’un a e grand nombre d’OS. N’h´sitez e e a e pas ` utiliser Nmap contre vos serveurs pour savoir quels ports sont en ´coute. Certains champs au niveau de la couche IP ou e e TCP sont propres ` chaque OS. e Cette base de donn´es est mise ` jour en fonction des diff´rentes version e a e de Nmap. et il est une r´f´rence e e e ee dans le domaine du scanning. Une installation faite ıtre un peu trop vite peut laisser des services en ´coute (donc des ports ouverts e sans que cela soit n´cessaire) et donc vuln´rables ` une attaque. e Il faut savoir que chaque syst`me d’exploitation construit ses paquets d’une e mani`re bien particuli`re. La machine cible utilisait un noyau 2.2.2.4 Quel est l’intˆret d’utiliser Nmap ? e Nmap permet de pouvoir pr´voir les futures attaques. Comment s’en prot´ger ? e Configurer votre firewall pour empˆcher les scans e 19 .2.

php?p=54\&a=9 http://www.phrack.3) de Rusty Wagner). FIN.org/show. V´rifiez e e que votre firewall (si ce n’est pas iptables) supporte la d´tection de scans.php?p=57\&a=7 20 .RST RST -m limit –limit 1/s -j ACCEPT Cette commande permet de d´tecter l’envoi un grand nombre de paquets e TCP avec les flags FIN et/ou SYN et/ou ACK et/ou RST arm´(s).phrack. e (Pour plus de d´tails sur cette commande.phrack.php?p=51\&a=11 http://www.ACK. je vous conseille de lire le docue ment ”Packet Filtering HOWTO : Using iptables” (Chapitre 7.[root@nowhere /root]# iptables -A FORWARD -p tcp –tcp-flags SYN.org/show. Documents Divers articles ´cris par le d´veloppeur de Nmap sur le scanning (en ane e glais) : http://www.org/show.

1..2 (Odyssey) for i586 Kernel 2.1. Mˆme si le port telnet est ferm´. Welcome to muetdhiver Linux Mandrake release 7.2.168.net /root]# telnet 192. son ıt e e objectif va ˆtre de d´couvrir les noms et les versions des logiciels utilis´s pour e e e assurer ces services. e Le pirate peut d´j` essayer de se connecter sur diff´rents ports grˆce aux ea e a programmes clients associ´s pour glaner des informations.1 Trying 192. il peut proc´der ` une connexion telnet sur le port associ´ ` un e a ea autre service en ´coute : e Exemple d’un telnet sur le port FTP ( port 21) [root@nowhere.1.2 Identifier les versions des logiciels en ´coute e Maintenant que notre pirate connaˆ les diff´rents services en ´coute. le pirate peut glaner d’autres informae e tions sur les autres services. Connected to 192. Pour cela. Escape character is ”CTRL-C”.17-21mdk on an i586 Trop de renseignements apparaissent.. e Rien que telnet donne beaucoup d’informations : [root@nowhere.2.1. L’objectif de ce chapitre est de pr´senter une parade pour ´viter de done e ner trop d’informations sur votre syst`me.1.2.168.2 (Odyssey) for i586 Kernel 2.1.168.168.net /root]# telnet 192.1 21 21 .17-21mdk on an i586 login : Avec la r´ponse : e Linux Mandrake release 7.

1.. Le plus r´put´ de ces programmes est sans doute Netcat. Netcat2 comporte plein e d’autres fonctionnalit´s (comme l’envoi de scripts .2. Le pirate peut alors utiliser un programme con¸u pour ´crire et lire de donn´es sur c e e machine cible et sur le port voulu..168. Escape character is ’CTRL-C’. Ces programmes permettent d’envoyer des scripts directement sur le logiciel souhait´ sans se soucier des limites proe tocolaires. le client telnet sera inefficace.1.1.1 Netcat Netcat permet d’´tablir une connexion (TCP ou UDP) sur un port soue hait´ et d’y envoyer ou d’y recevoir des donn´es. e e Voici un exemple : [root@nowhere.1.2.168.1 21 220 ProFTPD 1. Le pirate va alors rechercher e des informations sur les faiblesses de s´curit´ de celui-ci.1.nl/UNIX/netcat/ ee 22 . Connected to 192. sur certains services.5rc1 Server (ProFTPD Default Installation) [neuromancer] La ligne qui nous int´resse le plus est celle-ci : e 220 ProFTPD 1.Trying 192. e Le pirate n’a plus qu’` trouver une faille applicative (voir chapitre suivant) a sur le logiciel correspondant.). e e 2.2. 2 Netcat est t´l´chargeable sur : http ://packetstormsecurity.5rc1 Server (ProFTPD Default Installation) [neuromancer] La version du logiciel nous est donn´e...5rc1 Server (ProFTPD Default Installation) [neuromancer] On obtient directement la version du logiciel utilis´. 220 ProFTPD 1.2.168.net /root]# nc 192. e e Cependant.

e 23 .Comment s’en prot´ger ? e Retirer les banni`res donnant les versions de logiciel et les messages d’aide e ou de bienvenue d’un service r´seau en ´coute qui peuvent donner des infore e mations sur votre syst`me. e Utilisez netcat contre vos serveurs pour rep´rer les services trop ”bavards”.

Chapitre 3 Les failles applicatives 24 .

e Nous nous focaliserons principalement sur les failles logicielles : les failles applicatives. probl`mes li´s ` de mauvaises ine e e a terpr´tations de commandes ou de mauvaises ex´cutions de scripts.Introduction Nous allons aborder dans ce chapitre les failles li´es aux applications utie lis´es. e e probl`mes au niveau du code du logiciel. e e 25 . Ces failles peuvent ˆtre de natures diverses : probl`mes de configuration.

. e 3. 26 .1 Des d´nis de services applicatifs e Ce type de faille empˆche le logiciel de fonctionner et ainsi de r´pondre e e aux requˆtes demand´es (d’o` l’appellation d´ni de service). e 3.).1). les services qui seront o install´s sur le syst`me. il suffit d’utiliser un bogue connu qui va faire planter le logiciel assurant un service. elle peut laisser l’acc`s libre e e e a ` certaines bases de donn´es sensibles (fichiers de mots de passe. Les bogues font a apparaˆ diff´rents types de probl`mes de securit´ : ıtre e e e 3.. e e Le plus important est de restreindre au maximun les acc`s ` certains fichiers e a sensibles et aux commandes syst`mes. La technique e e u e est simple. Ces services peuvent contenir les diff´rents e e types de failles introduites auparavant. beaucoup de services peuvent ˆtre install´s par e e d´faut (un serveur Web.1 Les installations par d´faut e Lors d’une installation.2). d’utilisae teurs) ou de permettre d’ex´cuter des commandes ou des scripts malveillants. il est aussi recommand´ de e e e u e ”scanner” la machine pour voir ce qui y tourne (voir section 2.2 Les mauvaises configurations Lorsqu’une application est mal param´tr´e. e Il est important de bien lire le manuel avant d’activer un service (RTFM !) et de bien d´finir le ”qui fait quoi”. FTP . ils peuvent e quand mˆme donner des informations aux pirates (voir section 2.3 Les bogues Les bogues sont dus ` des erreurs de programmation.3.3. e Ce principe est simple : il suffit de bien d´finir les utilisateurs et les groupes e et de limiter leurs droits sur certains types de fichiers et certaines op´rations e d’ex´cution de commandes syst`me. L’important est de bien contrˆler lors de l’installation. Mˆme si certains logiciels ne comportent pas de failles connues. Pour ˆtre bien sˆr de soi.

ıtre Des sites comme celui du CERT (Computer Emergency Response Team) publie un rapport sur toute nouvelle faille de s´curit´. Comment s’en proteger ? 1 .).Recensez les applications vuln´rables.3.3.3.. Il convient d’ˆtre e e e e e tr`s attentif au niveau du d´veloppement d’un script.org (Anglais) Les archives bugtraq font partie des meilleures sources sur les nouvelles vuln´rabilit´s.cert. e Il est toujours bon de connaˆ les failles de vos logiciels avant les pirates. une mauvaise programmation de scripts ou l’utilisation de fonctions bogu´es peut ˆtre source de failles de s´curit´. Ces ”exa ploits” sont en fait de petits programmes permettant d’exploiter une faille dans un but pr´cis (obtenir un interpr´teur de commandes.2 Outrepassement de droits Les bogues de type d´passement de buffer ou d’exploitation de bogues de e format posent de gros probl`mes de s´curit´.. Le CERT permet aussi e e d’obtenir de l’aide en cas de piratage. Ces archives donnent des descriptions tr`s pr´cises sur des e e e e nouvelles failles de s´curit´. Ils visent majoritairement des e e e applications setsuid (fonctionnant avec les acc`s root) pour permettre ` un e a attaquant d’obtenir un interpr´teur de commande sous l’uid root. pour l’obtention d’un shell a (parfois avec les droits administrateur) sans mot de passe. le pirate fait appel ` des ”exploits”. ni nom d’utilisateur. e 3. e e 3.4 Les exploits Pour exploiter ces bogues.3 Les scripts Malheureusement. Les exploits peuvent aussi fonctionner ` distance. e e Le site BUGTRAQ : 27 . Le site du CERT : www. acc´der ` certains e e e a fichiers. augmenter ses droits.

openwall.org ou www.securityfocus.packetstormsecurity. Le site securityfocus donne un classement1 des failles en fonction du type d’architecture . Ainsi. com contiennent aussi de nombreuses informations.com (en fran¸ais) c Certains sites comme www. il est facile de trouver rapidement le logiciel concern´.Limitez les programmes s’ex´cutant avec les droits administrateur.http://citadelle. Les NDIS (d´crit dans le chapitre suivant) peuvent vous permettre de rep´rer e e les attaques exploitant des failles connues sur certains types de logiciel. e Il est toujours bon de r´p´rer les programmes s’ex´cutant avec les droits e e e administrateur.com/search dans la rubrique ”Vulnerabilites” librement t´l´chargeable sur www.com ee 28 . 3 . vous pouvez changer leurs droits pour qu’ils ne deviennent pas un point critique pour la vuln´rabilit´ du syst`me.com/mailing/current/HTML/ml_bugtraq/ (en anglais) http://www. Le patch OpenWall2 vous permet de e prot´ger votre noyau Linux.Les autres solutions. e 2 . On peut aussi ”patcher” son noyau pour ´viter l’ex´cution d’exploits utilisant e e des bogues de d´passement de buffer.securityfocus.net /root]# find / -perm +6000 vous permettra de lister tous les programmes s’ex´cutant avec les droits ade ministrateur. e e e Sous linux.intrinsec.bugtraq-france. la simple commande : [root@nowhere. e 1 2 http ://www.

Chapitre 4 Les outils indispensables pour la protection 29 .

e c 30 . les tunnels et les IDS/NDIS sont des outils indispensables pour d´tecter. parer ou ´viter de nombreuses attaques. Nous les d´crirons e e e dans ce chapitre.Introduction Les firewalls. ainsi que la mani`re de les utiliser de fa¸on optimale.

web.2 Les attaques contre les firewalls La premi`re ´tape lors d’une attaque est de d´terminer les r`gles de firee e e e walling. nous nous int´resserons aux diff´rentes m´thodes d’ate e e taques contre les firewalls. il suffit de bien respecter les conseils suivants : . e e Pour cela.Fermez tous les ports en ´coute sur les diff´rents serveurs et ouvrez seulee e ment ceux dont vous avez besoin.4. 4. Le but est simple : savoir quels ports ne sont pas filtr´s. .).Filtrez ces ports. .1 Le firewall La configuration d’un firewall peut s’av´rer ˆtre un sujet tr`s difficile ` e e e a traiter. ftp. il suffit de d´finir un nombre limit´ de services auxquels les sere e veurs et les clients peuvent acc´der (mail.. Ensuite.1 La configuration Pour bien configurer son firewall. Vous pourrez ainsi rejeter toutes les autres requˆtes e venant d’utilisateurs utilisant une adresse IP non autoris´e. c’est ` dire rejetez toutes les autres requˆtes sur les autres a e ports que ceux en ´coute.1.Essayez de limiter l’acc`s ` votre r´seau ` des utilisateurs connus utilisant e a e a une adresse IP statique.1.Empˆchez toutes les connexions sortantes sur des services non autoris´s.. e 31 . L’objectif de ce chapitre est de donner des conseils ` suivre pour bien utiliser a un firewall. e . Ensuite. Vous effectuez e de la sorte un filtrage au niveau IP. Cette configuration est surtout ´tablie en fonction de vos besoins pere sonnels. il faut confie gurer le firewall pour rejeter les connexions depuis l’int´rieur vers l’ext´rieur e e sur des services diff´rant de ceux d´finis. e e 4.

e Si le scan ne marche pas. ce champ repr´sentant e e la dur´e de vie d’un paquet. e e Voici un exemple : [root@nowhere.168. le TTL est d´cr´ment´ ` 0. le TTL (pour Time To Live).1. a e C’est ce champ qui est utilis´ par le logiciel traceroute.1). Pour faire un ”trae ceroute”. 2.insecure. Le routeur renvoie donc un e e e a 32 .2) : (The 1549 ports scanned but not shown below are in state : closed) Port State Service 21/tcp filtered ftp 22/tcp filtered ssh 111/tcp open sunrpc 515/tcp open printer 1024/tcp open kdm Nmap run completed – 1 IP address (1 host up) scanned in 1 second Les ports 21 (ftp) et 22 (ssh) sont filtr´s. e Comment s’en prot´ger ? e Prot´gez-vous contre le scanning (voir section 2.org/nmap/ ) Interesting ports on (192. le logiciel envoie un premier paquet UDP avec un TTL de 1 . Le firewalking Cette technique de d´voilement des r`gles de firewalling repose sur un e e unique champ de l’en-tˆte IP.1.168. le paquet disparaˆ e a ıt. Chaque passage d’un routeur ` un autre est appel´ un saut. d’autres m´thodes peuvent ˆtre utilis´s comme e e e le firewalking.54BETA31 ( www. Il est fix´ d`s son envoi par le syst`me d’exploie e e e tation et est diminu´ d’une unit´ ` chaque fois qu’il traverse un ´quipement e ea e assurant le routage .net /root]# nmap 192.2 Starting nmap V. au premier routeur. quand ce champ est ´gal ` 0.Avec le scan Nmap peut d´terminer quels ports sont ou ne sont pas filtr´s.

Firewalk (le programme impl´mentant le firewalking) d´termine e e le nombre de routeurs entre la machine source et la machine cible (situ´e e derri`re le firewall).code d’erreur ”ICMP ttl-exceeded”. Si le paquet est accept´. le nombre de routeurs s´parant la cible et l’´metteur peuvent e e e fausser l’analyse de firewalk. e e Firewalk envoie diff´rents types de paquets (TCP. Le deuxi`me routeur renverra donc un message d’erreur : e a e on r´cup`re ainsi l’adresse du deuxi`me routeur. il sera d´cr´ment´ au passage du premier routeur (TTL=1). il traverse le firewall et e on obtient une r´ponse .net/ 33 . Ensuite traceroute va envoyer un deuxi`me paquet avec un e TTL de 2. ICMP. e e e Si il y a N sauts jusqu’au r´seau final. de nombreux param`tres comme la congese e e tion du r´seau. e Le firewalking repose sur cette technique pour d´terminer les r`gles de fie e 1 rewalling. il envoie des paquets tests avec un TTL ´gal ` e e a ce nombre de routeurs + 1.packetfactory. e e e e On peut utiliser cette technique avec diff´rents protocoles : UDP. sinon il n’y a aucune r´ponse. on r´it`re l’op´ration N fois. UDP) pour d´terminer les e e r`gles de firewalling. Ensuite. ce qui permet de r´cup´rer l’adresse du e e premier routeur. 1 Disponible librement sur http ://www. N´anmoins. TCP. Le e e e deuxi`me routeur va le recevoir et le d´cr´menter : le champ TTL sera de e e e nouveau ´gal ` 0.

e e e pour y d´tecter d’´ventuelles signatures d’attaques. Cette section pr´sentera deux NIDS : Snort et Prelude-NIDS. car ses e e composants sont ind´pendants. Les sondes peuvent e ˆtre de deux types : r´seau ou local. e Ces diff´rents composants sont les sondes et les managers. a e 4. mais sur les donn´es transitant sur le r´seau. La sonde locale assure e e la surveillance d’une seule machine.1 Prelude Prelude-NIDS2 est un des d´tecteurs d’intrusions les plus connus. Prelude poss`de une achitecture modulaire et distribu´e. il contient une base de e donn´es sur diff´rentes vuln´rabilt´s. A noter que e ces outils sont distribu´s comme logiciel libre. Modulaire. Le NIDS travaille comme un sniffer (voir section 5. Dise e a tribu´e. car ces composants ind´pendants interagissent les uns avec les autres. FreeBSD et Windows. Les e e e 2 t´l´chargeable librement sur www.4).2.prelude-ids. Prelude e est disponible et libre sur les plateformes Linux.2 Les NIDS Les outils les plus pratiques ! Ces utilitaires permettent de d´tecter une attaque et de vous en informer.4. e e e e Les NIDS (Network Intrusion Detection System) travaillent de la mˆme e mani`re.org/ ee 34 . Il contient e une base de donn´es avec tous les codes malicieux et peut d´tecter leurs ene e vois sur une des machines. Je ne rappellerai pas que le e logiciel libre a une avance consid´rable dans le domaine de la s´curit´ par e e e rapport ` ses concurrents ”propri´taires”. Une sonde r´seau analyse tout le traffic. il analyse le comportement du syst`me e pour y d´tecter des tentatives d’exploitation de vuln´rabilit´s internes. e e Cela permet d’avoir divers composants install´s sur diff´rentes machines et e e de r´duire ainsi la surchage d’applications. Il peut d´tecter en e e e e temps r´el une attaque s’effectuant sur l’ une des vos machines. Il d´tecte les outrepassements de droits (obtention du compte root e d’une mani`re suspecte) et d’autres types d’attaques. Un e IDS (pour Intrusion Detection System) analyse tout ce qui se passe sur une station. et peuvent ˆtre facilement mis ` jour. sauf qu’il analyse automatiquement les flux de donn´es pour d´tecter e e une attaque.

free. PacketLogger et NIDS).html 4. Snort fonctionne en trois modes (Sniffer. configuration et utie lisation ) consultez ce site : http://www.snort. Snort e est un programme ”monolithique”. Le troisi`me mode permet lui d’analyser le trafic r´seau pour y e e d´tecter d’ ´ventuelles attaques. configuration et utie lisation) consultez ce document : http://lehmann.2.sondes signalent les tentatives d’attaques par des alertes.2 Snort Snort3 est un NIDS lui aussi.fr/PreludeInstall/InstallPrelude. Il n’est pas structur´ comme Prelude.org/docs/ (en anglais). Ces alertes sont re¸u par le manager qui les interpr`te et les stocke.org ee 35 . 3 t´l´chargeable librement sur www.snort. Les deux premiers modes ne sont pas int´ressants pour la d´tection e e d’intrusion. ce qui peut rendre son impl´mentation dans un r´seau un peu moins e e souple que Prelude. il ne comporte pas de module comme Prelude. c e Pour une description compl`te de Prelude (installation. e e Pour une description compl`te de Snort (installation.

e a e 4.3 Le tunneling Nous allons d´crire dans cette section diff´rentes m´thodes pour s´curiser e e e e vos transactions.1 Le protocole AH Le protocole AH (Authentification Header) permet de garantir l’authenticit´ des paquets ´chang´s en leur inscrivant une somme de contrˆle (de e e e o l’en-tˆte IP jusqu’` la fin du paquet) chiffr´e.3. Ces deux modes seront d´cris dans ce qui suit. a a e IPsec fonctionne sous deux modes diff´rents : le mode transport et le mode e tunnel. e e 4.3 Le protocole IPcomp Le protocole IPcomp (IP payload compression) permet de compresser un paquet avant de le chiffrer avec ESP. e e 36 .3.4.4 Le protocole IKE Le protocole IKE (Internet Key Exchange) est utilis´ pour l’´change des e e cl´s utilis´s pour l’encryptage. IPsec a d’autres avantages que la s´curisation du trafic. IPcomp et e e IKE.2 Le protocole ESP Le protocole ESP (Encapsulating Security Payload) encrypte toutes les donn´es du paquet garantissant leur confidentialit´. 4. 4. e IPsec est facultatif sur IPv4 mais est obligatoire sur IPv6. Un a e r´seau priv´ virtuel (VPN) est utilis´ pour ´tablir des communications s´curis´es e e e e e e en s’appuyant sur un r´seau existant non s´curis´. il permet par exemple d’´conomiser e e la bande passante grˆce ` la compression des en-tˆtes des paquets. ESP.3. c’est-`-dire cr´er un VPN (Virtual Private Network).3. Le principal outil utilis´ e e e e pour la cr´ation de VPN est IPsec. e IPsec est compos´ de plusieurs protocoles diff´rents : AH.

shtml Description g´n´rale des tunnels et impl´mentation sous W indows c : e e e http://www.miscmag.4.6 Les limitations d’IPsec IPsec pose quelques probl`mes dus ` son impl´mentation. e c 4. Il est con¸u pour les passerelles VPN. IPsec est difficile ` filtrer sur les firewalls existants. Documents Description g´n´rale des tunnels et impl´mentation sous Linux : e e e http://www.5 Les deux modes de fonctionnements de IPsec AH. Le mode ”transport” encrypte directement les ´changes entre deux e machines.com/articles/index. ESP et IPcomp fonctionnent dans le mode transport ou le mode tunnel. Certains probl`mes e a e e apparaˆ ıssent au niveau des messages de broadcast et multicast.com/crypto/IPSec. Le mode ”tunnel” encapsule les paquets encrypt´s dans de noue veaux en-tˆte IPv4/IPv6.laboratoire-microsoft.php3?page=315 http://www.3.securiteinfo.3.org/articles/network/ipsec/ 37 . Il est aussi impossible ` g´rer pour a a e les translations d’adresse (NAT).

il ordonne a e au serveur de proc´der aux tests d’une ou plusieurs machines. e 4. et il est enti`rement gratuit. binaires.org 38 .4.nessus. e Nessus est disponible sous Linux et Windows. Le client re¸oit e c ensuite les r´sultats du test.4. consultez le site : http ://www.4 Nessus Nessus est un outil de s´curit´ permettant de scanner une ou plusieurs e e machines. ou diff´rents documents concernant ee e Nessus. Nessus se compose d’une partie serveur (qui contient une base de donn´es ree groupant diff´rents types de vuln´rabilit´s) et une partie client. L’utilisateur e e e se connecte sur le serveur grˆce au client et apr`s authentification.1 Pour obtenir tout sur Nessus Pour t´l´charger les sources. Il permet aussi de tester diff´rentes attaques pour savoir si une ou e plusieurs machines sont vuln´rables. e Il est tr`s utile lors de tests de p´n´tration (pen test) et fait gagner un e e e temps incroyable.

pdf 39 .Si une machine virtuelle plante. e e e Documents La page web de User Mode Linux : http://user-mode-linux. par exemple.4. mais pas sur le syst`me e hˆte. o . e o e . Les avantages sont nombreux : o e .org/oudot/20022003/7/7_rapport.rstack. le syst`me hˆte n’est pas affect´.UML User Mode Linux est un dispositif permettant de lan¸er un ou plusieurs c noyau(x) linux dans l’espace utilisateur (comme un simple programme).net Un autre lien int´ressant pour User Mode Linux et la s´curit´ : e e e http://www. e User Mode Linux permet notamment de s’affranchir de chroot (pour.Un utilisateur sera root sur une machine virtuelle.Il permet aussi de tester diff´rents param`tres noyaux sans se soucier des e e cons´quences. la r´alisation de serveurs FTP) et de toutes ses failles de s´curit´. En clair.sourceforge.5 User Mode Linux . il permet d’avoir plusieurs machines virtuelles sur une seule machine physique hˆte ex´cutant Linux.

Chapitre 5 Surveillance .Dissimulation Maintien d’acc`s e 40 .

e e 41 . surveiller et maintenir leur acc`s sur un syst`me d’informae e tion.Introduction Nous pr´senterons de ce chapitre les programmes utilis´s par les pirates e e pour dissimuler. Nous pr´senterons les moyens de s’en prot´ger.

com/mailing/current/HTML/ml_ bugtraq/ 42 .) ` l’insu de l’utilisateur. N´anmoins. e Il est aussi conseill´ de consulter les sites suivants pour v´rifier que vos proe e grammes ne contiennent pas de chevaux de Troie : CERT : http://www. Ainsi lors de l’ex´cution de ce programme inoffensif. Un programme ou a un code malveillant est int´gr´ ` une application par ajout ou par modificae ea tion de son code. le bout e de code malveillant pourra ex´cuter des commandes sp´cifiques (r´cup´ration e e e e de fichiers de mot de passe. e e comparer la signature num´rique accompagnant les fichiers (cela se fait par e un calcul reposant sur un algorithme de chiffrement appliqu´ ` l’ensemble du ea fichier) avec la sienne permet de savoir directement si l’on est infect´.cert.1 Les chevaux de Troie Le principe du cheval de Troie est facile ` comprendre.. e Bugtraq : http://citadelle. alt´ration du syst`me.org (Le CERT (Computer Emergency Response Team) est un organisme s’occupant des probl`mes de s´curit´ sur Internet.intrinsec.5. e e a Comment s’en prot´ger ? e La plupart des antivirus peuvent d´tecter les chevaux de Troie. Il e e e recense les diff´rents probl`mes de s´curit´ et publie des articles (advisories) e e e e pour les d´crire..

Le principe d’une backdoor est similaire ` celui du cheval de Troie. e Comment s’en prot´ger ? e Il convient de t´l´charger ses applications sur le site du distributeur ou ee du programmeur.2. pour certaines commandes suivies d’ara guments particuliers ou avec un mot de passe bien d´fini.).. a devenir administrateur. Utiliser des serveurs de t´l´chargement non li´s ` l’auteur ee e a de l’application peut se r´l´ver dangereux. 5. le logiciel peut e avoir un comportement diff´rent (permettre ` l’utilisateur de devenir root. 5. Par exemple. a L’objectif est de modifier ou d’utiliser un programme pour acc`der discree tement ` un ordinateur distant.2. Ken Thompson. modifier le comportement d’un programme.2 Les backdoors d´di´es aux connexions ` distance e e a Ces backdoors peuvent tr`s bien faire partie de la premi`re cat´gorie. c’est-`-dire que. ee Il est aussi recommand´ de v´rifier les checksums s’il sont donn´s par le e e e d´veloppeur. e Parfois. certains logiciels (messagerie.1 Les backdoors pr´sentes dans les logiciels. l’un des p`res d’UNIX. e e e Comme il l’a ´t´ montr´. e Il est aussi bon de consulter des listes de diffusion comme bugtraq pour savoir si la version de logiciel que vous utilisez ne comporte pas de backdoors. Thompson poue e e vait ainsi visiter tous les syst`mes utilisant son application modifi´e.2 Les backdoors Les backdoors sont des acc`s cach´s sur un syst`me ou sur une applie e e cation. e avoue avoir modifi´ l’application /bin/login en permettant l’acc`s direct au e e syst`me par la saisie d’un mot de passe pr´compil´ en dur. certains pirates diffusent des applications infest´es de backdoors.. Certains d´veloppeurs sont soucieux de poss´der un acc`s sur tous les syst`mes utie e e e lisant leurs logiciels.5. e e Parfois. e a renvoyer un shell syst`me ` l’utilisateur. e a Ces ”trappes” sont inclues directement dans le code du logiciel. utilitaires syst`mes) peuvent contee nir des backdoors. certains logiciels peuvent autoriser un acc`s pour ee e e 43 .

com 44 . Un logiciel pr´alablement install´ par le pirate est en attente e e de connexion sur un port discret.intrinsec. vous constatez qu’un port non autoris´ est e e en ´coute. en ee e e e proc´dant au scan d’une machine.com/mailing/current/HTML/ml_bugtraq/ (en anglais) http://www. Le pirate n’a plus qu’` se connecter sur ce programme pour r´cup´rer a e e son acc`s sur la machine. il serait bon de v´rifier celui-ci. Toutefois. Si.un mot de passe particulier. e Comment s’en proteger ? Nmap peut se r´l`ver ˆtre une aide pr´cieuse pour les d´busquer.cert.org (en anglais) Bugtraq : http://citadelle. La plupart de ces programmes sont en ´coute sur des num´ros de ports ayant une valeur assez ´lev´e (sup´rieur ` e e e e e a 5000).bugtraq-france. ce paragraphe va se focaliser sur des applications en ´coute sur un port bien d´fini utilis´es par les pirates pour e e e obtenir un shell. e e Les sites ` consulter : a CERT : http://www.

e Comment s’en prot´ger ? e 1) Les checksums. et sur les diff´rentes biblioth`ques partag´es. Les premiers rootkits ´taient assez basiques. a Encore une fois. Les nouveaux rootkits modifiaient donc le code de ces biblioth`ques e pour modifier le comportement de ces commandes ` l’avantage du pirate... Donc une troisi`me g´neration de roote e e e kits est n´e afin de modifier directement le comportement du noyau.. ps.. font appels ` des bibliotheques partag´es pour fonca e tionner. e La plupart des rootkits utilisent le principe des backdoors (voir section 5. Cela n’a aucun interˆt pour ce guide. netstat. stat ` e ifconfig . e 45 . Je vous conseille d’effectuer des checkea sums a la fin d’une installation sur les diff´rents fichiers comme ls. e e e Cette base de donn´e devrait ˆtre stock´e sur un CDROM ou tout autre e e e support non r´inscriptible... ps. Il faut savoir que des come e mandes comme ps. par le e biais de modules charg´s en m´moire (LKM). ils modifiaient juste les come mandes ls.. ls .. ceci ´tait d´tectable. L’administrateur pouvait d´tecter ces modifications sur les logiciels concern´s. e Je ne donnerai (volontairement) pas dans cette partie une description compl`te e de l’utilisation des rootkits.5.2) pour permettre au pirate de se connecter selon son envie sur un syst`me. de e cacher les ports ouverts par le pirate.3 Les Rootkits Le rootkit est un programme permettant d’automatiser la dissimulation et l’effacement des traces d’un pirate sur une machine. Une base de donn´es de checksums sur les diff´rents fichiers syst`me peut e e e d´j` constituer une bonne parade. e e Alors une seconde g´n´ration de rootkits apparut. L’objectif d’un rootkit est de modifier les commandes permettant d’administrer le syst`me. C’est ` l’heure actuelle la dere e a niere g´n´ration. e e Diff´rents rootkits sont disponibles sur Linux.

pour compiler les programmes vitaux en statique. 3) Chkrootkit Chkrootkit (pour CHecK ROOTKIT) vous permet de d´tecter la pr´sence e e d’un rootkit.chkrootkit.. 4) Compilez votre noyau en statique. compilez une pare e e e tie des programmes vitaux en statique. faut-il encore u disposer d’un OS qui permette d’acc´der aux sources de ces programmes vie taux.. Bien sˆr..org/. Pour ´viter ce genre de d´sagr´ement.) et est t´l´chargeable libreee ment sur www. 46 .2) Compiler les programmes vitaux en statique Comme je l’ai dit pr´c´demment. il fonctionne sous Linux (FreeBsd.. ainsi vous disposerez d’une trousse de secours en cas d’infection par rootkits. certaines commandes font appels ` des e e a librairies partag´es et des utilitaires comme ”md5sum” (qui sert ` faire des e a checksums) sous Linux font appels ` des librairies partag´es. Vous ´viterez ainsi le chargement de e modules externes. D’o` son coma e u portement pourrait ˆtre modifi´ indirectement par un rootkit attaquant les e e librairies partag´es.

son e e comportement s’en trouve chang´. Les NDIS utilisent un sniffer pour analyser les transactions r´seau.nl/sniffers/antisniff/ 2 1 47 . il a e ne fait qu’intercepter. il se r´v`le tr`s utile pour d´masquer un scan (un grand e e e e e e nombre de paquets envoy´s d’un seul coup). Le programme AntiSniff de Lopht Heavy Industries peut envoyer des paquets ”tests” et en d´duire si la carte est en e mode transparent donc susceptible de sniffer.4 L’interception des mots de passe en r´seau. e Une autre technique utilis´e pour collecter des informations (mots de e passe par exemple) est l’utilisation d’un sniffer.org 4 disponible sur windowsN T c et Linux ` l’adresse http ://packetstormsecua rity.org disponible sur www.packetstormsecurity. ce qui donne lieu ` des fichiers de log tr`s volua e mineux. On peut d´tecter la pr´sence d’un sniffer grˆce ` e e e a a 4 ce changement de comportement. il n’envoie aucun paquet. Le sniffer place la carte r´seau e dans le mode transparent (promiscious). Mais la carte r´seau ´tant en mode transparent. D’autres sniffers permettent de r´cup´rer les mots de passe en les e e affichant directement ` l’´cran associ´ avec le login. e Plusieurs types de sniffers existent . e de voir si des commandes particuli`res sont demand´es sur le reseau. c’est tr`s difficile. e Cependant. Un sniffer est passif. il garde une trace de tous les ´changes ayant cours sur le e e r´seau. disponible sur www. e Comment s’en prot´ger ? e L`. certains affichent les donn´es intercept´es e e 1 brutes comme Tcpdump . mˆme ceux qui ne lui sont pas e e destin´s. Deuxi`ment.tcpdump. l’adresse du client et celle a e e du serveur (comme dsniff2 ). premi`rement. e e La plupart des rootkits contiennent un programme pour sniffer.org 3 disponible sur www.5. son temps et sa fa¸on de r´pondre ` cere c e a tains paquets sont modifi´s. le sniffer reste un outil puissant pour la d´tection d’intrusion e car.packetstormsecurity. Ethereal3 permet par exemple d’afficher toutes les transactions ayant cours sur le r´seau. de tracer l’adresse d’un pirate. ce qui veut dire que la carte intercepte tous les paquets sur le segment r´seau.

ssh sur votre r´seau s’av`re ˆtre une d´fense efficace e e e e contre le sniffing. e 48 .Une deuxi`me parade pour d´jouer le sniffing est de ”tunneler” toutes les e e transactions. Utilie ser IpvSec ou des VPN. Cela veut dire encrypter toutes les transactions r´seaux. L’utilisation de tunnels est trait´e dans la section 4.3.

Chapitre 6 Dispositifs destructeurs 49 .

Introduction Les dispositifs destructeurs sont utilis´s pour paralyser. Ils constituent l’esp`ce la plus nuisible dans le doe e maine de la s´curit´ car ils peuvent ˆtre la source de perte de donn´es. Le e e e e but de ce chapitre est d’expliquer leurs fonctionnements et la fa¸on de les c combattre. 50 . saturer ou d´truire e e un syst`me d’information.

N´anmoins.org (en anglais) Le site du CNRS : http://www.cert.fr/Infosecu/Virus..services. La grande majorit´ d’entre eux existent sur les plates-formes M icrosof t c . D’autres types peuvent tene e ter de leurrer le syst`me en s’installant dans des secteurs d´fecteux ou non e e utilis´s (virus furtifs) . De plus. modification du MBR. Les effets d’une e a contamination varient : fichiers effac´s.cnrs..1 Le virus Le virus est un programme dont le seul but est de consommer ou de paralyser des ressources syst`me. disque dur format´.6. il se propage en infectant tour ` tour les fichiers.cnrs. e Comment s’en prot´ger ? e Les anti-virus commerciaux comme Norton Antivirus ou McAfee VirusScan sont de bons outils pour traquer les virus. consulter les sites (ainsi que pour tous les autres dispositifs destructeurs d´crits dans ce chapitre) : e CERT : www. saturation des e e disques. e ils infectent en particulier les fichiers COM ou EXE.fr/wws/info/sos-virus http://www. e e e Les virus sont de plus en plus ´volu´s. ils peuvent s’automodifier pour ´chapper e e e a ` une ´ventuelle d´tection (virus polymorphes). pour cela. e e a e Il est aussi important de suivre l’´volution et l’apparition de nouveaux vie rus . il convient de les mettre r´guli`rement ` jour pour profiter pleinement de leurs capacit´s. Toutefois.. Le virus s’autoduplique pour mieux infecter e le syst`me. e Les syst`mes UNIX ne sont pas ´pargn´s ! Les administrateurs UNIX doivent e e e faire face ` des virus comme Winux. de nouvelles formes sont apparues comme les macro-virus qui attaquent les fichiers de donn´es (word ou excel).html 51 . la gestion des droits sous a e UNIX se r´v`le ˆtre un facteur limitant pour la propagation de virus..

2 Les vers Les vers sont du mˆme acabit que les virus.6. e 52 .1. Les vers e e utilisent diff´rents supports pour se propager. Comment s’en prot´ger ? e Comme pour les virus. sauf qu’ils n’utilisent pas e n´cessairement un fichier pour se propager. Ils sont aussi capables de se e dupliquer et de se d´placer au travers d’un r´seau informatique. e e e Consultez les listes cit´es dans la section 6. e Les vers d’email sont contenus dans une pi`ce jointe comprenant un code e malicieux ex´cut´ automatiquement par le logiciel de courrier ´lectronique e e e ou manuellement par l’utilisateur. e Les vers simples utiliseront des failles propres ` certains logiciels (exemple a du ver de Morris en 1988 qui paralysa une grande partie de l’Internet). Les macro-vers utiliseront les pi`ces jointes contenant des documents bue reautiques infect´s (exemple du ver Nimda). l’antivirus se r´v`le ˆtre une parade efficace.

. e 53 . Norton .) r´guli`rement mis e e a ` jour. La diff´rence est que la bombe logique a besoin e e d’un d´tonateur pour s’activer. Consultez les sites d´crits dans la section 6..3 Les bombes logiques Les bombes logiques sont aussi n´fastes que les virus ou les vers et sont e la cause de d´gats similaires.6.1. e Comment s’en prot´ger ? e Utilisez un anti-virus performant (Mc Afee. c’est-`-dire qu’elle attend une date ou une e a action bien pr´cise de l’utilisateur pour exploser.

ce type d’attaque peut vite troubler et saturer le trafic transitant sur le r´seau.4. Comment s’en prot´ger ? e Exemple avec iptables [root@nowhere /root]# iptables -A FORWARD -p tcp –syn m limit –limit 1/s -j ACCEPT (Pour plus de details sur cette commande.. Elles ont pour but de e saturer le r´seau ou le syst`me.3) de Rusty Wagner) 6. Le trafic UDP ´tant prioe e ritaire sur le trafic TCP. e La plus c´l`bre attaque utilisant l’UDP-flooding est le ”Chargen Denial of ee Service Attack”. en ajoute un autre et les renvoie sur le port echo de A qui c les renvoient ` son tour sur chargen .4.6. e chargen le re¸oit. cela aura pour but de cr´er une e e multitude de connexions demandant un grand nombre de ressources syst`me..1 Le SYN flood Cette technique consiste ` saturer un serveur en envoyant une multia tude de paquets TCP avec le flag SYN arm´. e e 6.2 L’UDP Flood De la mˆme mani`re que pour le SYN flooding. Un pirate envoie une requˆte sur le port echo d’une machine e A indiquant comme port source celui du port chargen d’une machine B.4 Les attaques par d´ni de services e Ce type d’attaques est la plus ´nervante qui soit. Le service chargen de la machine B renvoie un caract`re sur le port echo de la e machine A. e La plupart des attaques par SYN-flood sont bien d´tect´es par diff´rents e e e firewalls. je vous conseille de lire. et cela continue jusqu’` la saturation a a de la bande passante. l’attaquant envoie un e e grand nombre de requˆtes UDP sur une machine. 54 . Ensuite le service echo de A renvoie ce caract`re sur chargen. le document ”Packet Filtering HOWTO : Using iptables” (Chapitre 7.

5 Attaque par r´flexion : Smurfing e Cette attaque est bas´e sur le protocole ICMP. Ce probl`me apparaˆ lorsque la pile re¸oit le deuxi`me fragment d’un paquet e ıt c e TCP contenant comme donn´e le premier fragment. e Cela conduit ` une saturation de la bande passante du r´seau (A) et du a e syst`me de traitement de paquets de (B). configurez votre firewall e pour ´viter le ”Chargen Denial of Service Attack” en limitant le traffic UDP : e [root@nowhere /root]# iptables -A FORWARD -p udp -m limit –limit 1/s -j ACCEPT 6. Cette vuln´rabilit´ a e e concerne la gestion de la fragmentation IP. e 6.4 Ping of death Le principe est d’envoyer un paquet ICMP avec une quantit´ de donn´es e e sup´rieure ` la taille maximale d’un paquet IP .4.4.255. La pile TCP/IP peut e s’av´rer incapable de g´rer cette exception et le reste du traffic. cette attaque utilise une faille propre ` certaines piles TCP/IP. e e 6. e e Cette faille est tr`s connue sur les piles de W indows95et98 c . e 55 . Le flux entre le port a ping de la cible (B) et du r´seau (A) sera mulitpli´ par le nombre de machines e e sur le r´seau (A).3 Fragmentation de paquets Plus connu sous le nom de ”Teardrop Attack”. e Un pirate envoie un ping en broadcast sur un r´seau (A) avec une adresse e IP source correspondant ` celle de la machine cible (B).4.Comment s’en prot´ger ? e Il est conseill´ de d´sactiver les services chargen et echo. le paquet est envoy´ e e a ` chacune des machines du r´seau. la pile peut e a s’av´rer incapable de g´rer cette exception et le reste du traffic. Lorsqu’on envoie un ping e a ` un r´seau en broadcast (par exemple 255. e e Si vous ne voulez pas d´sactiver chargen et echo. Encore une fois.0). ”Bonk” ou encore ”Boink”.255.

6. je vous conseille de lire.3) de Rusty Wagner) 6. [root@nowhere /root]# iptables -A FORWARD -p icmp – icmp-type echo.4.request -m limit –limit 1/s -j ACCEPT (Pour plus de d´tails sur cette commande.4.7 Bombes e-mail Le ”mail-bombing” consiste ` envoyer de gros ou de nombreux fichiers ` a a un utilisateur pour saturer sa boˆ de r´ception de courrier ´lectronique. le e document ”Packet Filtering HOWTO : Using iptables” (Chapitre 7.Comment s’en prot´ger ? e Configurez votre firewall pour limiter le traffic ICMP.6 D´nis de services distribu´s e e Plusieurs types d’attaques sont lanc´es en parall`le ` partir de plusieurs e e a sources. ıte e e Comment s’en prot´ger ? e La plupart des logiciels de contrˆle de contenu assure un filtrage du couro rier pour d´tecter ce type d’attaque e 56 .

Chapitre 7 S´curisation des mots de passe e 57 .

e La plupart des algorithmes d’encryptage repose sur l’utilisation de fonctions a ` sens unique. L’attaque consiste alors ` encrypter a e a diff´rentes combinaisons de caract`res et de comparer cette forme encrypt´e e e e a ` celle du mot de passe voulu. Il utilise pour cela l’outil ad´quat : un perceur de mot de passe. Ces mots de passe encrypt´s sont e e e stock´s dans des listes de mots de passe sur des fichiers syst`mes pr´d´finis.Introduction Le but de ce chapitre est de donner au lecteur toutes les informations n´cessaires sur les techniques utilis´es pour tester la r´sistance des protece e e tions par mot de passe. Il faut savoir que les mots de passe utilis´s sur un syst`me d’information sont e e encrypt´s pour garantir leur confidentialit´. Ceci veut simplement dire qu’il est impossible de d´crypter le e mot de passe ` partir sa forme encrypt´e. alors la suite de caract`res est celle du mot de passe. Si les deux chaˆ ınes correspondent. e e e e Un pirate peut fort bien r´cup´rer ces listes et tester la fiabilit´ des mots e e e de passe. e Il y a deux types d’attaques pour le craquage de mots de passe qui seront d´finies dans ce chapitre. e 58 .

Le ee e a e DES est distribu´ publiquement mais il a ´t´ d´velopp´ dans le secret. Il supporte un grand nombre d’ale e gorithmes d’encryptage. la liste des mots de passe des utilisateurs syst`me est divis´e e e en deux fichiers ”/etc/shadow” et ”/etc/passwd” ou r´unis seulement dans e le fichier ”/etc/passwd”. e RSA . Pour tester la r´sistance de vos mots de passe. special M icrosof t c . a 2 John The Ripper est disponible sur http ://www. les encrypter et les e e comparer au mot de passe ` d´couvrir. e 7.com/john/ 59 . de e a e e plus. e Ce type d’attaque est tr`s rapide. Certains suspectent e ee e e le gouvernement am´ricain de s’ˆtre reserv´ une ”gˆche secr`te” pour une d´cryptage plus e e e a e e rapide. e e e la m´thode peut se r´veler inefficace. Si. DES1 . e e Il existe diff´rents logiciels de per¸age de mots de passe en fonction du type e c d’encryptage ( DES. e e 1 L’algorithme DES a ´t´ adopt´ par la NSA comme standard ` la fin des ann´es 70. 7.3 Tester la fiabilit´ de vos mots de passe ! e Sous UNIX Sous UNIX.).. pr´sente un important param´trage des attaques.2 Le brute forcing Si l’attaque par dictionnaire ne marche pas. des caract`res sp´ciaux sont ajout´s comme des signes de ponctuation. Le type d’encryptage peut ˆtre du MD5. cette m´thode a peu de chance d’aboutir. Un mot de passe mal choisi est vite e d´couvert. Le programme les encrypte avec l’algorithme d’encryptage ad´quat un par un e et les compare au mot de passe encrypt´.1 L’attaque par dictionnaire Le programme utilise une liste de mots pr´d´finis dans un fichier externe.7. le programme peut g´n´rer e e des mots de passe avec une suite al´atoire de caract`res. ces mots sont la plupart du temps e ceux provenant d’un dictionnaire contenant les mots du langage courant.. le logiciel John The Ripe per2 peut s’av´rer ˆtre une bonne aide.. je vous conseille d’utiliser d’autres algorithmes ` la place. Avec un mot de passe suffisament long a e (sup´rieur ` 8 caract`res)..openwall. MD5. e e Cette liste est appel´e un dictionnaire .

donne : Ad. e Sous W indows9x c . les mots de passe sont dispers´s dans le r´pertoire rae e cine de windows dans diff´rents fichiers d’exention ”.Jt’AmA. l’administrateur pourra utie liser le logiciel John the Ripper3 sur Windows ou sur Unix ou le logiciel LophtCrack c de LophtHeavyIndustries c 4 qui. avec une suite de caract`res totalement e al´atoires et avec des caract`res sp´ciaux.John the Ripper est un programme distribu´ librement. qui est un mot de passe assez costaud. e SousW indows c Pour tester la fiabilit´ des mots sous Windows.com/research/lc/ 60 .PWL” portant comme e nom celui de l’utilisateur. Par exemple : A demain.4 Choisir le bon mot de passe N’utilisez pas des mots de votre language courant ou des suites de chiffres ! Choisissez des mots de passe longs. Je t’ Aime mon Amour. Le chiffrement utilis´ pour g´n´rer les mots de passe PWL est tr`s faible. Lophtcrack c est disponible sur http ://www. 3 4 Idem. Moyen mnemotechnique avec une phrase : Choisissez une phrase et alternez les majuscules et minuscules avec les premi`res e lettres de chaque mot en tenant compte de la ponctuation. alternez les majuscules et les mie e e niscules. e e e e Le programme Cain permet de tester leur fiabilit´.atstake. e 7. n’est pas distribu´ grae tuitement (enfin pas pour les versions r´centes). lui.

faire circuler diff´rents documents e a e e pour informer vos utilisateurs des probl`mes de fiabilit´ des mots de passe. e e 61 .5 Pr´venir l’utilisateur e N’h´sitez pas ` organiser des r´unions.7.

Chapitre 8 La base des attaques r´seaux e 62 .

Introduction Dans ce chapitre. nous d´crirons les principes sur lesquels reposent de e nombreuses attaques r´seaux (notamment celles d´crites dans le chapitre 9). e a e 63 . e e ainsi que les r`gles ` respecter pour les ´viter ou les parer.

vers un serveur. ou vers une autre machine. Lorsqu’un ´change doit s’´tablir entre 2 machines. a e ıtre A renvoie ` B son adresse physique par une r´ponse ARP.1 D´tournement de flux e Les techniques de d´tournement de flux servent ` rediriger le flux r´seau e a e vers un client. a Le trafic circule entre A et B.1. e e e e On dit qu’il a empoisonn´ le cache ARP du recepteur. tout le flux IP dirig´ vers le r´cepteur sera ridirig´ vers l’attaquant. ces deux mae e chines envoient des requˆtes ARP avec l’adresse IP du r´cepteur. 64 . La table de correspone a a dance entre les adresses IP et les adresses physiques est contenue dans le cache ARP. 8. Cette adresse physique e est associ´e ` l’adresse IP grˆce au protocole ARP. Si un attaquant envoie un message e de r´ponse ARP avec son adresse physique correspondant ` l’adresse IP du e a r´cepteur. Ce r´cepteur va renvoyer son e adresse physique dans une r´ponse ARP.8. C’est cette adresse qui e e lui permet de recevoir les paquets qui lui sont destin´s. e Illustration B envoie ` A une requˆte ARP pour connaˆ son adresse physique.1 ARP-Poisoning : Toute carte r´seau poss`de une adresse physique. B la stocke dans a e son cache en faisant correspondre l’IP de A ` son adresse physique. associ´e e e e a ` un champ vide pour son adresse physique.

tar. Mais si l’attaquant envoie les bons num´ros de s´quences au serveur.1. C dialogue avec B ` la place de A. le a e e client va croire qu’il a perdu la connexion et stoppera ses ´changes avec le e serveur. si l’attaquant n’a besoin que du trafic TCP. A ne re¸oit plus rien.ee.lbl. pendant un ´change. il peut interf´rer entre une connexion cliente serveur pour rediriger le flux du client vers lui. Les NIDS peuvent aussi d´tecter ce type d’attaques (notamment Prelude). B stocke cette nouvelle correspondance dans son cache en ´crasant e l’ancienne. une r´ponse ARP avec son adresse physique correspondant ` a e a l’IP de A.2 D´synchronisation TCP : e L’ARP-Poisining permet de rediriger tout le trafic IP mais.gov/arpwatch.C envoie ` B. le logiciel Arpwatch1 qui permet de surveiller tout le trafic ARP. e e il r´cup`rera la connexion pour lui. La synchronisation TCP est assur´e par les num´ros de s´quences TCP.gz 65 .com/publication/6/10/102/ 8.securite.teamlog. e Documents http://www. a c Comment s’en prot´ger ? e On peut utiliser sous UNIX. l’attae e e e quant envoie des paquets malform´s au client avec une adresse IP correspone dant ` celle du serveur en y placant des mauvais num´ros de s´quences. Si. e e Illustration 1 Disponible librement sur ftp ://ftp.

il a vol´ la connexion. A ne r´pond plus ` B car il croit qu’il a perdu la connexion. e a e 66 .A dialogue avec B. e e C r´pond ` A en se faisant passer pour B et envoie de mauvais num´ros de e a e sequences. avec les num´ros e de s´quences indiqu´s. e a C r´pond ` la place de A et communique avec B. Il envoie un paquet avec de 60 octets.

Cela permet e de surveiller tout le trafic r´seau entre le client et le serveur.8. Cette attaque fait intervenir trois protagonistes : le client. et de le modifier e a ` sa guise pour l’obtention d’informations (mots de passe.. Il devient ainsi l’homme du milieu.Man in the Middle Les attaques de type Man-In-the-Middle sont tr`s faciles ` comprendre.2 MIM . acc`s syst`me . l’attaquant utilise les techniques de d´tournement de e flux d´crites dans les pr´c´dentes sections pour rediriger les flux du clients et e e e du serveur vers lui. Le but de l’attaquant est de se faire passer pour le client aupr`s du serveur et se faire passer pour e le serveur aupr`s du client.. e a Man-in-the-Middle signifie l’homme du milieu. 67 . le serveur et l’attaquant.) e e La plupart du temps.

e e e B n’autorise et n’assure que le trafic HTTP. Si le pirate veut se connecter sur A. . B accepte ces paquets car ils reposent sur le protocole HTTP.8. Certains logiciels permettent d’encapsuler le protocole IP dans d’autres protocoles comme SSH.. e a Si B est mal configur´. il enverra ` A les paquets lui ´tant destin´s.. HTTP . Ce type d’encapsulation peut ˆtre la base e de nombreuses attaques r´seaux. il encapsule les paquets ` destination de A dans des requˆtes HTTP a e destin´es ` B. imaginons cette situation : un pirate veut se connecter sur le port FTP (21) d’une machine A d’un r´seau prot´g´ par un firewall B. e a e e 68 .3 Encapsulation d’IP dans d’autres protocoles. e Par exemple.

Chapitre 9 Description d’attaques sur diff´rents protocoles e 69 .

Nous e o a pr´senterons aussi la mani`re de s’en prot´ger. e e e 70 . mais plutˆt ` sa conception. Ine e e trins`ques par le fait qu’elles ne sont pas li´es ` une faille applicative du e e a client ou du serveur g´rant ce protocole.Introduction Ce chapitre d´crit les failles intrins`ques de diff´rents protocoles.

En clair.9. e e Ce service permet d’”all´ger” la gestion du r´seau en ´vitant d’avoir des e e e configurations statiques ` maintenir sur chaque machine. e e 9. il envoie un message DHCP ` tout le r´seau (broadcast) pour troue a e ver le serveur DHCP. Malheureusement. a le protocole DHCP comporte diverses failles que nous allons vous pr´senter. Les ”vrais” clients ne pourront donc plus obtenir d’adresse IP : le trafic r´seau sera paralys´. e si un client interne veut obtenir une adresse IP pour b´n´ficier des services e e r´seau. e Associez une adresse IP d´finie ` une adresse mat´rielle (MAC) sp´cifique. e Si un pirate g´n`re un grand nombre de requˆtes DHCP semblant venir e e e d’un grand nombre de clients diff´rents. un serveur DHCP poss`de un stock d’adresses ee e e IP qu’il distribue aux diff´rents clients.1. Il y e u e aura seulement un nombre d´fini de clients pouvant disposer des diff´rentes e e adresses IP en mˆme temps (par exemple 255). le serveur ´puisera vite son stock e e d’adresses. Ce stock est bien sˆr limit´. Si un pirate a r´ussi e e e a ` saturer un serveur DHCP par ´puisement de ressources. e a e e 71 . il peut tr`s bien e e en activer un autre ` la place. e Comment s’en prot´ger ? e Segmentez votre r´seau en sous-r´seau et attribuez-leur chacun un sere e veur DHCP.1 DHCP : Dynamic Host Configuration Protocol Le protocole DHCP est utilis´ pour d´livrer dynamiquement une adresse e e IP unique pour chaque machine le demandant sur le r´seau interne.2 Faux serveurs DHCP Cette attaque vient en compl´ment de la premi`re. e 9.1. Le serveur DHCP r´pondra en lui envoyant tous les e param`tres de configuration r´seau.1 Attaque par ´puisement de ressources e Comme il l’a ´t´ d´crit. Ces serveurs seront ind´pendants les uns des autres. Ainsi il pourra ainsi contrˆler tout le traffic a o r´seau.

1 .org/docs/HOWTO/lecture/Authentication-Gateway-HOWTO. 72 .3.1 et le e serveur de noms poss`de l’adresse 192.php?sid=89 http://www.168. e host toto { hardware ethernet 00 :C0 :34 :45 :56 :67 . } Les nouvelles versions du protocole DHCP permettent l’utilisation de m´canismes e d’authentification plus stricts.traduc.securent-2000.SousW indows c Remplissez les champs de l’option ”R´servations” dans le programme de e configuration du serveur DHCP Sous Linux Modifiez le fichier /etc/dhcpd.3 .1.168.conf sur le serveur DHCP. option routers 192.1.168.com/article. html\# (configuration d’une passerelle d’authentification). Le routeur poss`de l’adresse 192. fixed-address 192.168.2. (Voir RFC 3118) Documents : S´curisation sous windows : e http://www. Assurez vous que vos serveurs utilisent ces versions de protocoles.php?sid=62 Sous Linux : http://www. Exemple pour un client ”toto” d’adresse MAC 00 :C0 :34 :45 :56 :67 qui recevra l’adresse 192.1.1.1.168.info/article.168.2 .digital-connexion.1. option domain-name-server 192.

Illustration 73 . Ainsi. ce ıt qui lui empˆche pouvoir communiquer avec. Les attaques e d´crites ici concernent les faiblesses du protocole DNS.9. La machine A va donc envoyer e une requˆte au serveur DNS du r´seau de B pour connaˆ l’adresse IP de e e ıtre B. Elle aboutit ` un e e a d´tournement de flux entre deux machines ` l’avantage du pirate. e a Imaginons qu’un client A veuille ´tablir une connexion avec une machine e B. un pirate C doit r´pondre ` A avant le serveur DNS e a (D) du r´seau de B.2.2 DNS : Domain Name Server Le protocole DNS assure la correspondance entre le nom d’une machine et son adresse IP. De cette fa¸on. A communiquera alors avec le pirate C au lieu de la machine B. Un serveur DNS est en ´coute sur le port 53. Le sere e veur r´pond ` cette requˆte en fournissant l’adresse IP de B et en utilisant e a e le mˆme num´ro d’ID. e e Ce num´ro a une valeur comprise entre 0 et 65535. le pirate peut rediriger vers lui c le trafic ` destination d’une machine qu’il l’int´resse. a e Dans notre exemple.1 Le DNS ID spoofing C’est la premi`re attaque que nous allons d´crire. cette requˆte sera identifi´e par un numero d’ identification (ID). La machine A connaˆ le nom de la machine B mais pas son adresse IP. il envoie ` A son adresse IP associ´e au nom de e a e la machine B. e Le DNS ID spoofing a pour but de d’envoyer une fausse r´ponse ` une requˆte e a e DNS avant le serveur DNS. e 9.

noms de machine. Pour des machines distantes. o Imaginons qu’un pirate (A) poss`de le nom de domaine ”attaquant.com”.net”. e L’objectif du pirate est d’empoisonner ce cache avec de fausses informations.2. e et son serveur DNS (C) et qu’il veuille empoisonner le cache du serveur DNS (B) du r´seau ”cible.N´anmoins. il e e doit interroger d’autres serveurs DNS. Pour cela. il peut utiliser un sniffer s’il est sur le mˆme e e r´seau.com”. il doit avoir un nom de domaine sous contrˆle et son serveur DNS. Pour ´viter de les interroger ` chaque e a requˆte. soit pr´dire les numeros d’ID par l’envoi de plusieurs requˆtes et e e e l’analyse des r´ponses. pour impl´menter cette attaque. le r´sultat des pr´c´dentes e e e e e requˆtes.2 Le DNS cache poisoning Le principe de cette attaque est tr`s similaire ` celui de l’ARP-Poisoining. e a Pour gagner du temps dans la gestion des requˆtes. un serveur DNS n’a que la table de correspondance des machines du r´seau sur lequel il a autorit´. il garde en m´moire (dans un cache).net” dee e mandant la r´solution du nom de domaine ”attaquant. Pour cela. e Le pirate envoie une requˆte au serveur DNS (B) du r´seau ”cible. e 9. En effet. le pirate doit connaˆ e e ıtre l’ ID de requˆte DNS. e 74 . le serveur DNS poss`de e e un cache temporaire contenant les correspondances adresses IP .

Le serveur DNS (B) de ”cible.net” va donc envoyer une requˆte sur le sere veur DNS (C) de l’attaquant (c’est lui qui a autorit´ sur le domaine ”ate taquant. Ces informations seront mises en cache sur le serveur DNS (B) de ”cible”. il recevra l’adresse du pirate (A) en retour. Si un client quelconque (E) demande l’adresse IP pour le nom de la machine (D).com”). Celui-ci r´pondra et joindra des informations additionnelles e falsifi´es par le pirate (un nom de machine (D) associ´ ` l’adresse IP (A) du e ea pirate). Illustration 75 .

unixtech.Comment s’en prot´ger ? e Configurez votre serveur DNS pour qu’il ne r´solve directement que les e noms de machine du r´seau sur lequel il a autorit´.toolinux. Mettez ` jour ou changez les logiciels assurant le service DNS pour qu’ils a vous prot´gent des attaques d´crites pr´cedemment.htm (Configuration DNS et s´curit´) e e http://linux-france.com/linutile/reseau/dns/index20. e e Autorisez seulement des machines internes ` demander la r´solution de noms a e de domaines distants. e e e Documents Sous linux : http://www.be/article/memo/dns/node16.html 76 .

9.3

FINGER

Le service finger permet d’obtenir des informations sur les utilisateurs du syst`me. e finger s’invoque simplement avec la commande : [root@nowhere /root]#finger @machinecible Le symbole @ produit le mˆme effet que l’ast´risque pour un listing de e e r´pertoire. En effet, les informations concernant tous les utilisateurs connect´s e e a ` la machine de nom ”machinecible” seront list´es et envoy´es en r´ponse ` e e e a la requˆte. e Exemple [root@nowhere /root]#finger @machinecible Login Name Tty Idle Login Time Office toto Le toto pts/7 3d Mar 26 20 :43 (case)// root root pts/4 5d May 25 16 :20 On voit ainsi qui est connect´ sur le syst`me (toto et root) et depuis quand e e (colonne ”Time”). finger n’est pas dangereux mais le laisser en ´coute, sans en avoir r´ellement e e besoin, est une grossi`re erreur. finger donne trop d’informations sur les utie lisateurs syst`mes. e

Comment s’en proteger ?
UNIX Il est conseill´ de d´sactiver le service finger dans le fichier ”/etc/inetd.conf”. e e Pour cela, ajoutez un di`se (#) devant la ligne relative au service finger. e # finger stream tcp nowait root /usr/sbin/tcpd in.fingerd W IN DOW S c : D´sactivez le programme associ´ au service finger. e e

77

Si vous ne souhaitez pas d´sactiver le service finger, configurez votre firee wall pour y limiter l’acc`s. e

78

9.4

FTP

FTP (pour File Transfert Protocol, en ´coute sur le port 21) est le service e utilis´ pour assurer le transfert de fichiers. Il y a deux types de serveurs FTP : e les serveurs FTP avec authentification par mots de passe et les serveurs anonymes. Pour les premiers, le client d´sirant se connecter devra fournir un e login accompagn´ d’un mot de passe pour authentification. Dans le cas du e serveur FTP anonyme, tout le monde peut s’y connecter librement. Le premier d´faut du protocole FTP est de ne pas encrypter les mots de e passe lors de leur transit sur le r´seau. Les mots de passe associ´s aux logins e e circulent en clair ` la merci des sniffers. a Voici l’exemple d’une interception par un sniffer d’une authentification FTP : Le logiciel utilis´ est tcpdump. e 22 :10 :39.528557 192.168.1.3.1027 ¿ 192.168.1.4.ftp : P 1 :12(11) ack 47 win 5840 ¡nop,nop,timestamp 441749 100314¿ (DF) [tos 0x10] 0x0000 4510 003f 88d6 4000 4006 2e7b c0a8 0103 E.. ?..@.@....... 0x0010 c0a8 0104 0403 0015 e351 3262 8d6a dd80 .........Q2b.j.. 0x0020 8018 16d0 68da 0000 0101 080a 0006 bd95 ....h........... 0x0030 0001 87da 5553 4552 2061 6c65 780d 0a00 ....USER.alex...

22 :10 :57.746008 192.168.1.3.1027 ¿ 192.168.1.4.ftp : P 12 :23(11) ack 80 win 5840 ¡nop,nop,timestamp 443571 101048¿ (DF) [tos 0x10] 0x0000 4510 003f 88d8 4000 4006 2e79 c0a8 0103 E.. ?..@.@..y.... 0x0010 c0a8 0104 0403 0015 e351 326d 8d6a dda1 .........Q2m.j.. 0x0020 8018 16d0 5ba1 0000 0101 080a 0006 c4b3 ....[........... 0x0030 0001 8ab8 5041 5353 2074 6f74 6f0d 0a00 ....PASS.toto...

On peut voir facilement que l’utilisateur ”alex” a le mot de passe ”toto”.

9.4.1

Le serveur FTP anonyme

Le serveur FTP anonyme pose de plus gros probl`mes. Le premier est qu’ e une mauvaise gestion des droits d’acc`s peut s’av´rer ˆtre une erreur fatale. e e e Laisser trop de r´pertoires en droit d’´criture et/ou d’ex´cution est plus que e e e dangereux pour la sˆret´ du syst`me. Le pirate pourrait y installer ou y u e e 79

limitez au maximun les droits sur les diff´rents r´pertoires e e et fichiers laiss´s au public. Si e e vous devez le faire.3). e e e e Comment s’en prot´ger ? e Installez un serveur FTP anonyme seulement en cas d’absolue n´cessit´. Imaginons qu’un pirate se a voit refuser l’acc`s par un serveur FTP dont l’acc`s est allou´ ` seulement e e ea un certain groupe d’adresses IP. mais qu’un serveur FTP anonyme y appartienne. Vous pouvez aussi utie e e e liser des tunnels comme IPSec pour prot´ger vos connexions (voir section 4. Le pirate peut tr`s bien se connecter sur le serveur FTP anonyme.Attaque par rebonds Les serveurs FTP anonymes peuvent ˆtre sujets ` des attaques par ree a bonds. 80 . Imaginons que le pirate ne fait pas partie de ce groupe. e Pour vous prot´ger des attaques par sniffer. Boucing attack . utiliser les commandes e assurant la connexion sur le serveur FTP prot´g´ et y r´cup´rer des fichiers. e Filtrez les acc`s (via un firewall) en allouant seulement l’acc`s ` un certain e e a groupe d’adresses IP (en ´vitant d’inclure des serveurs anonymes permettant e de servir de relais). SFTP encryptera les ´changes et les prot´gera ainsi des ´coutes indiscr`tes.ex´cuter des codes malveillants lui permettant d’accroˆ son pouvoir sur la e ıtre machine. je vous recommande d’utilie ser SFTP (Secure FTP) pour vos transactions FTP. Ces attaques consistent ` utiliser un serveur FTP anonyme comme a relais pour se connecter ` d’autres serveurs FTP.

5. ASP pour la r´alisation de scripts e peuvent se r´l`ver dangereux. d’o` un risque de e e e u failles plus important.2) : [root@nowhere /root]# telnet 192.9. Le protocole HTTP est e sˆrement le plus utilis´ sur le web pour les pages html.168. Netscape par exemple devient vuln´rable lors du traitement de certaines chaˆ e ınes de caract`res. les banni`res des serveurs web sont trop explicites : e Exemple sur un serveur Apache (192. PHP. Perl.168. e Les pages d’erreurs (404 : page non trouv´e) peuvent aussi contenir des ine formations sur le syst`me. Nous allons d´crire ces failles une ` une. Chaque application a son type de faille.2 80 avec l’envoi de la commande HEAD / HTTP/1.5 HTTP Un serveur HTTP est en ´coute sur le port 80. Cela vient du fait e que le web devient de plus en plus demandeur en terme de convivialit´ et e cela g´n`re une complexit´ plus grande des applications. Les serveurs IIS peuvent renvoyer un shell syst`me pour un envoi de commandes e particuli`res. Ces applications sont vuln´rables ` de nombreux e e e e a bugs. e 9. L’origine d’une faille dans une application web ee 81 . Cela e peut permettre de remonter toute l’arborescence des fichiers du serveur.1.0 Trop d’informations sont donn´es. Par contre.1 Les serveurs trop bavards Parfois.5. e a 9. e Les langages comme Javascript. Ce protocole ne u e comporte pas de failles intrins`ques majeures.2 Vuln´rabilit´s li´es aux applications web e e e La complexit´ des serveurs ou des navigateurs (clients) web pose de gros e probl`mes de s´curit´. les applications e assurant son traitement sont souvent bourr´es de failles.1.

peut apparaˆ ` cause de deux probl`mes. a e e Lors du d´veloppement de scripts. l’authenticit´/int´grit´. il peut ˆtre judicieux de l’utiliser. e e Comment se prot´ger ? e V´rifiez que votre serveur web n’est pas trop bavard. Le premier est la fiabilit´ de la ıtre a e e conception du script. et le non refus d’origine. applicables ind´pendamment. consultez la documentation pour modifier le contenu des messages d’erreur ou de bienvenue. le second est la fiabilit´ des fonctions utilis´es. Si c’est le cas. Ils permettent de d´tecter l’ex´cution de telles attaques. qui permettent de garantir la confie e e dentilit´. il peut ˆtre la source de nombreuses failles. Si un e e script est mal con¸u. c e e si sa conception est bonne mais qu’il utilise des fonctions bogu´es. Un serveur web ne devrait jamais ˆtre ex´cut´ avec les droits administrae e e teurs. De mˆme. e Les NIDS peuvent ˆtre une bonne parade contre les attaques reposant sur e des failles logicielles. Pour cela. Schiffman : e e ”Le protocole SHTTP est une extension de HTTP qui fournit des services de s´curit´. Mettez ` jour les navigateurs et les serveurs pour pr´voir d’´ventuelles failles. Informez-vous aussi e sur les fonctions connues pour ˆtre ”sensibles”. il peut se e r´v´ler encore plus dangeureux.Rescorla et A. modie fiez sa configuration pour qu’il se taise. prenez garde lors de la conception ` la e a gestion des droits des utilisateurs pour son ex´cution. e L’utilisation de SHTTP (Secure HTTP) est aussi une bonne parade contre les attaques HTTP. e 82 . e e Les NIDS et IDS sont trait´s dans la section ??. Une bonne d´finition de SHTTP est donn´ par E.” e e e e SSL (”Secure Socket Layer” pour Netscape) permet de prot´ger les trane sactions web.

6 IDENT Le service ident (anciennement appel´ auth. s’il n’a aucune utilit´.9. e Comment s’en prot´ger ? e UNIX Pour d´sactiver le service ident. en ´coute sur le port 113) e e est du mˆme genre que le service finger. e e Il convient de le supprimer. # :INFO : Info services #ident stream tcp wait identd /usr/sbin/identd identd 83 . Il fournit des informations sur les e d´tenteurs de connexions sur le syst`me.conf”. ajoutez un di`se (#) devant la ligne le concere e nant dans le fichier ”/etc/inetd.

9. e L’IP spoofing se base sur une usurpation d’adresse IP. Pour cela. IP e e c n’assure qu’un routage d’une adresse vers autre.. Le pirate e C va tenter de voler la connexion au client. e o a a c’est-`-dire que la seule authentification faite au niveau du serveur consiste a en une v´rification de l’adresse IP du client. e a L’IP-Spoofing est une attaque concernant un nombre limit´ de machines. Mais elle demeure l´gendaire e e par l’utilisation qu’en a fait Kevin Mitnick en 1995 contre le Supercomputer Center de SanDiego prot´g´ par Tsatumo Shimomura.7. C’est sur ces bases que nous allons d´crire l’attaque. le num´ro de s´quence et le num´ro d’acquittee e e e e ment. le pirate va essayer de se faire passer pour le e client aupr`s du serveur. Ils sont uniques. e L’IP spoofing a souvent lieu contre les services rlogin et rsh car leur m´canisme e d’authentification est bas´e sur l’adresse IP. e Le protocole TCP. il n’assure aucune v´rification e e de la r´ception des paquets et ne se soucie gu`re de la fa¸on de les traiter. Chaque paquet a a e e a TCP poss`de deux num´ros.. L’IP spoofing est utilis´ lorsque deux hˆtes sont en relation de confiance grˆce ` leurs adresses IP. Ces deux nombres sont cod´s sur 32 bits.2BSD Unix TCP/IP software” ´crit par Robert Morris. afin de ne e pas confondre les paquets lors de leurs traitements.7 IP et l’IP-Spoofing Cette m´thode de piratage date un peu. Il est donc facile de duper le routage IP en injectant des paquets falsifi´s ayant des adresses IP valides e sur le r´seau. assure une fiabilit´ de la remise des paquets a e grˆce ` des num´ros de s´quences qui les distingue un ` un. Le principe est simple : d`s qu’un e e client poss`de une connexion ´tablie sur le serveur avec un mode d’authene e fication bas´e sur l’adresse IP. 84 . N´anmoins.1 Un peu de th´orie . e Le protocole IP est non-orient´ connexion. il va empˆcher le client de dialoguer avec e e le serveur et r´pondra ` sa place. quant ` lui. cette e e e faille ´tait connue depuis f´vrier 1985 comme le montre le rapport ”Weakness e e in the 4. e Vous d´couvrirez pourquoi en lisant la suite. e Imaginons que le client A est connect´ en rsh sur le serveur B. e 9.

Le serveur r´pond avec une s´rie de paquets d’ace e quittement (flags SYN et ACK arm´s). Une connexion TCP s’´tablit donc en trois parties. Mais d’abord.Il va en premier lieu r´duire au silence le client en le saturant avec des ate taques tels que le syn-flooding. C’est l` que r´side toute la finesse de e a e l’IP spoofing. Le client mis hors service ne pourra r´pondre. soit une fonction g´n´rant un nombre e e al´atoire. l’attaque a e e e e peu de chances d’aboutir. Si e e cet algorithme est bas´ sur la g´n´ration de nombres al´atoires. Ensuite le client renvoie un paquet avec un num´ro d’acquite tement (NA2=NS2+1). il doit injecter un paquet ayant un a num´ro d’acquittement de valeur NA = NS +1. le d´ni de service . Pour cela. Pour l’´tablisement e d’une connexion TCP. quelques rappels sur le protocole TCP. e le pirate le fera ` sa place. le pirate a ´tabli e e e la connexion au serveur en se faisant passer pour le client. Tout d´pend de l’impl´mentation de la pile e e e TCP/IP du syst`me.4).. C’est pourquoi cette attaque est e aussi qualifi´e ”d’attaque aveugle”. 85 . mais ayant un num´ro d’acquite e e tement (NA1) ´gal au num´ro de s´quence initial incr´ment´ d’une unit´ e e e e e e (NA1=NS1+1). Il va donc la g´n´rer lui-mˆme ` partir de son ıtre e e e a analyse de l’algorithme d’incr´mentation. Mais. il ne peut intercepter les paquets lui ´tant destin´s. e Ce principe de num´ros de s´quences et d’acquittement est utilis´ tout le e e e long de la transaction pour en assurer la fiabilit´. soit incr´menter une valeur initiale de 128 toutes les secondes et e e de 64 apr`s chaque connexion. Mais si l’algorithme est facilement compr´hensible. e Et c’est l` que r´side tout le probl`me. le client envoie un paquet avec un num´ro de s´quence e e initial (NS1). Le serveur va r´pondre avec un paquet d’acquittement e de numero de sequence (NS). Si le num´ro est valide. e La seconde partie de l’attaque est assez simple. (voir chapitre 6. Le pirate envoie une s´rie e de demandes de connexion au serveur ( paquets TCP avec le flag SYN arm´) e en utilisant l’adresse de A. par exemple.. Le pirate envoie un grand nombre a e e de demandes de connexion dans un laps de temps d´termin´ et analyse les e e acquittements du serveur pour d´terminer l’algorithme d’incr´mentation. Le serveur va r´pondre avec un paquet d’acquittement ayant e son propre num´ro de s´quence (NS2). Il peut utiliser. ayant usurp´ l’adresse e e du client. Il ne peut donc e e pas connaˆ cette valeur NS. e le pirate va alors envoyer une requˆte de connexion au serveur en utilisant e l’adresse IP du client. La subtilit´ de l’attaque e e r´side dans le fait que le serveur g´n´re la valeur NS2 suivant un cycle pare e e ticulier.

Certains syst`mes comme BSD ou HP-UX e e e connaissent de gros probl`mes ` cause de l’IP-Spoofing.Le fait que l’attaque ne se restreigne qu’` une petite partie de syst`mes vient a e du fait que la plupart des piles TCP/IP utilisent des num´ros de s´quences e e bas´s sur des nombres al´atoires. e a Illustration 86 .

168.4) Adding open port 111/tcp Adding open port 21/tcp Adding open port 515/tcp Adding open port 1024/tcp Adding open port 22/tcp Adding open port 139/tcp 87 .org/nmap/ ) Host (192.168.168.1.4 Starting nmap V.. Initiating Connect() Scan against (192.1.2 Pr´venir l’IP spoofing grˆce ` Nmap e a a Nmap invoqu´ avec l’option -O et -v vous fournit une indication sur la e difficult´ qu’aura le pirate ` proc´der ` une attaque par IP spoofing contre e a e a votre serveur.insecure.9. Exemple [root@nowhere /root]# nmap -O -v 192.1..4) appears to be up .54BETA31 ( www.7. 2. good.

2. For OSScan assuming that port 21 is open and port 1 is closed and neither are firewalled Interesting ports on (192. e a Comment s’en prot´ger ? e Sur la plupart des syst`mes. plus il est difficile ea e e d’entreprendre une attaque. lors d’un scan. les num´ros de s´quence sont incr´ment´s e e e e e de fa¸on al´atoire.19 Uptime 0.1. e Plus le nombre associ´ ` la valeur ”Difficulty” est ´lev´. vous obtenez un nombre tr`s bas avec e un message du type ”Trivial Joke”. 88 .4) : (The 1548 ports scanned but not shown below are in state : closed) Port State Service 21/tcp open ftp 22/tcp open ssh 111/tcp open sunrpc 139/tcp open netbios-ssn 515/tcp open printer 1024/tcp open kdm Remote operating system guess : Linux 2. ce qui limite d´j` une grande partie des attaques par IP c e ea spoofing.19 .168. par malchance.1. o a e Si. cela signifie que votre syst`me est tr`s e e vuln´rable ` une attaque par IP-Spoofing.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 int´ressantes : e TCP Sequence Prediction : Class=random positive increments Difficulty=4687481 (Good luck !) Celles-ci nous renseignent sur la difficult´ d’une attaque par IP-Spoofing. Le message ”Good Luck !” entre parenth`ses est e plutˆt ironique vis-`-vis de la r´ussite de l’attaque.The Connect() Scan took 1 second to scan 1554 ports.2.

org/show.phrack.php?p=48\&a=14 (en anglais) 89 . L’utilisation de tunnels permet ´galement de parer cette attaque. rsh). e Documents D´scription de l’IP-Spoofing : e http://www. il faut commen¸er par supprimer tous les services se basant e c sur l’authentification IP (rloging.Pour se prot´ger . Certains modules comme rp filter sous Linux permettent une d´fense contre e ces attaques.

c’est une interface logie cielle et un syst`me de nommage. Elle est surtout utilis´e dans les r´seaux e e e e e c pour le protocole SMB (bien qu’elle tend ` ˆtre remplac´e). processus ou e e des espaces disques. e Ne laissez jamais un service NETBIOS de votre r´seau en ´coute sur Internet. e Documents Un bon guide pour la s´curisation NETBIOS (en anglais) : e http://packetstormsecurity. M icrosof t ae e Comment s’en prot´ger ? e Prot´gez toutes vos ressources NETBIOS par mot de passe.txt 90 .8 NETBIOS NETBIOS n’est pas un protocole en lui-mˆme. NETBIOS permet par exemple de partager des rese sources en r´seau. NETBIOS e n’est pas une interface tr`s s´curis´e. Ces ressources peuvent ˆtre des imprimantes.org/groups/rhino9/wardoc. L’interface NETBIOS est tr`s utilis´e sur e e e les r´seaux M icrosof t c . Un pirate peut essayer d’acc´der ` ces ressources en s’y e a connectant et tester diff´rents couples utilisateur/mot de passe. e e Autorisez seulement l’acc`s aux ressources NETBIOS au client de votre e r´seau.9.

ce qui empˆche la modification ou l’utilisation des programmes setuid sur un syst`me e e de fichier NFS.9 NFS : Network File System NFS a pour but de partager un ensemble de fichiers sur un r´seau.1 Les attaques Le gros probl`me avec NFS. ea NFS a ´t´ d´velopp´ par Sun Microsystems. Comment s’en prot´ger ? e Utilisez la commande mount avec l’option -nosuid sur les clients. Il est e souvent coupl´ ` un serveur NIS pour l’authentification. e 91 .9. c’est que le client fait toujours confiance au e serveur et vice versa. Un compte ”root” sur une machine cliente peut tr`s e bien compromettre le serveur et vice-versa. Utilisez l’option root-squash dans le fichier ”/etc/exports” : [root@nowhere /root]# Cela aura pour but d’empˆcher un client root de devenir root sur le syst`me e e de fichiers NFS stock´s sur le serveur. ee e e 9.9. e Prot´ger l’acc`s ` votre serveur NFS en filtrant ` partir de l’ adresse IP. e e a a les diff´rents clients.

e Cette base de donn´es est identifi´e par un nom de domaine propre ` NIS.9. une base de donn´es contea e e nant des bases d’informations pour chacune des machines constituant le r´seau (fichier de mots de passe. Prot´gez l’acc`s ` votre serveur NIS en filtrant ` partir de l’adresse IP. a Les mots de passe sont transmis en clair sur le r´seau..10 NIS : Network Information Service NIS permet de partager.1 Les attaques Il est possible d’obtenir des nombreuses informations (notamment les fichiers de mots de passe) ` partir du nom de domaine NIS. Comment s’en prot´ger ? e Evitez de donner le mˆme nom de domaine DNS au domaine NIS. e V´rifiez si votre version de NIS vous assure une v´rification de l’adresse du e e domaine depuis lequel sont lanc´es les requˆtes. Il s’accompagne souvent ee e e du service NFS pour permettre le partage de fichiers. donc facilement intere ceptable par un sniffer.). a Il est aussi possible pour un utilisateur non autoris´ d’obtenir les fichiers e de mots de passe ` partir d’un poste local client NIS. e o La base de donn´e est g´r´e par un serveur-maˆ qui la partage avec des e ee ıtre serveurs-esclaves pour ˆtre accessible aux machines clientes. e e Supprimez la commande ”ypcat” sur les ordinateurs clients.10.. e 92 . e e a Ce service a ´t´ d´velopp´ par SUN Microsystems. 9. les e e a a diff´rents clients. ` travers un r´seau. listes d’hˆtes.

e e 93 .. portmap ne poss`de aucun m´canisme de contrˆle. il e e e o accepte donc la requˆte et la traite. NIS . e Comment s’en prot´ger ? e Il est conseill´ de filtrer l’acc`s sur ce port grˆce ` un firewall bien confie e a a gur´ ou de d´sactiver totalement ce service.. e e [root@nowhere /root]# rpcinfo -p machinecible program vers proto port 10000 2 tcp 111 portmapper 10000 2 udp 111 portmapper 10007 2 udp 661 ypbind 10007 2 tcp 664 ypbind Lors de la requˆte. La comande rpcinfo permet de savoir quels services RPC sont actifs sur le syst`me vis´ (ici ”machinecible”).9.11 PORTMAP portmap (en ´coute sur le port 111) est le support de nombreux autres e services comme les serveurs NFS.

). e SMB (pour Server Message Block) est le protocole utilis´ pour interfacer les e partages et les authentifications MICROSOFT. e Comment s’en prot´ger ? e Pour ˆtre sˆr que les mots de passe SMB soient envoy´ encrypt´s sur le e u e e r´seau (mˆme en cas de requˆtes ”frauduleuses”). dans lequel il e associe un mot de passe ` une ressource (espace disque. e e SMB utilise aussi deux modes pour l’envoi de ces mots de passe : encrypt´s e ou non.1 Les scans de SMB shares Si vous avez des ressources partag´es en acc`s libre ` tout le monde (evee e a ryone shares).. Cet utilisateur u a peut ˆtre aussi propri´taire d’une ressource. un pirate utilisera un scanner de share pour les d´tecter et s’y e connecter. C’est le serveur qui donne l’infora e mation au client s’il supporte l’encryptage ou non. Mˆme si vous prot´gez ces shares par mot de passe. imprimantes . et a le mode ”user”.. C’est l` que r´side toute la faille. o` il associe un mot de passe ` un utilisateur.9. 9. Les clients et serveurs SMB sous Linux et d’autres OS libres utilisent SAMBA pour traiter les ´changes e avec ce protocole.1). certains logiciels peuvent e e tester diff´rents mots de passe en se loguant ` la ressource et ainsi tenter e a diff´rentes combinaisons de mots de passe (voir section 7.12.12 Le protocole SMB Les serveurs SMB sont en ´coute sur le port 139 ou 445. v´rifiez que la valeur des e e e e cl´s suivantes de la base de registre sont bien ´gales ` 0 : e e a SousW indowsN T 4 c HKEY\LOCAL\MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parameters 94 . il peut tr`s bien d´tourner le flux entre les deux et demander au e e e client d’envoyer son mot de passe en clair et le recevoir. SMB poss`de deux modes d’authentification : le mode ”share”. Si un pirate parvient ` d´tecter un ´tablisement de session SMB avant cet a e e ´change.

Document La description des probl`mes de s´curit´ sur SMB (en anglais) : e e e http://www. c Ne laissez jamais un serveur SMB en ´coute sur Internet.php?p=60\&a=11 95 . ´vitez les shares en acc`s e e e libre ` tout le monde et n’oubliez jamais de choisir des mots de passe associ´s a e de la bonne fa¸on (voir section 7.3). Si vous ˆtes oblig´s d’utiliser SMB ` travers Internet. utilisez les e e a tunnels (voir section 4. cela est plus que e suicidaire.1 ). filtrez l’acc`s sur votre serveur SMB grˆce ` un e e a a firewall.org/show. Sur votre r´seau interne.”EnablePlainTextPassword”=dword :00000000” SousW indowsXP c HKEY\ LOCAL\ MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\param ”enableplaintextpassword”=dword :00000000” Prot´gez toutes vos ressources par mots de passe.phrack.

Un pirate peut tr`s bien s’en servir pour envoyer des e mails scabreux ` travers Internet. e e e Certains serveurs SMTP empˆchent le relayage. e Comment s’en prot´ger ? e Appliquez des r`gles de firewalling assez strictes concernant le serveur e SMTP (usage r´serv´ exclusivement aux machines du r´seau interne). v´rifiez si votre serveur de e e messagerie supporte cette option.9.13 SMTP . Un serveur SMTP sert a envoyer les mails sur le r´seau local ou sur In` e ternet.Les services de messagerie SMTP : Simple Mail Transfert Protocol. e Le premier probl`me avec un serveur SMTP est qu’il peut servir de relais e de mailing anonyme. Ce service est en ´coute sur le port 25. 96 . Il convient de les d´sactiver si le logiciel de messagerie le permet. a Un autre probl`me concerne les commandes EXPN et VRFY : ces come mandes sont sources de nombreuses informations pour le pirate.

le e e ”SQL-Injection”.1 Le ”SQL-INJECTION” Une requˆte SQL passe par plusieurs ´tapes avant d’aboutir. e e e Comment s’en prot´ger ? e Pour bien s´curiser votre serveur SQL. 9.. Ces e e e caract`res peuvent ˆtre interpr´t´s par le serveur SQL comme des commandes e e ee permettant d’obtenir un acc`s sans mot de passe. e e Les donn´es sont envoy´es par le client par l’interm´diaire d’un script sur e e e le serveur web.. Il s’ensuit une connexion au serveur SQL. de r´cup´rer des fichiers ..htm (en anglais) 97 . e Se prot´ger du SQL-Injection n’est pas toujours ais´. v´rifiez que tous les comptes e e poss`dent un mot de passe.. La rˆquete est ex´cut´e par le serveur SQL.9. e a Ce chapitre va pr´senter une attaque tr`s connue contre les serveurs SQL. Sur certaines versions de serveur.14 SQL SQL est utilis´ pour la gestion de base de donn´es. a e Documents La technique du ”SQL Injection” d´crite par son inventeur : e http://www. e e e e e La r´ponse est re¸ue par le client et est affich´e sous la forme d’une page web e c e . L’attaque par SQL-Injection consiste ` injecter des caract`res sp´ciaux ou a e e des chaˆ ınes de caract`res particuli`res dans les rˆquetes SQL du client. puis l’envoi des donn´es de la requˆte du client. il faut surtout ˆtre e e e attentif ` la programmation des scripts et aux fonctions utilis´es.14.asp/i6/d42. les comptes e administrateur ou de certains utilisateurs peuvent ˆtre accessibles sans mot e de passe apr`s une installation. Il permet l’ intercone e nexion d’une page web avec une base de donn´es ` l’aide de scripts.net/rfp/p/doc.wiretrip.

9. Ces cae ract`res n’´tant pas v´rifiables. ils peuvent ˆtre utilis´s pour modifier le bon e e e e e d´roulement de la communication. Ces caract`res e e e e e sont utilis´s pour rendre la longueur du paquet multiple de 64 bits. SSH est sujet ` diff´rentes attaques. Cette attaque se base sur la g´n´ration al´atoire des caract`res de bourrage. Le pirate se place entre le client et le serveur (avant l’´tablissement de session SSH) grˆce ` des e a a m´thodes de redirection de flux. Une autre attaque utilisant une faiblesse du protocole existe. e a e 98 . SSH est donc un outil conseill´ (pour ne pas dire e e indispensable) pour les transactions r´seaux. Cette faille est plus connue sous le nom e de ”l’exploitation du canal cach´”. Lorsque le client et le serveur s’´changent e e les cl´s indispensables pour l’encryptage. e Ces attaques ne sont pas tr`s faciles ` impl´menter. e Malgr´ tout. il les intercepte et les utilise pour e se faire passer pour le client aupr`s du serveur et pour le serveur aupr`s du e e client.2. la premi`re ´tant une e a e e e attaque de type Man-In-The-Middle (section 8.15 SSH SSH vous permet de cr´er un tunnel chiffr´ pour vos connexions. il ene e crypte toutes les ´changes.

L’utilia e sateur a l’impression d’ˆtre assis devant un terminal de la machine. 99 . qui pr´sente les mˆmes fonctionnalit´s que telnet o e e e mais permettant en plus de ”tunneler” la connexion en encryptant toutes les transactions. Telnet ´tablit deux terminaux virtuels pour les deux e machines. Ce type de terminal est semblable ` une connexion s´rie.9. Malheureusement. e e Comment s’en prot´ger ? e Utilisez plutˆt SSH. Je vous conseille aussi de restreindre l’acc`s ` votre serveur telnet via un e a firewall. e telnet repose sur une authentification par login et mot de passe.16 TELNET Le service telnet (en ´coute sur le port 23) permet ` deux machines dise a tantes de communiquer. Utilisez IPsec ou des utilitaires de ”tunneling” (voir section 4. Les mots de passe e associ´s du login circulent en clair sur le r´seau. telnet poss`de le mˆme probl`me que FTP : il n’assure pas la e e e protection des mots de passe contre l’´coute d’un sniffer.3) pour prot´ger e toutes vos connexions.

17 XWINDOW XWINDOW est un service permettant la gestion des interfaces graphiques sous UNIX. Si un serveur X WINDOW est mal configur´. Comment s’en proteger ? Utilisez la commande : [root@nowhere /root]# xhost pour fermer les acc`s au serveur XWINDOW. capturer des ´venements X ou en e e cr´er. Il peut agir sur les fenˆtres. XWINDOW est en ´coute sur le port 6000.1 Les attaques Il faut savoir que XWINDOW fonctionne sur une architecture clientserveur.9. n’importe quel client e e pourra s’y connecter et modifier son fonctionnement. e 9. Il est donc possible ` un client connect´ sur un serveur X d’interagir a e avec celui-ci. e 100 .17.

Malheureusement.) Les applications Peer to Peer permettent de faciliter l’´change de fichiers e entre particuliers.18 Peer To Peer (eDonkey. e e e Comment s’en prot`ger ? e Sous linux..com/p2pwall/ 101 .9.. Kazaa . Kazaa .lowth.. leur utilisation dans un r´seau peut ˆtre source e e de probl`mes de s´curit´ et consommer inutilement de la bande passante.). Ces applications sont nombreuses et diverses (eDonkey.. le projet P2Pwall donne des utilitaires et des documents permettant d’utiliser le firewall iptables pour filtrer le trafic d’application Peer to Peer. Il est disponible gratuitement ` l’adresse : a http://www.

Chapitre 10 S´curit´ avanc´e e e e 102 .

103 .Introduction Si vous avez lu les pr´c´dents chapitres (et surtout le chapitre 4). Elle concerne l’impl´mentation et le d´veloppement d’oue e tils d´di´s ` la s´curit´. vous e e poss´dez maintenant toutes les connaissances requises pour pouvoir abore der cette partie. La premi`re section vous montrera comment are e a e e e chitecturer son r´seau de fa¸on s´curis´e et comment bien impl´menter les e c e e e diff´rents outils de protection. La deuxi`me section vous d´crira diff´rentes e e e e biblioth`ques utilis´es pour le d´veloppement d’utilitaires r´seaux. Nous done e e e nerons en exemple la programmation d’un simple scanner.

Cette machine est connect´e directement ` e e a Internet. Dans ce type de r´seau. une PME ou une universit´ poss`de un administrateur qui e e e doit g´rer l’ensemble du parc informatique et sa conception r´seau. Il convient d’avoir lu pr´alablement les pr´c´dents chapitres pour e e e e e bien saisir la subtilit´ des architectures d´crites. il est conseill´ d’avoir une architecture r´seau bien e e e e pens´e. e e 104 . un e serveur de messagerie et un site web. Nous partirons e e e e d’une architecture peu ou pas s´curis´e pour arriver ` une architecture ultrae e a s´curis´e. e e Nous d´crirons diff´rents niveaux d’architecture s´curis´e.10. quand la e c e s´curit´ entre en jeu. e e 10.1.1 Le r´seau de d´part e e Tr`s simple. il n’y aucune forme de s´curit´ : la connexion avec e e e Internet n’est absolument pas s´curis´e. de messagerie et de partage de connexion Internet seront assur´s par une seule machine. l’administrateur cr´e son r´seau de la sorte : e e Les serveurs web. Avec peu de moyen.1 L’architecture s´curis´e e e Il existe une infinit´ de fa¸on d’organiser votre r´seau mais. Il a pour e e cahier des charges d’assurer une connexion Internet avec le r´seau local. Ce chapitre va donner des exemples de r´alisation d’architecture e e s´curis´e.

10.1.2

Le premier niveau de s´curit´ e e

Apr`s un premier piratage, notre administrateur re¸oit de nouveaux cr´dits. e c e Il repense l’architecture :

Il d´diera une machine pour le serveur web, une machine pour le serveur e de messagerie, deux machines pour le firewalling et un routeur pour assurer la connexion Internet. Les serveurs de messagerie et web sont dans une zone ext´rieure ` celle du e a r´seau local. Ils constituent une zone d´militaris´e (DMZ). D´militaris´e car e e e e e on peut s’y connecter depuis l’ext´rieur contrairement au r´seau local. e e Le firewall situ´ entre le r´seau local et le routeur empˆchera toute connexion e e e de l’ext´rieur vers le r´seau local, et autorisera seulement les connexions dee e puis le r´seau local sur un nombre limit´ de services. e e Le firewall situ´ entre le routeur et la DMZ autorisera tous les acc`s sur e e les serveurs web et de messagerie (depuis le r´seau local comme depuis l’exe terieur), mais en empˆchera les tentatives de connexion sur les autres services. e Malheureusement, notre administrateur subit un autre piratage. Il suppose que le pirate a pu passer le routeur et les firewalls en soumettant des requˆtes e sur des ports autoris´s. Il a tr`s bien pu envoyer un exploit sur un serveur e e web ou de messagerie vuln´rable. e

10.1.3

NDIS : Deuxi`me niveau de s´curisation e e

Alors, pour se prot´ger, il intercale une sonde NDIS (voir section 4.2) e entre le firewall et le r´seau local et dans la DMZ. Si un pirate venait ` ene a 105

voyer des requˆtes suspectes ou des exploits connus, les NIDS pr´viendraient e e du risque d’intrusion (de l’int´rieur ou de l’ext´rieur). Le manager NDIS se e e situera dans le r´seau local. e

Il d´die toujours une seule machine pour un seul service. Il met r´gulierement e e a ` jour les logiciels, et s’informe sur les nouvelles failles de s´curit´. e e Ceci constitue un niveau acceptable permettant de r´sister ` des nombreuses e a attaques.

10.1.4

Les niveaux plus ´lev´s e e

Nous allons nous appuyer dans cette section sur l’architecture pr´c´dente. e e Nous allons modifier certaines parties du r´seau. e Nous allons d’abord ins´rer une zone de d´contamination entre Intere e net et le r´seau interne. Cette zone est constitu´e d’analyseurs de contrˆle e e o de contenu, des antivirus et d’autres utilitaires surveillant le trafic r´seau e (comme des NIDS). Tous les flux entrants et sortants passeront par cette zone de d´contamination. Ces proxys applicatifs peuvent prendre la d´cision e e de couper la connexion en cas d’attaques ou de simplement rejeter la demande. Cette zone est appel´e zone de d´contamination car elle permet de d´tecter e e e des signatures d’attaques dans les flux de donn´es provenant d’Internet et e d’´viter la propagation dans le reste du r´seau. e e

106

Pour le r´seau local, nous le subdiviserons en sous-r´seaux, chaque souse e r´seau poss´dera un NDIS (sonde + manager). Ces sous-r´seaux seront reli´s e e e e entre eux par des switchs.

Ce type d’architecture est tr`s efficace pour la s´curit´, mais reste n´anmoins e e e e assez cˆuteuse et difficile ` g´rer. L’utilisation de tunnels (voir section 4.3) o a e permet en plus d’accroˆ la sˆret´ des transactions. ıtre u e

107

Un grand nombre de protocoles e est support´.2. Cette biblioth`que est maintenue par l’ ´quipe de d´veloppement e e e e de tcpdump (pr´sent´ dans le chapitre 5.tcpdump. Ce scanner listera les ports TCP oue verts sur une machine avec une m´thode de scan en port demi-ouvert (SYN e scan. e e Le syst`me d’exploitation utilis´ est Linux avec un compilateur GCC. e e a a 10. Libnet. e e Libnet est t´l´chargeable ` cette adresse : ee a www. Une solide e e connaissance r´seau est aussi demand´e. voir section 2.1. nous allons ´tudier le e e d´veloppement d’un scanner de base. e e La deuxi`me est Libpcap. e e a a la r´ception des r´ponses grˆce ` Libpcap.1 la rend incompatible avec les versions de biblioth`ques ant´rieures.net Libpcap est t´l´chargeable ` cette adresse : ee a www. Elle permet de capturer les paquets transitant sur e le r´seau. C’est une bie e e blioth`que opensource (donc gratuite).4).org Pour donner une description de ces biblioth`ques. Une connaissance du language C est requise. De grosses e modifications faites sur le code de la version 1. L’injection des paquets sera r´alis´e grˆce ` Libnet. La premi`re.10.2 D´veloppez vos propres utilitaires s´curit´ e e e Ce chapitre va pr´senter diff´rents outils pour d´velopper vos propres utie e e litaires de s´curit´. est d´velopp´e par Mike D. Schiffman. Libnet permet de fabriquer et d’ine jecter facilement des paquets sur un r´seau.packetfactory. Nous e e allons ´tudier 2 biblioth`ques permettant la cr´ation d’utilitaires r´seaux : e e e e libnet et libpcap. e Note importante : La version de Libnet d´crite est la version 1.1 Le programme Le programme ”scanner” sera appel´ en mode console et recevra deux e arguments : l’interface r´seau d’utilisation et l’adresse IP de la machine ` e a 108 .1).

Ce chapitre n’est en aucun cas un cours de programmation r´seau. Nous utiliserons deux e fonctions de cette librairie pour notre programme : 109 . e ATTENTION ! Le but de ce chapitre est de pr´senter les librairies libnet e et libpcap et certaines de leurs fonctions les plus utiles d’une mani`re suce cinte. l’IP de la machine ` scanner et le nom a de l’interface r´seau (par exemple ”eth0”). Si ce port est ouvert.net /root]#. e Le programme recevra en argument. Je pr´senterai les deux fonctions utilis´es pour intercepter et envoyer : e e Pour recevoir (void ReceptionPaquet(unsigned int. u char device) : La fonction ReceptionPaquet permet de recevoir les paquets circulant sur le r´seau.2 Le Le Le Le port port port port 21 est ouvert 22 est ouvert 1111 est ouvert 1024 est ouvert Mais int´ressons-nous ` son d´veloppement. Il affichera la liste des ports ouverts et se terminera. e Principe g´n´ral de fonctionnement : e e Le principe de fonctionnemt du programme est simple . on recevra en r´ponse un e e e paquet TCP avec le couple SYN/ACK arm´.1. e a e Un petit rappel th´orique : e Le scan en port demi-ouvert consiste ` envoyer un paquet TCP avec le flag a SYN arm´ sur un port pr´cis. il sera constitu´ de e deux fonctions : la premi`re permettra d’envoyer les paquets (sur les 16000 e premiers ports) et la deuxi`me de les recevoir. Exemple d’utilisation : [root@nowhere. Ces deux fonctions seront ace tiv´es en parall`le dans deux processus distincts (grˆce ` l’appel de la fonction e e a a fork()).168. elle utilise la librairie libpcap./scanner -i eth0 -c 192.scanner. Pour cela.

La premi`re est la fonction pcap t *pcap t pcap open live(char *device. Cette fonction utilise comme argument le descripteur ”p” pour acc´der ` la carte r´seau. int e snaplen. e e Le param`tre snaplen repr´sente la taille maximale (en octet) d’un paquet e e intercept´ (max=65535). struct e pcap pkthdr *h). int promisc.int to ms. La deuxi`me fonction est la fonction u char *pcap next(pcap t *p. e Le param`tre promisc contrˆle le fonctionnement de la carte r´seau. Elle renvoie chaque paquet intercept´. e e e Le param`tre *errbuf est un pointeur sur une chaˆ de caract`res pouvant e ıne e contenir une message d’erreur en cas de mauvaise ou non ex´cution du proe gramme. e Voici la fonction ReceptionPaquet : void ReceptionPaquet(unsigned int IP Cible. la fonction se termine.char *errbuf ). ensuite ce descripteur de e fichier est utilis´ par la fonction *pcap next qui intercepte les paquets. la carte est en mode transparent. Ces deux fonctions sont toujours utilis´es en s´rie. c’est ` dire qu’elle intercepte e a a tous les paquets (mˆme ceux qui ne lui sont pas destin´s). Lorsque ce d´lai est ´coul´. la pcap open live initialise e e la carte r´seau et renvoie un descripteur de fichier. u char *Device) /*Variable utilis´e par les fonctions de libpcap (elle contiendra notre pae 110 . la carte n’acceptera que les paquets lui ´tant destin´s. Cette fonction initialise la carte r´seau et renvoie un descripteur de type e pcap t sur cette interface r´seau en ´coute. Le param`tre to ms sp´cifie le d´lai (en millisecondes) d’interception de pae e e quets. Si cette valeur est e e diff´rente de 1. Pour e e e notre programme. e a e e C’est une fonction bloquante. S’il est e o e ´gal ` 1. e e La param`tre *device est un pointeur sur une chaˆ de caract`res contee ıne e nant le nom de l’interface r´seau utilis´e (par exemple ”eth0”). la carte sera en mode transparent donc promisc sera ´gal e a ` 1.

NULL. /*Structure pour l’en tˆte IP*/ e struct ip *IpHdr . /*Structure pour l’en tˆte TCP*/ e struct tcphdr *TcpHdr .quet*/ struct pcap pkthdr Header . /*Descripteur pour libnet*/ libnet t *l . /*Pointeur vers le paquet*/ u char *Packet . /* Initialisation pour les fonctions de libnet (obtention d’un descripteur)*/ l=libnet init(LIBNET RAW4. /*Structure pour l’en tˆte ETHERNET*/ e struct ethhdr *EtherHdr . /*Descripteur repr´sentant l’interface r´seau (retourn´ par e e e la fonction pcap open live()*/ pcap t *Descr . /*Descripteur ”Descr” sur l’interface r´seau en ´coute*/ e e 111 . /*Tampon pour retour d’erreur*/ char ErrBuf[LIBNET ERRBUF SIZE] .ErrBuf) .

while(1) /*On recup´re le paquet (il est point´ par la variable ”Pae e cket”)*/ Packet = (u char *) pcap next(Descr.&Header) . /*On verifie si le protocole est bien TCP*/ if(IpHdr-¿ip p==IPPROTO TCP) TcpHdr = (struct tcphdr * ) ( Packet + ETH HLEN + 4 * (IpHdr-¿ip hl)) .ErrBuf) .1.0. /* Cela sert ` verifier que nous avons bien envoy´ le paquet et qu’il a e provient bien de la machine ”scann´e”. /*On verifie si le protocole est bien IP*/ if(ntohs(EtherHdr-¿h proto)==ETH P IP) /*On convertit le paquet pour analyser l’en tˆte IP*/ e IpHdr = (struct ip * ) (Packet +ETH HLEN) . Ceci se base sur l’analyse des e adresses IP */ 112 .65535.Descr = pcap open live(Device. /*On convertit le paquet pour analyser l’en tˆte ETHERNET*/ e EtherHdr = (struct ethhdr * ) (Packet) .

le port est ouvert*/ e if((TcpHdr-¿ack==1) && (TcpHdr-¿syn==1)) printf(”Le port %d est ouvert n”. Nous allons utiliser diff´rentes fonctions de la librairie Libnet. /*Destruction du descripteur*/ libnet destroy(l) .ntohs(TcpHdr-¿source)) .if( (IpHdr-¿ip src.int)) : La fonction EnvoiPaquet permet d’injecter les paquets sur le r´seau. Pour envoyer (void EnvoiPaquet(unsigned int. 113 . IP e ou TCP). Pour notre programme. Pour e cela. une injection au niveau IP suffira (valeur LIBNET RAW4). char *dee vice.s addr== libnet get ipaddr4(l))) /*Pour verifier que le port d’envoi correspond au mˆme que le notre*/ e if(ntohs(TcpHdr-¿dest)==PORT SOURCE) /*Si les flags SYN et ACK sont arm´s.s addr==IP Cible) && (IpHdr-¿ip dst. e La premi`re est la fonction libnet t *libnet init(int injection type. elle utilise la librairie Libnet. char *err buf ). Elle traite trois arguments : Le premier injection type d´finit le type d’interface (niveau ethernet. Cette fonction permet d’initialiser une interface d’injection des paquets.

Le deuxi`me argument *device est un pointeur sur la chaˆ de caract`re e ıne e contenant le nom de l’interface r´seau qui sera sollicit´e (ex : eth0), la valeur e e NULL conviendra car libnet choisira automatiquement une carte r´seau. e Le dernier argument *err buf est utilis´ pour les messages d’erreur (comme e libpcap). Elle renvoie un pointeur sur l’interface d’injection de type libnet t. Les fonctions libnet ptag t libnet build tcp(...) et libnet autobuild ipv4(...) sont utilis´es pour construire les en-tˆtes TCP et IP. Elles prennent comme argue e ments les diff´rentes valeurs constituants les en-tˆtes TCP et IP (num´ro de e e e port, de s´quences ... pour TCP, adresses IP, types de protocoles pour IP). e Elle renvoient toutes les deux un descripteur de type libnet ptag t, ces fonctions doivent toujours respecter l’ordre TCP puis IP (sens couche application vers couche r´seau ou physique). e Ces fonctions prenent en argument le pointeur sur l’interface d’injection (pointeur renvoy´ par la fonction libnet init). e La fonction int libnet write(libnet t) injecte le paquet. La fonction void libnet destroy(libnet t) d´truit l’interface cr´e par libnet. e e Voici la fonction EnvoiPaquet : void EnvoiPaquet( /*IP Machine Cible*/ unsigned int IP cible, /*Port Destination*/ int port dest)

/*Variables pour les fonction de libnet*/ char ErrBuf[LIBNET ERRBUF SIZE] ; libnet t *l ; libnet ptag t Tag ;

/*Pour initialiser et obtenir un descripteur*/ l=libnet init(LIBNET RAW4,NULL,ErrBuf) ;

114

/*Pour construire l’en tˆte TCP*/ e

Tag=libnet build tcp( PORT SOURCE, /*Port Source*/ port dest, /*Port destination*/ 0, /*N◦ S´quence*/ e ◦ 0, /*N Acquitement*/ TH SYN, /*Demande de connexions*/ 4096, /*Taille de fenˆtre*/ e 0, /*Somme de contrˆle*/ o 0, /*Pointeur d’urgence*/ LIBNET TCP H, /*Taille en tˆte*/ e (u char *) (NULL),/*Pointeur vers les donn´es*/ e 0, /*Taille des donn´es*/ e l, 0) ;

/*Pour construire l’en tˆte IP*/ e

Tag=libnet autobuild ipv4( LIBNET IPV4 H+LIBNET TCP H, /*Taille du paquet*/ IPPROTO TCP, /*Protocole*/ IP cible, /*Adresse IP de la machine Cible*/ l) ;

/*Pour envoyer le paquet*/ libnet write(l) ;

/*Pour d´truire le descripteur*/ e libnet destroy(l) ;

La fonction main() : La fonction main() traite les arguments de la ligne de commande, lance un processus enfant dans lequel, elle utilisera la fonction ReceptionPaquet et 115

attendra une seconde pour le lancement du processus et de la fonction ReceptionPaquet puis ex´cutera 16000 fois la boucle d’envoi de paquets (16000 e ports).Elle attendra encore 5 secondes pour le traitement des r´ponses et e terminera le programme. Voici la fonction main : extern char *optarg ; extern int optind ; extern int opterr ;

int main(int argc,char *argv[])

/*Pour avoir les param`tres de la ligne de commande*/ e static char optstring[]=”i :c :” ; int optch ; char *Device ;

/*Variable d’it´ration*/ e int i ;

/*Pour stocker l’adresse IP*/ u int32 t IP Cible ;

/*Variable qui va re¸evoir le PID du processus enfant*/ c int Pid ;

/*Pour traiter les param`tres de la ligne de commande*/ e

if(argc ¡ 5) printf(” nscanner -i interface -c IP Cible 116

/*On lan¸e le processus enfant (r´cuperation et analyse des paquets*/ c e Pid=fork() .n”) . strncpy(Device. break . return 0 .argv. return 0 . break . default : printf(” nscanner -i interface -c IP Cible n”) .optstring)) !=EOF) switch(optch) /*Pour le nom de l’interface*/ case ’i’ : Device = (char *) (malloc(strlen(optarg)*sizeof(char))) . /*Pour l’adresse IP de la machine cible*/ case ’c’ : IP Cible = inet addr(optarg) .optarg. while((optch= getopt(argc.Device) . /*On attend une seconde*/ 117 .strlen(optarg)) . if(Pid==0) ReceptionPaquet(IP Cible.

i++) EnvoiPaquet(IP Cible.sleep(1) .2.packetfactory. /*On d´truit le processus enfant*/ e sleep(5) .i) .2. return 0 .3 Documents Pour libnet : http://www. kill(Pid. } 10.com/prog/scanner. consultez le lien : http://guidesecu.org 118 .SIGINT) . /* On envoie les paquets sur les 16000 premiers ports*/ for(i=0 .c 10.tcpdump.ifrance.net Pour libpcap : http://www.2 Comment obtenir et compiler le source entier du programme ? Pour le code source du programme et les commandes de compilation .i¡16000 .

Chapitre 11 Annexes 119 .

fr/wws/info/sos-virus http://www.phrack.fr/ Phrack (surtout en Janvier et aout/septembre !) : www.org (en anglais) Securityfocus : www.html Le site du Renater : http://www. mais c’est le seul e 120 .org (en anglais) Bugtraq : http://citadelle.com/mailing/current/HTML/ml_bugtraq/ (en anglais) http://www.com (en anglais) Packetstorm security : www.services.bugtraq-france.fr/Infosecu/Virus.intrinsec. Je ne suis pas d´pendant de MISC.packetstormsecurity.securityfocus.cert.cnrs.1 Les sites et revues ` consulter r´gulierement a e Pour les sites : Cert : www.org (en anglais) Pour les revues : Pour les revues en fran¸ais disponibles en kiosque.com Le site du CNRS : http://www. je vous conseille d’acheter c le magazine MISC.cnrs.11.renater.

Chaque num´ro constie ee a e tue une tr`s bonne source d’informations.com 121 . Il est disponible tous les 2 ou 3 mois environ chez e votre libraire. e Pour plus de renseignements : www.miscmag. e e e 9 num´ros ayant ´t´ sortis jusqu’` septembre 2003. Les anciens num´ros peuvent ˆtre aussi command´s sur le site de MISC.magazine enti`rement d´di´ ` la s´curit´ apportant des r´ponses concr`tes ` e e ea e e e e a de nombreux probl`mes.

2 Remerciements Je tiens ` remercier Nicolas Buratto et Christian Duclou pour leur aide a sur ce manuel.11. Tom.. a e Pour le soutien musical et moral : Jimi. Un grand merci au Mirabellug. Un petit coucou ` celui sans qui rien n’aurait pu ˆtre possible. Hunter. the weird turns pro 122 . When the going gets weird... Thimothy. Neil.. et les tous les autres.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . chroot . . . . . . . . . . . . C Cain . . . . . attaques . . . . . 56 e 123 H HTTP . . . . . . . . . . . . . . . . . . . . . . e d´synchronisation TCP . . . . . banni`res . . . . . . . . . . . . . . . . . . . . . . . . 47 antivirus . . . . . . . . serveur anonyme . . . attaque par rebonds . . . . . . . . . . . . . . firewall . . . . . . . dictionnaire attaque . . . . . . 64 arpwatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 ARP-Poisoning . . . . . . . . DNS . . . . . . . . . . . . . . . . . ethereal . . . . . . . . . . . . . . . . . . . . . . dsniff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 65 64 71 71 71 59 73 74 73 47 68 47 27 96 22 10 10 77 32 31 31 55 79 80 79 D d´nis de services e applicatifs . . EXPN . . . . . . . . . . . . . . . . . . e BIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ´puisement de ressources . . . . . . 26 distribu´s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a ` distance . . . . . . . . . . . . . . . . . boot . . . . . . . . . . . . . . . . e bibliotheques partag´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 architecture . . . . F faille . . . . . . . . . . . . . . . . bogues . brute forcing . . . . . . . . . . . cache poisoning . . . mauvaise . . . . . Chevaux de Troie . . . . . . . . . . . . . . . . . . . . . . exploits . . . . . . . . . carte r´seau e transparent . . . . . fragmentation de paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e DHCP . . . FINGER . . . . . . . . . . . . . . . . . . . . . . . . . . . . bombes e-mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . bombes logiques . . logicielles . . . . . . . . . . . . . . . firewalking . . e d´tourment de flux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . failsafe . 43 43 43 23 45 11 26 56 53 10 10 59 60 47 42 39 31 26 r´seaux . . . . . . configuration .Index A antisniff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 B backdoors . . . . . . . . . . . . . . . . . . . . . . . FAT . . . . . . 81 . . . . . . . . . . . E encapsulation . . . e faux serveurs . spoofing . . . . . . disquette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . SSL . . . . . . . 14 16 16 14 27 82 42 94 94 96 55 47 35 97 97 98 82 54 47 99 32 43 10 36 J John The Ripper . . . . . 27 P ping of death . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 V vers . . . . . . . . . . . . . . . . . Trinux . . . . . 108 LKM . . . . . . . . . . . . . . . . . . . . NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 M man in the middle . . . . . . . . . . . . . . vanilla TCP . . . . . . . . . . . . . . . . . sniffer . . . . . . . . . . . . furtifs . . . . . . . . . . . . . . . . . . . . . . . . . SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 124 U UDP Flood . 93 prelude . . . . . . . . . . . . . . . . . . . . . . . . . . MBR . . . . . . . . smurfing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 S scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SQL . . . . . . . . . . . . . . . . . 55 PORTMAP . . . . . . . . . . . . . . . . . . 39 User Mode Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 K Knoopix . . . . . . . . . . . . . . . . 36. . . scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . snort . . . . . . . . . T tcpdump . . . Netcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SMB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . mot de passe attaques . . . . . . . . . . . . . signatures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NIS . . . . . . . . . . . . . . 52 virus . . . . N NETBIOS . . . . . . . . . . . . . . 11 L libnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . tunnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SHTTP . . . . . . . . . . . . . . . . . . . . . . . interception . . . . IpvSec . . . . . . IP spoofing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 UML . . . . . . . installations . . scans de shares . . . . 51 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 34 26 84 48 R r´seau e priv´ virtuel . . . . . . . . . . . . trappe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nimda . . . . . . . . 67 51 59 47 90 22 91 52 92 14 10 10 O outrepassements de droits . . . . . . . . . . . . . . . . 45 LophtCrack . . . . scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 furtifs . . . . . . . . . . . . . . . . . . . TELNET . . . . . . . . . . . NTFS2DOS . . . . . . . . . . . . . . . 36 e rootkit . . . injection . . . . . . . traceroute . . .I IDENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 libpcap . . . . . . SYN flood . . IDS . Nmap . . . NTFS . . . . . . . . . . SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . 51 VPN . . . . . . . . . . . . . . . . . . . . . . 51 X XWINDOW . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 W Winux . . . . 36 VRFY . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 125 . . . . . . . . . .polymorphes . . . . . .

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.