Impact
Door het ontbreken van beveiligingsheaders kunnen aanvallers clickjacking uitvoeren, sessiecookies stelen of cross-site scripting uitvoeren (XSS) [S1]. Zonder deze instructies kunnen browsers de beveiligingsgrenzen niet afdwingen, wat kan leiden tot mogelijke gegevensexfiltratie en ongeautoriseerde gebruikersacties.
Oorzaak
Het probleem komt voort uit een fout bij het configureren van webservers of applicatieframeworks om standaard HTTP-beveiligingsheaders op te nemen. Hoewel bij de ontwikkeling vaak prioriteit wordt gegeven aan functionele HTML en CSS [S1], worden beveiligingsconfiguraties vaak weggelaten. Auditingtools zoals het MDN Observatory zijn ontworpen om deze ontbrekende verdedigingslagen te detecteren en ervoor te zorgen dat de interactie tussen de browser en de server veilig is. [S2].
Technische details
Beveiligingsheaders voorzien de browser van specifieke beveiligingsrichtlijnen om veelvoorkomende kwetsbaarheden te beperken:
- Contentbeveiligingsbeleid (CSP): Bepaalt welke bronnen kunnen worden geladen, waardoor ongeautoriseerde scriptuitvoering en gegevensinjectie [S1] wordt voorkomen.
- Strikte transportbeveiliging (HSTS): Zorgt ervoor dat de browser alleen communiceert via beveiligde HTTPS-verbindingen [S2].
- X-Frame-opties: Voorkomt dat de applicatie wordt weergegeven in een iframe, wat een primaire verdediging is tegen clickjacking [S1].
- X-Content-Type-Options: Voorkomt dat de browser bestanden interpreteert als een ander MIME-type dan is opgegeven, waardoor MIME-sniffing-aanvallen worden gestopt [S2].
Hoe FixVibe erop test
FixVibe zou dit kunnen detecteren door de HTTP-antwoordheaders van een webapplicatie te analyseren. Door de resultaten te vergelijken met de MDN Observatory-standaarden [S2], kan FixVibe ontbrekende of verkeerd geconfigureerde headers markeren, zoals CSP, HSTS en X-Frame-Options.
Repareren
Werk de webserver (bijvoorbeeld Nginx, Apache) of applicatie-middleware bij zodat de volgende headers in alle reacties worden opgenomen als onderdeel van een standaard beveiligingshouding [S1]:
- Content-Security-Policy: Beperk bronbronnen tot vertrouwde domeinen.
- Strikte transportbeveiliging: dwing HTTPS af met een lange
max-age. - X-Content-Type-Opties: Stel in op
nosniff[S2]. - X-Frame-opties: stel in op
DENYofSAMEORIGINom clickjacking [S1] te voorkomen.
