The BSD mascot drawed by Tatsumi Hosokawa
  Chuck's corner (site title)

Home
  Welcome!
  Who's that Chuck? [FR]

Articles
  Computer forensics [FR]
  Virtual-to-Remote Physical [FR]
  Promethee, educ. intranet [FR]
  Frenzy, live mini CD [FR]
  Open/Closed source sec. [FR]
  Installing FreeBSD 5 [FR]
  Powered by Unknown! [FR]
    FreeBSD / Nmap (1/2) [FR]
    FreeBSD / Nmap (2/2) [FR]
    telnetd [FR]
    ftpd [FR]
    Apache [FR]
    Bind [FR]
    Lukemftpd [FR]
    OpenSSH [FR]
    PHP [FR]
    Qpopper [FR]
    Sendmail [FR]
    Sendmail / Smtpscan [FR]
    Sendmail / Smtpmap [FR]


  Work in progress:
  Fingerprints analyzers [FR]

Software
  Ports [FR]
  HeV project

Links
  BSD sites in french [FR]
  BSD systems list [FR]
  Projects of the month [FR]

Search
  with Google's logo

  on this site:
  
  on BSD contents:
  

Powered by Unknown !

Apache

Les serveurs HTTP, au premier rang desquels Apache, affichent spontanément certaines informations sensibles :

# telnet localhost 80
GET / HTTP/1.0

HTTP/1.1 200 OK
Date: Mon, 23 Sep 2002 06:10:01 GMT
Server: Apache/1.3.26 (Unix)
Content-Location: index.html.en
Vary: negotiate,accept-language,accept-charset
TCN: choice
Last-Modified: Fri, 04 May 2001 00:00:38 GMT
ETag: "104e7-5b0-3af1f126;3d8ead48"
Accept-Ranges: bytes
Content-Length: 1456
Connection: close
Content-Type: text/html
Content-Language: en
Expires: Mon, 23 Sep 2002 06:10:01 GMT

[... page Web ...]

Les concepteurs du protocole ont cependant conscience de cette faiblesse et recommandent dans leur spécification de prévoir une option de configuration pour contrôler ce comportement dans les implémentations :

14.38 Server

   The Server response-header field contains information about the
   software used by the origin server to handle the request. 
[...]
      Note: Revealing the specific software version of the server might
      allow the server machine to become more vulnerable to attacks
      against software that is known to contain security holes. Server
      implementors are encouraged to make this field a configurable
      option.

Ainsi, sous Apache ces affichages peuvent-être partiellement débrayés en ajoutant la directive ServerTokens dans la configuration du serveur :


ServerTokens ProductOnly

Cependant, dans le meilleur des cas, le nom du produit apparaît encore :

[...]
Server: Apache
[...]

Ces fuites d'informations peuvent être évitées en appliquant un patch (testé avec Apache 1.3.26) dans le répertoire racine du code source du produit :

# tar vxzf apache_1.3.26.tar.gz
# cd apache_1.3.26
# ./configure [...]
# patch < apache.patch
# make
# make install

Après application du patch, le serveur se comporte comme suit :

# telnet localhost 80
GET / HTTP/1.0

HTTP/1.1 200 OK
Date: Mon, 23 Sep 2002 12:48:22 GMT
Server: Unknown
Content-Location: index.html.en
Vary: negotiate,accept-language,accept-charset
TCN: choice
Last-Modified: Fri, 04 May 2001 00:00:38 GMT
ETag: "104e4-5b0-3af1f126;3d8f0d08"
Accept-Ranges: bytes
Content-Length: 1456
Connection: close
Content-Type: text/html
Content-Language: en
Expires: Mon, 23 Sep 2002 12:48:22 GMT

[... page Web ...]

Ce patch ajoute une nouvelle valeur possible (None) à la directive ServerTokens, affichant "Server: Unknown" à la place de "Server: Apache" dans les en-têtes de la réponse HTTP.

Il modifie également la valeur par défaut de la directive ServerSignature de On à Off, celle-ci pouvant en effet révéler le nom et la version du produit sur les pages d'erreurs.

Derniers avertissements

Le cas échéant, n'oubliez pas d'enlever ce genre de choses :

Logo Apache

Veillez également à retirer ou déplacer les pages et arborescences par défaut du serveur (documentation et icônes Apache).

Prenez garde aux fuites d'informations liées à l'utilisation de modules supplémentaires, ces derniers pouvant ajouter de nouveaux en-têtes ou de nouvelles arborescences par défaut. A titre d'exemple, nous examinons le cas de PHP dans un autre article de cette série.

Enfin, notez que l'identification du serveur reste toujours possible par le biais de son implémentation du protocole HTTP (les combinaisons d'en-têtes utilisés en réponse pouvant être assez caractéristiques).

Compléments possibles

A l'occasion, cet article adressera également le cas des nouvelles versions d'Apache (2.0.40 et plus).


[ French flag Version française | Legal information [FR] | About us [FR] | Manifesto [FR] | Privacy & usage charter [FR] | Contact us | Comments on this page ]
[ FreeBSD ring | Sites list | Go to: previous 5 - previous one - random pick - next one - next 5 ]