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

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!

Disclaimer. Il codice e le indicazioni tecniche presenti in questo articolo sono forniti a scopo informativo. È fondamentale che qualsiasi codice venga verificato attentamente e testato in un ambiente sicuro prima di essere implementato in un contesto produttivo. Le configurazioni e le impostazioni descritte potrebbero non essere adatte a tutte le situazioni e potrebbero richiedere adattamenti specifici. Si consiglia di consultare un tecnico esperto o un consulente di fiducia per approfondire le informazioni fornite e garantire che siano applicate correttamente al proprio ambiente. Si declina ogni responsabilità rispetto all’uso di tali informazioni.