Ga naar hoofdinhoud
Terug naar Blog
Secure Development

Waarom je een sterke Content Security Policy nodig hebt

21 november 2024 · 7 min leestijd · door Sebastian Grimm, Security Specialist

Artikel inhoud

Het Belang van Beveiligingsheaders

Toen browsers voor het eerst werden ontworpen, had niemand kunnen voorspellen welke soorten aanvallen uiteindelijk mogelijk zouden worden. Het veranderen van de werking van browsers zou echter een grote impact hebben op bestaande internetdiensten. Het alternatief: beveiligingsheaders. Wanneer een site wordt bezocht, reageert de server met een HTTP-responsheader die extra bescherming biedt.

Wat is een CSP?

Content Security Policy, of kortweg CSP, is een beveiligingsheader. Het idee is eenvoudig: een CSP beperkt wat een browser kan doen met content en waar die content vandaan mag komen. In de standaardinstelling zijn er weinig beperkingen. Met een CSP bepaal jij als website-eigenaar precies waar content vandaan mag komen en onder welke voorwaarden. Zie de CSP als je tweede verdedigingslinie.

Het Gevaar van Cross-Site Scripting

XSS is een klasse van kwetsbaarheden waarbij data niet correct wordt verwerkt door de applicatie. Dit stelt een aanvaller in staat om JavaScript toe te voegen aan de webapplicatie, waarmee hij volledige controle over de applicatie krijgt. Meer dan 30% van de applicaties getest door DEFION Security was kwetsbaar voor een of andere vorm van XSS. Een sterke CSP is dan ook geen luxe.

Hoe Werkt CSP?

De script-src-richtlijn beheert alle JavaScript-bronnen. Als alle JavaScript afkomstig is van een toegewijd domein, kan een CSP eenvoudig alle andere bronnen blokkeren. Voor inline JavaScript kan een nonce worden gebruikt: een voldoende willekeurige waarde die bij elk verzoek verandert, waardoor een aanvaller de nonce niet kan voorspellen.

Implementatiefouten met een CSP

Veelvoorkomende fouten:

  • 'unsafe-inline' opnemen in de script-src-richtlijn staat alle inline JavaScript toe en tenietdoet de meeste voordelen van een CSP.
  • Wanneer bestanden kunnen worden geupload naar het applicatiedomein, is er risico dat 'self' in script-src kan worden misbruikt.
  • Als je een CDN of publieke bronhost zoals AWS S3 toestaat, kan een aanvaller deze diensten gebruiken om exploits te hosten.
  • Als je nonces gebruikt, moeten deze voldoende willekeurig zijn en slechts een keer worden gebruikt.
  • Toegestane hosts met JSONP-eindpunten kunnen worden misbruikt om een CSP gedeeltelijk te omzeilen.

Vanwege deze veelvoorkomende misconfiguraties wordt een nonce- of hash-gebaseerde CSP in combinatie met 'strict-dynamic' over het algemeen als de meest veilige aanpak beschouwd.

Geinteresseerd om te zien of uw organisatie baat zou hebben bij een CSP? Neem contact met ons op via [email protected] of bel +31 (0)88 733 13 37.

Web Application Pentest

Laat ons uw webapplicatie testen op XSS en andere kwetsbaarheden.