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 verwijderen
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
- Open het nginx configuratiebestand
nginx.conf
. - voeg toe binnen het
http
-blok,server
-blok oflocation
-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
).
- Open het nginx configuratiebestand
nginx.conf
. - voeg toe binnen het
http
-blok,server
-blok oflocation
-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
- Open het apache configuratiebestand
/etc/apache2/conf-enabled/security.conf
. - 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
).
- Open het ModSecurity configuratiebestand
/etc/modsecurity/modsecurity.conf
of het apache configuratiebestand/etc/apache2/apache.conf
. - 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
- Open IIS Manager
- Selecteer de website waarvoor je de Server-header wilt beheren
- Open de
Configuration Editor
- Open
system.webServer -> security -> requestFiltering
en zet de waarde vanremoveServerHeader
optrue
. Hiermee wordt de header verwijderd. - Om de X-Aspnet-Version header te verwijderen, zet de waarde van
enableVersionHeader
opfalse
, ondersystem.web -> httpRuntime.
- Om de X-Powered-By header te verwijderen, navigeer naar
HTTP Response Headers
. SelecteerX-Powered-By
en klik opRemove
.
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.
Cross-Site Scripting (XSS): wat is het en hoe te voorkomen
In deze blogpost lees je alles over Cross-Site Scripting (XSS). Welke vormen van XSS er zijn. Wat de impact van een XSS-aanval kan zijn en hoe je het kan voorkomen.
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.