2.7 Ensure Sever Header is Modified To Prevent Information Disclosure

Warning! Audit Deprecated

This audit has been deprecated and will be removed in a future update.

View Next Audit Version

Information

The server header is a vanity header developed to help identify the underlying technology in a server for troubleshooting and identification. This header is unnecessary and could be used to target your website for exploitation. Tomcat does not provide the ability to remove the server header, however, it does provide the ability to modify the header.

Rationale:

The server header may specify the underlying technology used by an application. Attackers are able to conduct reconnaissance on a website using these response headers. This header could be used to target attacks for specific known vulnerabilities associated with the underlying technology. Removing this header will prevent targeting of your application for specific exploits by non-determined attackers.

While this is not the only way to fingerprint a site through the response headers, it makes it harder and prevents some potential attackers from targeting your website.

Solution

In $CATALINA_HOME/conf/server.xml, add the server directive to the connector as shown below replacing apache with the text of your choosing. This text should not help in identifying the server.

<Connector port='8443' server='I am a teapot' redirectPort='8080' />

Scripted:

If you do not have the header defined:

sed -ir 's/Connector/Connector server='I am a teapot'/g' $CATALINA_HOME/conf/server.xml

If you already have a header but it is still revealing

sed -ir 's/server='[^']*'/server='I Am A Teapot'/g' $CATALINA_HOME/conf/server.xml

Default Value:

The default value is Apache-Coyote/1.1.

See Also

https://workbench.cisecurity.org/files/4103