P. 1
Securiser Les Reseaux Par La Connaissance Des Usages

Securiser Les Reseaux Par La Connaissance Des Usages

|Views: 442|Likes:
Published by artdesco

More info:

Published by: artdesco on Jul 14, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

08/01/2012

pdf

text

original

S´curiser les r´seaux par la connaissance des usages e e

Fran¸ois Dagorn c 30 aoˆt 2007 u

R´sum´ e e Ce document est un tutoriel sur l’am´lioration de la s´curit´ d’un r´seau obtenue e e e e par une meilleure connaissance des usages. Il est bas´ sur un retour d’exp´rience dans la e e gestion au quotidien d’un petit r´seau Ethernet TCP/IP (commut´ et segment´) prot´g´ e e e e e en amont par un pare-feu. Commentaires et remarques ` prenom.nom at univ-rennes1 point fr. a

Table des mati`res e

Table des mati`res e

1 Introduction

1

2 Les principales attaques provenant du r´seau e 2.1 Les attaques sur les protocoles IP, TCP et UDP 2.1.1 2.1.2 2.2 . . . . . . . . . .

3 3 3 4

Le d´ni de service . . . . . . . . . . . . . . . . . . . . . . . e L’usurpation d’identit´ . . . . . . . . . . . . . . . . . . . . . e

Les attaques sur les protocoles applicatifs, les donn´es qu’ils transe portent et les applications qui les mettent en œuvre . . . . . . . . 2.2.1 2.2.2 2.2.3 Attaque sur HTTP . . . . . . . . . . . . . . . . . . . . . . . Attaques sur Apache . . . . . . . . . . . . . . . . . . . . . . Attaque sur FireFox . . . . . . . . . . . . . . . . . . . . . .

4 5 5 5 6 6

2.3 2.4

Les attaques sur les syst`mes d’exploitation ou leurs composants . e Premi`res mesures ` prendre . . . . . . . . . . . . . . . . . . . . . e a

3 Les outils pour espionner 3.1 3.2 R´diger des filtres de capture pour tcpdump et Ethereal . . . . . . e tcpdump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i

7 8 8

Table des mati`res e 3.2.1 3.3 Un exemple d’utilisation de tcpdump . . . . . . . . . . . . . 9 10 10 12

Ethereal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Un exemple d’utilisation d’Ethereal . . . . . . . . . . . . .

3.4

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 Scanner les ports 4.1 Nmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 4.1.2 Les diff´rents types de scan de Nmap . . . . . . . . . . . . . e Quelques exemples de scans . . . . . . . . . . . . . . . . . . 4.1.2.1 4.1.2.2 4.2 Un scan sur un serveur ouvert . . . . . . . . . . . Un scan sur un serveur prot´g´ par un pare-feu . e e

15 15 16 17 17 18 19

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 Visualiser l’utilisation du r´seau avec ntop e 5.1 5.2 Pr´sentation g´n´rale . . . . . . . . . . . . . . . . . . . . . . . . . . e e e D´ployer ntop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e 5.2.1 5.2.2 5.2.3 Quelques options de d´marrage de ntop . . . . . . . . . . . e Comment placer la sonde . . . . . . . . . . . . . . . . . . . Quelques exemples d’utilisation de ntop . . . . . . . . . . .

21 21 22 22 22 23

6 D´tecter les vuln´rabilit´s e e e 6.1 Scanner les vuln´rabilit´s avec Nessus . . . . . . . . . . . . . . . . e e 6.1.1 6.1.2 Quelques exemples d’utilisation avec Nessus . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . ii

29 29 30 33

Table des mati`res e 6.2 Exploiter les vuln´rabilit´s . . . . . . . . . . . . . . . . . . . . . . . e e 6.2.1 6.2.2 6.3 Metasploit . . . . . . . . . . . . . . . . . . . . . . . . . . . SecWatch.org . . . . . . . . . . . . . . . . . . . . . . . . . . 34 35 40 41

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7 D´tecter les attaques e 7.1 snort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.1 7.1.2 7.1.3 Les r`gles de snort . . . . . . . . . . . . . . . . . . . . . . . e Comment placer la sonde snort . . . . . . . . . . . . . . . . Utiliser snort . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.3.1 7.1.3.2 7.1.3.3 G´rer les alertes de snort avec BASE . . . . . . . e snort et les faux positifs . . . . . . . . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . .

43 43 44 45 45 46 48 49

8 D´tection post intrusion e 8.1 Les rootkits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.1 8.2 adore-ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51 51 52 53 53

Les anti rootkits 8.2.1

Zeppoo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9 Conclusion

55

iii

Table des mati`res e

iv

Chapitre 1

Introduction
La s´curisation d’un r´seau Ethernet TCP/IP dans le monde acad´mique repose e e e en g´n´ral sur la mise en œuvre d’un pare-feu ainsi que sur le cloisonnement des e e flux ` l’aide de VLANs. Le pare-feu r´gule les flux depuis et vers l’ext´rieur, les a e e VLANs g`rent les flux internes. La configuration des pare-feux ainsi que celle des e VLANs s’effectue ` l’aide de r`gles qui reposent sur l’id´e que ce qui n’est pas a e e explicitement autoris´ est interdit. Au fil du temps, les administrateurs du r´seau e e mettent ` jour les r`gles et des doutes apparaissent sur l’´tanch´it´ du dispositif : a e e e e – des portes ne sont-elles pas ouvertes ` tort ? a – comment v´rifier que l’utilisation du r´seau est conforme ` la charte d’usage e e a sign´e par les utilisateurs ? e – et surtout, comment d´tecter les intrusions potentielles ? e Les pare-feux et les ´l´ments responsables de la gestion des VLANs produisent ee des fichiers d’´v´nements (logs) en g´n´ral tr`s volumineux. Les consulter est utile e e e e e en phase de mise au point de nouvelles r`gles, ils sont par contre difficilement e exploitables pour v´rifier l’efficacit´ des r`gles de s´curit´ positionn´es. Des dispoe e e e e e sitifs suppl´mentaires sont donc n´cessaires pour : e e – v´rifier les ports ouverts sur l’ensemble des machines du r´seau ; e e – visualiser le trafic (en diff´rents points) par machines, protocoles, ports ; e – v´rifier la vuln´rabilit´ des services install´s ; e e e e – d´tecter les tentatives d’attaques ; e – d´tecter les ´ventuels intrus. e e Apr`s avoir effectu´ le point sur les principales attaques provenant du r´seau, e e e nous pr´sentons ici diff´rents outils d´ploy´s pour r´pondre aux questions pos´es cie e e e e e dessus. Ces outils procurent ` l’administrateur du r´seau une bonne connaissance a e 1

Chapitre 1. Introduction des usages (souhait´s ou non) et lui permettent de faire converger la politique de e s´curit´ souhait´e et son impl´mentation effective. e e e e

2

Chapitre 2

Les principales attaques provenant du r´seau e
Pour prot´ger un r´seau, il faut connaˆ les principales attaques qui peuvent e e ıtre l’affecter, la suite de ce chapitre les pr´sente bri`vement. e e

2.1

Les attaques sur les protocoles IP, TCP et UDP

Les attaques sur les protocoles TCP/IP tentent d’exploiter les concepts de base des couches r´seau et transport. Elles ont pour but de bloquer le fonctionnement e d’un r´seau (d´ni de service) ou d’usurper l’identit´ d’une machine. e e e

2.1.1

Le d´ni de service e

Les attaques de type ( d´ni de service ) ont pour but de consommer toutes les ( e ) ressources d’un r´seau cible pour emp´cher son fonctionnement normal. Ces ate e taques sont op´r´es par des groupes qui conjuguent leurs efforts pour le plaisir ee de nuire mais ´galement par des organisations mafieuses qui demandent des rane c ¸ons. Parmi un tr`s grand nombre d’attaques en d´ni de service on peut citer les e e suivantes : – les TCP SYN flood qui exploitent le mode connect´ de TCP : pour ´tae e blir une connexion, une machine source ´met un paquet SYN (synchronize) e auquel la machine destination r´pond par un paquet SYN-ACK (synchronize e acknowledment). Dans une situation normale, la machine source ´met alors e un paquet ACK (acknowledgment) et la connexion est ´tablie. Le sch´ma e e d’une attaque TCP SYN est de supprimer la derni`re ´tape (envoi du paquet e e ACK), la machine cible l’attend alors pendant un certain temps. En r´p´tant e e l’op´ration ` grande ´chelle, on sature la machine cible en lui faisant atteindre e a e 3

Chapitre 2. Les principales attaques provenant du r´seau e le nombre maximum de connexion TCP qu’elle peut supporter : elle ne peut plus fonctionner. – le ping of death dont le principe est d’envoyer des paquets ICMP dont la taille est sup´rieure ` la taille maximale d’un paquet IP, certains ´quipements e a e se bloquent alors (ils sont en voie de disparition).

2.1.2

L’usurpation d’identit´ e

L’usurpation d’identit´ IP (IP spoofing) est bas´e sur le fait que certains services e e utilisent l’adresse IP comme param`tre de confiance (rlogin, allow from d’apache, e ...). D`s qu’une machine cliente dispose d’une connexion sur un serveur via une e adresse IP de confiance, l’attaquant essaie d’usurper son adresse IP. L’attaquant doit au pr´alable r´duire le vrai client au silence en le saturant au par une attaque e e de type ( d´ni de service ) (SYN flood par exemple). Il doit ensuite tenter d’exploi( e ) ter une caract´ristique du protocole TCP (num´ros de s´quences et d’acquittement e e e qui ne sont pas toujours al´atoires) en ouvrant une session TCP usurpant l’adresse e IP de la machine cliente. L’attaquant peut ensuite, s’il a r´ussi ` deviner l’algoe a rithme d’attribution des num´ros de s´quences, se faire passer la machine cliente. e e Cette technique est ´videmment tr`s difficile ` mettre en œuvre, certains syse e a t`mes qui n’utilisent pas un s´quencement al´atoires y sont cependant toujours e e e vuln´rables. e

2.2

Les attaques sur les protocoles applicatifs, les donn´es qu’ils transportent et les applications qui les e mettent en œuvre

Ces attaques sont les plus nombreuses car elles sont parfois tr`s simples ` d´e a e ployer. Elles ciblent les vuln´rabilit´s des protocoles applicatifs (SMTP, HTTP, e e ...) ou de leurs impl´mentations mais ´galement les applications qu’ils permettent e e d’utiliser (les scripts CGI, les applications PHP, ...). On peut aussi classer ici les attaques sur les applications, notamment celles portant sur les navigateurs Web. L’attaquant peut, en fonction des attaques, ex´cuter du code malveillant, prendre e le contrˆle du syst`me ou engendrer un d´ni de service. Les trois exemples suivants o e e mettent en ´vidence des failles exploitables du protocole HTTP, du serveur HTTP e Apache et du navigateur FireFox. Les deux derniers exemples ont ´t´ choisis car ils ee sont relatifs ` des outils tr`s utilis´s dans le monde universitaire. Il est ´vident que a e e e d’autres outils encore plus utilis´s par ailleurs sont encore plus vuln´rables (Mie e crosoft Internet Explorer notamment) cf. SANS Top-20 Internet Security Attack targets (2006 annual Update)1 .
1

http://www.sans.org/top20/

4

2.2. Les attaques sur les protocoles applicatifs, les donn´es qu’ils transportent et e les applications qui les mettent en œuvre

2.2.1

Attaque sur HTTP

La m´thode TRACE du protocole HTTP/1.1 a ´t´ sp´cifi´e pour faciliter le e ee e e d´veloppement d’application au dessus de HTTP. Elle permet de visualiser dans e le corps d’une r´ponse, toutes les en-tˆtes qui sont transmises lors d’une requ`te e e e HTTP. Cette fonctionnalit´ est pratique dans une phase de mise au point pour e v´rifier ce que l’application distante re¸oit. Malicieusement utilis´e elle permet ` e c e a un attaquant de visionner des cookies, des authentification de type auth-type : basic encod´es en base 64 (en clair), ... e Cette faille peut ˆtre exploit´e de la mani`re suivante : e e e – l’attaquant poste un mail ` destination de l’attaqu´ (en usurpant l’adresse a e d’un coll`gue de celui-ci de pr´f´rence) ; e ee – l’attaqu´ consulte ce mail via une interface de type WebMail ; e – le courrier contient une pi`ce jointe qui va faire ´x´cuter un code JavaScript e e e qui engendre une requ`te HTTP TRACE ; e – le script effectue une requ`te HTTP sur le serveur de l’attaquant en passant e en param`tre le r´sultat de la requ`te TRACE effectu´e sur le serveur de e e e e l’attaqu´ ; e – en consultant son log d’httpd, l’attaquant visualise les cookies, les champs auth en base 64, ...,

2.2.2

Attaques sur Apache

Le serveur HTTP Apache est compos´ d’un corps principal auquel s’ajoutent e divers modules p´riph´riques optionnels. De fa¸on assez r´guli`re, des failles sont e e c e e r´pertori´es dans des modules, telles celles-ci qui permettent l’ex´cution de code e e e arbitraire sur le serveur : – le module mod rewrite des branches 1.3.8, 2.0.46 et 2.2.0 permet en fonction des r`gles d’´critures (les Rewrite rules) d’ex´cuter du code arbitraire ; e e e – le module mod tcl qui permet de faire ex´cuter des scripts developp´s en e e TCL est vun´rable dans sa version 1.0. Il autorise d’ex´cuter ` distance du e e a code arbitraire.

2.2.3

Attaque sur FireFox

Le probl`me le plus r´current concerne l’activation des scripts JavaScript, celle-ci e e permet, dans certains cas, l’ex´cution de code arbiraire comme l’indique l’avis du e CERTA du 13 novembre 2006 : ( il a ´t´ d´montr´ qu’il ´tait possible de modifier ( ee e e e des objets scripts en cours d’ex´cution. Cette possibilit´ conduit potentiellement ` e e a 5

Chapitre 2. Les principales attaques provenant du r´seau e l’ex´cution de code JavaScript arbitraire. Cette fonctionalit´ touche le moteur du e e navigateur qui est aussi utilis´ dans le lecteur de mail qui devient ainsi vuln´rable e e si la fonctionalit´ JavaScript est activ´e ) e e ).

2.3

Les attaques sur les syst`mes d’exploitation ou e leurs composants

Les syst`mes d’exploitation et leurs composants peuvent ´galement comporter e e des vuln´rabilit´s qui peuvent ˆtre exploit´es ` distance. Plusieurs cas ont ´t´ e e e e a ee signal´s concernant des DLL de Windows, notamment ` propos de la visualisation e a d’images WMF permettant l’ex´cution de code arbitraire. Pour exploiter il suffit e de placer une image WMF corrompue sur un serveur Web et d’attendre les clients utilisant la DLL cibl´e. e Les noyaux Linux peuvent ´galement comporter des failles qui sont accessibles e aux utilisateurs disposant d’un acc`s sur la machine cible. Combin´es avec une e e attaque sur un service r´seau (httpd par exemple), elles peuvent donner des acc`s e e privil´gi´s ` un attaquant, ou provoquer un d´ni de service comme dans le cas de e e a e la vuln´rabilit´ du noyau Linux avec IPv62 publi´e par le CERTA le 07 novembre e e e 2006.

2.4

Premi`res mesures ` prendre e a

Pour prot´ger un r´seau il convient de s’informer tr`s r´guli`rement sur ses e e e e e vuln´rabilit´s potentielles. Il revient aux diff´rentes communaut´s d’utilisateurs e e e e de l’Internet de s’organiser en fonction du niveau de risques encourus. En France, les universit´s disposent des services du CERT-RENATER3 et de son r´seau de e e correspondants de s´curit´ de sites. Plus g´n´ralement, en France, le CERTA4 e e e e (Centre d’Expertise Gouvernemental de R´ponse et de Traitement des Attaques e informatiques) diffuse journellement des alertes et des avis de s´curit´ qui d´crivent e e e les risques ainsi que les mesures ` prendre imm´diatement. a e S’agissant des trois exemples d´crits ci-dessus, dans les avis du CERTA on d´e e couvre qu’il convient respectivement de ne plus autoriser la m´thode TRACE, de e mettre ` jour Apache et d’installer la version Firefox 1.5.0.8. a

2 3

http://www.certa.ssi.gouv.fr/site/CERTA-2006-AVI-478/index.htm http://www.renater.fr/spip.php?rubrique19 4 http ://www.certa.ssi.gouv.fr/site/index.htm

6

Chapitre 3

Les outils pour espionner
Pour comprendre le fonctionnement d’un r´seau ou pour mesurer les risques li´s e e a e ` l’´coute, l’utilisation des renifleurs (sniffers) est recommand´e. La suite de ce e chapitre pr´sente tcpdump1 et Ethereal2 , deux des renifleurs les plus utilis´s. e e En fonction de l’endroit o` le renifleur est positionn´, l’´coute sera plus ou moins u e e int´ressante. Dans un r´seau commut´, par d´faut, on n’´coutera que le trafic e e e e e 3 (les ´changes unicast o` elle apparaˆ destin´ ` la machine h´bergeant le sniffer ea e e u ıt ainsi que les broadcast de son domaine de diffusion). Raccord´ ` un concentrateur ea (hub), le sniffer ´coutera l’ensemble du trafic destin´ ` toutes les machines. e ea Pour fonctionner normalement, tcpdump et Ethereal n´cessitent de placer l’ine terface d’´coute en mode indiscret (promiscuous), ceci requiert des privil`ges d’ade e ministrateur sur la machine qui les h´berge (par d´faut une interface r´seau ne e e e s’int´resse qu’au trafic qui lui est destin´, en mode indiscret, tout le trafic est e e espionn´). e tcpdump et Ethereal utilisent la biblioth`que portable libpcap qui permet de e capturer des paquets sur une interface r´seau. Le principe des 2 outils est le mˆme : e e capturer des paquets en tenant compte d’un filtre de capture potentiellement positionn´ par l’utilisateur. Ils fonctionnent tous deux sous Windows XP et Linux, e tcpdump est utilisable en mode ligne uniquement tandis que Ethereal procure une interface graphique agr´able. e

http://www.tcpdump.org http://www.ethereal.com/ 3 Sur certains commutateurs, des ports peuvent ˆtre configur´s pour r´pliquer le trafic d’autres e e e ports (cf. port monitoring chez Cisco par exemple.
2

1

7

Chapitre 3. Les outils pour espionner

3.1

R´diger des filtres de capture pour tcpdump et Ethee real

Les filtres de captures permettent de restreindre le nombre de paquets captur´s e en ciblant pr´cis´ment le type de recherche ` effectuer. La notification utilis´e e e a e pour sp´cifier des filtres de captures permet de s´lectionner des r´seaux, des noms e e e de machines, des protocoles et des num´ros de ports. Les diff´rents ´l´ments d’un e e ee filtre peuvent ˆtre combin´s logiquement (and, or, not) comme dans les exemples e e suivants : – net 148.65.13.0 mask 255.255.255.0 – host www.machin.fr : un nom de machine ` r´soudre ou un num´ro IP ; a e e – tcp : on cible ici uniquement les paquets TCP. Les autres valeurs possibles incluent udp, ip, icmp, broadcast, multicast, arp, ... – port 80 : le port 80 en TCP ou UDP ; – tcp and port 80 : le port TCP 80 ; – tcp and not port 80 : tout TCP sauf le port 80 ; – not broadcast and not multicast and not icmp and not arp : tout sauf les broadcast, le multicast, les paquets ICMP et les paquets ARP ;

3.2

tcpdump

Les options de d´marrage de tcpdump sont les suivantes : e tcpdump [ [ [ [ [ -adeflnNOpqRStuvxX ] [ -c nombre de paquets ] -C taille du fichier de capture ] [ -F fichier ] -i interface ] [ -m module ] [ -r fichier ] -s nombre d’octets ] [ -T type ] [ -w fichier ] -E algo:secret ] [ expression ]

Parmi les options les plus usuelles de tcpdump on peut citer les suivantes : -c nombre de paquets qui arrˆtera la capture lorque le nombre de paquets ine diqu´ sera atteint ; e -w fichier pour ´crire les paquets captur´s dans un fichier ; e e -x pour imprimer les paquets captur´s en codage hexad´cimal ; e e -X pour imprimer les paquets captur´s en ASCII ; e -s nombre d’octets pris en compte dans chaque paquets (68 par d´faut). En e indiquant 0, on stipule qu’il faut utiliser le nombre d’octets n´cessaires pour e capturer la totalit´ du contenu des paquets. e expression correspond ` un filtre r´dig´ comme indiqu´ en section 3.1 a e e e 8

3.2. tcpdump

3.2.1

Un exemple d’utilisation de tcpdump

/usr/sbin/tcpdump -x -X -s 0 host www.google.fr tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 14:12:32.220589 IP zag.trucs.test-reseaux.fr.34904 > fg-in-f147.google.com.http: S 4099167971:4099167971(0) win 5840 <mss 1460,sackOK,timestamp 357988976 0, nop,wscale 2> 0x0000: 000b 4668 a600 0007 e9eb aadc 0800 4500 ..Fh..........E. 0x0010: 003c 2c93 4000 4006 4a35 943c 0a16 480e .<,.@.@.J5.<..H. 0x0020: dd93 8858 0050 f454 56e3 0000 0000 a002 ...X.P.TV....... 0x0030: 16d0 099a 0000 0204 05b4 0402 080a 1556 ...............V 0x0040: 7a70 0000 0000 0103 0302 zp........ 14:12:32.240613 IP fg-in-f147.google.com.http > zag.trucs.test-reseaux.fr.34904: S 2805043872:2805043872(0) ack 4099167972 win 8190 <mss 1380> 0x0000: 0007 e9eb aadc 000b 4668 a600 0800 4500 ........Fh....E. 0x0010: 002c 367b 0000 ef06 d15c 480e dd93 943c .,6......H....< 0x0020: 0a16 0050 8858 a731 92a0 f454 56e4 6012 ...P.X.1...TV.‘. 0x0030: 1ffe a6c0 0000 0204 0564 0000 .........d.. 14:12:32.240651 IP zag.trucs.test-reseaux.fr.34904 > fg-in-f147.google.com.http: ack 1 win 5840 0x0000: 000b 4668 a600 0007 e9eb aadc 0800 4500 ..Fh..........E. 0x0010: 0028 2c95 4000 4006 4a47 943c 0a16 480e .(,.@.@.JG.<..H. 0x0020: dd93 8858 0050 f454 56e4 a731 92a1 5010 ...X.P.TV..1..P. 0x0030: 16d0 c75b 0000 ...[.. 14:12:32.243247 IP zag.trucs.test-reseaux.fr.34904 > fg-in-f147.google.com.http: P 1:503(502) ack 1 win 5840 0x0000: 000b 4668 a600 0007 e9eb aadc 0800 4500 ..Fh..........E. 0x0030: 16d0 c604 0000 4745 5420 2f20 4854 5450 ...... GET./ .HTTP 0x0040: 2f31 2e31 0d0a 486f 7374 3a20 7777 772e /1.1..Host:.www. 0x0050: 676f 6f67 6c65 2e66 720d 0a55 7365 722d google.fr..User0x0060: 4167 656e 743a 204d 6f7a 696c 6c61 2f35 Agent:.Mozilla/5 0x0070: 2e30 2028 5831 313b 2055 3b20 4c69 6e75 .0.(X11;.U;.Linu 0x0080: 7820 6936 3836 3b20 656e 2d55 533b 2072 x.i686;.en-US;.r 0x0090: 763a 312e 372e 3132 2920 4765 636b 6f2f v:1.7.12).Gecko/ 0x00a0: 3230 3035 3039 3230 0d0a 4163 6365 7074 20050920..Accept 0x00b0: 3a20 7465 7874 2f78 6d6c 2c61 7070 6c69 :.text/xml,appli

L’exemple pr´c´dent est une trace des ´changes entre un navigateur WWW et e e e un serveur HTTP. Le premier paquet est l’´tablissement de la connexion TCP e entre le client et le serveur (´mission d’un paquet SYN marqu´ du drapeau S par e e tcpdump). Le second paquet est l’acceptation de la connexion par le serveur qui ´met un paquet SYN-ACK ` destination du client. Le troisi`me paquet est l’´mise a e e sion d’un paquet ACK par le client pour valider son acceptation de la connexion. Le quatri`me paquet TCP marque le d´but de la premi`re requˆte HTTP ( GET / ). e e e e 9

Chapitre 3. Les outils pour espionner

3.3

Ethereal

En dehors de son interface d’usage graphique (tr`s riche), Ethereal se dise tingue de tcpdump par le tr`s grand nombre de protocoles qu’il interpr`te (plus e e de 500 protocoles, dont BitTorrent, CUPS, HTTP, ICQ, IMAP, LDAP, NTP ... cf. http://www.ethereal.com/docs/dfref/). Parmi les principales fonctionnalit´s e d’Ethereal on peut citer les suivantes : adaptation ` diff´rentes technologie de r´seaux locaux (Ethernet, FDDI, Toa e e ken Ring, 802.11, ...) ; filtrage des paquets en capture et impression (avec personnalisation de l’utilisation de la couleur) ; suivi de session TCP ; cr´ation de statistiques et de graphes (nombre de paquets, nombre de ree quˆtes, ...). e

3.3.1

Un exemple d’utilisation d’Ethereal

Les figures suivantes pr´sentent Ethereal en fonctionnement, l’utilisateur a dee ` mand´ de tracer ` l’aide d’un filtre de capture (port 80). A l’issue de la capture, e a il a selectionn´ un paquet TCP qui transporte une requˆte HTTP. Il a en outre e e demand´ l’interpr´tation du protocole HTTP (figure 3.1). La figure 3.2 montre le e e rendu l’option Follow TCP Stream.

10

3.3. Ethereal

Figure 3.1: Ethereal capturant avec un filtre port 80

11

Chapitre 3. Les outils pour espionner

Figure 3.2: l’option Follow TCP stream d’Ethereal

3.4

Conclusion

L’int´rˆt de ces outils pour un administrateur de r´seau est manifeste. Ils sont ee e par contre tr`s dangereux lorsque des personnes mal intentionn´es les utilisent. e e Compte tenu de leur capacit´ ` interpr´ter en clair des protocoles aussi r´pandu ea e e que HTTP, POP, IMAP, LDAP, ... il est ´vident que l’usage des versions s´curis´es e e e HTTPS, POPS, IMAPS, LDAPS, ... est fondamental. On rappelera aussi qu’en France, la CNIL (Commission Nationale de l’Informatique et des Libert´s) encadre le rˆle des administrateurs informatiques, le texte cie o dessous est extrait du guide pratique pour les employeurs de la CNIL4 : (( De mˆme, les administrateurs de r´seaux et syst`mes, g´n´ralement tenus au e e e e e
4

http://www.cnil.fr/fileadmin/documents/La CNIL/publications/CNIL GuideTravail.pdf

12

3.4. Conclusion secret professionnel ou ` une obligation de discr´tion professionnelle, ne doivent a e pas divulguer des informations qu’ils auraient ´t´ amen´s ` connaˆ dans le cadre ee e a ıtre de leurs fonctions, et en particulier lorsque celles-ci sont couvertes par le secret des correspondances ou rel`vent de la vie priv´e des utilisateurs et ne mettent en e e cause ni le bon fonctionnement technique des applications, ni leur s´curit´, ni e e l’int´rˆt de l’entreprise. Ils ne sauraient non plus ˆtre contraints de le faire, sauf e e e disposition l´gislative particuli`re en ce sens. ) e e )

13

Chapitre 3. Les outils pour espionner

14

Chapter 4

Scanner les ports
Compte tenu de la vuln´rabilit´ potentielle des protocoles, des applications et e e des syst`mes d’exploitation (cf section 2.2 et section 2.3), il est tr`s important e e qu’un administrateur ait une parfaite connaissance des services qui fonctionnent sur l’ensemble du parc de machines qu’il g`re. Les scanners de ports sont des outils e de d´couverte automatique des services disponibles. Ils permettent d’examiner e l’ensemble des machines d’un r´seau et produisent des rapports de synth`ses tr`s e e e pr´cis. e Comme dans le cas des renifleurs (cf. chapitre 3), ces outils sont ´galement e tr`s int´ressants pour les personnes mal intentionn´es. Ils permettent ` distance, e e e a de tenter de d´couvrir quels sont les services install´s, quels sont les syst`mes e e e d’exploitation d´ploy´s, ... Le scanner de ports est un des outils de base des e e pirates informatiques. La suite de ce chapitre est consacr´e ` Nmap1 (Network Mapper) un des scanners e a de ports les plus utilis´s. e

4.1

Nmap

Nmap peut ˆtre utilis´ pour scanner une machine, un sous-ensemble ou la totalit´ e e e d’un r´seau, et fournit un rapport d’analyse dont la table des ports int´ressants e e est l’´l´ment essentiel. Lorsqu’une machine est accessible, Nmap affecte un statut ee aux ports scann´s, il peut prendre les valeurs suivantes : e ferm´ : le port est accessible mais n’est pas en service (il n’y a pas d’application e a e ` l’´coute) ; filtr´ : le port est filtr´ par un dispositif de contrˆle (pare-feu, ACLs de e e o routeurs). Nmap ne peut pas d´terminer s’il y a effectivement un service ` e a
1

http://insecure.org/nmap/

15

Chapter 4. Scanner les ports l’´coute ; e ouvert : un service utilise ce port et r´pond aux sollicitations ; e ouvert ou filtr´ : Nmap est incapable de d´terminer si le port est ouvert e e ou filtr´. Cet ´tat se pr´sente avec certains types d’analyses (cf. section e e e 4.1.1) et d´pend aussi de la configuration des pare-feux rencontr´s (que fonte e ils lorsque un paquet est ind´sirable ? en g´n´ral il ne r´pondent pas (filtr´ e e e e e donc), dans certains cas ils ´mettent un paquet RST, qui a ´mis le paquet RST e e une application ou un pare-feu ?) ; non filtr´ : Nmap est incapable de d´terminer si le port est ouvert ou ferm´. e e e Cet ´tat se pr´sente uniquement avec le type d’analyse ACK (cf. section 4.1.1) e e ; ferm´ ou filtr´ : Nmap est incapable de d´terminer si le port est ferm´ e e e e ou filtr´. Cet ´tat se pr´sente uniquement avec le type d’analyse Idle (cf. e e e section 4.1.1).

4.1.1

Les diff´rents types de scan de Nmap e

Nmap permet d’effectuer des scans en utilisant diff´rentes techniques issues de e l’´tude du comportement des machines respectant le RFC 7932 (TCP). Parmi la e douzaine de techniques de scan connues, on peut citer les suivantes : SYN Stealth scan : le scan SYN furtif est celui propos´ par d´faut. Il est e e tr`s rapide car il n’effectue pas une connexion TCP compl`te. Nmap ´met un e e e paquet sur le port cibl´ et attend la r´ponse qui peut ˆtre : e e e – un paquet SYN/ACK qui indique que le port est ouvert ; – un paquet RST qui indique que le port est ferm´ ; e – pas de r´ponse si le port est filtr´. e e Dans tous les cas Nmap n’effectue pas la connexion compl`te et ´met un paquet e e RST pour fermer la connexion. C’est pourquoi ce type de scan est ´galement e appel´ demi-ouvert (half open scan). e Connect scan : le scan le plus anodin. Il effectue un appel syst`me connect() e et se comporte donc comme un client TCP normal. Il ne n´cessite pas de e droits particuliers (contrairement au SYN Stealth scan) mais son ex´cution e est plus lente ; UDP port scan : le scan des ports UDP ; consulter la documentation de tous les types de scan sur http://insecure.org/nmap/man/fr/man-port-scanning-techniques.html.
2

http://www.rfc-editor.org/rfc/rfc793.txt

16

4.1. Nmap

4.1.2

Quelques exemples de scans

Les exemples suivants utilisent nmapfe, l’interface X-Window de la commande Nmap.

4.1.2.1

Un scan sur un serveur ouvert

Figure 4.1: Un scan sur un serveur ouvert Le r´sultat de ce Connect scan sur un serveur non prot´g´ par un pare-feu e e e r´v`le la version d’Apache utilis´e (il est donc n´cessaire de rendre Apache plus e e e e 17

Chapter 4. Scanner les ports furtif3 ). Par ailleurs on peut constater qu’un service SSH existe et que les services rsh, rlogin ne sont pas d´sarm´s (il faut le faire). e e

4.1.2.2

Un scan sur un serveur prot´g´ par un pare-feu e e

Figure 4.2: Un scan sur un serveur prot´g´ par un pare-feu e e L’exemple de la figure 4.2 montre le r´sultat d’un SYN Stealth scan sur un e serveur qui h´berge un service Web ouvert et d’autres services filtr´s. On notera e e que malgr´ la s´lection de l’option Version probe (afficher les versions de serveurs), e e Nmap ne peut indiquer quelle est la version d’Apache utilis´e. Dans un bon r´flexe, e e l’administrateur du serveur WWW a configur´ de masquer cette information. e
3

ServerTokens Prod et ServerSignature off dans le fichier httpd.conf

18

4.2. Conclusion

4.2

Conclusion

Les scanners de ports sont des outils de base pour les pirates, il doivent donc l’ˆtre e aussi pour les administrateurs de r´seaux. Ceux-ci doivent soumettre r´guli`ree e e ment les r´seaux qu’ils g`rent ` une analyse compl`te. Notamment apr`s l’installation e e a e e de toute nouvelle machine (des services inutiles peuvent ˆtre ouverts) ou pour v´rie e fier que les bonnes r´solutions initiales sont toujours effectives. e L’usage d’un scanner de ports (tel Nmap) am´liore la s´curit´ des r´seaux car il e e e e permet aux administrateurs de suivre tr`s pr´cis´mment l’´tat des services ouverts, e e e e c’est un ´l´ment important pour maˆ ee ıtriser les usages.

19

Chapter 4. Scanner les ports

20

Chapter 5

Visualiser l’utilisation du r´seau avec ntop e
Une fois la politique de s´curit´ d´ploy´e (pare-feu, access-lists de VLAN, ...), e e e e apr`s que les r`gles d’usages aient ´t´ maintes fois rappel´es aux utilisateurs, il est e e ee e important de pouvoir visualiser l’usage courant du r´seau. La suite de ce chapitre e pr´sente ntop1 qui r´pond ` cet imp´ratif. e e a e

5.1

Pr´sentation g´n´rale e e e

ntop est un outil de mesure et de caract´risation du trafic sur un r´seau. Il e e fonctionne en temps r´el et montre l’usage courant du r´seau via une interface e e Web. ntop utilise la biblioth`que portable libpcap (comme ethereal et tcpdump) e pour capturer les paquets sur une ou plusieurs interfaces r´seaux. e ntop utilise les couches 2 et 3 pour pr´senter par machines, une synth`se de e e tous les protocoles utilis´s (TCP, UDP, ICMP, ICMPv6, DLC, IPX, Decnet, (R)ARP, e AppleTalk, NetBios, OSI, IPv6, STP, IPSEC, OSPF, IGMP). Dans le cas sp´cifique e du protocole IP, le trafic est caract´ris´ par protocoles applicatifs incluant les e e suivants : FTP, HTTP, DNS, Telnet, NBios-IP, Mail, DHCP-BOOTP, SNMP, NNTP, NFS/AFS, VoIP, X11, SSH, Gnutella, Kazaa, WinMX, DC++, eDonkey, BitTorrent, Messenger. Parmi les fonctionnalit´s de ntop, on peut citer les suivantes : e graphes du d´bit global du r´seau pour le mois en cours, les derni`res 24 e e e heures, les derni`res 60 minutes, les derni`res 10 minutes ; e e caract´risation du trafic par machine et protocole en s´parant ´ventuellement e e e
1

http://www.ntop.org/

21

Chapter 5. Visualiser l’utilisation du r´seau avec ntop e les machines locales et les machines distantes. Par d´faut, les r´sultats sont e e class´s par ordre d´croissant de trafic constat´ ; e e e d´tails de la consommation de chaque machine sur les derni`res 24 heures e e permettant de mettre en ´vidence les usages (d´tails des connexions, sessions e e TCP et UDP actives, ...) ; statistiques d’usage par domaines avec caract´risation du trafic par protocoles e ; ...

5.2

D´ployer ntop e

ntop capture et analyse les paquets qu’il voit passer. Son positionnement determine donc les flux qui seront monitor´s. Pour la mise en place d’un service ntop e (une sonde) il est conseill´ d’utiliser deux interfaces : l’une pour l’acc`s ` la mae e a chine et au service WWW de consultation, l’autre pour capturer le trafic. Par ailleurs, il est indispensable de configurer l’interface utilis´e pour capturer le trafic e dans une plage d’adresse IP non routable.

5.2.1

Quelques options de d´marrage de ntop e

Parmi les options de d´marrage de ntop, on peut mentionner les suivantes : e [-i interfaces] : une liste d’interface (s´par´es par des virgules) de capture e e (-i eth1, eth2) ; [-m reseaux locaux] : une liste de r´seaux (s´par´s par des virgules) pour e e e indiquer quels sont les r´seaux locaux afin de proc´der ` la s´paration du e e a e trafic (local, distant). Par d´faut ntop trouve cette information en interroe geant la configuration de l’interface de capture, si elle configur´e dans une e plage d’adresse non routable, alors en l’absence de pr´cision, tout le trafic est e consid´r´ comme distant ; ee [-o] : dans certains cas, notamment lorsque l’interface de capture re¸oit du c trafic issu d’un port configur´ en SPAN (cf. section 5.2.2), il est n´cessaire e e de positionner cette option (Situations which may require this option include port/VLAN mirror, ...) ;

5.2.2

Comment placer la sonde

Dans le cadre d’un r´seau commut´, par d´faut, une sonde ne peut avoir acc`s e e e e qu’au trafic destin´ ` la machine qui l’h´berge. Ce n’est ´videmment pas ce qui ea e e 22

5.2. D´ployer ntop e est en g´n´ral recherch´. Pour ´largir le champ de vision, il est n´cessaire de choisir e e e e e un des trois dispositifs suivants : utiliser un concentrateur (hub) comme point de passage oblig´ du trafic ` e a analyser. Cette m´thode est simple, elle peut servir pour effectuer quelques e essais. Elle ne peut ´videmment pas ˆtre utilis´e en production, car outre les e e e probl`mes de s´curit´ li´s au partage du m´dia, le mode de fonctionnement e e e e e half-duplex peut rendre inop´rants certains services (diffusion de vid´os en e e streaming, ...) ; configurer le port utilis´ par l’interface de capture en mode SPAN (Switch e Port ANalyser ). Dans ce cas, le port configur´ va recevoir un duplicata du e trafic des ports ` analyser. La mise en œuvre de cette fonctionnalit´ est a e tr`s simple, elle d´pend ´videmment des commutateurs utilis´s. L’exemple e e e e suivant montre les commandes n´cessaires pour configurer des commutateurs e CISCO (dans les deux cas l’interface Fa0/11 re¸oit un duplicata du trafic des c ports Fa0/12 et Fa0/13) : – Commutateurs 2950 monitor session 1 source interface Fa0/11 monitor session 1 destination interface Fa0/12 monitor session 1 destination interface Fa0/13 – Commutateurs 3500 ! interface FastEthernet0/11 port monitor FastEthernet0/12 port monitor FastEthernet0/13 switchport access vlan x ! utiliser un dispositif qui duplique le signal (network tap)2 pour permettre de r´aliser une d´rivation du r´seau sur laquelle la sonde pourra ˆtre install´e. e e e e e Cette solution autorise de placer des sondes totalement furtives (invisibles du reste du r´seau), elle est ` privil´gier dans les environnements tr`s sensibles. e a e e

5.2.3

Quelques exemples d’utilisation de ntop

Les figures suivantes montrent les r´sultats obtenus par une sonde plac´e ` l’extr´mit´ e e a e e d’un r´seau (juste avant le pare-feu). Le niveau de d´tail obtenu permet d’atteindre e e l’objectif d’une meilleure connaissance des usages. Les figures 5.1 et 5.2 montrent le trafic avec des machines distantes caract´ris´ e e par protocoles. Les figures 5.3 et 5.4 illustrent le d´tail qui est obtenu lorsqu’un e
2

cf. http://www.netopics.com

23

Chapter 5. Visualiser l’utilisation du r´seau avec ntop e administrateur s’int´resse particuli`rement ` l’activit´ (pr´sente et pass´e) d’une e e a e e e machine. La figure 5.5 permet de constater si l’activit´ est conforme aux pr´vie e sions, notamment la nuit.

Figure 5.1: ntop caract´rise les protocoles utilis´s e e

24

5.2. D´ployer ntop e

Figure 5.2: ntop caract´rise les protocoles applicatifs utilis´s e e

25

Chapter 5. Visualiser l’utilisation du r´seau avec ntop e

Figure 5.3: ntop d´taille l’activit´ d’une machine (1) e e

26

5.2. D´ployer ntop e

Figure 5.4: ntop d´taille l’activit´ d’une machine (2) e e

27

Chapter 5. Visualiser l’utilisation du r´seau avec ntop e

Figure 5.5: ntop pr´sente des statistiques d’utilisation e

28

Chapter 6

D´tecter les vuln´rabilit´s e e e
Comme indiqu´ au chapitre 2, les protocoles, les applications et les syst`mes e e d’exploitation peuvent pr´senter des vuln´rabilit´s. D`s qu’une vuln´rabilit´ est e e e e e e recens´e, un bulletin d’alerte est diffus´ (cf. section 2.4), la disponibilit´ d’exploits 1 e e e peut alors ˆtre tr`s rapide. e e Des outils permettent de d´tecter les vuln´rabilit´s, ils peuvent mˆme ˆtre cone e e e e figur´s pour ˆtre intrusifs, ils sont ` la disposition des administrateurs de r´seaux e e a e pour ´valuer les risques encourus. Ces outils sont ´galement accessibles aux pere e sonnes mal intentionn´es, il est donc tr`s important de les connaˆ e e ıtre et de les utiliser r´guli`rement. e e La suite de ce chapitre pr´sente le scanner de vuln´rabilit´s Nessus ainsi que e e e l’outil d’exploitation de vuln´rabilit´s Metasploit. e e

6.1

Scanner les vuln´rabilit´s avec Nessus e e

Nessus2 est un outil qui automatise la d´couverte de vuln´rabilit´s connues sur les e e e machines d’un r´seau. C’est un produit commercial diffus´ par la soci´t´ TENABLE e e ee Network Security. Il peut toutefois ˆtre utilis´ gratuitement en utilisant une e e base des vuln´rabilit´s dont la mise ` jour est d´cal´e3 d’une semaine. Nessus est e e a e e organis´ en mode client/serveur : le serveur effectue les tests tandis que les clients e sont charg´s de la configuration et de la pr´sentation des r´sultats. Les principales e e e fonctionnalit´s de Nessus sont les suivantes : e mise ` jour automatique de la base des vuln´rabilit´s ; a e e
traduction de l’anglais sploit : shortname for exploit or the use of a software bug to accomplish something not intended by the designers. 2 cf. http://www.nessus.org 3 les administrateurs appr´cieront en fonction de la sensibilit´ des sites g´r´s si un d´lai est e e e e e envisageable ou pas.
1

29

Chapter 6. D´tecter les vuln´rabilit´s e e e disponibilit´s des tests sous formes de plugins d´velopp´s en NASL (Nessus e e e Attack Scripting Language). NASL permet de d´velopper rapidement des e scripts de tests de vuln´rabilit´s, il propose des m´ta-instructions pour intere e e roger des serveurs HTTP, FTP, ... ou pour fabriquer des paquets IP, TCP, UDP ou ICMP, ... ; reconnaissance automatique des services attach´s aux ports scann´s ; e e s´lection par l’utilisateur des types de d´tection ` mettre en œuvre (avec ou e e a sans activation des options intrusives, ...).

6.1.1

Quelques exemples d’utilisation avec Nessus

Le client Nessus est disponible dans tous les environnements (Windows, Mac OS X, mode ligne sous Unix, X11), les tests suivants ont ´t´ effectu´s ` l’aide de ee e a NessusClient (le client Nessus pour X11). La figure 6.1 montre l’´cran d’accueil de NessusClient et notamment les options e g´n´rales utilis´es pour les scans (safe checks ici pour ne pas risquer de corrompre e e e une machine). La figure 6.2 montre le r´sultat d’une analyse sur un serveur o` e u un service FTP tr`s vuln´rable est install´. Nessus indique la solution (mettre ` e e e a jour) ainsi que les r´f´rences des bulletins d’alertes qui correspondent et qu’il est ee n´cessaire de consulter4 : e

National Vulnerability DataBase Original release date: 6/18/2001 Last revised: 10/20/2005 Source: US-CERT/NIST Overview Heap overflow in FTP daemon in Solaris 8 allows remote attackers to execute arbitrary commands by creating a long pathname and calling the LIST command, which uses glob to generate long strings. Impact CVSS Severity: 10.0 (High) Approximated Range: Remotely exploitable Impact Type: Provides administrator access

4

http://nvd.nist.gov/nvd.cfm?cvename=CVE-2001-0249

30

6.1. Scanner les vuln´rabilit´s avec Nessus e e

Figure 6.1: ´cran d’accueil de NessusClient e

31

Chapter 6. D´tecter les vuln´rabilit´s e e e

Figure 6.2: Le r´sultat d’un scan Nessus e

32

6.1. Scanner les vuln´rabilit´s avec Nessus e e

Figure 6.3: Le choix des vuln´rabilit´s ` tester avec Nessus e e a

6.1.2

Conclusion

Nessus est tr`s largement utilis´. Il recense plus de 13000 plugins dont le code e e est assez simple ` comprendre (cf. /opt/nessus/lib/nessus/plugins sous Linux). a Comme tous les scanners, Nessus peut engendrer des faux positifs (des alertes alors que le produit est sain), une connaissance de NASL est alors utile pour d´terminer si l’alerte est justifi´e. Dans ce cas il convient d’effectuer les seuls tests e e qui ont g´n´r´ l’alerte en y pla¸ant des traces. La commande nasl permet de e ee c soumettre un test rapidement comme dans l’exemple suivant :

nasl -T /tmp/trace -t serv-1 /opt/nessus/lib/nessus/plugins/mod_auth_any.nasl Ouf, ce serveur n’est pas vulnerable

Le code modifi´ de mod_auth_any.nasl est le suivant : e 33

Chapter 6. D´tecter les vuln´rabilit´s e e e

# # The script code starts here # include("http_func.inc"); include("http_keepalive.inc"); include("global_settings.inc"); port = get_http_port(default:80); if ( report_paranoia < 2 ) { banner = get_http_banner(port port); if ( ! banner || "Apache" >!< banner ) exit(0); } pages = get_kb_list(string("www/", port, "/content/auth_required")); if(isnull(pages)) { display ("Ouf, ce serveur n’est pas vulnerable"); exit(0); } pages = make_list(pages); foreach file (pages) { req = http_get(item file, port port); auth = egrep(pattern:"^Authorization", string:req); if(auth) req = req - auth; res = http_keepalive_send_recv(port:port, data:req); ....

L’utilisation de Nessus est tr`s int´ressante, les premiers scans sont en g´n´ral e e e e surprenants, il faut pr´voir beaucoup de temps pour les analyser. Pour cette e raison, il est recommand´ d’effectuer les analyses en classifiant les serveurs et en e ´vitant de lancer des scans sur la globalit´ d’un r´seau (l’administrateur serait e e e alors noy´ sous un d´luge d’informations). e e

6.2

Exploiter les vuln´rabilit´s e e

Bien qu’il puisse ˆtre configur´ pour ˆtre intrusif, Nessus reste surtout un outil e e e de d´tection de vuln´rabilit´s. Des outils nettement plus agressifs sont ´galement e e e e disponibles, ils recensent et diffusent des m´thodes pour exploiter les failles cone nues. La suite de cette section pr´sente Metasploit et SecWatch.org qui peuvent e 34

6.2. Exploiter les vuln´rabilit´s e e sembler ambigus car ils vulgarisent des techniques d’intrusion. Le concept de base de ces outils est que si des pirates disposent d’outils simples pour attaquer, il est alors tr`s important que les administrateurs de r´seaux soient inform´s et r´actifs e e e e

6.2.1

Metasploit

Metasploit5 est une base de tests d’intrusions. Les exploits sont d´velopp´s sous e e forme de modules Perl, ils partagent un mˆme cadre comme dans l’exemple suivant e :

package Msf::Exploit::mssql2000_resolution; use base "Msf::Exploit"; use strict; use Pex::Text; my $advanced = { }; my $info = { ’Name’ => ’MSSQL 2000/MSDE Resolution Overflow’, ’Version’ => ’$Rev: 3818 $’, ’Authors’ => [ ’H D Moore <hdm [at] metasploit.com>’, ], ’Arch’ => [ ’x86’ ], ’OS’ => [ ’win32’, ’win2000’ ], ’Priv’ => 1, ’AutoOpts’ => { ’EXITFUNC’ => ’process’ }, ’UserOpts’ => { ’RHOST’ => [1, ’ADDR’, ’The target address’], ’RPORT’ => [1, ’PORT’, ’The target port’, 1434], }, ’Payload’ => { ’Space’ => 512, ’BadChars’ => "\x00\x3a\x0a\x0d\x2f\x5c", }, ’Description’ => Pex::Text::Freeform(qq{ This is an exploit for the SQL Server 2000 resolution service buffer overflow. This overflow is triggered by sending a udp packet to port 1434 which starts with 0x04 and is followed by long string terminating with a colon and a number. This module should work against any vulnerable SQL Server 2000 or MSDE install (pre-SP3). }),

5

http://www.metasploit.org

35

Chapter 6. D´tecter les vuln´rabilit´s e e e La derni`re version de Metasploit comporte 164 exploits, ils sont class´s par e e architecture, syst`me d’exploitation et application. Les param`tres principaux e e d’un exploit sont la machine cible (RHOST) et le port cible (RPORT), il convient en outre de stipuler une sentence (payload ) ` ex´cuter si la tentative d’intrusion a e est r´ussie. Les sentences sont d´velopp´es ind´pendamment des exploits, il existe e e e e donc, en g´n´ral, plusieurs sentences pour un mˆme exploit. Parmi les sentences e e e disponibles pour un exploit en environnement Linux, on peut citer les suivantes :

ex´cution d’un interpr´teur de commandes ; e e

ajout d’un utilisateur ;

ex´cution d’une commande ; e

d´marrage d’un tunnel SSH (reverse shell ). e

Metasploit propose plusieurs interfaces d’utilisation : msfconsole et msfcli en mode lignes de commandes et msfweb qui est adapt´e ` l’utilisation d’un navigateur e a Web. Les 3 exemples des figures 6.4, 6.5 et 6.6 ont ´t´ r´alis´s avec msfweb, ee e e ils montrent respectivement la s´lection des exploits de l’environnement Solaris e (figure 6.4), l’introduction des param`tres d’un exploit (figure 6.5) et la preuve de e l’intrusion (figure 6.6). L’exploit choisi ici ` titre d’exemple (Arbitrary Read File) ne propose pas de a choix de sentence car il ne s’agit pas d’une intrusion compl`te, mais simplement e d’un acc`s illicite ` des fichiers prot´g´s (/etc/shadow ici). e a e e Metasploit permet d’ajouter de d´velopper de nouveaux exploits, pour plus e d’informations consulter le contenu du r´pertoire sdk d’une installation. e 36

6.2. Exploiter les vuln´rabilit´s e e

Figure 6.4: Le choix des exploits avec msfweb 37

Chapter 6. D´tecter les vuln´rabilit´s e e e

Figure 6.5: Les param`tres de l’exploit solaris_kcms_readfile e 38

6.2. Exploiter les vuln´rabilit´s e e

Figure 6.6: Le r´sultat de l’exploit solaris_kcms_readfile e

39

Chapter 6. D´tecter les vuln´rabilit´s e e e

6.2.2

SecWatch.org

http://www.secwatch.org propose une archive des vuln´rabilit´s et des exploits e e connus (cf. figure 6.7).

Fig. 6.7 – Les exploits du mois de janvier 2007 40

6.3. Conclusion

6.3

Conclusion

Les outils pr´sent´s dans ce chapitre sont ` la disposition de tous, il est indispene e a sable que les administrateurs de r´seaux les connaissent. L’utilisation r`guli`re de e e e Nessus ne dispense pas de faire le tour des intrusions propos´es par Metasploit e ou SecWatch.org : la faille Arbitrary Read File pr´sent´e en exemple (cf. sece e tion 6.2.1) n’a pas ´t´ d´tect´e. Comme pr´cis´ en section 2.4, il est n´cessaire de ee e e e e e consulter journellement les avis et alertes diffus´s par le CERTA. e

41

Chapter 6. D´tecter les vuln´rabilit´s e e e

42

Chapitre 7

D´tecter les attaques e
Nessus permet de d´tecter des vuln´rabilit´s r´pertori´es, des outils tels Metasploit e e e e e montrent encore plus les risques encourus, mais comment ˆtre inform´ si ces outils e e (ou d’autres) servent lors de tentavives d’intrusions ? Les d´tecteurs d’intrusions r´pondent ` cette question, ils permettent de d´tecter e e a e des activit´s anormales sur un r´seau1 ou sur une machine2 . e e Les HIDS d´tectent les activit´s suspectes en effectuant des ´tudes comportee e e mentales (analyse des journaux du syst`me et des applications) ou en v´rifiant e e l’int´grit´ des fichiers ainsi que celle du noyau. Les NIDS agissent comme des e e sondes qui analysent tous les paquets pour les comparer ` une base de signatures a d’attaques connues et r´pertori´es. La suite de ce chapitre pr´sente snort, un des e e e NIDS les plus utilis´s. e

7.1

snort

snort3 est un NIDS d´velopp´ sous licence GPL par la soci´t´ Sourcefire4 . snort e e ee s’appuie sur une biblioth`que de signatures dont la distribution et la mise ` jour e a n´cessitent une souscription annuelle5 de 399 $. e snort capture et analyse les paquets qu’il voit passer et peut ˆtre utilis´ comme e e sniffer (avec ou sans ´criture dans un journal) ou comme NIDS. e Le fonctionnement de snort comme NIDS est bas´ un fichier de configuration e
Les NIDS (Network based Intrusion Detection System). Les HIDS (Host based Intrusion Detection System). 3 http://www.snort.org 4 http://www.sourcefire.com 5 La base des signatures est accessible gratuitement avec un diff´r´ d’un mois, comme dans e e le cas de Nessus (cf. 6.1), les administrateurs appr´cieront en fonction de la sensibilit´ des sites e e g´r´s si le d´lai est envisageable. e e e
2 1

43

Chapitre 7. D´tecter les attaques e (snort.conf) ainsi qu’une base de signatures (les r`gles). Parmi les options de e snort configurables dans snort.conf, on peut citer les suivantes : – HOME_NET : une liste des r´seaux ` surveiller ([10.1.1.0/24,192.168.1.0] par e a exemple) – DNS_SERVERS, HTTP_SERVERS, ... : une liste des serveurs ` surveiller. Il n’est a pas utile de traiter les attaques qui sont sans objets, i.e qui ciblent des machines n’h´bergeant pas le service attaqu´. e e – RULE PATH : le r´pertoire contenant la base des signatures e (/usr/local/etc/snort/rules par d´faut). e

7.1.1

Les r`gles de snort e

Les paquets captur´s par une sonde snort sont analys´s en fonction de r`gles qui e e e d´crivent des attaques ou des vuln´rabilit´s connues. Les r`gles dont l’utilisation e e e e est configurable dans snort.conf sont regroup´es par nature dans des fichiers e comme dans les exemples suivants : : – bad-traffic.rules : des signatures figurant du trafic qui ne devrait jamais apparaˆ sur n’importe quel r´seau ; ıtre e – web-php.rules : des signatures de scripts php r´put´s vuln´rables ; e e e – scan.rules : des signatures figurant les scanners (nmap, ...) ; – ... Les r`gles de snort sont ´crites dans un langage qui permet de d´crire un pae e e quet ` analyser. Une r`gle est divis´e en deux parties : la premi`re permet de a e e e s´lectionner les paquets cibl´s, la seconde indique le sous-ensemble du paquet ` e e a inspecter en d´tail ainsi que le message d’alerte ` g´n´rer si l’analyse est positive. e a e e L’exemple suivant est extrait de x11.rules qui ici g´n`re une alerte si un usage e e 6 est d´tect´ : de l’authentification MIT-MAGIC-COOKIE-1 e e

1 2 3 4

alert tcp $EXTERNAL_NET any -> $HOME_NET 6000 (msg:"X11 MIT Magic Cookie detected"; flow:established; content:"MIT-MAGIC-COOKIE-1"; reference:arachnids,396; classtype:attempted-user; sid:1225; rev:4;)

La ligne 1 correspond ` l’entˆte de la r`gle, elle s´lectionne les paquets ` analyser a e e e a de la mani`re suivante : e
6 Ce proc´d´ permet d’autoriser des clients X Window distants ` utiliser un serveur X en e e a partageant un clef. La clef est v´hicul´e en clair ... e e

44

7.1. snort – alert : l’action ` d´clancher si l’analyse est positive. Ici alert indique de a e g´n´rer une alerte dans le fichier alert. Par d´faut, le paquet sera aussi e e e journalis´ (d´marrer snort avec l’option -N pour supprimer la journalisation e e des paquets engendrant des alertes) ; – tcp : s´lection du protocole ; e – $EXTERNAL_NET : adresse IP source (cf. snort.conf) ; – any : port source ; – $HOME_NET : adresse IP destination (cf. snort.conf) ; – 6000 : port destination ; Les lignes 2,3 et 4 sont des options de la r`gle : e – msg : le message qui sera indiqu´ dans l’alerte ; e – content : le texte qui est recherch´ dans le contenu du paquet ; e – flow : le sens du traffic TCP ; – reference : des r´f´rences de la vuln´rabilit´ sur des sites (bugtraa, cve, ee e e nessus, arachnids, ...) d´di´s aux attaques ; e e Une documentation sur l’´criture des r`gles de snort est disponible dans le Snort e e Users Manual7

7.1.2

Comment placer la sonde snort

cf. section 5.2.2.

7.1.3

Utiliser snort

Le d´marrage de snort comme NIDS peut s’effectuer avec la ligne de commande e suivante qui indique un d´marrage comme daemon (NIDS), avec un fichier de e configuration situ´ dans /usr/local/etc/snort : e

snort -d -c /usr/local/etc/snort/snort.conf

Pour utiliser snort dans de bonnes conditions, il convient de d´cider quelles sont e les r`gles qui doivent ˆtre utilis´es. La configuration des r`gles s’effectue dans le e e e e fichier snort.conf, il faut commenter les r`gles inutiles. Par exemple, un site qui e n’exploite pas de serveurs IIS a int´rˆt ` ne pas g´n´rer d’alertes s’il re¸oit des ee a e e c attaques sur ce type de service.
7

http://www.snort.org/docs/snort manual/2.6.1/snort manual.pdf

45

Chapitre 7. D´tecter les attaques e Il convient ´galement de configurer une m´thode de propagation des alertes e e adapt´e aux administrateurs des r´seaux ` surveiller. Le fichier des alertes de e e a snort(/var/log/snort/alert) n’est pas de lecture ais´e (cf. figure 7.1), un mail e relatif ` chaque alerte peut tr`s rapidement s’av´rer inexploitable : une interface a e e de consultation exploitant le fichier des alertes est n´cessaire. e

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

[**] [1:2189:4] BAD-TRAFFIC IP Proto 103 PIM [**] [Classification: Detection of a non-standard protocol or event] [Priority: 2] 01/18-15:20:08.834049 156.60.18.254 -> 224.0.0.13 PIM TTL:1 TOS:0xC0 ID:55939 IpLen:20 DgmLen:38 [Xref => http://cgi.nessus.org/plugins/dump.php3?id=11791] [Xref => http://cve.mitre.org/cgi-bin/cvename.cgi?name=2003-0567] [Xref => http://www.securityfocus.com/bid/8211] [**] [1:1226:4] X11 xopen [**] [Classification: Unknown Traffic] [Priority: 3] 01/19-13:17:24.608929 156.60.18.19:45985 -> 156.60.18.22:6000 TCP TTL:63 TOS:0x0 ID:35693 IpLen:20 DgmLen:64 DF ***AP*** Seq: 0x3730914D Ack: 0x5BCA83A1 Win: 0x5B4 TcpLen: 32 TCP Options (3) => NOP NOP TS: 1855134245 93899245 [Xref => http://www.whitehats.com/info/IDS395]

Fig. 7.1 – Le fichier des alertes de snort

7.1.3.1

G´rer les alertes de snort avec BASE e

BASE8 (Basic Analysis and Security Engine) est une interface de consultation des alertes de snort. BASE effectue un tri des alertes et propose de s´lectionner e les alertes du jour, les alertes uniques, ... Les figures 7.2 et 7.3 montrent respectivement la page d’accueil d’un service BASE et un ´cran de visualisation des alertes e uniques.

8

http://base.secureideas.net/

46

7.1. snort

Fig. 7.2 – La page d’accueil d’un service BASE

47

Chapitre 7. D´tecter les attaques e

Fig. 7.3 – Les alertes uniques

7.1.3.2

snort et les faux positifs

Le probl`me principal pos´ par l’exploitation d’une sonde snort est l’analyse e e des alertes positionn´es. Quelles sont les alertes justifi´es ? Comment ´liminer les e e e alertes intempestives (les faux positifs) ? L’utilisation d’une interface de consultation des alertes telle que BASE procure 48

7.1. snort un premier ´l´ment de confort : les alertes sont tri´es et consultables ind´penee e e damment de leurs occurences. Il reste tout de mˆme ` v´rifier l’importance des e a e faits signal´s, cette op´ration n’est pas automatisable, elle doit ˆtre effectu´e avec e e e e pr´cision. e L’exemple suivant, issu du fichier contenant des r`gles ciblant les attaques sur e des scripts CGI, illustre la part d’investigation laiss´e aux administrateurs : une e alerte est remont´e, elle indique qu’un des serveurs Web surveill´s a re¸u une e e c requˆte d’acc`s ` sendmessage.cgi. BASE pr´cise la r´f´rence de la vuln´rabie e a e ee e lit´ (cve-2001-1100) : sendmessage.cgi in W3Mail 1.0.2, and possibly other CGI e programs, allows remote attackers to execute arbitrary commands via shell metacharacters in any field of the ’Compose Message’ page.. Si W3Mail 1.0.2 est en service alors il s’agit peut ˆtre d’une attaque, dans le cas contraire l’alerte e est un faux positif. Plus g´n´ralement, on notera qu’un appel ` un script nomm´ e e a e sendmessage.cgi engendrera une alerte qu’il fasse partie ou pas de W3Mail 1.0.2. ` A l’issue d’une alerte, lorsque les investigations sont termin´es, l’administrateur e peut s’il le juge n´cessaire, commenter les r`gles qui g´n`rent des alertes non e e e e justifi´es. e 7.1.3.3 Conclusion

a ` suivre ...

49

Chapitre 7. D´tecter les attaques e

50

Chapitre 8

D´tection post intrusion e
Lorsqu’une intrusion r´ussi, le pirate obtient des droits priv´l´gi´s sur la machine e ee e cible (super utilisateur). La suite des op´rations d´pend alors du but recherch´, e e e parmi les actions les plus souvent op´r´es, on peut citer les suivantes : ee – d´sarmer les anti-virus et autres outils de s´curit´ qui peuvent ˆtre install´s ; e e e e e – installer des certificats dans la liste des certificats de confiance des navigateurs ; – utiliser la machine corrompue comme ´metteur de spams ou comme scanneur e nmap ; – ... Les rootkits sont des outils prˆts ` l’emploi qui permettent d’automatiser les e a op´rations post intrusion. Le but est toujours le mˆme : rendre furtives et persise e tantes les op´rations malveillantes op´r´es par les pirates. La suite de ce chapitre e ee pr´sente par l’exemple les techniques utilis´es par les rootkits pour Linux ainsi que e e quelques d´tecteurs de pr´sence de rootkits. e e

8.1

Les rootkits

Les rootkits font partie de l’Internet souterrain, ils ne s’affichent ´videmment e pas toujours. Une liste non exhaustive et non ` jour peut toutefois ˆtre consult´e a e e par http://packetstormsecurity.org/UNIX/penetration/rootkits/index.html. Le site http://www.eviltime.com/ diffuse ´galement les derni`res versions de quelques e e rootkits, on peut notamment y trouver adore-ng et suckit. Plusieurs techniques sont utilis´es par les rootkits pour dissimuler des processus e ou des r´pertoires, parmi celles-ci citons les suivantes : e 51

Chapitre 8. D´tection post intrusion e – le remplacement des commandes usuelles utilis´es par les administrateurs e (ls, ps, netstat, top, ...) par des versions masquant la r´alit´ ; e e – la modification de certaines biblioth`ques partag´es utilis´es dynamiquement e e e par les commandes de base ; – la modification ou l’ajout de modules au noyau du syst`me. Ce proc´d´ est e e e le plus redoutable car il donne acc`s ` l’espace m´moire g´r´ par le noyau e a e ee (kerneland ).

8.1.1

adore-ng

adore-ng est un rootkit pour Linux qui permet d’ajouter des fonctionnalit´s e cach´es au noyau. adore-ng peut ˆtre utilis´ avec des noyaux 2.4 ou 2.6 et procure e e e les fonctionnalit´s suivantes : e

– masquage de fichiers et r´pertoires : les commandes telles ls ne montrent pas e les fichiers et r´pertoires d´sign´s par le hacker ; e e e – masquage de processus : les commandes telles top, ps, ... ne montrent pas les processus d´sign´s par le hacker ; e e – mise en place de portes d´rob´es ; e e – nettoyage des traces.

La figure 8.1 montre adore-ng en action via la commande ava qui est ici utilis´e e pour cacher un processus (la figure 8.2 montre la d´tection du processus cach´ par e e zeppoo). 52

8.2. Les anti rootkits

Fig. 8.1 – adore-ng cache un processus

Une fois install´ (cf. insmod de la figure 8.1), adore-ng permet ´galement de e e cacher des fichiers ou r´pertoires (ava h) ou de lancer des commandes en passant e root (ava r).

8.2
8.2.1

Les anti rootkits
Zeppoo

zeppoo1 est un outil qui permet de d´tecter des rootkits ´voluant en mode utie e lisateur (userland ) ou en mode noyau (kerneland ). Pour ce faire il s’appuie principalement sur une base de signatures du syst`me sain (mode utilisateur) et sur e un parcours de /dev/kmem (la m´moire utilis´e par le noyau) pour comparer les e e processus pr´sents avec ceux observ´s dans le pseudo r´pertoire /proc (un proe e e cessus cach´ apparaˆ e ıtra dans le parcours de /dev/kmem mais ne sera pas pr´sent e dans /proc)..

1

http://zeppoo.net

53

Chapitre 8. D´tection post intrusion e

Fig. 8.2 – zeppoo d´tecte un processus cach´ par adore-ng. e e

54

Chapitre 9

Conclusion

55

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->