S´ecuriser les r´eseaux par la connaissance des usages

  • Upload
    nfonkwi

  • View
    12

  • Download
    6

Embed Size (px)

Citation preview

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Securiser les reseaux par la connaissance des usages

    Francois Dagorn30 aout 2007

    Resume

    Ce document est un tutoriel sur lamelioration de la securite dun reseau obtenue

    par une meilleure connaissance des usages. Il est base sur un retour dexperience dans la

    gestion au quotidien dun petit reseau Ethernet TCP/IP (commute et segmente) protege

    en amont par un pare-feu.

    Commentaires et remarques a prenom.nom at univ-rennes1 point fr.

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Table des matieres

    Table des matieres

    1 Introduction 1

    2 Les principales attaques provenant du reseau 3

    2.1 Les attaques sur les protocoles IP, TCP et UDP . . . . . . . . . . 3

    2.1.1 Le deni de service . . . . . . . . . . . . . . . . . . . . . . . 3

    2.1.2 Lusurpation didentite. . . . . . . . . . . . . . . . . . . . . 4

    2.2 Les attaques sur les protocoles applicatifs, les donnees quils trans-

    portent et les applications qui les mettent en uvre . . . . . . . . 4

    2.2.1 Attaque sur HTTP. . . . . . . . . . . . . . . . . . . . . . . 5

    2.2.2 Attaques sur Apache. . . . . . . . . . . . . . . . . . . . . . 5

    2.2.3 Attaque sur FireFox . . . . . . . . . . . . . . . . . . . . . . 5

    2.3 Les attaques sur les systemes dexploitation ou leurs composants . 6

    2.4 Premieres mesures a prendre . . . . . . . . . . . . . . . . . . . . . 6

    3 Les outils pour espionner 7

    3.1 Rediger des filtres de capture pour tcpdumpet Ethereal. . . . . . 8

    3.2 tcpdump. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    i

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Table des matieres

    3.2.1 Un exemple dutilisation de tcpdump . . . . . . . . . . . . . 9

    3.3 Ethereal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    3.3.1 Un exemple dutilisation dEthereal . . . . . . . . . . . . . 10

    3.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    4 Scanner les ports 15

    4.1 Nmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    4.1.1 Les differents types de scande Nmap . . . . . . . . . . . . . 16

    4.1.2 Quelques exemples descans . . . . . . . . . . . . . . . . . . 17

    4.1.2.1 Unscansur un serveur ouvert . . . . . . . . . . . 17

    4.1.2.2 Unscansur un serveur protege par un pare-feu . 18

    4.2 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    5 Visualiser lutilisation du reseau avec ntop 21

    5.1 Presentation generale. . . . . . . . . . . . . . . . . . . . . . . . . . 21

    5.2 Deployer ntop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    5.2.1 Quelques options de demarrage de ntop . . . . . . . . . . . 22

    5.2.2 Comment placer la sonde . . . . . . . . . . . . . . . . . . . 22

    5.2.3 Quelques exemples dutilisation de ntop . . . . . . . . . . . 23

    6 Detecter les vulnerabilites 29

    6.1 Scanner les vulnerabilites avecNessus . . . . . . . . . . . . . . . . 29

    6.1.1 Quelques exemples dutilisation avecNessus . . . . . . . . 30

    6.1.2 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    ii

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Table des matieres

    6.2 Exploiter les vulnerabilites. . . . . . . . . . . . . . . . . . . . . . . 34

    6.2.1 Metasploit. . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    6.2.2 SecWatch.org. . . . . . . . . . . . . . . . . . . . . . . . . . 40

    6.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    7 Detecter les attaques 43

    7.1 snort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    7.1.1 Les regles de snort . . . . . . . . . . . . . . . . . . . . . . . 44

    7.1.2 Comment placer la sonde snort . . . . . . . . . . . . . . . . 45

    7.1.3 Utiliser snort . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    7.1.3.1 Gerer les alertes de snort avec BASE . . . . . . . 46

    7.1.3.2 snort et les faux positifs. . . . . . . . . . . . . . . 48

    7.1.3.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . 49

    8 Detection post intrusion 51

    8.1 Les rootkits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    8.1.1 adore-ng. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    8.2 Les antirootkits . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    8.2.1 Zeppoo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    9 Conclusion 55

    iii

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Table des matieres

    iv

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 1

    Introduction

    La securisation dun reseau Ethernet TCP/IP dans le monde academique reposeen general sur la mise en uvre dun pare-feu ainsi que sur le cloisonnement desflux a laide de VLANs. Le pare-feu regule les flux depuis et vers lexterieur, lesVLANs gerent les flux internes. La configuration des pare-feux ainsi que celle desVLANs seffectue a laide de regles qui reposent sur lidee que ce qui nest pasexplicitement autorise est interdit. Au fil du temps, les administrateurs du reseaumettent a jour les regles et des doutes apparaissent sur letancheite du dispositif :

    des portes ne sont-elles pas ouvertes a tort?

    comment verifier que lutilisation du reseau est conforme a la charte dusage

    signee par les utilisateurs ? et surtout, comment detecter les intrusions potentielles ?

    Les pare-feux et les elements responsables de la gestion des VLANs produisentdes fichiers devenements (logs) en general tres volumineux. Les consulter est utileen phase de mise au point de nouvelles regles, ils sont par contre difficilementexploitables pour verifier lefficacite des regles de securite positionnees. Des dispo-sitifs supplementaires sont donc necessaires pour :

    verifier les ports ouverts sur lensemble des machines du reseau ;

    visualiser le trafic (en differents points) par machines, protocoles, ports ;

    verifier la vulnerabilite des services installes ;

    detecter les tentatives dattaques ;

    detecter les eventuels intrus.

    Apres avoir effectue le point sur les principales attaques provenant du reseau,nous presentons ici differents outils deployes pour repondre aux questions posees ci-dessus. Ces outils procurent a ladministrateur du reseau une bonne connaissance

    1

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 1. Introduction

    des usages (souhaites ou non) et lui permettent de faire converger la politique desecurite souhaitee et son implementation effective.

    2

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 2

    Les principales attaques

    provenant du reseau

    Pour proteger un reseau, il faut connatre les principales attaques qui peuventlaffecter, la suite de ce chapitre les presente brievement.

    2.1 Les attaques sur les protocoles IP, TCP et UDP

    Les attaques sur les protocoles TCP/IP tentent dexploiter les concepts de basedes couches reseau et transport. Elles ont pour but de bloquer le fonctionnement

    dun reseau (deni de service) ou dusurper lidentite dune machine.

    2.1.1 Le deni de service

    Les attaques de type deni de service ont pour but de consommer toutes lesressources dun reseau cible pour empecher son fonctionnement normal. Ces at-taques sont operees par des groupes qui conjuguent leurs efforts pour le plaisirde nuire mais egalement par des organisations mafieuses qui demandent des ran-cons. Parmi un tres grand nombre dattaques en deni de service on peut citer lessuivantes :

    les TCP SYN floodqui exploitent le mode connecte de TCP : pour eta-blir une connexion, une machine source emet un paquet SYN (synchronize)auquel la machine destination repond par un paquet SYN-ACK (synchronizeacknowledment). Dans une situation normale, la machine source emet alorsun paquet ACK (acknowledgment) et la connexion est etablie. Le schemadune attaque TCP SYN est de supprimer la derniere etape (envoi du paquetACK), la machine cible lattend alors pendant un certain temps. En repetantloperation a grande echelle, on sature la machine cible en lui faisant atteindre

    3

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 2. Les principales attaques provenant du reseau

    le nombre maximum de connexion TCP quelle peut supporter : elle ne peutplus fonctionner.

    le ping of deathdont le principe est denvoyer des paquets ICMP dont la

    taille est superieure a la taille maximale dun paquet IP, certains equipementsse bloquent alors (ils sont en voie de disparition).

    2.1.2 Lusurpation didentite

    Lusurpation didentite IP (IP spoofing) est basee sur le fait que certains servicesutilisent ladresse IP comme parametre de confiance (rlogin, allow fromdapache,...). Des quune machine cliente dispose dune connexion sur un serveur via uneadresse IP de confiance, lattaquant essaie dusurper son adresse IP. Lattaquantdoit au prealable reduire le vrai client au silence en le saturant au par une attaque

    de type

    deni de service

    (SYN flood par exemple). Il doit ensuite tenter dexploi-ter une caracteristique du protocole TCP (numeros de sequences et dacquittementqui ne sont pas toujours aleatoires) en ouvrant une session TCP usurpant ladresseIP de la machine cliente. Lattaquant peut ensuite, sil a reussi a deviner lalgo-rithme dattribution des numeros de sequences, se faire passer la machine cliente.

    Cette technique est evidemment tres difficile a mettre en uvre, certains sys-temes qui nutilisent pas un sequencement aleatoires y sont cependant toujoursvulnerables.

    2.2 Les attaques sur les protocoles applicatifs, les don-

    nees quils transportent et les applications qui les

    mettent en uvre

    Ces attaques sont les plus nombreuses car elles sont parfois tres simples a de-ployer. Elles ciblent les vulnerabilites des protocoles applicatifs (SMTP, HTTP,...) ou de leurs implementations mais egalement les applications quils permettentdutiliser (les scripts CGI, les applications PHP, ...). On peut aussi classer ici lesattaques sur les applications, notamment celles portant sur les navigateurs Web.

    Lattaquant peut, en fonction des attaques, executer du code malveillant, prendrele controle du systeme ou engendrer un deni de service. Les trois exemples suivantsmettent en evidence des failles exploitables du protocole HTTP, du serveur HTTPApache et du navigateur FireFox. Les deux derniers exemples ont ete choisis car ilssont relatifs a des outils tres utilises dans le monde universitaire. Il est evident quedautres outils encore plus utilises par ailleurs sont encore plus vulnerables (Mi-crosoft Internet Explorer notamment) cf. SANS Top-20 Internet Security Attacktargets (2006 annual Update)1.

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

    4

    http://www.sans.org/top20/http://www.sans.org/top20/http://www.sans.org/top20/http://www.sans.org/top20/
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    2.2. Les attaques sur les protocoles applicatifs, les donnees quils transportent etles applications qui les mettent en uvre

    2.2.1 Attaque sur HTTP

    La methode TRACE du protocole HTTP/1.1 a ete specifiee pour faciliter le

    developpement dapplication au dessus de HTTP. Elle permet de visualiser dansle corps dune reponse, toutes les en-tetes qui sont transmises lors dune requeteHTTP. Cette fonctionnalite est pratique dans une phase de mise au point pourverifier ce que lapplication distante recoit. Malicieusement utilisee elle permet aun attaquant de visionner des cookies, des authentification de type auth-type :basicencodees en base 64 (en clair), ...

    Cette faille peut etre exploitee de la maniere suivante :

    lattaquant poste un mail a destination de lattaque (en usurpant ladressedun collegue de celui-ci de preference) ;

    lattaque consulte ce mail via une interface de type WebMail ;

    le courrier contient une piece jointe qui va faire executer un code JavaScriptqui engendre une requete HTTP TRACE ;

    le script effectue une requete HTTP sur le serveur de lattaquant en passanten parametre le resultat de la requete TRACE effectuee sur le serveur delattaque ;

    en consultant son logdhttpd, lattaquant visualise les cookies, les champsauthen base 64, ...,

    2.2.2 Attaques sur Apache

    Le serveur HTTP Apache est compose dun corps principal auquel sa joutentdivers modules peripheriques optionnels. De facon assez reguliere, des failles sontrepertoriees dans des modules, telles celles-ci qui permettent lexecution de codearbitraire sur le serveur :

    le module mod rewrite des branches 1.3.8, 2.0.46 et 2.2.0 permet en fonctiondes regles decritures (les Rewrite rules) dexecuter du code arbitraire ;

    le module mod tcl qui permet de faire executer des scripts developpes enTCL est vunerable dans sa version 1.0. Il autorise dexecuter a distance ducode arbitraire.

    2.2.3 Attaque sur FireFox

    Le probleme le plus recurrent concerne lactivation des scripts JavaScript, celle-cipermet, dans certains cas, lexecution de code arbiraire comme lindique lavis duCERTA du 13 novembre 2006 : il a ete demontre quil etait possible de modifierdes objets scripts en cours dexecution. Cette possibilite conduit potentiellement a

    5

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 2. Les principales attaques provenant du reseau

    lexecution de code JavaScript arbitraire. Cette fonctionalite touche le moteur dunavigateur qui est aussi utilise dans le lecteur de mail qui devient ainsi vulnerablesi la fonctionalite JavaScript est activee.

    2.3 Les attaques sur les systemes dexploitation ou

    leurs composants

    Les systemes dexploitation et leurs composants peuvent egalement comporterdes vulnerabilites qui peuvent etre exploitees a distance. Plusieurs cas ont etesignales concernant des DLL de Windows, notamment a propos de la visualisationdimages WMF permettant lexecution de code arbitraire. Pour exploiter il suffitde placer une image WMF corrompue sur un serveur Web et dattendre les clientsutilisant la DLL ciblee.

    Les noyaux Linux peuvent egalement comporter des failles qui sont accessiblesaux utilisateurs disposant dun acces sur la machine cible. Combinees avec uneattaque sur un service reseau (httpd par exemple), elles peuvent donner des accesprivilegies a un attaquant, ou provoquer un deni de service comme dans le cas delavulnerabilite du noyau Linux avec IPv62 publiee par le CERTA le 07 novembre2006.

    2.4 Premieres mesures a prendre

    Pour proteger un reseau il convient de sinformer tres regulierement sur sesvulnerabilites potentielles. Il revient aux differentes communautes dutilisateursde lInternet de sorganiser en fonction du niveau de risques encourus. En France,les universites disposent des services duCERT-RENATER3 et de son reseau decorrespondants de securite de sites. Plus generalement, en France, leCERTA4

    (Centre dExpertise Gouvernemental de Reponse et de Traitement des Attaquesinformatiques) diffuse journellement des alertes et des avis de securite qui decriventles risques ainsi que les mesures a prendre immediatement.

    Sagissant des trois exemples decrits ci-dessus, dans les avis du CERTA on de-couvre quil convient respectivement de ne plus autoriser la methode TRACE, demettre a jour Apache et dinstaller la version Firefox 1.5.0.8.

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

    6

    http://www.certa.ssi.gouv.fr/site/CERTA-2006-AVI-478/index.htmhttp://www.renater.fr/spip.php?rubrique19http://www.certa.ssi.gouv.fr/site/index.htmhttp://www.certa.ssi.gouv.fr/site/index.htmhttp://www.renater.fr/spip.php?rubrique19http://www.certa.ssi.gouv.fr/site/CERTA-2006-AVI-478/index.htm
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 3

    Les outils pour espionner

    Pour comprendre le fonctionnement dun reseau ou pour mesurer les risques liesa lecoute, lutilisation des renifleurs (sniffers) est recommandee. La suite de cechapitre presente tcpdump1 et Ethereal2, deux des renifleurs les plus utilises.

    En fonction de lendroit ou le renifleur est positionne, lecoute sera plus ou moinsinteressante. Dans un reseau commute, par defaut, on necoutera que le traficdestine a la machine hebergeant le sniffer3 (les echanges unicastou elle apparatainsi que lesbroadcastde son domaine de diffusion). Raccorde a un concentrateur(hub), le snifferecoutera lensemble du trafic destine a toutes les machines.

    Pour fonctionner normalement, tcpdumpet Etherealnecessitent de placer lin-terface decoute en mode indiscret (promiscuous), ceci requiert des privileges dad-

    ministrateur sur la machine qui les heberge (par defaut une interface reseau nesinteresse quau trafic qui lui est destine, en mode indiscret, tout le trafic estespionne).

    tcpdumpet Etherealutilisent la bibliotheque portable libpcapqui permet decapturer des paquets sur une interface reseau. Le principe des 2 outils est le meme :capturer des paquets en tenant compte dun filtre de capture potentiellement po-sitionne par lutilisateur. Ils fonctionnent tous deux sous Windows XPet Linux,tcpdumpest utilisable en mode ligne uniquement tandis queEtherealprocure uneinterface graphique agreable.

    1http://www.tcpdump.org2http://www.ethereal.com/3Sur certains commutateurs, des ports peuvent etre configures p our repliquer le trafic dautres

    ports (cf. port monitoringchez Cisco par exemple.

    7

    http://www.tcpdump.org/http://www.ethereal.com/http://www.ethereal.com/http://www.tcpdump.org/
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 3. Les outils pour espionner

    3.1 Rediger des filtres de capture pour tcpdumpet Ethe-

    real

    Les filtres de captures permettent de restreindre le nombre de paquets capturesen ciblant precisement le type de recherche a effectuer. La notification utiliseepour specifier des filtres de captures permet de selectionner des reseaux, des nomsde machines, des protocoles et des numeros de ports. Les differents elements dunfiltre peuvent etre combines logiquement (and, or, not) comme dans les exemplessuivants :

    net 148.65.13.0 mask 255.255.255.0

    host www.machin.fr: un nom de machine a resoudre ou un numero IP ;

    tcp: on cible ici uniquement les paquets TCP. Les autres valeurs possibles

    incluentudp, 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 saufles broadcast, le multicast, les paquets ICMP et les paquets ARP ;

    3.2 tcpdump

    Les options de demarrage de tcpdumpsont les suivantes :

    tcpdump [ -adeflnNOpqRStuvxX ] [ -c nombre de paquets ]

    [ -C taille du fichier de capture ] [ -F fichier ]

    [ -i interface ] [ -m module ] [ -r fichier ]

    [ -s nombre doctets ] [ -T type ] [ -w fichier ]

    [ -E algo:secret ] [ expression ]

    Parmi les options les plus usuelles de tcpdumpon peut citer les suivantes :

    -c nombre de paquetsqui arretera la capture lorque le nombre de paquets in-dique sera atteint ;

    -w fichierpour ecrire les paquets captures dans un fichier ;-xpour imprimer les paquets captures en codage hexadecimal ;

    -Xpour imprimer les paquets captures en ASCII ;

    -s nombre doctetspris en compte dans chaque paquets (68 par defaut). Enindiquant 0, on stipule quil faut utiliser le nombre doctets necessaires pourcapturer la totalite du contenu des paquets.

    expression correspond a un filtre redige comme indique en section3.1

    8

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    3.2. tcpdump

    3.2.1 Un exemple dutilisation detcpdump

    /usr/sbin/tcpdump -x -X -s 0 host www.google.frtcpdump: 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

    0x0000: 000b 4668 a600 0007 e9eb aadc 0800 4500 ..Fh..........E.

    0x0010: 003c 2c93 4000 4006 4a35 943c 0a16 480e . 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 .(,.@[email protected]. 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..User-

    0x0060: 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

    Lexemple precedent est une trace des echanges entre un navigateur WWW etun serveur HTTP. Le premier paquet est letablissement de la connexion TCPentre le client et le serveur (emission dun paquet SYN marque du drapeau S partcpdump). Le second paquet est lacceptation de la connexion par le serveur quiemet un paquet SYN-ACK a destination du client. Le troisieme paquet est lemis-sion dun paquet ACK par le client pour valider son acceptation de la connexion. Le

    quatrieme paquet TCP marque le debut de la premiere requete HTTP (GET /).

    9

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 3. Les outils pour espionner

    3.3 Ethereal

    En dehors de son interface dusage graphique (tres riche), Etherealse dis-

    tingue de tcpdumppar le tres grand nombre de protocoles quil interprete (plusde 500 protocoles, dont BitTorrent, CUPS, HTTP, ICQ, IMAP, LDAP, NTP ...cf.http://www.ethereal.com/docs/dfref/). Parmi les principales fonctionnalitesdEtherealon peut citer les suivantes :

    adaptation a differentes technologie de reseaux locaux (Ethernet, FDDI, To-ken Ring, 802.11, ...) ;

    filtrage des paquets en capture et impression (avec personnalisation de lutilisationde la couleur) ;

    suivi de session TCP ;

    creation de statistiques et de graphes (nombre de paquets, nombre de re-quetes, ...).

    3.3.1 Un exemple dutilisation dEthereal

    Les figures suivantes presentent Etherealen fonctionnement, lutilisateur a de-mande de tracer a laide dun filtre de capture (port 80). A lissue de la capture,il a selectionne un paquet TCP qui transporte une requete HTTP. Il a en outredemande linterpretation du protocole HTTP (figure3.1). La figure3.2montre lerendu loptionFollow TCP Stream.

    10

    http://www.ethereal.com/docs/dfref/http://www.ethereal.com/docs/dfref/
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    3.3. Ethereal

    Figure 3.1: Etherealcapturant avec un filtre port 80

    11

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 3. Les outils pour espionner

    Figure 3.2: loptionFollow TCP streamdEthereal

    3.4 Conclusion

    Linteret de ces outils pour un administrateur de reseau est manifeste. Ils sontpar contre tres dangereux lorsque des personnes mal intentionnees les utilisent.Compte tenu de leur capacite a interpreter en clair des protocoles aussi repandu

    que HTTP, POP, IMAP, LDAP, ... il est evident que lusage des versions securiseesHTTPS, POPS, IMAPS, LDAPS, ... est fondamental.

    On rappelera aussi quen France, la CNIL (Commission Nationale de lInformatiqueet des Libertes) encadre le role des administrateurs informatiques, le texte ci-dessous est extrait du guide pratique pour les employeursde la CNIL4 :

    De meme, les administrateurs de reseaux et systemes, generalement tenus au

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

    12

    http://www.cnil.fr/fileadmin/documents/La_CNIL/publications/CNIL_GuideTravail.pdfhttp://www.cnil.fr/fileadmin/documents/La_CNIL/publications/CNIL_GuideTravail.pdfhttp://www.cnil.fr/fileadmin/documents/La_CNIL/publications/CNIL_GuideTravail.pdf
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    3.4. Conclusion

    secret professionnel ou a une obligation de discretion professionnelle, ne doiventpas divulguer des informations quils auraient ete amenes a connatre dans le cadrede leurs fonctions, et en particulier lorsque celles-ci sont couvertes par le secret

    des correspondances ou relevent de la vie privee des utilisateurs et ne mettent encause ni le bon fonctionnement technique des applications, ni leur securite, nilinteret de lentreprise. Ils ne sauraient non plus etre contraints de le faire, saufdisposition legislative particuliere en ce sens.

    13

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 3. Les outils pour espionner

    14

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapter 4

    Scanner les ports

    Compte tenu de la vulnerabilite potentielle des protocoles, des applications etdes systemes dexploitation (cf section2.2et section2.3), il est tres importantquun administrateur ait une parfaite connaissance des services qui fonctionnentsur lensemble du parc de machines quil gere. Les scanners de ports sont des outilsde decouverte automatique des services disponibles. Ils permettent dexaminerlensemble des machines dun reseau et produisent des rapports de syntheses tresprecis.

    Comme dans le cas des renifleurs (cf. chapitre3), ces outils sont egalementtres interessants pour les personnes mal intentionnees. Ils permettent a distance,de tenter de decouvrir quels sont les services installes, quels sont les systemes

    dexploitation deployes, ... Le scanner de ports est un des outils de base despirates informatiques.

    La suite de ce chapitre est consacree aNmap1 (Network Mapper) un des scannersde ports les plus utilises.

    4.1 Nmap

    Nmappeut etre utilise pour scanner une machine, un sous-ensemble ou la totalitedun reseau, et fournit un rapport danalyse dont la table des ports interessantsest lelement essentiel. Lorsquune machine est accessible, Nmapaffecte un statutaux ports scannes, il peut prendre les valeurs suivantes :

    ferme : le port est accessible mais nest pas en service (il ny a pas dapplicationa lecoute) ;

    filtre: le port est filtre par un dispositif de controle (pare-feu, ACLs derouteurs). Nmapne peut pas determiner sil y a effectivement un service a

    1http://insecure.org/nmap/

    15

    http://insecure.org/nmap/http://insecure.org/nmap/
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapter 4. Scanner les ports

    lecoute ;

    ouvert: un service utilise ce port et repond aux sollicitations ;

    ouvert ou filtre: Nmapest incapable de determiner si le port est ouvertou filtre. Cet etat se presente avec certains types danalyses (cf. section4.1.1) et depend aussi de la configuration des pare-feux rencontres (que font-ils lorsque un paquet est indesirable ? en general il ne repondent pas (filtredonc), dans certains cas ils emettent un paquet RST, qui a emis le paquet RSTune application ou un pare-feu ?) ;

    non filtre: Nmapest incapable de determiner si le port est ouvert ou ferme.Cet etat se presente uniquement avec le type danalyse ACK(cf. section4.1.1);

    ferme ou filtre: Nmapest incapable de determiner si le port est fermeou filtre. Cet etat se presente uniquement avec le type danalyse Idle(cf.section4.1.1).

    4.1.1 Les differents types de scan de Nmap

    Nmappermet deffectuer des scansen utilisant differentes techniques issues deletude du comportement des machines respectant leRFC 7932 (TCP). Parmi ladouzaine de techniques de scanconnues, on peut citer les suivantes :

    SYN Stealth scan: le scanSYN furtif est celui propose par defaut. Il est

    tres rapide car il neffectue pas une connexion TCP complete. Nmapemet unpaquet sur le port cible et attend la reponse qui peut etre :

    un paquet SYN/ACK qui indique que le port est ouvert ;

    un paquet RST qui indique que le port est ferme ;

    pas de reponse si le port est filtre.

    Dans tous les casNmapneffectue pas la connexion complete et emet un paquetRST pour fermer la connexion. Cest pourquoi ce type descanest egalementappele demi-ouvert (half open scan).

    Connect scan : le scanle plus anodin. Il effectue un appel systemeconnect()et se comporte donc comme un client TCP normal. Il ne necessite pas dedroits particuliers (contrairement auSYN Stealth scan) mais son executionest plus lente ;

    UDP port scan: le scandes ports UDP ;

    consulter la documentation de tous les types de scansurhttp://insecure.org/nmap/man/fr/man-port-scanning-techniques.html.

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

    16

    http://www.rfc-editor.org/rfc/rfc793.txthttp://insecure.org/nmap/man/fr/man-port-scanning-techniques.htmlhttp://insecure.org/nmap/man/fr/man-port-scanning-techniques.htmlhttp://www.rfc-editor.org/rfc/rfc793.txt
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    4.1. Nmap

    4.1.2 Quelques exemples de scans

    Les exemples suivants utilisent nmapfe, linterface X-Window de la commande

    Nmap.

    4.1.2.1 Un scansur un serveur ouvert

    Figure 4.1: Un scansur un serveur ouvert

    Le resultat de ce Connect scansur un serveur non protege par un pare-feurevele la version dApache utilisee (il est donc necessaire de rendre Apache plus

    17

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapter 4. Scanner les ports

    furtif3). Par ailleurs on peut constater quun service SSH existe et que les servicesrsh, rloginne sont pas desarmes (il faut le faire).

    4.1.2.2 Un scan sur un serveur protege par un pare-feu

    Figure 4.2: Unscansur un serveur protege par un pare-feu

    Lexemple de la figure4.2montre le resultat dun SYN Stealth scansur unserveur qui heberge un service Web ouvert et dautres services filtres. On noteraque malgre la selection de loption Version probe(afficher les versions de serveurs),Nmap ne peut indiquer quelle est la version dApache utilisee. Dans un bon reflexe,ladministrateur du serveur WWW a configure de masquer cette information.

    3ServerTokens Prodet ServerSignature offdans le fichier httpd.conf

    18

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    4.2. Conclusion

    4.2 Conclusion

    Les scanners de ports sont des outils de base pour les pirates, il doivent donc letre

    aussi pour les administrateurs de reseaux. Ceux-ci doivent soumettre reguliere-ment les reseaux quils gerent a une analyse complete. Notamment apres linstallationde toute nouvelle machine (des services inutiles peuvent etre ouverts) ou pour veri-fier que les bonnes resolutions initiales sont toujours effectives.

    Lusage dun scanner de ports (tel Nmap) ameliore la securite des reseaux car ilpermet aux administrateurs de suivre tres precisemment letat des services ouverts,cest un element important pour matriser les usages.

    19

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapter 4. Scanner les ports

    20

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapter 5

    Visualiser lutilisation du

    reseau avec ntop

    Une fois la politique de securite deployee (pare-feu, access-listsde VLAN, ...),apres que les regles dusages aient ete maintes fois rappelees aux utilisateurs, il estimportant de pouvoir visualiser lusage courant du reseau. La suite de ce chapitrepresententop1 qui repond a cet imperatif.

    5.1 Presentation generale

    ntopest un outil de mesure et de caracterisation du trafic sur un reseau. Ilfonctionne en temps reel et montre lusage courant du reseau via une interfaceWeb. ntoputilise la bibliotheque portable libpcap(commeetherealettcpdump)pour capturer les paquets sur une ou plusieurs interfaces reseaux.

    ntoputilise les couches 2 et 3 pour presenter par machines, une synthese detous les protocoles utilises (TCP, UDP, ICMP, ICMPv6, DLC, IPX, Decnet, (R)ARP,AppleTalk, NetBios, OSI, IPv6, STP, IPSEC, OSPF, IGMP). Dans le cas specifiquedu protocole IP, le trafic est caracterise par protocoles applicatifs incluant lessuivants : 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 fonctionnalites de ntop, on peut citer les suivantes :

    graphes du debit global du reseau pour le mois en cours, les dernieres 24heures, les dernieres 60 minutes, les dernieres 10 minutes ;

    caracterisation du trafic par machine et protocole en separant eventuellement

    1http://www.ntop.org/

    21

    http://www.ntop.org/http://www.ntop.org/
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapter 5. Visualiser lutilisation du reseau avecntop

    les machines locales et les machines distantes. Par defaut, les resultats sontclasses par ordre decroissant de trafic constate ;

    details de la consommation de chaque machine sur les dernieres 24 heures

    permettant de mettre en evidence les usages (details des connexions, sessionsTCP et UDP actives, ...) ;

    statistiques dusage par domaines avec caracterisation du trafic par protocoles;

    ...

    5.2 Deployer ntop

    ntopcapture et analyse les paquets quil voit passer. Son positionnement deter-mine donc les flux qui seront monitores. Pour la mise en place dun service ntop(une sonde) il est conseille dutiliser deux interfaces : lune pour lacces a la ma-chine et au service WWW de consultation, lautre pour capturer le trafic. Parailleurs, il est indispensable de configurer linterface utilisee pour capturer le traficdans une plage dadresse IP non routable.

    5.2.1 Quelques options de demarrage de ntop

    Parmi les options de demarrage de ntop, on peut mentionner les suivantes :

    [-i interfaces]: une liste dinterface (separees par des virgules) de capture(-i eth1, eth2) ;

    [-m reseaux locaux]: une liste de reseaux (separes par des virgules) pourindiquer quels sont les reseaux locaux afin de proceder a la separation dutrafic (local, distant). Par defaut ntoptrouve cette information en interro-geant la configuration de linterface de capture, si elle configuree dans uneplage dadresse non routable, alors en labsence de precision, tout le trafic estconsidere comme distant;

    [-o]: dans certains cas, notamment lorsque linterface de capture recoit dutrafic issu dun port configure en SPAN (cf. section5.2.2), il est necessaire

    de positionner cette option (Situations which may require this option includeport/VLAN mirror, ...) ;

    5.2.2 Comment placer la sonde

    Dans le cadre dun reseau commute, par defaut, une sonde ne peut avoir accesquau trafic destine a la machine qui lheberge. Ce nest evidemment pas ce qui

    22

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    5.2. Deployer ntop

    est en general recherche. Pour elargir le champ de vision, il est necessaire de choisirun des trois dispositifs suivants :

    utiliser un concentrateur (hub) comme point de passage oblige du trafic aanalyser. Cette methode est simple, elle peut servir pour effectuer quelquesessais. Elle ne peut evidemment pas etre utilisee en production, car outre lesproblemes de securite lies au partage du media, le mode de fonctionnementhalf-duplexpeut rendre inoperants certains services (diffusion de videos enstreaming, ...) ;

    configurer le port utilise par linterface de capture en mode SPAN (SwitchPort ANalyser). Dans ce cas, le port configure va recevoir un duplicata dutrafic des ports a analyser. La mise en uvre de cette fonctionnalite esttres simple, elle depend evidemment des commutateurs utilises. Lexemplesuivant montre les commandes necessaires pour configurer des commutateurs

    CISCO (dans les deux cas linterfaceFa0/11recoit un duplicata du trafic desportsFa0/12et Fa0/13) :

    Commutateurs 2950monitor 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/13switchport access vlan x

    !

    utiliser un dispositif qui duplique le signal (network tap)2 pour permettre derealiser une derivation du reseau sur laquelle la sonde pourra etre installee.Cette solution autorise de placer des sondes totalement furtives (invisibles dureste du reseau), elle est a privilegier dans les environnements tres sensibles.

    5.2.3 Quelques exemples dutilisation dentop

    Les figures suivantes montrent les resultats obtenus par une sonde placee a lextremitedun reseau (juste avant le pare-feu). Le niveau de detail obtenu permet datteindrelobjectif dune meilleure connaissance des usages.

    Les figures5.1et5.2montrent le trafic avec des machines distantes caracterisepar protocoles. Les figures5.3et5.4illustrent le detail qui est obtenu lorsquun

    2cf. http://www.netopics.com

    23

    http://www.netoptics.com/http://www.netoptics.com/
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapter 5. Visualiser lutilisation du reseau avecntop

    administrateur sinteresse particulierement a lactivite (presente et passee) dunemachine. La figure5.5permet de constater si lactivite est conforme aux previ-sions, notamment la nuit.

    Figure 5.1: ntopcaracterise les protocoles utilises

    24

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    5.2. Deployer ntop

    Figure 5.2: ntopcaracterise les protocoles applicatifs utilises

    25

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapter 5. Visualiser lutilisation du reseau avecntop

    Figure 5.3: ntopdetaille lactivite dune machine (1)

    26

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    5.2. Deployer ntop

    Figure 5.4: ntopdetaille lactivite dune machine (2)

    27

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapter 5. Visualiser lutilisation du reseau avecntop

    Figure 5.5: ntoppresente des statistiques dutilisation

    28

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapter 6

    Detecter les vulnerabilites

    Comme indique au chapitre 2, les protocoles, les applications et les systemesdexploitation peuvent presenter des vulnerabilites. Des quune vulnerabilite estrecensee, un bulletin dalerte est diffuse (cf. section2.4), la disponibilite dexploits1

    peut alors etre tres rapide.

    Des outils permettent de detecter les vulnerabilites, ils peuvent meme etre con-figures pour etre intrusifs, ils sont a la disposition des administrateurs de reseauxpour evaluer les risques encourus. Ces outils sont egalement accessibles aux per-sonnes mal intentionnees, il est donc tres important de les connatre et de lesutiliser regulierement.

    La suite de ce chapitre presente le scanner de vulnerabilites Nessusainsi que

    loutil dexploitation de vulnerabilites Metasploit.

    6.1 Scanner les vulnerabilites avec Nessus

    Nessus2 est un outil qui automatise la decouverte de vulnerabilites connues sur lesmachines dun reseau. Cest un produit commercial diffuse par la societeTENABLENetwork Security. Il peut toutefois etre utilise gratuitement en utilisant unebase des vulnerabilites dont la mise a jour est decalee3 dune semaine. Nessusestorganise en mode client/serveur : le serveur effectue les tests tandis que les clientssont charges de la configuration et de la presentation des resultats. Les principalesfonctionnalites de Nessussont les suivantes :

    mise a jour automatique de la base des vulnerabilites ;

    1traduction de langlaissploit: shortname for exploit or the use of a software bug to accomplishsomething not intended by the designers.

    2cf. http://www.nessus.org3 les administrateurs apprecieront en fonction de la sensibilite des sites geres si un delai est

    envisageable ou pas.

    29

    http://www.nessus.org/http://www.nessus.org/
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapter 6. Detecter les vulnerabilites

    disponibilites des tests sous formes de pluginsdeveloppes en NASL (NessusAttack Scripting Language). NASL permet de developper rapidement desscripts de tests de vulnerabilites, il propose des meta-instructions pour inter-

    roger des serveurs HTTP, FTP, ... ou pour fabriquer des paquets IP, TCP,UDP ou ICMP, ... ;

    reconnaissance automatique des services attaches aux ports scannes ;

    selection par lutilisateur des types de detection a mettre en uvre (avec ousans activation des options intrusives, ...).

    6.1.1 Quelques exemples dutilisation avec Nessus

    Le client Nessusest disponible dans tous les environnements (Windows, Mac OSX, mode ligne sous Unix, X11), les tests suivants ont ete effectues a laide deNessusClient(le client Nessuspour X11).

    La figure6.1montre lecran daccueil deNessusClientet notamment les optionsgenerales utilisees pour lesscans(safe checksici pour ne pas risquer de corrompreune machine). La figure6.2montre le resultat dune analyse sur un serveur ouun service FTP tres vulnerable est installe. Nessusindique la solution (mettre a

    jour) ainsi que les references des bulletins dalertes qui correspondent et quil estnecessaire de consulter4 :

    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

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

    30

    http://nvd.nist.gov/nvd.cfm?cvename=CVE-2001-0249http://nvd.nist.gov/nvd.cfm?cvename=CVE-2001-0249
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    6.1. Scanner les vulnerabilites avec Nessus

    Figure 6.1: ecran daccueil de NessusClient

    31

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapter 6. Detecter les vulnerabilites

    Figure 6.2: Le resultat dun scan Nessus

    32

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    6.1. Scanner les vulnerabilites avec Nessus

    Figure 6.3: Le choix des vulnerabilites a tester avecNessus

    6.1.2 Conclusion

    Nessusest tres largement utilise. Il recense plus de 13000 pluginsdont le codeest assez simple a comprendre (cf. /opt/nessus/lib/nessus/pluginssous Linux).Comme tous les scanners, Nessuspeut engendrer des faux positifs (des alertesalors que le produit est sain), une connaissance de NASL est alors utile pourdeterminer si lalerte est justifiee. Dans ce cas il convient deffectuer les seuls testsqui ont genere lalerte en y placant des traces. La commande naslpermet desoumettre un test rapidement comme dans lexemple suivant :

    nasl -T /tmp/trace -t serv-1 /opt/nessus/lib/nessus/plugins/mod_auth_any.nasl

    Ouf, ce serveur nest pas vulnerable

    Le code modifie de mod_auth_any.naslest le suivant :

    33

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapter 6. Detecter les vulnerabilites

    #

    # 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 nest 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);

    ....

    Lutilisation de Nessusest tres interessante, les premiers scanssont en generalsurprenants, il faut prevoir beaucoup de temps pour les analyser. Pour cetteraison, il est recommande deffectuer les analyses en classifiant les serveurs et enevitant de lancer des scanssur la globalite dun reseau (ladministrateur seraitalors noye sous un deluge dinformations).

    6.2 Exploiter les vulnerabilites

    Bien quil puisse etre configure pour etre intrusif, Nessusreste surtout un outilde detection de vulnerabilites. Des outils nettement plus agressifs sont egalementdisponibles, ils recensent et diffusent des methodes pour exploiter les failles con-nues. La suite de cette section presente MetasploitetSecWatch.orgqui peuvent

    34

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    6.2. Exploiter les vulnerabilites

    sembler ambigus car ils vulgarisent des techniques dintrusion. Le concept de basede ces outils est que si des pirates disposent doutils simples pour attaquer, il estalors tres important que les administrateurs de reseaux soient informes et reactifs

    6.2.1 Metasploit

    Metasploit5 est une base de tests dintrusions. Les exploitssont developpes sousforme de modules Perl, ils partagent un meme cadre comme dans lexemple suivant:

    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 , ],

    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 bysending 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).

    }),

    5http://www.metasploit.org

    35

    http://www.metasploit.org/http://www.metasploit.org/
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapter 6. Detecter les vulnerabilites

    La derniere version de Metasploitcomporte 164 exploits, ils sont classes pararchitecture, systeme dexploitation et application. Les parametres principauxdunexploitsont la machine cible (RHOST) et le port cible (RPORT), il convient

    en outre de stipuler une sentence (payload) a executer si la tentative dintrusionest reussie. Les sentences sont developpees independamment des exploits, il existedonc, en general, plusieurs sentences pour un meme exploit. Parmi les sentencesdisponibles pour un exploiten environnement Linux, on peut citer les suivantes :

    execution dun interpreteur de commandes ;

    ajout dun utilisateur ;

    execution dune commande ;

    demarrage dun tunnel SSH (reverse shell).

    Metasploitpropose plusieurs interfaces dutilisation : msfconsoleetmsfclienmode lignes de commandes etmsfwebqui est adaptee a lutilisation dun navigateurWeb. Les 3 exemples des figures6.4,6.5et 6.6 ont ete realises avec msfweb,ils montrent respectivement la selection des exploitsde lenvironnement Solaris

    (figure6.4), lintroduction des parametres dun exploit(figure6.5) et la preuve delintrusion (figure6.6).

    Lexploitchoisi ici a titre dexemple (Arbitrary Read File) ne propose pas dechoix de sentence car il ne sagit pas dune intrusion complete, mais simplementdun acces illicite a des fichiers proteges (/etc/shadowici).

    Metasploit permet dajouter de developper de nouveaux exploits, pour plusdinformations consulter le contenu du repertoire sdkdune installation.

    36

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    6.2. Exploiter les vulnerabilites

    Figure 6.4: Le choix des exploits avec msfweb

    37

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapter 6. Detecter les vulnerabilites

    Figure 6.5: Les parametres de lexploit solaris_kcms_readfile

    38

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    6.2. Exploiter les vulnerabilites

    Figure 6.6: Le resultat de lexploit solaris_kcms_readfile

    39

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapter 6. Detecter les vulnerabilites

    6.2.2 SecWatch.org

    http://www.secwatch.orgpropose une archive des vulnerabilites et des exploitsconnus (cf. figure6.7).

    Fig.6.7 Les exploitsdu mois de janvier 2007

    40

    http://www.secwatch.org/http://www.secwatch.org/
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    6.3. Conclusion

    6.3 Conclusion

    Les outils presentes dans ce chapitre sont a la disposition de tous, il est indispen-

    sable que les administrateurs de reseaux les connaissent. Lutilisation reguliere deNessusne dispense pas de faire le tour des intrusions proposees par Metasploitou SecWatch.org: la faille Arbitrary Read Filepresentee en exemple (cf. sec-tion6.2.1) na pas ete detectee. Comme precise en section2.4,il est necessaire deconsulter journellement les avis et alertes diffuses par le CERTA.

    41

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapter 6. Detecter les vulnerabilites

    42

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 7

    Detecter les attaques

    Nessuspermet de detecter des vulnerabilites repertoriees, des outils telsMetasploitmontrent encore plus les risques encourus, mais comment etre informe si ces outils(ou dautres) servent lors de tentavives dintrusions ?

    Les detecteurs dintrusions repondent a cette question, ils permettent de detecterdes activites anormales sur un reseau1 ou sur une machine2.

    Les HIDS detectent les activites suspectes en effectuant des etudes comporte-mentales (analyse des journaux du systeme et des applications) ou en verifiantlintegrite des fichiers ainsi que celle du noyau. Les NIDS agissent comme dessondes qui analysent tous les paquets pour les comparer a une base de signaturesdattaques connues et repertoriees. La suite de ce chapitre presente snort, un des

    NIDS les plus utilises.

    7.1 snort

    snort3 est un NIDS developpe sous licence GPL par la societeSourcefire4.snortsappuie sur une bibliotheque de signatures dont la distribution et la mise a journecessitent une souscription annuelle5 de 399 $.

    snortcapture et analyse les paquets quil voit passer et peut etre utilise commesniffer(avec ou sans ecriture dans un journal) ou comme NIDS.

    Le fonctionnement de snortcomme NIDS est base un fichier de configuration

    1Les NIDS (Network based Intrusion Detection System).2Les HIDS (Host based Intrusion Detection System).3http://www.snort.org4http://www.sourcefire.com5La base des signatures est accessible gratuitement avec un differe dun mois, comme dans

    le cas de Nessus (cf. 6.1), les administrateurs apprecieront en fonction de la sensibilite des sitesgeres si le delai est envisageable.

    43

    http://www.snort.org/http://www.sourcefire.com/http://www.sourcefire.com/http://www.snort.org/
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 7. Detecter les attaques

    (snort.conf) ainsi quune base de signatures (les regles). Parmi les options desnortconfigurables dans snort.conf, on peut citer les suivantes :

    HOME_NET: une liste des reseaux a surveiller ([10.1.1.0/24,192.168.1.0] parexemple)

    DNS_SERVERS, HTTP_SERVERS, ... : une liste des serveurs a surveiller. Il nestpas utile de traiter les attaques qui sont sans objets, i.e qui ciblent des ma-chines nhebergeant pas le service attaque.

    RULE PATH : le repertoire contenant la base des signatures(/usr/local/etc/snort/rulespar defaut).

    7.1.1 Les regles de snort

    Les paquets captures par une sonde snortsont analyses en fonction de regles quidecrivent des attaques ou des vulnerabilites connues. Les regles dont lutilisationest configurable dans snort.confsont regroupees par nature dans des fichierscomme dans les exemples suivants : :

    bad-traffic.rules: des signatures figurant du trafic qui ne devrait jamaisapparatre sur nimporte quel reseau ;

    web-php.rules: des signatures de scripts phpreputes vulnerables ;

    scan.rules: des signatures figurant les scanners (nmap, ...);

    ...

    Les regles de snortsont ecrites dans un langage qui permet de decrire un pa-quet a analyser. Une regle est divisee en deux parties : la premiere permet deselectionner les paquets cibles, la seconde indique le sous-ensemble du paquet ainspecter en detail ainsi que le message dalerte a generer si lanalyse est positive.Lexemple suivant est extrait de x11.rulesqui ici genere une alerte si un usagede lauthentification MIT-MAGIC-COOKIE-16 est detecte :

    1 alert tcp $EXTERNAL_NET any -> $HOME_NET 6000

    2 (msg:"X11 MIT Magic Cookie detected"; flow:established;

    3 content:"MIT-MAGIC-COOKIE-1";

    4 reference:arachnids,396; classtype:attempted-user; sid:1225; rev:4;)

    La ligne 1 correspond a lentete de la regle, elle selectionne les paquets a analyserde la maniere suivante :

    6Ce procede permet dautoriser des clients X Window distants a utiliser un serveur X enpartageant un clef. La clef est vehiculee en clair ...

    44

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    7.1. snort

    alert: laction a declancher si lanalyse est positive. Ici alertindique degenerer une alerte dans le fichier alert. Par defaut, le paquet sera aussi

    journalise (demarrer snort avec loption -N pour supprimer la journalisation

    des paquets engendrant des alertes) ; tcp: selection du protocole ;

    $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 regle :

    msg: le message qui sera indique dans lalerte ;

    content: le texte qui est recherche dans le contenu du paquet ;

    flow: le sens du traffic TCP;

    reference: des references de la vulnerabilite sur des sites (bugtraa, cve,nessus, arachnids, ...) dedies aux attaques ;

    Une documentation sur lecriture des regles desnortest disponible dans leSnortUsers Manual7

    7.1.2 Comment placer la sonde snort

    cf. section5.2.2.

    7.1.3 Utiliser snort

    Le demarrage de snort comme NIDS peut seffectuer avec la ligne de commandesuivante qui indique un demarrage comme daemon(NIDS), avec un fichier deconfiguration situe dans /usr/local/etc/snort:

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

    Pour utiliser snort dans de bonnes conditions, il convient de decider quelles sontles regles qui doivent etre utilisees. La configuration des regles seffectue dans lefichier snort.conf, il faut commenter les regles inutiles. Par exemple, un site quinexploite pas de serveurs IIS a interet a ne pas generer dalertes sil recoit desattaques sur ce type de service.

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

    45

    http://www.snort.org/docs/snort_manual/2.6.1/snort_manual.pdfhttp://www.snort.org/docs/snort_manual/2.6.1/snort_manual.pdfhttp://www.snort.org/docs/snort_manual/2.6.1/snort_manual.pdfhttp://www.snort.org/docs/snort_manual/2.6.1/snort_manual.pdf
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 7. Detecter les attaques

    Il convient egalement de configurer une methode de propagation des alertesadaptee aux administrateurs des reseaux a surveiller. Le fichier des alertes desnort(/var/log/snort/alert) nest pas de lecture aisee (cf. figure7.1), un mail

    relatif a chaque alerte peut tres rapidement saverer inexploitable : une interfacede consultation exploitant le fichier des alertes est necessaire.

    1 [**] [1:2189:4] BAD-TRAFFIC IP Proto 103 PIM [**]

    2 [Classification: Detection of a non-standard protocol or event] [Priority: 2]

    3 01/18-15:20:08.834049 156.60.18.254 -> 224.0.0.13

    4 PIM TTL:1 TOS:0xC0 ID:55939 IpLen:20 DgmLen:38

    5 [Xref => http://cgi.nessus.org/plugins/dump.php3?id=11791]

    6 [Xref => http://cve.mitre.org/cgi-bin/cvename.cgi?name=2003-0567]

    7

    [Xref => http://www.securityfocus.com/bid/8211]8

    9 [**] [1:1226:4] X11 xopen [**]

    10 [Classification: Unknown Traffic] [Priority: 3]

    11 01/19-13:17:24.608929 156.60.18.19:45985 -> 156.60.18.22:6000

    12 TCP TTL:63 TOS:0x0 ID:35693 IpLen:20 DgmLen:64 DF

    13 ***AP*** Seq: 0x3730914D Ack: 0x5BCA83A1 Win: 0x5B4 TcpLen: 32

    14 TCP Options (3) => NOP NOP TS: 1855134245 93899245

    15 [Xref => http://www.whitehats.com/info/IDS395]

    Fig.7.1 Le fichier des alertes de snort

    7.1.3.1 Gerer les alertes de snort avec BASE

    BASE8 (Basic Analysis and Security Engine) est une interface de consultationdes alertes de snort. BASE effectue un tri des alertes et propose de selectionner

    les alertes du jour, les alertes uniques, ... Les figures7.2et7.3montrent respective-ment la page daccueil dun service BASE et un ecran de visualisation des alertesuniques.

    8http://base.secureideas.net/

    46

    http://base.secureideas.net/http://base.secureideas.net/
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    7.1. snort

    Fig.7.2 La page daccueil dun service BASE

    47

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 7. Detecter les attaques

    Fig.7.3 Les alertes uniques

    7.1.3.2 snort et les faux positifs

    Le probleme principal pose par lexploitation dune sonde snortest lanalysedes alertes positionnees. Quelles sont les alertes justifiees ? Comment eliminer lesalertes intempestives (les faux positifs) ?

    Lutilisation dune interface de consultation des alertes telle que BASE procure

    48

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    7.1. snort

    un premier element de confort : les alertes sont triees et consultables indepen-damment de leurs occurences. Il reste tout de meme a verifier limportance desfaits signales, cette operation nest pas automatisable, elle doit etre effectuee avec

    precision.Lexemple suivant, issu du fichier contenant des regles ciblant les attaques sur

    des scripts CGI, illustre la part dinvestigation laissee aux administrateurs : unealerte est remontee, elle indique quun des serveurs Web surveilles a recu unerequete dacces a sendmessage.cgi. BASE precise la reference de la vulnerabi-lite (cve-2001-1100) : sendmessage.cgi in W3Mail 1.0.2, and possibly other CGIprograms, allows remote attackers to execute arbitrary commands via shell me-tacharacters in any field of the Compose Message page.. Si W3Mail 1.0.2esten service alors il sagit peut etre dune attaque, dans le cas contraire lalerteest un faux positif. Plus generalement, on notera quun appel a un script nommesendmessage.cgiengendrera une alerte quil fasse partie ou pas deW3Mail 1.0.2.

    A lissue dune alerte, lorsque les investigations sont terminees, ladministrateurpeut sil le juge necessaire, commenter les regles qui generent des alertes non

    justifiees.

    7.1.3.3 Conclusion

    a suivre ...

    49

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 7. Detecter les attaques

    50

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 8

    Detection post intrusion

    Lorsquune intrusion reussi, le pirate obtient des droits privelegies sur la machinecible (super utilisateur). La suite des operations depend alors du but recherche,parmi les actions les plus souvent operees, on peut citer les suivantes :

    desarmer les anti-virus et autres outils de securite qui peuvent etre installes ;

    installer des certificats dans la liste des certificats de confiance des naviga-teurs ;

    utiliser la machine corrompue comme emetteur de spams ou comme scanneurnmap ;

    ...

    Les rootkitssont des outils prets a lemploi qui permettent dautomatiser lesoperations post intrusion. Le but est toujours le meme : rendre furtives et persis-tantes les operations malveillantes operees par les pirates. La suite de ce chapitrepresente par lexemple les techniques utilisees par lesrootkitspour Linux ainsi quequelques detecteurs de presence de rootkits.

    8.1 Les rootkits

    Les rootkitsfont partie de lInternet souterrain, ils ne saffichent evidemmentpas toujours. Une liste non exhaustive et non a jour peut toutefois etre consulteepar http://packetstormsecurity.org/UNIX/penetration/rootkits/index.html. Lesitehttp://www.eviltime.com/diffuse egalement les dernieres versions de quelquesrootkits, on peut notamment y trouver adore-nget suckit.

    Plusieurs techniques sont utilisees par lesrootkitspour dissimuler des processusou des repertoires, parmi celles-ci citons les suivantes :

    51

    http://packetstormsecurity.org/UNIX/penetration/rootkits/index.htmlhttp://www.eviltime.com/http://www.eviltime.com/http://packetstormsecurity.org/UNIX/penetration/rootkits/index.html
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 8. Detection post intrusion

    le remplacement des commandes usuelles utilisees par les administrateurs(ls, ps, netstat, top, ...) par des versions masquant la realite ;

    la modification de certaines bibliotheques partagees utilisees dynamiquementpar les commandes de base ;

    la modification ou la jout de modules au noyau du systeme. Ce procede estle plus redoutable car il donne acces a lespace memoire gere par le noyau(kerneland).

    8.1.1 adore-ng

    adore-ngest un rootkitpour Linux qui permet dajouter des fonctionnalitescachees au noyau. adore-ngpeut etre utilise avec des noyaux 2.4 ou 2.6 et procureles fonctionnalites suivantes :

    masquage de fichiers et repertoires : les commandes telles lsne montrent pasles fichiers et repertoires designes par le hacker;

    masquage de processus : les commandes telles top, ps, ... ne montrent pasles processus designes par le hacker;

    mise en place de portes derobees ;

    nettoyage des traces.

    La figure8.1montreadore-ngen action via la commande avaqui est ici utiliseepour cacher un processus (la figure8.2montre la detection du processus cache parzeppoo).

    52

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    8.2. Les antirootkits

    Fig.8.1 adore-ngcache un processus

    Une fois installe (cf. insmodde la figure8.1), adore-ngpermet egalement decacher des fichiers ou repertoires (ava h) ou de lancer des commandes en passantroot(ava r).

    8.2 Les anti rootkits

    8.2.1 Zeppoo

    zeppoo1 est un outil qui permet de detecter des rootkitsevoluant en mode uti-lisateur (userland) ou en mode noyau (kerneland). Pour ce faire il sappuie prin-

    cipalement sur une base de signatures du systeme sain (mode utilisateur) et surun parcours de /dev/kmem(la memoire utilisee par le noyau) pour comparer lesprocessus presents avec ceux observes dans le pseudo repertoire /proc(un pro-cessus cache apparatra dans le parcours de /dev/kmemmais ne sera pas presentdans /proc)..

    1http://zeppoo.net

    53

    http://zeppoo.net/http://zeppoo.net/
  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 8. Detection post intrusion

    Fig.8.2 zeppoodetecte un processus cache par adore-ng.

    54

  • 5/21/2018 Securiser les reseaux par la connaissance des usages

    Chapitre 9

    Conclusion

    55