Wij zijn |

CORS het belang van Cross-Origin Resource Sharing

Icon CORS 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.

 

Wat is CORS en waar wordt het voor gebruikt?

CORS, of Cross-Origin Resource Sharing, is een essentieel beveiligingsmechanisme in moderne webapplicaties. Het stelt een webserver in staat om te bepalen welke andere domeinen/websites toegang mogen hebben tot zijn data. Het beveiligingsmechanisme wordt gedefinieerd via een response header voorafgaand met de tekst Access-Control-.

 

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:

 

  1. Specificeer toegestane domeinen: In plaats van een algemene wildcard (*), specificeer exact welke domeinen toegang mogen hebben. Dit vermindert het risico van ongeautoriseerde toegang.
  2. Beperk de blootstelling van credentials: Stel Access-Control-Allow-Credentials in op true alleen wanneer het absoluut noodzakelijk is, en combineer het nooit met een wildcard in Access-Control-Allow-Origin.
  3. Gebruik van preflight verzoeken: Maak gebruik van preflight verzoeken (OPTIONS) om complexe CORS-verzoeken (zoals die met aangepaste headers of HTTP-methoden die niet GET of POST zijn) vooraf te controleren en te valideren.
  4. 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.

read more

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.

read more