Guide de sécurité_réseau

1,754 views
1,681 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,754
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
57
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Guide de sécurité_réseau

  1. 1. Un petit guide pour la s´curit´ e e Alexandre Viardin (Mirabellug)copyright Alexandre Viardin Novembre 2003
  2. 2. Table des mati`res e1 S´curisation de base e 8 1.1 Premier conseil : Verrouillez les stations . . . . . . . . . . . . . 10 1.2 Pour Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3 Pour Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4 Le lecteur de disquettes . . . . . . . . . . . . . . . . . . . . . . 10 1.5 Le lecteur de CDROM . . . . . . . . . . . . . . . . . . . . . . 11 1.6 N’oubliez pas le mot de passe pour le BIOS . . . . . . . . . . 112 La collecte d’informations 12 2.1 Le Scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.1.1 Qu’est ce qu’un scanner ? . . . . . . . . . . . . . . . . . 14 2.1.2 Comment marche Nmap ? . . . . . . . . . . . . . . . . 16 2.1.3 La d´termination du syst`me d’exploitation avec e e Nmap 18 2.1.4 Quel est l’intˆret d’utiliser Nmap ? . . . . . . . e . . . . 19 2.2 Identifier les versions des logiciels en ´coute . . . . . . e . . . . 21 2.2.1 Netcat . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Les failles applicatives 24 3.1 Les installations par d´faut . . . . . . . e . . . . . . . . . . . . . 26 3.2 Les mauvaises configurations . . . . . . . . . . . . . . . . . . . 26 3.3 Les bogues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3.1 Des d´nis de services applicatifs e . . . . . . . . . . . . . 26 3.3.2 Outrepassement de droits . . . . . . . . . . . . . . . . 27 3.3.3 Les scripts . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.4 Les exploits . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 Les outils indispensables pour la protection 29 4.1 Le firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.1.1 La configuration . . . . . . . . . . . . . . . . . . . . . . 31 4.1.2 Les attaques contre les firewalls . . . . . . . . . . . . . 31 4.2 Les NIDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 1
  3. 3. 4.2.1 Prelude . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.2.2 Snort . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.3 Le tunneling . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.3.1 Le protocole AH . . . . . . . . . . . . . . . . . . . . . 36 4.3.2 Le protocole ESP . . . . . . . . . . . . . . . . . . . . . 36 4.3.3 Le protocole IPcomp . . . . . . . . . . . . . . . . . . . 36 4.3.4 Le protocole IKE . . . . . . . . . . . . . . . . . . . . . 36 4.3.5 Les deux modes de fonctionnements de IPsec . . . . . . 37 4.3.6 Les limitations d’IPsec . . . . . . . . . . . . . . . . . . 37 4.4 Nessus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.4.1 Pour obtenir tout sur Nessus . . . . . . . . . . . . . . . 38 4.5 User Mode Linux - UML . . . . . . . . . . . . . . . . . . . . 395 Surveillance - Dissimulation - Maintien d’acc`s e 40 5.1 Les chevaux de Troie . . . . . . . . . . . . . . . . . . . . . . . 42 5.2 Les backdoors . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.2.1 Les backdoors pr´sentes dans les logiciels. . . . . e . . . 43 5.2.2 Les backdoors d´di´es aux connexions ` distance . e e a . . . 43 5.3 Les Rootkits . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.4 L’interception des mots de passe en r´seau. . . . . . . . . e . . . 476 Dispositifs destructeurs 49 6.1 Le virus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 6.2 Les vers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 6.3 Les bombes logiques . . . . . . . . . . . . . . . . . . . . . . . 53 6.4 Les attaques par d´ni de services . . . e . . . . . . . . . . . . . 54 6.4.1 Le SYN flood . . . . . . . . . . . . . . . . . . . . . . . 54 6.4.2 L’UDP Flood . . . . . . . . . . . . . . . . . . . . . . . 54 6.4.3 Fragmentation de paquets . . . . . . . . . . . . . . . . 55 6.4.4 Ping of death . . . . . . . . . . . . . . . . . . . . . . . 55 6.4.5 Attaque par r´flexion : Smurfing e . . . . . . . . . . . . . 55 6.4.6 D´nis de services distribu´s . . e e . . . . . . . . . . . . . 56 6.4.7 Bombes e-mail . . . . . . . . . . . . . . . . . . . . . . 567 S´curisation des mots de passe e 57 7.1 L’attaque par dictionnaire . . . . . . . . . . . . . . . . . . . . 59 7.2 Le brute forcing . . . . . . . . . . . . . . . . . . . . . . . . . . 59 7.3 Tester la fiabilit´ de vos mots de e passe ! . . . . . . . . . . . . . 59 7.4 Choisir le bon mot de passe . . . . . . . . . . . . . . . . . . . 60 7.5 Pr´venir l’utilisateur . . . . . . e . . . . . . . . . . . . . . . . . 61 2
  4. 4. 8 La base des attaques r´seaux e 62 8.1 D´tournement de flux . . . . . . . . . . . . . e . . . . . . . . . . 64 8.1.1 ARP-Poisoning : . . . . . . . . . . . . . . . . . . . . . 64 8.1.2 D´synchronisation TCP : . . . . . . . e . . . . . . . . . . 65 8.2 MIM - Man in the Middle . . . . . . . . . . . . . . . . . . . . 67 8.3 Encapsulation d’IP dans d’autres protocoles. . . . . . . . . . . 689 Description d’attaques sur diff´rents protocoles e 69 9.1 DHCP : Dynamic Host Configuration Protocol . . . . . . . . . 71 9.1.1 Attaque par ´puisement de ressources . . . e . . . . . . . 71 9.1.2 Faux serveurs DHCP . . . . . . . . . . . . . . . . . . . 71 9.2 DNS : Domain Name Server . . . . . . . . . . . . . . . . . . . 73 9.2.1 Le DNS ID spoofing . . . . . . . . . . . . . . . . . . . 73 9.2.2 Le DNS cache poisoning . . . . . . . . . . . . . . . . . 74 9.3 FINGER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 9.4 FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 9.4.1 Le serveur FTP anonyme . . . . . . . . . . . . . . . . . 79 9.5 HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 9.5.1 Les serveurs trop bavards . . . . . . . . . . . . . . . . 81 9.5.2 Vuln´rabilit´s li´es aux applications web . e e e . . . . . . . 81 9.6 IDENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 9.7 IP et l’IP-Spoofing . . . . . . . . . . . . . . . . . . . . . . . . 84 9.7.1 Un peu de th´orie ... . . . . . . . . . . . . e . . . . . . . 84 9.7.2 Pr´venir l’IP spoofing grˆce ` Nmap . . . e a a . . . . . . . 87 9.8 NETBIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 9.9 NFS : Network File System . . . . . . . . . . . . . . . . . . . 91 9.9.1 Les attaques . . . . . . . . . . . . . . . . . . . . . . . . 91 9.10 NIS : Network Information Service . . . . . . . . . . . . . . . 92 9.10.1 Les attaques . . . . . . . . . . . . . . . . . . . . . . . . 92 9.11 PORTMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 9.12 Le protocole SMB . . . . . . . . . . . . . . . . . . . . . . . . . 94 9.12.1 Les scans de SMB shares . . . . . . . . . . . . . . . . . 94 9.13 SMTP - Les services de messagerie . . . . . . . . . . . . . . . 96 9.14 SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 9.14.1 Le ”SQL-INJECTION” . . . . . . . . . . . . . . . . . . 97 9.15 SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 9.16 TELNET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 9.17 XWINDOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 9.17.1 Les attaques . . . . . . . . . . . . . . . . . . . . . . . . 100 9.18 Peer To Peer (eDonkey, Kazaa ...) . . . . . . . . . . . . . . . . 101 3
  5. 5. 10 S´curit´ avanc´e e e e 102 10.1 L’architecture s´curis´e . . . . . . . . . . . . . . . . . . . . . e e . 104 10.1.1 Le r´seau de d´part . . . . . . . . . . . . . . . . . . . e e . 104 10.1.2 Le premier niveau de s´curit´ . . . . . . . . . . . . . e e . 105 10.1.3 NDIS : Deuxi`me niveau de s´curisation . . . . . . . e e . 105 10.1.4 Les niveaux plus ´lev´s . . . . . . . . . . . . . . . . e e . 106 10.2 D´veloppez vos propres utilitaires s´curit´ . . . . . . . . . . e e e . 108 10.2.1 Le programme . . . . . . . . . . . . . . . . . . . . . . . 108 10.2.2 Comment obtenir et compiler le source entier du pro- gramme ? . . . . . . . . . . . . . . . . . . . . . . . . . 118 10.2.3 Documents . . . . . . . . . . . . . . . . . . . . . . . . 11811 Annexes 119 11.1 Les sites et revues ` consulter r´gulierement . . . . . . . . . . 120 a e 11.2 Remerciements . . . . . . . . . . . . . . . . . . . . . . . . . . 122 4
  6. 6. Avant-propos ”Qui connaˆt l’autre et se connaˆt, en cent combats ne sera point ı ı d´fait ; qui ne connaˆ l’autre mais se connaˆt, sera vainqueur une e ıt ı fois sur deux ; qui ne connaˆ pas plus l’autre qu’il ne se connaˆ ıt ıt sera toujours d´fait.” e L’art de la guerre - 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 emon ´cole et aux deux conf´rences sur la s´curit´ r´seau pr´sent´es au groupe e e e e e e ed’utilisateurs Linux de NANCY (coucou le Mirabellug). Je ne suis pas sp´cialiste een s´curit´ r´seau ; j’ai juste ´crit ce guide dans le but de donner ` des ad- e e e e aministrateurs ou ` des particuliers, un descriptif technique et un manuel ad’autoformation ` la s´curit´ r´seau. a e e eLa plupart des administrateurs ne sont pas sp´cialistes en securit´, et peuvent e eˆtre perdus devant un probl`me de ce type. Le masse d’informations dispo-e enible sur Internet est parfois confuse, dense ou tr`s technique. Ce guide sert ede point de d´part et d’introduction ` la s´curit´. e a e eIl a ´t´ pens´ dans un but ´volutif. Si vous voulez participer en ´crivant ou en ee e e ecompl´tant des chapitres, n’h´sitez pas ` me contacter sur guidesecu@free.fr. e e aLe principe est simple : une description assez succinte sur une attaque et en-suite une description compl`te des m´thodes de protection. Vos exp´riences e e epersonnelles et vos remarques sont aussi les bienvenues.Evidemment, ce guide est sous license GPL donc gratuit. La seule r´compense eque pourront recevoir les ´ventuels participants est la mention de leurs noms een tant que collaborateurs.Ce guide se compose d’une dizaines de chapitres. 5
  7. 7. Chaque chapitre comporte une introduction. La plupart du temps, un cha-pitre contient au moins une section divis´e en diff´rentes sous sections : une e epour la description d’un probl`me de s´curit´ particulier, une deuxi`me pour e e e ed´crire les diff´rents moyens de s’en prot´ger et une troisi`me pour donner e e e ediff´rents liens vers des documents plus pr´cis sur le sujet. e eLe premier chapitre montre comment s´curiser une station pour ´viter toutes e etentatives de piratage par un acc`s physique. eLe deuxi`me chapitre d´crit le fonctionnement des outils de r´cup´ration e e e ed’informations ` distance, notamment les scanners. Il montre l’utilit´ qu’ils a eont pour vous prot´ger. eLe troisi`me chapitre introduit la notion de failles. eLe quatri`me chapitre introduit diff´rentes notions sur les firewalls et les e eprincipaux autres syst`mes de protection logiciels. eLe cinqui`me chapitre explique comment un pirate dissimule sa pr´sence e esur un syst`me. eLe sixi`me chapitre s’int´resse aux dispositifs destructeurs (virus, bombes e emails ...).Le septi`me chapitre d´crit les attaques sur les fichiers de mots de passe. e eLes huiti`me et neuvi`me chapitres traitent de diff´rents probl`mes pos´s e e e e epar certains protocoles r´seaux. eLe dixi`me chapitre est divis´ en deux parties : la premi`re explique comment e e earchitecturer son r´seau de fa¸on s´curis´e. La deuxi`me partie est un cours e c e e esur le developpement d’outils d´di´s uniquement ` la s´curit´. e e a e eO` trouver ce guide ? u C’est tr`s simple, il y a deux adresses : eLe site officiel :http://guidesecu.ifrance.com/guide/guidesecu.pdf 6
  8. 8. Sur le site du Mirabellug :http://www.mirabellug.org/docs/securite/guidesecu.pdfLes OS vis´s : e La majorit´ des programmes d´fensifs utilis´s et d´crits dans ce guide sont e e e edisponibles sous LINUX. Je n’oublierai pas de parler de la s´curit´ pour les e eproduits Microsoft. Cependant, Linux poss`de une certaine avance sur Mi- ecrosoft dans le domaine de la s´curit´ (notamment par un plus grand nombre e ede logiciels performants et gratuits).Les autres OS comme SunOS, VMS, MacOS, Plan9, Novell,... seront pass´s esous silence mais si vous voulez voir des chapitres pr´cis sur certains OS ap- eparaitre, contactez moi par mail. Bonne Lecture ! 7
  9. 9. Chapitre 1S´curisation de base e 8
  10. 10. Introduction Le but de ce chapitre est de donner diff´rentes m´thodes pour s´curiser e e ephysiquement une machine. Il faut savoir qu’une grande partie des piratagessont lanc´s par des pirates ayant un acc`s physique sur un r´seau. e e eDans ce chapitre, nous ne nous focaliserons pas sur un serveur d´di´ ` un e e aservice particulier, mais plutˆt sur les machines constituant les clients. Ces omachines sont en acc`s libre dans une salle non surveill´e. e eL’objectif est d’empˆcher une personne mal intentionn´e d’obtenir les acc`s e e eadiministrateur sur la machine qu’elle utilise. La plupart des utilitaires de pi-ratage ont besoin des acc`s administrateur pour fonctionner ; sans ces acc`s, e ela capacit´ de nuire est fortement diminu´e. e e 9
  11. 11. 1.1 Premier conseil : Verrouillez les stations N’h´sitez pas ` poser un cadenas sur les tours des machines, cela empˆchera e a etout d’abord le vol de mat´riel, mais cela ´vitera aussi d’avoir des disques e edurs mont´s en ”secret” avec toute une panoplie d’utilitaires install´s dessus. e eLe conseil ` suivre imp´rativement (et vous comprendrez pourquoi en li- a esant les deux chapitres suivants) : il faut d´sactiver le boot sur le lecteur de edisquette et sur le lecteur de CDROM.1.2 Pour Linux Evitez d’avoir l’option ”failsafe” au d´marrage propos´ par Lilo. Cette e eoption peut permettre d’obtenir les acc`s root (sans mot de passe) pour la emaintenance du syst`me. e1.3 Pour Windows Le syst`me de fichier NTFS permet une s´curisation accrue par rapport e eaux syst`mes de fichier FAT et FAT 32. Si vos machines W indows c fonc- etionnent avec de la FAT, passez en NTFS.Je d´conseille fortement d’utiliser Windows 95, 98 et Me, le niveau de s´curit´ e e eoffert par ces OS en natif n’´tant pas assez ´lev´. e e e1.4 Le lecteur de disquettes Evitez le boot sur disquette, un utilitaire comme Trinux (qui est un OSLinux s’installant en RAM grˆce ` un nombre limit´ de disquettes) donne la a a epossibilit´ de monter tous les syst`mes de fichiers pr´sents sur le(s) disque(s) e e edur(s) de la machine et d’en modifier le(s) contenu(s). De plus, Trinux estlivr´ avec un panel assez impressionnant d’utilitaires exclusivement d´di´s ` e e e ala s´curit´. e eLe programme NTFS2DOS (sous DOS) permet de changer les partitionsNTFS en partitions FAT et de pouvoir acc´der ` leurs contenus sans restric- e ations. NTFS2DOS est lanc´ depuis une disquette de boot DOS. e 10
  12. 12. 1.5 Le lecteur de CDROM Des utilitaires comme Knoopix (un OS Linux bootant sur un seul CD etcontenant 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 edisque(s) dur(s).1.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 ecertains BIOS peuvent comporter des failles logicielles permettant d’outre-passer ces protections. Encore une fois, il ne faut pas oublier de cadenasserles tours, afin d’´viter ` des utilisateurs (encore) mal intentionn´s de retirer e a ela pile du BIOS et d’outrepasser la protection par mot de passe. 11
  13. 13. Chapitre 2La collecte d’informations 12
  14. 14. Introduction Dans ce chapitre, nous allons d´crire le fonctionnement des outils permet- etant de r´cup´rer des informations ` distance. Ces utilitaires sont fr´quemment e e a eutilis´s par les pirates pour pr´parer de futures attaques. C’est pour cette e eraison qu’il est indispensable de les d´crire d`s le d´but. Vous apprendrez e e e´galement ` les utiliser pour votre propre protection.e a 13
  15. 15. 2.1 Le Scanner L’objectif du pirate est de rep´rer les serveurs offrant des services parti- eculiers et de les identifier. Pour obtenir ces informations, le pirate va utiliserun scanner.Le but de ce section est de pr´senter des m´thodes de protections contre le e escan (en utilisant des r`gles de firewalling sous iptables/ipchains par exemple) eet de savoir utiliser un scanner pour anticiper les futures attaques.Le scanner d´crit dans ce chapitre est Nmap1 , un des scanners les plus utilis´s e eet un des plus performants.Je d´crirai dans une premi`re partie ce qu’est un scanner. Ensuite, je me e efocaliserai sur Nmap et je le pr´senterai d’un point de vue un peu plus tech- enique, permettant de comprendre les diff´rentes m´thodes de protection. e eAttention : pour une capacit´ optimale de fonctionnement, Nmap doit ˆtre e eutilis´ avec les acc`s root ! e e2.1.1 Qu’est ce qu’un scanner ? C’est tr`s simple : lorsqu’un serveur offre un service particulier (Web, mes- esagerie, mail), il ex´cute un programme assurant ce service. Ce programme eest en attente de connexions.Les clients devant acc´der ` ce service doivent connaˆ e a ıtre l’adresse IP duserveur et le num´ro de port associ´ au service. e eCe num´ro de port a ´t´ attribu´ par l’OS du serveur au programme ex´cutant e ee e ece service.La plupart des services ont un num´ro de port bien d´fini. Par exemple, e eun serveur de messagerie utilise le port 25, un serveur Web le port 80...Lorsqu’un service est en ´coute sur un port, on dit que le num´ro de port e eassoci´ ` ce service est ouvert. eaL’int´rˆt du scanner est tr`s simple : il permet de trouver dans un d´lai ee e e 1 Nmap est disponible sous W indows c et Linux ` l’adresse http ://www.insecure.org/, ala version d´crite dans ce chapitre ´tant celle disponible sous Linux. e e 14
  16. 16. tr`s court, tous les ports ouverts sur une machine. eIl existe diff´rents types de scanner, certains se contentent juste de donner ele listing des ports ouverts, de donner le type et la version de l’OS tour-nant sur le serveur (ces fonctionnalit´s seront d´crites dans ce chapitre avec e eNmap). D’autres scanners comme Nessus permettent de tester diff´rentes efailles connues sur ces services ( Nessus sera d´crit dans la section 4.4). eExemple avec NmapUtilisons Nmap pour connaˆ les services en ´coute sur la machine d’adresse ıtre eIP 192.168.1.1[root@nowhere.net /root]# nmap 192.168.1.1Starting nmap V. 2.54BETA31 ( www.insecure.org/nmap/ )Interesting ports on (192.168.1.1) :(The 1544 ports scanned but not shown below are in state : closed)Port State Service21/tcp open ftp53/tcp open domain80/tcp open http110/tcp open pop-3111/tcp open sunrpc113/tcp open auth631/tcp open cups845/tcp open unknown901/tcp open samba-swat10000/tcp open snet-sensor-mgmtNmap run completed – 1 IP address (1 host up) scanned in 2 seconds.Nmap donne un aper¸u assez complet des diff´rents services s’ex´cutant sur c e ela machine dans un temps assez bref.On peut observer ici que des serveurs FTP, DNS, WEB, POP-3 ... sonten attente de connexions. 15
  17. 17. 2.1.2 Comment marche Nmap ? Je pr´senterai de mani`re tr`s succinte Nmap et me focaliserai principa- e e element sur les fonctions les plus utilis´es. ePour connaˆ les ports ouverts sur une machine, Nmap proc`de ` l’envoi ıtre e ade paquets sur tous les ports de cette machine et analyse les r´ponses. Bien esˆr, il y a diff´rents types de scans, donc diff´rents types d’envois et donc, u e ediff´rents types de r´ponses. e eNous nous int´resserons aux scans utilisant le protocole TCP (les scans UDP eet ICMP ´tant possibles eux aussi). eLe scan en ”vanilla TCP connect”Nmap proc`de ` l’appel de la fonction connect() sur tous les ports de la e amachine. Ce type de scan est facilement rep´rable. eLe scan en ”vanilla TCP connect” est le scan par d´faut avec Nmap, la ecommande est :[root@nowhere.net /root]# nmap [ip de la machine cible] ou[root@nowhere.net /root]# nmap -sT [ip de la machine cible]Les scans furtifsNous rentrons maintenant dans une classe de scans plus difficiles ` d´tecter : a e- Le scan en connexion demi-ouverte ou ”Syn-scan” :Nmap envoie sur chaque port un paquet TCP avec le flag SYN arm´ ; si eun port est ouvert, il renverra un paquet avec les flags SYN et ACK arm´s. eIllustration 16
  18. 18. La commande se fait par l’appel de nmap avec l’option -sS :[root@nowhere.net /root]# nmap -sS [ip de la machine cible]- Les scans Xmas, FIN et NULL.Le scan FIN consiste en l’envoi de paquets TCP avec seulement le flag FINarm´ : eLa commande se fait par l’appel de nmap avec l’option -sF :[root@nowhere.net /root]# nmap -sF [ip de la machine cible]Le scan NULL consiste en l’envoi de paquets TCP avec seulement le flagNULL arm´ : eLa commande se fait par l’appel de nmap avec l’option -sN :[root@nowhere.net /root]# nmap -sN [ip de la machine cible]Le Xmas scan (traduisez le scan de No¨l) consiste en l’envoi de paquets eTCP avec les flags FIN/URG/PUSH arm´s.eLa commande se fait par l’appel de nmap avec l’option -sX :[root@nowhere.net /root]# nmap -sX [ip de la machine cible] 17
  19. 19. Pour ces trois types de scans, les syst`mes r´pondent avec un paquet RST si e ele port est ferm´ et ne r´pondent pas si le port est ouvert. Le NULL scan ne e efonctionne pas contre des plateformes Microsoft.Illustration2.1.3 La d´termination du syst`me d’exploitation avec e e Nmap Si on lance Nmap avec l’option -O :[root@nowhere.net /root]# nmap -O 192.168.1.1Starting nmap V. 2.54BETA31 ( www.insecure.org/nmap/ )Interesting ports on (192.168.1.1) :(The 1544 ports scanned but not shown below are in state : closed)Port State Service21/tcp open ftp53/tcp open domain80/tcp open http110/tcp open pop-3111/tcp open sunrpc113/tcp open auth631/tcp open cups845/tcp open unknown 18
  20. 20. 901/tcp open samba-swat10000/tcp open snet-sensor-mgmtRemote operating system guess : Linux 2.2.12 - 2.2.19Nmap run completed – 1 IP address (1 host up) scanned in 3 secondsNotez bien l’avant-derni`re ligne : eRemote operating system guess : Linux 2.2.12 - 2.2.19Nmap parvient ` d´terminer le syst`me d’exploitation tournant sur la ma- a e echine cible. La machine cible utilisait un noyau 2.2.19. Nmap ne s’est pastromp´. eIl faut savoir que chaque syst`me d’exploitation construit ses paquets d’une emani`re bien particuli`re. Certains champs au niveau de la couche IP ou e eTCP sont propres ` chaque OS. Nmap contient une base de donn´es d’un a egrand nombre d’OS. Nmap envoie donc des paquets tests ` la machine cible aet compare les paquets re¸us en r´ponse ` ceux de sa base de donn´es et en c e a ed´duit le type d’OS. eCette base de donn´es est mise ` jour en fonction des diff´rentes version e a ede Nmap.2.1.4 Quel est l’intˆret d’utiliser Nmap ? e Nmap permet de pouvoir pr´voir les futures attaques, et aussi de pou- evoir connaˆ quels services tournent sur une machine. Une installation faite ıtreun peu trop vite peut laisser des services en ´coute (donc des ports ouverts esans que cela soit n´cessaire) et donc vuln´rables ` une attaque. N’h´sitez e e a epas ` utiliser Nmap contre vos serveurs pour savoir quels ports sont en ´coute. a eNmap est un logiciel tr`s complet et tr`s ´volutif, et il est une r´f´rence e e e eedans le domaine du scanning.Comment s’en prot´ger ? e Configurer votre firewall pour empˆcher les scans e 19
  21. 21. [root@nowhere /root]# iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPTCette commande permet de d´tecter l’envoi un grand nombre de paquets eTCP avec les flags FIN et/ou SYN et/ou ACK et/ou RST arm´(s). V´rifiez e eque votre firewall (si ce n’est pas iptables) supporte la d´tection de scans. e(Pour plus de d´tails sur cette commande, je vous conseille de lire le docu- ement ”Packet Filtering HOWTO : Using iptables” (Chapitre 7.3) de RustyWagner).Documents Divers articles ´cris par le d´veloppeur de Nmap sur le scanning (en an- e eglais) :http://www.phrack.org/show.php?p=51&a=11http://www.phrack.org/show.php?p=54&a=9http://www.phrack.org/show.php?p=57&a=7 20
  22. 22. 2.2 Identifier les versions des logiciels en ´coute e Maintenant que notre pirate connaˆ les diff´rents services en ´coute, son ıt e eobjectif va ˆtre de d´couvrir les noms et les versions des logiciels utilis´s pour e e eassurer ces services.L’objectif de ce chapitre est de pr´senter une parade pour ´viter de don- e ener trop d’informations sur votre syst`me. eLe pirate peut d´j` essayer de se connecter sur diff´rents ports grˆce aux ea e aprogrammes clients associ´s pour glaner des informations. eRien que telnet donne beaucoup d’informations :[root@nowhere.net /root]# telnet 192.168.1.1Trying 192.168.1.1...Connected to 192.168.1.1.Escape character is ”CTRL-C”.Welcome to muetdhiverLinux Mandrake release 7.2 (Odyssey) for i586Kernel 2.2.17-21mdk on an i586login :Avec la r´ponse : eLinux Mandrake release 7.2 (Odyssey) for i586Kernel 2.2.17-21mdk on an i586Trop de renseignements apparaissent.Mˆme si le port telnet est ferm´, le pirate peut glaner d’autres informa- e etions sur les autres services.Pour cela, il peut proc´der ` une connexion telnet sur le port associ´ ` un e a eaautre service en ´coute : eExemple d’un telnet sur le port FTP ( port 21)[root@nowhere.net /root]# telnet 192.168.1.1 21 21
  23. 23. Trying 192.168.1.1...Connected to 192.168.1.1.Escape character is ’CTRL-C’.220 ProFTPD 1.2.5rc1 Server (ProFTPD Default Installation) [neuromancer]La ligne qui nous int´resse le plus est celle-ci : e220 ProFTPD 1.2.5rc1 Server (ProFTPD Default Installation) [neu-romancer]La version du logiciel nous est donn´e. Le pirate va alors rechercher edes informations sur les faiblesses de s´curit´ de celui-ci. e eCependant, sur certains services, le client telnet sera inefficace. Le piratepeut alors utiliser un programme con¸u pour ´crire et lire de donn´es sur c e emachine cible et sur le port voulu. Ces programmes permettent d’envoyerdes scripts directement sur le logiciel souhait´ sans se soucier des limites pro- etocolaires.Le plus r´put´ de ces programmes est sans doute Netcat. e e2.2.1 Netcat Netcat permet d’´tablir une connexion (TCP ou UDP) sur un port sou- ehait´ et d’y envoyer ou d’y recevoir des donn´es. e eVoici un exemple :[root@nowhere.net /root]# nc 192.168.1.1 21220 ProFTPD 1.2.5rc1 Server (ProFTPD Default Installation) [neuromancer]On obtient directement la version du logiciel utilis´. Netcat2 comporte plein ed’autres fonctionnalit´s (comme l’envoi de scripts ...). eLe pirate n’a plus qu’` trouver une faille applicative (voir chapitre suivant) asur le logiciel correspondant. 2 Netcat est t´l´chargeable sur : http ://packetstormsecurity.nl/UNIX/netcat/ ee 22
  24. 24. Comment s’en prot´ger ? e Retirer les banni`res donnant les versions de logiciel et les messages d’aide eou de bienvenue d’un service r´seau en ´coute qui peuvent donner des infor- e emations sur votre syst`me. eUtilisez netcat contre vos serveurs pour rep´rer les services trop ”bavards”. e 23
  25. 25. Chapitre 3Les failles applicatives 24
  26. 26. Introduction Nous allons aborder dans ce chapitre les failles li´es aux applications uti- elis´es. eNous nous focaliserons principalement sur les failles logicielles : les faillesapplicatives.Ces failles peuvent ˆtre de natures diverses : probl`mes de configuration, e eprobl`mes au niveau du code du logiciel, probl`mes li´s ` de mauvaises in- e e e aterpr´tations de commandes ou de mauvaises ex´cutions de scripts. e e 25
  27. 27. 3.1 Les installations par d´faut e Lors d’une installation, beaucoup de services peuvent ˆtre install´s par e ed´faut (un serveur Web, FTP ...). Ces services peuvent contenir les diff´rents e etypes de failles introduites auparavant.L’important est de bien contrˆler lors de l’installation, les services qui seront oinstall´s sur le syst`me. Pour ˆtre bien sˆr de soi, il est aussi recommand´ de e e e u e”scanner” la machine pour voir ce qui y tourne (voir section 2.1).Mˆme si certains logiciels ne comportent pas de failles connues, ils peuvent equand mˆme donner des informations aux pirates (voir section 2.2). e3.2 Les mauvaises configurations Lorsqu’une application est mal param´tr´e, elle peut laisser l’acc`s libre e e ea` certaines bases de donn´es sensibles (fichiers de mots de passe, d’utilisa- eteurs) ou de permettre d’ex´cuter des commandes ou des scripts malveillants. eIl est important de bien lire le manuel avant d’activer un service (RTFM !)et de bien d´finir le ”qui fait quoi”. eCe principe est simple : il suffit de bien d´finir les utilisateurs et les groupes eet de limiter leurs droits sur certains types de fichiers et certaines op´rations ed’ex´cution de commandes syst`me. e eLe plus important est de restreindre au maximun les acc`s ` certains fichiers e asensibles et aux commandes syst`mes. e3.3 Les bogues Les bogues sont dus ` des erreurs de programmation. Les bogues font aapparaˆ diff´rents types de probl`mes de securit´ : ıtre e e e3.3.1 Des d´nis de services applicatifs e Ce type de faille empˆche le logiciel de fonctionner et ainsi de r´pondre e eaux requˆtes demand´es (d’o` l’appellation d´ni de service). La technique e e u eest simple, il suffit d’utiliser un bogue connu qui va faire planter le logicielassurant un service. 26
  28. 28. 3.3.2 Outrepassement de droits Les bogues de type d´passement de buffer ou d’exploitation de bogues de eformat posent de gros probl`mes de s´curit´. Ils visent majoritairement des e e eapplications setsuid (fonctionnant avec les acc`s root) pour permettre ` un e aattaquant d’obtenir un interpr´teur de commande sous l’uid root. e3.3.3 Les scripts Malheureusement, une mauvaise programmation de scripts ou l’utilisationde fonctions bogu´es peut ˆtre source de failles de s´curit´. Il convient d’ˆtre e e e e etr`s attentif au niveau du d´veloppement d’un script. e e3.4 Les exploits Pour exploiter ces bogues, le pirate fait appel ` des ”exploits”. Ces ”ex- aploits” sont en fait de petits programmes permettant d’exploiter une failledans un but pr´cis (obtenir un interpr´teur de commandes, acc´der ` certains e e e afichiers, augmenter ses droits...).Les exploits peuvent aussi fonctionner ` distance, pour l’obtention d’un shell a(parfois avec les droits administrateur) sans mot de passe, ni nom d’utilisa-teur.Comment s’en proteger ? 1 - Recensez les applications vuln´rables. eIl est toujours bon de connaˆ les failles de vos logiciels avant les pirates. ıtreDes sites comme celui du CERT (Computer Emergency Response Team) pu-blie un rapport sur toute nouvelle faille de s´curit´. Le CERT permet aussi e ed’obtenir de l’aide en cas de piratage.Le site du CERT : www.cert.org (Anglais)Les archives bugtraq font partie des meilleures sources sur les nouvellesvuln´rabilit´s. Ces archives donnent des descriptions tr`s pr´cises sur des e e e enouvelles failles de s´curit´. e eLe site BUGTRAQ : 27
  29. 29. http://citadelle.intrinsec.com/mailing/current/HTML/ml_bugtraq/ (enanglais)http://www.bugtraq-france.com (en fran¸ais) cCertains sites comme www.packetstormsecurity.org ou www.securityfocus.com contiennent aussi de nombreuses informations. Le site securityfocus donneun classement1 des failles en fonction du type d’architecture ; il est facile detrouver rapidement le logiciel concern´. e2 - Limitez les programmes s’ex´cutant avec les droits administrateur. eIl est toujours bon de r´p´rer les programmes s’ex´cutant avec les droits e e eadministrateur. Ainsi, vous pouvez changer leurs droits pour qu’ils ne de-viennent pas un point critique pour la vuln´rabilit´ du syst`me. e e eSous linux, la simple commande :[root@nowhere.net /root]# find / -perm +6000vous permettra de lister tous les programmes s’ex´cutant avec les droits ad- eministrateur.3 - Les autres solutions.Les NDIS (d´crit dans le chapitre suivant) peuvent vous permettre de rep´rer e eles attaques exploitant des failles connues sur certains types de logiciel.On peut aussi ”patcher” son noyau pour ´viter l’ex´cution d’exploits utilisant e edes bogues de d´passement de buffer. Le patch OpenWall2 vous permet de eprot´ger votre noyau Linux. e 1 http ://www.securityfocus.com/search dans la rubrique ”Vulnerabilites” 2 librement t´l´chargeable sur www.openwall.com ee 28
  30. 30. Chapitre 4Les outils indispensables pourla protection 29
  31. 31. Introduction Les firewalls, les tunnels et les IDS/NDIS sont des outils indispensablespour d´tecter, parer ou ´viter de nombreuses attaques. Nous les d´crirons e e edans ce chapitre, ainsi que la mani`re de les utiliser de fa¸on optimale. e c 30
  32. 32. 4.1 Le firewall La configuration d’un firewall peut s’av´rer ˆtre un sujet tr`s difficile ` e e e atraiter. Cette configuration est surtout ´tablie en fonction de vos besoins per- esonnels.L’objectif de ce chapitre est de donner des conseils ` suivre pour bien utiliser aun firewall. Ensuite, nous nous int´resserons aux diff´rentes m´thodes d’at- e e etaques contre les firewalls.4.1.1 La configuration Pour bien configurer son firewall, il suffit de bien respecter les conseilssuivants :- Essayez de limiter l’acc`s ` votre r´seau ` des utilisateurs connus utilisant e a e aune adresse IP statique. Vous pourrez ainsi rejeter toutes les autres requˆtes evenant d’utilisateurs utilisant une adresse IP non autoris´e. Vous effectuez ede la sorte un filtrage au niveau IP.- Fermez tous les ports en ´coute sur les diff´rents serveurs et ouvrez seule- e ement ceux dont vous avez besoin.- Filtrez ces ports, c’est ` dire rejetez toutes les autres requˆtes sur les autres a eports que ceux en ´coute. e- Empˆchez toutes les connexions sortantes sur des services non autoris´s. e ePour cela, il suffit de d´finir un nombre limit´ de services auxquels les ser- e eveurs et les clients peuvent acc´der (mail, ftp, web...). Ensuite, il faut confi- egurer le firewall pour rejeter les connexions depuis l’int´rieur vers l’ext´rieur e esur des services diff´rant de ceux d´finis. e e4.1.2 Les attaques contre les firewalls La premi`re ´tape lors d’une attaque est de d´terminer les r`gles de fire- e e e ewalling. Le but est simple : savoir quels ports ne sont pas filtr´s. e 31
  33. 33. Avec le scan Nmap peut d´terminer quels ports sont ou ne sont pas filtr´s. e eVoici un exemple :[root@nowhere.net /root]# nmap 192.168.1.2Starting nmap V. 2.54BETA31 ( www.insecure.org/nmap/ )Interesting ports on (192.168.1.2) :(The 1549 ports scanned but not shown below are in state : closed)Port State Service21/tcp filtered ftp22/tcp filtered ssh111/tcp open sunrpc515/tcp open printer1024/tcp open kdmNmap run completed – 1 IP address (1 host up) scanned in 1 secondLes ports 21 (ftp) et 22 (ssh) sont filtr´s. eComment s’en prot´ger ? e Prot´gez-vous contre le scanning (voir section 2.1). eSi le scan ne marche pas, d’autres m´thodes peuvent ˆtre utilis´s comme e e ele firewalking.Le firewalking Cette technique de d´voilement des r`gles de firewalling repose sur un e eunique champ de l’en-tˆte IP, le TTL (pour Time To Live), ce champ repr´sentant e ela dur´e de vie d’un paquet. Il est fix´ d`s son envoi par le syst`me d’exploi- e e e etation et est diminu´ d’une unit´ ` chaque fois qu’il traverse un ´quipement e ea eassurant le routage ; quand ce champ est ´gal ` 0, le paquet disparaˆ e a ıt.Chaque passage d’un routeur ` un autre est appel´ un saut. a eC’est ce champ qui est utilis´ par le logiciel traceroute. Pour faire un ”tra- eceroute”, le logiciel envoie un premier paquet UDP avec un TTL de 1 ; aupremier routeur, le TTL est d´cr´ment´ ` 0. Le routeur renvoie donc un e e e a 32
  34. 34. code d’erreur ”ICMP ttl-exceeded”, ce qui permet de r´cup´rer l’adresse du e epremier routeur. Ensuite traceroute va envoyer un deuxi`me paquet avec un eTTL de 2, il sera d´cr´ment´ au passage du premier routeur (TTL=1). Le e e edeuxi`me routeur va le recevoir et le d´cr´menter : le champ TTL sera de e e enouveau ´gal ` 0. Le deuxi`me routeur renverra donc un message d’erreur : e a eon r´cup`re ainsi l’adresse du deuxi`me routeur. e e eSi il y a N sauts jusqu’au r´seau final, on r´it`re l’op´ration N fois. e e e eOn peut utiliser cette technique avec diff´rents protocoles : UDP, TCP, ICMP. eLe firewalking repose sur cette technique pour d´terminer les r`gles de fi- e e 1rewalling. Firewalk (le programme impl´mentant le firewalking) d´termine e ele nombre de routeurs entre la machine source et la machine cible (situ´e ederri`re le firewall). Ensuite, il envoie des paquets tests avec un TTL ´gal ` e e ace nombre de routeurs + 1. Si le paquet est accept´, il traverse le firewall et eon obtient une r´ponse ; sinon il n’y a aucune r´ponse. e eFirewalk envoie diff´rents types de paquets (TCP, UDP) pour d´terminer les e er`gles de firewalling. N´anmoins, de nombreux param`tres comme la conges- e e etion du r´seau, le nombre de routeurs s´parant la cible et l’´metteur peuvent e e efausser l’analyse de firewalk. 1 Disponible librement sur http ://www.packetfactory.net/ 33
  35. 35. 4.2 Les NIDS Les outils les plus pratiques !Ces utilitaires permettent de d´tecter une attaque et de vous en informer. Un eIDS (pour Intrusion Detection System) analyse tout ce qui se passe sur unestation. Il d´tecte les outrepassements de droits (obtention du compte root ed’une mani`re suspecte) et d’autres types d’attaques, il contient une base de edonn´es sur diff´rentes vuln´rabilt´s. e e e eLes NIDS (Network Intrusion Detection System) travaillent de la mˆme emani`re, mais sur les donn´es transitant sur le r´seau. Il peut d´tecter en e e e etemps r´el une attaque s’effectuant sur l’ une des vos machines. Il contient eune base de donn´es avec tous les codes malicieux et peut d´tecter leurs en- e evois sur une des machines. Le NIDS travaille comme un sniffer (voir section5.4), sauf qu’il analyse automatiquement les flux de donn´es pour d´tecter e eune attaque.Cette section pr´sentera deux NIDS : Snort et Prelude-NIDS. A noter que eces outils sont distribu´s comme logiciel libre. Je ne rappellerai pas que le elogiciel libre a une avance consid´rable dans le domaine de la s´curit´ par e e erapport ` ses concurrents ”propri´taires”. a e4.2.1 Prelude Prelude-NIDS2 est un des d´tecteurs d’intrusions les plus connus. Prelude eest disponible et libre sur les plateformes Linux, FreeBSD et Windows.Prelude poss`de une achitecture modulaire et distribu´e. Modulaire, car ses e ecomposants sont ind´pendants, et peuvent ˆtre facilement mis ` jour. Dis- e e atribu´e, car ces composants ind´pendants interagissent les uns avec les autres. e eCela permet d’avoir divers composants install´s sur diff´rentes machines et e ede r´duire ainsi la surchage d’applications. eCes diff´rents composants sont les sondes et les managers. Les sondes peuvent eˆtre de deux types : r´seau ou local. Une sonde r´seau analyse tout le traffic,e e epour y d´tecter d’´ventuelles signatures d’attaques. La sonde locale assure e ela surveillance d’une seule machine, il analyse le comportement du syst`meepour y d´tecter des tentatives d’exploitation de vuln´rabilit´s internes. Les e e e 2 t´l´chargeable librement sur www.prelude-ids.org/ ee 34
  36. 36. sondes signalent les tentatives d’attaques par des alertes. Ces alertes sontre¸u par le manager qui les interpr`te et les stocke. c ePour une description compl`te de Prelude (installation, configuration et uti- elisation) consultez ce document :http://lehmann.free.fr/PreludeInstall/InstallPrelude.html4.2.2 Snort Snort3 est un NIDS lui aussi. Il n’est pas structur´ comme Prelude. Snort eest un programme ”monolithique”, il ne comporte pas de module comme Pre-lude, ce qui peut rendre son impl´mentation dans un r´seau un peu moins e esouple que Prelude. Snort fonctionne en trois modes (Sniffer, PacketLoggeret NIDS). Les deux premiers modes ne sont pas int´ressants pour la d´tection e ed’intrusion. Le troisi`me mode permet lui d’analyser le trafic r´seau pour y e ed´tecter d’ ´ventuelles attaques. e ePour une description compl`te de Snort (installation, configuration et uti- elisation ) consultez ce site :http://www.snort.org/docs/ (en anglais). 3 t´l´chargeable librement sur www.snort.org ee 35
  37. 37. 4.3 Le tunneling Nous allons d´crire dans cette section diff´rentes m´thodes pour s´curiser e e e evos transactions, c’est-`-dire cr´er un VPN (Virtual Private Network). Un a er´seau priv´ virtuel (VPN) est utilis´ pour ´tablir des communications s´curis´es e e e e e een s’appuyant sur un r´seau existant non s´curis´. Le principal outil utilis´ e e e epour la cr´ation de VPN est IPsec. eIPsec est facultatif sur IPv4 mais est obligatoire sur IPv6. IPsec a d’autresavantages que la s´curisation du trafic, il permet par exemple d’´conomiser e ela bande passante grˆce ` la compression des en-tˆtes des paquets. a a eIPsec fonctionne sous deux modes diff´rents : le mode transport et le mode etunnel. Ces deux modes seront d´cris dans ce qui suit. eIPsec est compos´ de plusieurs protocoles diff´rents : AH, ESP, IPcomp et e eIKE.4.3.1 Le protocole AH Le protocole AH (Authentification Header) permet de garantir l’authen-ticit´ des paquets ´chang´s en leur inscrivant une somme de contrˆle (de e e e ol’en-tˆte IP jusqu’` la fin du paquet) chiffr´e. e a e4.3.2 Le protocole ESP Le protocole ESP (Encapsulating Security Payload) encrypte toutes lesdonn´es du paquet garantissant leur confidentialit´. e e4.3.3 Le protocole IPcomp Le protocole IPcomp (IP payload compression) permet de compresser unpaquet avant de le chiffrer avec ESP.4.3.4 Le protocole IKE Le protocole IKE (Internet Key Exchange) est utilis´ pour l’´change des e ecl´s utilis´s pour l’encryptage. e e 36
  38. 38. 4.3.5 Les deux modes de fonctionnements de IPsec AH, ESP et IPcomp fonctionnent dans le mode transport ou le modetunnel. Le mode ”transport” encrypte directement les ´changes entre deux emachines. Le mode ”tunnel” encapsule les paquets encrypt´s dans de nou- eveaux en-tˆte IPv4/IPv6. Il est con¸u pour les passerelles VPN. e c4.3.6 Les limitations d’IPsec IPsec pose quelques probl`mes dus ` son impl´mentation. Certains probl`mes e a e eapparaˆ ıssent au niveau des messages de broadcast et multicast. IPsec est dif-ficile ` filtrer sur les firewalls existants. Il est aussi impossible ` g´rer pour a a eles translations d’adresse (NAT).Documents Description g´n´rale des tunnels et impl´mentation sous Linux : e e ehttp://www.miscmag.com/articles/index.php3?page=315http://www.securiteinfo.com/crypto/IPSec.shtmlDescription g´n´rale des tunnels et impl´mentation sous W indows c : e e ehttp://www.laboratoire-microsoft.org/articles/network/ipsec/ 37
  39. 39. 4.4 Nessus Nessus est un outil de s´curit´ permettant de scanner une ou plusieurs e emachines. Il permet aussi de tester diff´rentes attaques pour savoir si une ou eplusieurs machines sont vuln´rables. eIl est tr`s utile lors de tests de p´n´tration (pen test) et fait gagner un e e etemps incroyable.Nessus se compose d’une partie serveur (qui contient une base de donn´es re- egroupant diff´rents types de vuln´rabilit´s) et une partie client. L’utilisateur e e ese connecte sur le serveur grˆce au client et apr`s authentification, il ordonne a eau serveur de proc´der aux tests d’une ou plusieurs machines. Le client re¸oit e censuite les r´sultats du test. eNessus est disponible sous Linux et Windows, et il est enti`rement gratuit. e4.4.1 Pour obtenir tout sur Nessus Pour t´l´charger les sources, binaires, ou diff´rents documents concernant ee eNessus, consultez le site :http ://www.nessus.org 38
  40. 40. 4.5 User Mode Linux - UML User Mode Linux est un dispositif permettant de lan¸er un ou plusieurs cnoyau(x) linux dans l’espace utilisateur (comme un simple programme). Enclair, il permet d’avoir plusieurs machines virtuelles sur une seule machinephysique hˆte ex´cutant Linux. Les avantages sont nombreux : o e - Si une machine virtuelle plante, le syst`me hˆte n’est pas affect´. e o e- Un utilisateur sera root sur une machine virtuelle, mais pas sur le syst`me ehˆte. o- Il permet aussi de tester diff´rents param`tres noyaux sans se soucier des e econs´quences. eUser Mode Linux permet notamment de s’affranchir de chroot (pour, parexemple, la r´alisation de serveurs FTP) et de toutes ses failles de s´curit´. e e eDocuments La page web de User Mode Linux :http://user-mode-linux.sourceforge.netUn autre lien int´ressant pour User Mode Linux et la s´curit´ : e e ehttp://www.rstack.org/oudot/20022003/7/7_rapport.pdf 39
  41. 41. Chapitre 5Surveillance - Dissimulation -Maintien d’acc`s e 40
  42. 42. Introduction Nous pr´senterons de ce chapitre les programmes utilis´s par les pirates e epour dissimuler, surveiller et maintenir leur acc`s sur un syst`me d’informa- e etion. Nous pr´senterons les moyens de s’en prot´ger. e e 41
  43. 43. 5.1 Les chevaux de Troie Le principe du cheval de Troie est facile ` comprendre. Un programme ou aun code malveillant est int´gr´ ` une application par ajout ou par modifica- e eation de son code. Ainsi lors de l’ex´cution de ce programme inoffensif, le bout ede code malveillant pourra ex´cuter des commandes sp´cifiques (r´cup´ration e e e ede fichiers de mot de passe, alt´ration du syst`me...) ` l’insu de l’utilisateur. e e aComment s’en prot´ger ? e La plupart des antivirus peuvent d´tecter les chevaux de Troie. N´anmoins, e ecomparer la signature num´rique accompagnant les fichiers (cela se fait par eun calcul reposant sur un algorithme de chiffrement appliqu´ ` l’ensemble du eafichier) avec la sienne permet de savoir directement si l’on est infect´. eIl est aussi conseill´ de consulter les sites suivants pour v´rifier que vos pro- e egrammes ne contiennent pas de chevaux de Troie :CERT : http://www.cert.org (Le CERT (Computer Emergency ResponseTeam) est un organisme s’occupant des probl`mes de s´curit´ sur Internet. Il e e erecense les diff´rents probl`mes de s´curit´ et publie des articles (advisories) e e e epour les d´crire. eBugtraq : http://citadelle.intrinsec.com/mailing/current/HTML/ml_bugtraq/ 42
  44. 44. 5.2 Les backdoors Les backdoors sont des acc`s cach´s sur un syst`me ou sur une appli- e e ecation. Le principe d’une backdoor est similaire ` celui du cheval de Troie. aL’objectif est de modifier ou d’utiliser un programme pour acc`der discre- etement ` un ordinateur distant, modifier le comportement d’un programme, adevenir administrateur.5.2.1 Les backdoors pr´sentes dans les logiciels. e Parfois, certains logiciels (messagerie, utilitaires syst`mes) peuvent conte- enir des backdoors, c’est-`-dire que, pour certaines commandes suivies d’ar- aguments particuliers ou avec un mot de passe bien d´fini, le logiciel peut eavoir un comportement diff´rent (permettre ` l’utilisateur de devenir root, e arenvoyer un shell syst`me ` l’utilisateur...). e aCes ”trappes” sont inclues directement dans le code du logiciel. Certainsd´veloppeurs sont soucieux de poss´der un acc`s sur tous les syst`mes uti- e e e elisant leurs logiciels. Par exemple, Ken Thompson, l’un des p`res d’UNIX, eavoue avoir modifi´ l’application /bin/login en permettant l’acc`s direct au e esyst`me par la saisie d’un mot de passe pr´compil´ en dur. Thompson pou- e e evait ainsi visiter tous les syst`mes utilisant son application modifi´e. e eParfois, certains pirates diffusent des applications infest´es de backdoors. eComment s’en prot´ger ? e Il convient de t´l´charger ses applications sur le site du distributeur ou eedu programmeur. Utiliser des serveurs de t´l´chargement non li´s ` l’auteur ee e ade l’application peut se r´l´ver dangereux. eeIl est aussi recommand´ de v´rifier les checksums s’il sont donn´s par le e e ed´veloppeur. eIl est aussi bon de consulter des listes de diffusion comme bugtraq pour savoirsi la version de logiciel que vous utilisez ne comporte pas de backdoors.5.2.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. e e eComme il l’a ´t´ montr´, certains logiciels peuvent autoriser un acc`s pour ee e e 43
  45. 45. un mot de passe particulier. Toutefois, ce paragraphe va se focaliser sur desapplications en ´coute sur un port bien d´fini utilis´es par les pirates pour e e eobtenir un shell. Un logiciel pr´alablement install´ par le pirate est en attente e ede connexion sur un port discret. 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 a5000). Le pirate n’a plus qu’` se connecter sur ce programme pour r´cup´rer a e eson acc`s sur la machine. eComment s’en proteger ? Nmap peut se r´l`ver ˆtre une aide pr´cieuse pour les d´busquer. Si, en ee e e eproc´dant au scan d’une machine, vous constatez qu’un port non autoris´ est e een ´coute, il serait bon de v´rifier celui-ci. e eLes sites ` consulter : aCERT : http://www.cert.org (en anglais)Bugtraq :http://citadelle.intrinsec.com/mailing/current/HTML/ml_bugtraq/ (enanglais)http://www.bugtraq-france.com 44
  46. 46. 5.3 Les Rootkits Le rootkit est un programme permettant d’automatiser la dissimulationet l’effacement des traces d’un pirate sur une machine. L’objectif d’un root-kit est de modifier les commandes permettant d’administrer le syst`me, de ecacher les ports ouverts par le pirate...Les premiers rootkits ´taient assez basiques, ils modifiaient juste les com- emandes ls, ps, netstat...L’administrateur pouvait d´tecter ces modifications sur les logiciels concern´s. e eAlors une seconde g´n´ration de rootkits apparut. Il faut savoir que des com- e emandes comme ps, ls ... font appels ` des bibliotheques partag´es pour fonc- a etionner. Les nouveaux rootkits modifiaient donc le code de ces biblioth`ques epour modifier le comportement de ces commandes ` l’avantage du pirate. aEncore une fois, ceci ´tait d´tectable. Donc une troisi`me g´neration de root- e e e ekits est n´e afin de modifier directement le comportement du noyau, par le ebiais de modules charg´s en m´moire (LKM). C’est ` l’heure actuelle la der- e e aniere g´n´ration. e eDiff´rents rootkits sont disponibles sur Linux. eJe ne donnerai (volontairement) pas dans cette partie une description compl`te ede l’utilisation des rootkits. Cela n’a aucun interˆt pour ce guide. eLa plupart des rootkits utilisent le principe des backdoors (voir section 5.2)pour permettre au pirate de se connecter selon son envie sur un syst`me. eComment s’en prot´ger ? e 1) Les checksums.Une base de donn´es de checksums sur les diff´rents fichiers syst`me peut e e ed´j` constituer une bonne parade. Je vous conseille d’effectuer des check- easums a la fin d’une installation sur les diff´rents fichiers comme ls, ps, stat ` eifconfig ... et sur les diff´rentes biblioth`ques partag´es. e e eCette base de donn´e devrait ˆtre stock´e sur un CDROM ou tout autre e e esupport non r´inscriptible. e 45
  47. 47. 2) Compiler les programmes vitaux en statiqueComme je l’ai dit pr´c´demment, certaines commandes font appels ` des e e alibrairies partag´es et des utilitaires comme ”md5sum” (qui sert ` faire des e achecksums) sous Linux font appels ` des librairies partag´es. D’o` son com- a e uportement pourrait ˆtre modifi´ indirectement par un rootkit attaquant les e elibrairies partag´es. Pour ´viter ce genre de d´sagr´ement, compilez une par- e e e etie des programmes vitaux en statique, ainsi vous disposerez d’une troussede secours en cas d’infection par rootkits.Bien sˆr, pour compiler les programmes vitaux en statique, faut-il encore udisposer d’un OS qui permette d’acc´der aux sources de ces programmes vi- etaux...3) ChkrootkitChkrootkit (pour CHecK ROOTKIT) vous permet de d´tecter la pr´sence e ed’un rootkit, il fonctionne sous Linux (FreeBsd...) et est t´l´chargeable libre- eement sur www.chkrootkit.org/.4) Compilez votre noyau en statique. Vous ´viterez ainsi le chargement de emodules externes. 46
  48. 48. 5.4 L’interception des mots de passe en r´seau. e Une autre technique utilis´e pour collecter des informations (mots de epasse par exemple) est l’utilisation d’un sniffer. Le sniffer place la carte r´seau edans le mode transparent (promiscious), ce qui veut dire que la carte inter-cepte tous les paquets sur le segment r´seau, mˆme ceux qui ne lui sont pas e edestin´s. ePlusieurs types de sniffers existent ; certains affichent les donn´es intercept´es e e 1brutes comme Tcpdump , ce qui donne lieu ` des fichiers de log tr`s volu- a emineux. D’autres sniffers permettent de r´cup´rer les mots de passe en les e eaffichant directement ` l’´cran associ´ avec le login, l’adresse du client et celle a e edu serveur (comme dsniff2 ).Ethereal3 permet par exemple d’afficher toutes les transactions ayant courssur le r´seau. eCependant, le sniffer reste un outil puissant pour la d´tection d’intrusion ecar, premi`rement, il garde une trace de tous les ´changes ayant cours sur le e er´seau. Deuxi`ment, il se r´v`le tr`s utile pour d´masquer un scan (un grand e e e e e enombre de paquets envoy´s d’un seul coup), de tracer l’adresse d’un pirate, ede voir si des commandes particuli`res sont demand´es sur le reseau. e eLa plupart des rootkits contiennent un programme pour sniffer.Les NDIS utilisent un sniffer pour analyser les transactions r´seau. eComment s’en prot´ger ? e L`, c’est tr`s difficile. Un sniffer est passif, il n’envoie aucun paquet, il a ene fait qu’intercepter. Mais la carte r´seau ´tant en mode transparent, son e ecomportement s’en trouve chang´, son temps et sa fa¸on de r´pondre ` cer- e c e atains paquets sont modifi´s. On peut d´tecter la pr´sence d’un sniffer grˆce ` e e e a a 4ce changement de comportement. Le programme AntiSniff de Lopht HeavyIndustries peut envoyer des paquets ”tests” et en d´duire si la carte est en emode transparent donc susceptible de sniffer. 1 disponible sur www.tcpdump.org 2 disponible sur www.packetstormsecurity.org 3 disponible sur www.packetstormsecurity.org 4 disponible sur windowsN T c et Linux ` l’adresse http ://packetstormsecu- arity.nl/sniffers/antisniff/ 47
  49. 49. Une deuxi`me parade pour d´jouer le sniffing est de ”tunneler” toutes les e etransactions. Cela veut dire encrypter toutes les transactions r´seaux. Utili- eser IpvSec ou des VPN, ssh sur votre r´seau s’av`re ˆtre une d´fense efficace e e e econtre le sniffing.L’utilisation de tunnels est trait´e dans la section 4.3. e 48
  50. 50. Chapitre 6Dispositifs destructeurs 49
  51. 51. Introduction Les dispositifs destructeurs sont utilis´s pour paralyser, saturer ou d´truire e eun syst`me d’information. Ils constituent l’esp`ce la plus nuisible dans le do- e emaine de la s´curit´ car ils peuvent ˆtre la source de perte de donn´es. Le e e e ebut de ce chapitre est d’expliquer leurs fonctionnements et la fa¸on de les ccombattre. 50
  52. 52. 6.1 Le virus Le virus est un programme dont le seul but est de consommer ou de pa-ralyser des ressources syst`me. Le virus s’autoduplique pour mieux infecter ele syst`me, il se propage en infectant tour ` tour les fichiers. Les effets d’une e acontamination varient : fichiers effac´s, disque dur format´, saturation des e edisques, modification du MBR...La grande majorit´ d’entre eux existent sur les plates-formes M icrosof t c , eils infectent en particulier les fichiers COM ou EXE. De plus, de nouvellesformes sont apparues comme les macro-virus qui attaquent les fichiers dedonn´es (word ou excel). eLes syst`mes UNIX ne sont pas ´pargn´s ! Les administrateurs UNIX doivent e e efaire face ` des virus comme Winux. N´anmoins, la gestion des droits sous a eUNIX se r´v`le ˆtre un facteur limitant pour la propagation de virus. e e eLes virus sont de plus en plus ´volu´s, ils peuvent s’automodifier pour ´chapper e e ea` une ´ventuelle d´tection (virus polymorphes). D’autres types peuvent ten- e eter de leurrer le syst`me en s’installant dans des secteurs d´fecteux ou non e eutilis´s (virus furtifs) ... eComment s’en prot´ger ? e Les anti-virus commerciaux comme Norton Antivirus ou McAfee VirusS-can sont de bons outils pour traquer les virus. Toutefois, il convient de lesmettre r´guli`rement ` jour pour profiter pleinement de leurs capacit´s. e e a eIl est aussi important de suivre l’´volution et l’apparition de nouveaux vi- erus ; pour cela, consulter les sites (ainsi que pour tous les autres dispositifsdestructeurs d´crits dans ce chapitre) : eCERT : www.cert.org (en anglais)Le site du CNRS :http://www.services.cnrs.fr/wws/info/sos-virushttp://www.cnrs.fr/Infosecu/Virus.html 51
  53. 53. 6.2 Les vers Les vers sont du mˆme acabit que les virus, sauf qu’ils n’utilisent pas en´cessairement un fichier pour se propager. Ils sont aussi capables de se edupliquer et de se d´placer au travers d’un r´seau informatique. Les vers e eutilisent diff´rents supports pour se propager. eLes vers simples utiliseront des failles propres ` certains logiciels (exemple adu ver de Morris en 1988 qui paralysa une grande partie de l’Internet).Les macro-vers utiliseront les pi`ces jointes contenant des documents bu- ereautiques infect´s (exemple du ver Nimda). eLes vers d’email sont contenus dans une pi`ce jointe comprenant un code emalicieux ex´cut´ automatiquement par le logiciel de courrier ´lectronique e e eou manuellement par l’utilisateur.Comment s’en prot´ger ? e Comme pour les virus, l’antivirus se r´v`le ˆtre une parade efficace. e e eConsultez les listes cit´es dans la section 6.1. e 52
  54. 54. 6.3 Les bombes logiques Les bombes logiques sont aussi n´fastes que les virus ou les vers et sont ela cause de d´gats similaires. La diff´rence est que la bombe logique a besoin e ed’un d´tonateur pour s’activer, c’est-`-dire qu’elle attend une date ou une e aaction bien pr´cise de l’utilisateur pour exploser. eComment s’en prot´ger ? e Utilisez un anti-virus performant (Mc Afee, Norton ...) r´guli`rement mis e ea` jour.Consultez les sites d´crits dans la section 6.1. e 53
  55. 55. 6.4 Les attaques par d´ni de services e Ce type d’attaques est la plus ´nervante qui soit. Elles ont pour but de esaturer le r´seau ou le syst`me. e e6.4.1 Le SYN flood Cette technique consiste ` saturer un serveur en envoyant une multi- atude de paquets TCP avec le flag SYN arm´, cela aura pour but de cr´er une e emultitude de connexions demandant un grand nombre de ressources syst`me. eLa plupart des attaques par SYN-flood sont bien d´tect´es par diff´rents e e efirewalls.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, je vous conseille de lire, le docu-ment ”Packet Filtering HOWTO : Using iptables” (Chapitre 7.3) de RustyWagner)6.4.2 L’UDP Flood De la mˆme mani`re que pour le SYN flooding, l’attaquant envoie un e egrand nombre de requˆtes UDP sur une machine. Le trafic UDP ´tant prio- e eritaire sur le trafic TCP, ce type d’attaque peut vite troubler et saturer letrafic transitant sur le r´seau. eLa plus c´l`bre attaque utilisant l’UDP-flooding est le ”Chargen Denial of eeService Attack”. Un pirate envoie une requˆte sur le port echo d’une machine eA indiquant comme port source celui du port chargen d’une machine B. Leservice chargen de la machine B renvoie un caract`re sur le port echo de la emachine A. Ensuite le service echo de A renvoie ce caract`re sur chargen. echargen le re¸oit, en ajoute un autre et les renvoie sur le port echo de A qui cles renvoient ` son tour sur chargen ... et cela continue jusqu’` la saturation a ade la bande passante. 54
  56. 56. Comment s’en prot´ger ? e Il est conseill´ de d´sactiver les services chargen et echo. e eSi vous ne voulez pas d´sactiver chargen et echo, configurez votre firewall epour ´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 ACCEPT6.4.3 Fragmentation de paquets Plus connu sous le nom de ”Teardrop Attack”, ”Bonk” ou encore ”Boink”,cette attaque utilise une faille propre ` certaines piles TCP/IP. Cette vuln´rabilit´ a e econcerne la gestion de la fragmentation IP.Ce probl`me apparaˆ lorsque la pile re¸oit le deuxi`me fragment d’un paquet e ıt c eTCP contenant comme donn´e le premier fragment. La pile TCP/IP peut es’av´rer incapable de g´rer cette exception et le reste du traffic. e eCette faille est tr`s connue sur les piles de W indows95et98 c . e6.4.4 Ping of death Le principe est d’envoyer un paquet ICMP avec une quantit´ de donn´es e esup´rieure ` la taille maximale d’un paquet IP . Encore une fois, la pile peut e as’av´rer incapable de g´rer cette exception et le reste du traffic. e e6.4.5 Attaque par r´flexion : Smurfing e Cette attaque est bas´e sur le protocole ICMP. Lorsqu’on envoie un ping ea` un r´seau en broadcast (par exemple 255.255.255.0), le paquet est envoy´ e ea` chacune des machines du r´seau. e Un pirate envoie un ping en broadcast sur un r´seau (A) avec une adresse eIP source correspondant ` celle de la machine cible (B). Le flux entre le port aping de la cible (B) et du r´seau (A) sera mulitpli´ par le nombre de machines e esur le r´seau (A). e Cela conduit ` une saturation de la bande passante du r´seau (A) et du a esyst`me de traitement de paquets de (B). e 55
  57. 57. Comment s’en prot´ger ? e Configurez votre firewall pour limiter le traffic ICMP. [root@nowhere /root]# iptables -A FORWARD -p icmp –icmp-type echo- request -m limit –limit 1/s -j ACCEPT (Pour plus de d´tails sur cette commande, je vous conseille de lire, le edocument ”Packet Filtering HOWTO : Using iptables” (Chapitre 7.3) deRusty Wagner)6.4.6 D´nis de services distribu´s e e Plusieurs types d’attaques sont lanc´es en parall`le ` partir de plusieurs e e asources.6.4.7 Bombes e-mail Le ”mail-bombing” consiste ` envoyer de gros ou de nombreux fichiers ` a aun utilisateur pour saturer sa boˆ de r´ception de courrier ´lectronique. ıte e eComment s’en prot´ger ? e La plupart des logiciels de contrˆle de contenu assure un filtrage du cour- orier pour d´tecter ce type d’attaque e 56
  58. 58. Chapitre 7S´curisation des mots de passe e 57
  59. 59. Introduction Le but de ce chapitre est de donner au lecteur toutes les informationsn´cessaires sur les techniques utilis´es pour tester la r´sistance des protec- e e etions par mot de passe.Il faut savoir que les mots de passe utilis´s sur un syst`me d’information sont e eencrypt´s pour garantir leur confidentialit´. Ces mots de passe encrypt´s sont e e estock´s dans des listes de mots de passe sur des fichiers syst`mes pr´d´finis. e e e eUn pirate peut fort bien r´cup´rer ces listes et tester la fiabilit´ des mots e e ede passe. Il utilise pour cela l’outil ad´quat : un perceur de mot de passe. eLa plupart des algorithmes d’encryptage repose sur l’utilisation de fonctionsa` sens unique. Ceci veut simplement dire qu’il est impossible de d´crypter le emot de passe ` partir sa forme encrypt´e. L’attaque consiste alors ` encrypter a e adiff´rentes combinaisons de caract`res et de comparer cette forme encrypt´e e e ea` celle du mot de passe voulu. Si les deux chaˆ ınes correspondent, alors lasuite de caract`res est celle du mot de passe. eIl y a deux types d’attaques pour le craquage de mots de passe qui serontd´finies dans ce chapitre. e 58

×