Cross-Site Request Forgery (CSRF) is een veelvoorkomend beveiligingslek in webapplicaties waarbij een aanvaller een ingelogde gebruiker misleidt om ongewenste acties uit te voeren op een website waar ze momenteel zijn geauthenticeerd. De aanval maakt misbruik van het vertrouwen dat een website heeft in de browser van de gebruiker.
Bij een CSRF-aanval stuurt de aanvaller een kwaadaardig verzoek naar een webapplicatie via de browser van het slachtoffer. Omdat de gebruiker al is ingelogd en de browser automatisch authenticatiecookies meestuurt, denkt de server dat het verzoek legitiem is en voert de actie uit.
Hoe werkt een CSRF-aanval?
Een typische CSRF-aanval verloopt in de volgende stappen:
- Stap 1: Het slachtoffer logt in op een legitieme website (bijvoorbeeld een bankwebsite) en ontvangt een sessiecookie
- Stap 2: De aanvaller stuurt het slachtoffer een link via e-mail, social media of een andere website
- Stap 3: Het slachtoffer klikt op de link terwijl ze nog steeds zijn ingelogd op de legitieme website
- Stap 4: De kwaadaardige link bevat een verborgen verzoek dat automatisch wordt uitgevoerd
- Stap 5: De browser stuurt het verzoek inclusief de sessiecookie naar de legitieme website
- Stap 6: De website voert de ongewenste actie uit (bijvoorbeeld geld overmaken, wachtwoord wijzigen)
Verschil tussen CSRF en XSS
Hoewel Cross-Site Request Forgery (CSRF) en Cross-Site Scripting (XSS) beide beveiligingslekken zijn, werken ze fundamenteel anders:
- CSRF: Maakt misbruik van het vertrouwen dat een website heeft in de gebruiker. De aanval dwingt de gebruiker om ongewenste acties uit te voeren
- XSS: Maakt misbruik van het vertrouwen dat een gebruiker heeft in een website. De aanval injecteert kwaadaardige scripts in een legitieme website
Potentiële schade van CSRF-aanvallen
CSRF-aanvallen kunnen ernstige gevolgen hebben, afhankelijk van de functionaliteit van de getroffen applicatie:
- Ongeautoriseerde financiële transacties en geldovermakingen
- Wijzigen van accountgegevens zoals e-mailadres of wachtwoord
- Plaatsen van ongewenste bestellingen in webshops
- Verwijderen of wijzigen van belangrijke data
- Uitvoeren van administratieve acties in beheerderspanelen
- Posten van ongewenste content op social media
