Come nascondere o falsificare le informazioni di versione di alcuni servizi lato server

È possibile che, dopo aver eseguito un Web Vulnerability Assessment, siano state rilevate delle informazioni di versione dei servizi (per es. versione del server utilizzato, del linguaggio di programmazione, del sistema operativo…) esposte e “pubbliche”. Nascondere o falsificare le informazioni di versione dei servizi può aiutare a ridurre la superficie di attacco dell’infrastruttura aziendale. La versione di un sistema operativo, infatti, potrebbe essere un’informazione interessante per malintenzionati con l’obiettivo di colpire proprio una specifica tipologia di servizio!

Sarebbe quindi opportuno nascondere o manipolare le informazioni di versione dei servizi in modo da rendere più complicato elaborare un attacco preciso. Di seguito esaminiamo come farlo per alcuni dei servizi più comuni.

Apache Web Server

Per nascondere le informazioni di versione:

  1. Aprire il file di configurazione principale di Apache (httpd.conf o apache2.conf a seconda della tua distribuzione).
  2. Aggiungere o modificare le seguenti direttive:
ServerTokens Prod
ServerSignature Off

ServerTokens Prod limita l’output della versione al minimo, mentre ServerSignature Off rimuove la firma della versione dalle pagine di errore generate da Apache.

Nginx Web Server

  1. Aprire il file di configurazione principale di Nginx (nginx.conf).
  2. Aggiungere o modifica le seguenti direttive all’interno del blocco http:
server_tokens off;

Microsoft IIS

  1. Aprire il Gestore di IIS.
  2. Selezionare il server dal riquadro di connessione.
  3. Nel riquadro delle funzionalità, fare doppio clic su “Modulo di richiesta e risposta”.
  4. Nell’elenco delle azioni, fare clic su “Rimuovi intestazione del server”.

Apache Tomcat

  1. Aprire il file web.xml che si trova nella directory conf di Tomcat.
  2. Aggiungere il seguente filtro per nascondere le informazioni del server:
    xml
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<init-param>
<param-name>server</param-name>
<param-value>Apache</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

PHP

Anche i linguaggi di programmazione possono lasciare tracce utili a malintenzionati. Per il PHP:

  1. Aprire il file di configurazione di PHP (php.ini).
  2. Trovare la direttiva expose_php e impostala su Off:

Impostare:

expose_php = Off

Considerazioni Finali

Dopo aver modificato le configurazioni, è opportuno riavviare il servizio per applicare le modifiche e verificare che le informazioni siano effettivamente nascoste.
Ovviamente la precauzione di nascondere le informazioni dei servizi di rete, non deve indurre a dimenticare gli aggiornamenti e le Patch di sicurezza: nascondere le informazioni di versione può ridurre il rischio, ma è essenziale mantenere i sistemi aggiornati con gli ultimi fix!