Wij zijn |
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.
CORS: het belang van Cross-Origin Resource Sharing
Wat is CORS en waar wordt het voor gebruikt?
Onveilige CORS-configuraties en hun gevolgen
Tijdens een pentest komen we onderstaande twee onveilige gevallen vaak tegen:
Het gebruik van een wildcard (*)
Het instellen van Access-Control-Allow-Origin: *
maakt het mogelijk voor elke website om toegang te krijgen tot de data van de server. Dit kan problematisch zijn, omdat een kwaadwillende website hierdoor toegang kan krijgen tot gegevens die normaal gesproken enkel toegankelijk zijn voor het slachtoffer, zoals interne websites en intranetten. Dit kan leiden tot ongeautoriseerde toegang en datalekken.
Het gebruik van een wildcard in combinatie met inloggegevens
Een risicovolle situatie ontstaat wanneer Access-Control-Allow-Origin: *
wordt gecombineerd met Access-Control-Allow-Credentials: true
. In deze configuratie kan een kwaadwillende website acties uitvoeren of informatie bekijken via de bestaande sessie van het slachtoffer op de kwetsbare website.
Beveiligingsmaatregelen rondom CORS
Om de mogelijke kwetsbaarheden van onveilige CORS-configuraties te vermijden, zijn hier enkele beveiligingsmaatregelen:
- Specificeer toegestane domeinen: In plaats van een algemene wildcard (*), specificeer exact welke domeinen toegang mogen hebben. Dit vermindert het risico van ongeautoriseerde toegang.
-
Beperk de blootstelling van credentials:
Stel Access-Control-Allow-Credentials
in optrue
alleen wanneer het absoluut noodzakelijk is, en combineer het nooit met een wildcard in Access-Control-Allow-Origin. -
Gebruik van preflight verzoeken: Maak gebruik van preflight verzoeken (
OPTIONS
) om complexe CORS-verzoeken (zoals die met aangepaste headers of HTTP-methoden die nietGET
ofPOST
zijn) vooraf te controleren en te valideren. -
Validatie van de Origin header: Implementeer server-side validatie van de
Origin
header in inkomende verzoeken. Dit helpt ervoor te zorgen dat alleen verzoeken van toegestane domeinen worden geaccepteerd.
De conclusie
Het correct configureren van CORS is essentieel voor de beveiliging van webapplicaties. Onjuist geconfigureerde CORS-instellingen kunnen een serieuze bedreiging vormen. Heb je hulp nodig bij het beoordelen of verbeteren van je CORS-configuraties? Bij pentests.nl zijn we gespecialiseerd in penetratietesten, inclusief CORS-configuraties. Neem contact met ons op om te ontdekken hoe we je webapplicaties kunnen beveiligen tegen geavanceerde cyberaanvallen.
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.
Security headers: het wat en waarom
In deze blogpost lees je het hoe en waarom van de Content Security Policy (CSP). Met deze HTTP security header kan je de webbrowser van gebruikers fijnmazige instructies geven die bescherming bieden tegen hackaanvallen.