View
12
Download
6
Category
Preview:
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.htm5/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 .(,.@.@.JG. 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.pdf5/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.txt5/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-02495/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.pdf5/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.html5/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
Recommended