Wij zijn |

De HTTP header Server verwijderen

In deze blogpost behandelen de header Server uit een HTTP-response. Standaard geeft deze header informatie prijs over de gebruikte software van de webserver.

Maar wat houdt de Serverheader precies in? Simpel gezegd, wanneer je een website bezoekt, stuurt je browser een verzoek naar de server van die website. De server reageert met de gevraagde informatie, vergezeld van een reeks headers. Deze headers dragen diverse metadata en nuttige details, zoals de datum en tijd van het antwoord, de grootte van de verzonden gegevens, en – inderdaad – de naam en versie van de gebruikte serversoftware. Dit laatste is wat we de Server header noemen.

Het delen van deze informatie lijkt misschien onschuldig, maar het kan een schat aan informatie bieden voor kwaadwillenden. Door te weten welke serversoftware en versie je gebruikt, kunnen hackers gericht zoeken naar specifieke kwetsbaarheden om te misbruiken. Beperk deze informatie dus tot het minimum.

In deze blogpost gaan we dieper in op hoe je de waarde van de Server-header kunt instellen in drie van de meest populaire webserver software: IIS, Nginx en Apache. We zullen stap voor stap uitleggen hoe je dit kunt doen.

 

Server header aanpassen in Nginx

Laten we beginnen met nginx. Als je de HTTP header server wilt verwijderen binnen nginx, kun je een aantal dingen doen. We behandelen twee van de drie mogelijke oplossingen.

server_tokens

  1. Open het nginx configuratiebestand nginx.conf.
  2. voeg toe binnen het http-blok, server-blok of location-blok:

server_tokens off;

De optie server_tokens staat standaard op on, door deze op off te zetten verbergt de server de specifieke versie van Nginx in de Server-header en foutpagina’s. Let op, dit verwijdert alleen het versienummer, er is nog steeds te zien dat er Nginx wordt gebruikt.

Headers More

Om naast het versienummer ook nog de tekst Nginx uit de server header te verwijderen kan de module Headers More worden gebruikt. Installeer libnginx-mod-http-headers-more-filter (apt install libnginx-mod-http-headers-more-filter).

  1. Open het nginx configuratiebestand nginx.conf.
  2. voeg toe binnen het http-blok, server-blok of location-blok:

more_clear_headers Server;

Opnieuw compilen

Een andere optie om zowel het versienummer als de tekst nginx te verwijderen is door aanpassingen te maken in de broncode en deze opnieuw te compilen.

Verwijderen server header Apache2

Als je de HTTP header server wilt verwijderen binnen Apache, kun je een aantal dingen doen. Deze stappen lijken erg op die van de zojuist genoemde Nginx.

ServerTokens

  1. Open het apache configuratiebestand /etc/apache2/conf-enabled/security.conf.
  2. voeg toe:

ServerTokens Prod

ServerSignature Off

Door deze instellingen verbergt de server de specifieke versie van Apache in de Server-header en foutpagina’s. Let op, ook hier verwijdert dit alleen het versienummer, en is er nog steeds te zien dat er Apache wordt gebruikt.

ModSecurity

Om naast het versienummer ook nog de tekst Apache uit de server header te verwijderen kan de module ModSecurity worden gebruikt. Installeer ModSecurity (apt install libapache2-mod-security2).

  1. Open het ModSecurity configuratiebestand /etc/modsecurity/modsecurity.conf of het apache configuratiebestand /etc/apache2/apache.conf.
  2. voeg toe:

<IfModule security2_module>
SecRuleEngine on
ServerTokens Min
SecServerSignature " "
</IfModule>

Opnieuw compilen

Een andere optie om zowel het versienummer als de tekst Apache te verwijderen is door aanpassingen te maken in de broncode en deze opnieuw te compilen.

Server header aanpassen in IIS

Binnen IIS is het verwijderen van de server header eenvoudiger. Er zijn minstens vier verschillende paden, visueel via IIS Manager, via het web.config configuratiebestand, via Powershell of via de Registry. Onderstaand behandelen we hoe je de header kunt verwijderen via IIS Manager en via het web.config bestand.

Header verwijderen via IIS Manager

  1. Open IIS Manager
  2. Selecteer de website waarvoor je de Server-header wilt beheren
  3. Open de Configuration Editor
  4. Open system.webServer -> security -> requestFiltering en zet de waarde van removeServerHeader op true. Hiermee wordt de header verwijderd.
  5. Om de X-Aspnet-Version header te verwijderen, zet de waarde van enableVersionHeader op false, onder system.web -> httpRuntime.
  6. Om de X-Powered-By header te verwijderen, navigeer naar HTTP Response Headers. Selecteer X-Powered-By en klik op Remove.

Header verwijderen via web.config

Onderstaande configuratie werkt alleen op IIS 10.0 en niet op oudere versies. Een voorbeeld web.config om de server header, X-Aspnet-Version header en X-Powered-By header te verwijderen:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <security>
            <!-- Verwijder de Server header -->
            <requestFiltering removeServerHeader="true" />
        </security>
        <httpProtocol>
            <customHeaders>
                <!-- Verwijder de X-Powered-By header -->
                <remove name="X-Powered-By" />
            </customHeaders>
        </httpProtocol>
    </system.webServer>
    <system.web>
        <!-- Verwijder de X-Aspnet-Version header -->
        <httpRuntime enableVersionHeader="false" />
    </system.web>
</configuration>

Conclusie

In deze blogpost hebben we het belang onderstreept van het beheren van de Server-header in HTTP-responses. We hebben gezien hoe het prijsgeven van te veel informatie over de gebruikte serversoftware en de versie ervan een potentieel risico kan vormen voor de veiligheid van je webserver. En we hebben stap-voor-stap handleidingen gegeven voor het aanpassen van de Server-header in drie van de meest populaire webserver software: IIS, Nginx en Apache. 

Maar er is meer aan webbeveiliging dan alleen het beheren van de Server-header. Daarom nodigen we je uit om gebruik te maken van onze penetratietestdiensten. Onze experts kunnen je helpen om kwetsbaarheden te identificeren en aan te pakken voordat ze een probleem worden.

Neem contact met ons op om te ontdekken hoe we je kunnen helpen je webserver veiliger te maken. In de wereld van webtechnologieën is veiligheid geen luxe, maar een noodzaak.

Hoe kunnen wij u helpen?

QR Codes: Het onverwachte wapen in Device Code Phishing

Device code phishing, net als aanvallen via Adversary-in-the-middle (AiTM), vertegenwoordigt een geavanceerde vorm van cyberdreiging die zich onderscheidt van traditionele phishing. Device code phishing exploiteert de ‘OAuth2 Device Authorization Grant flow‘ van Microsoft Azure, die gebruikers in staat stelt zich aan te melden bij apparaten met beperkte invoermogelijkheden.

read more

CORS: het belang van Cross-Origin Resource Sharing

Bij onze klanten zien we een toenemende implementatie van Cross-Origin Resource Sharing (CORS). Helaas constateren we ook een stijging in het aantal onveilig geconfigureerde CORS-implementaties. In deze blog duiken we dieper in wat CORS is, de meest voorkomende misconfiguraties en hun potentiële risico’s, en hoe je sterke CORS-regels kunt instellen om je webapplicaties te beschermen.

read more