Inleiding tot CSRF?

CSRF, XSRF of Cross Site Reference Forgery is een soort aanval die op een website plaatsvindt wanneer een kwaadwillende website zijn verzoek delegeert aan een andere website of webtoepassing met een geverifieerde gebruiker. Bij dit type aanval heeft een aanvaller met behulp van de geverifieerde browser van het slachtoffer toegang tot de website, geheel of gedeeltelijk.

Hoe werkt het?

  • Het werkt alleen als het potentiële slachtoffer is geverifieerd.
  • Een aanvaller kan een website binnengaan door het authenticatieproces te omzeilen met een CSRF-aanval.
  • CSRF-aanvallen komen in gebruik in de scenario's waarin een slachtoffer met extra rechten een actie uitvoert en anderen geen toegang hebben tot deze acties. Voor bijvoorbeeld online bankieren.

CSRF-aanval wordt uitgevoerd in twee hoofdonderdelen

  • De eerste stap is om de gebruiker / het slachtoffer aan te trekken om op een link te klikken of een schadelijke pagina te laden. Social engineering wordt door de aanvaller gebruikt om het slachtoffer te misleiden.
  • De tweede stap is om het slachtoffer voor de gek te houden door een vervalst verzoek naar de browser van het slachtoffer te sturen. Deze link zal de legitiem ogende verzoeken omleiden naar een website. De aanvaller zal de waarden of details van het slachtoffer hebben waarnaar hij moet zoeken, een slachtoffer zou het hebben ingevuld met de gedachte dat het verzoek legitiem is. De aanvaller heeft ook de details van bijbehorende cookies in de browser van het slachtoffer.

Sleutelconcepten van CSRF

  • Een aanvaller verzendt kwaadwillende verzoeken naar een site waarin de gebruiker een aanvaller bezoekt en gelooft dat het slachtoffer is gevalideerd voor die specifieke site.
  • De browser van het slachtoffer is geverifieerd tegen de doelsite en wordt gebruikt om de kwaadwillige verzoeken naar de doelsite te leiden.
  • Hier is de browser van een slachtoffer of een site waarop CSRF-preventiemethoden zijn geïmplementeerd, niet kwetsbaar, een getroffen website is de belangrijkste kwetsbaarheid.

Hoe kan cross-site request forgery (CSRF) worden voorkomen?

Er zijn een aantal CSRF-preventiemethoden, enkele hiervan zijn:

  • Meld u af bij de webtoepassingen terwijl u er niet aan werkt.
  • Beveilig uw gebruikersnamen en wachtwoorden.
  • Sta browsers niet toe het wachtwoord te onthouden.
  • Vermijd browsen terwijl u in een toepassing werkt en bent aangemeld.

Anti-CSRF-tokens

De meest voorkomende implementatie om Cross-site Request Forgery (CSRF) te stoppen, is om een ​​token te gebruiken dat gerelateerd is aan een geselecteerde gebruiker en dat kan worden gevonden als een verborgen formulier in elke dynamische status in de online applicatie.

1. Dit token dat een CSRF-token wordt genoemd, werkt als volgt:

  • De client vraagt ​​om een ​​HTML-pagina met een formulier.
  • In antwoord op dit verzoek voegt de server twee tokens toe. Het stuurt er een als cookie en bewaart andere tokens in een verborgen formulierveld. Deze tokens worden willekeurig gegenereerd.
  • De client stuurt beide tokens terug naar de server zodra hij het formulier verzendt. Cookietoken wordt verzonden als een token en formuliertoken wordt binnen de formuliergegevens verzonden
  • De server reageert niet of weigert het verzoek als een verzoek niet beide verzoeken heeft.

Nu moet een aanvaller die het verzoek probeert te vervalsen, de anti-CSRF-tokens en de authenticatiewachtwoorden van de gebruiker raden. Deze tokens worden na enige tijd ongeldig en zodra de sessie voorbij is. Dit maakt dat de aanvaller het token moeilijk raadt.

2. Zelfde sitecookies

Er zijn enkele cookies gekoppeld aan een oorsprong of website en wanneer een verzoek naar die specifieke oorsprong wordt verzonden, worden cookies mee verzonden. Dergelijke verzoeken worden oorsprongsoverschrijdende verzoeken genoemd. Tijdens dit proces worden cookies naar derden verzonden, waardoor CSRF-aanvallen mogelijk zijn.

3. Hetzelfde kenmerk van de sitecookie

  • Om CSRF-aanvallen te voorkomen, kan hetzelfde sitekookkenmerk worden gebruikt. Het schakelt het gebruik door derden uit voor een specifieke cookie.
  • Het wordt gedaan door de server tijdens het instellen van de cookie; vervolgens wordt de browser verzocht de cookie alleen te verzenden wanneer de gebruiker de webtoepassing rechtstreeks gebruikt.
  • Als iemand nu iets van de webtoepassing probeert aan te vragen, verzendt de browser de cookie niet.
  • Voorkomt echter de CSRF-aanval.

Dit heeft een beperking, dezelfde sitecookies worden niet ondersteund in moderne browsers, terwijl webapplicaties die gebruik maken van cookies van dezelfde site niet worden ondersteund in oudere browsers.

Voorbeelden van CSRF

Hieronder hebben we enkele voorbeelden van CSRF uitgelegd:

1. GET-aanvragen gebruiken:

Stel dat u een website, banking.com, hebt geïmplementeerd en ontworpen om acties zoals online transacties uit te voeren met behulp van GET-aanvragen. Nu kan een slimme aanvaller die weet hoe hij een kwaadaardige URL moet maken, gebruik maken element om de browser de pagina stil te laten laden

Voorbeeld van een HTML-afbeeldingselement dat een schadelijke URL bevat:

2. Een van de onderstaande technieken kan worden gebruikt om hetzelfde te doen:

  • Door een e-mail te verzenden met HTML-inhoud
  • Door een script of een kwaadaardige URL te planten op de pagina's die een gebruiker waarschijnlijk zal bezoeken tijdens online transacties.

3. POST-aanvragen gebruiken

Er is een algemene misvatting over HTTP POST-verzoeken dat CSRF-aanvallen kunnen worden voorkomen door HTTP POST-verzoeken toe te staan, wat eigenlijk niet waar is. De aanvaller kan een formulier maken met behulp van HTML of JavaScript en de functie voor automatisch verzenden gebruiken om het POST-verzoek in te dienen zonder dat de gebruiker op een verzendknop moet klikken.

Conclusie

Cookies zijn kwetsbaar omdat ze automatisch met het verzoek worden verzonden, waardoor aanvallers CSRF kunnen implementeren en kwaadaardige verzoeken kunnen verzenden. Het effect van een CSRF-kwetsbaarheid hangt ook af van het privilege van het slachtoffer, wiens cookie wordt verzonden met het verzoek van de aanvaller. Hoewel het ophalen van gegevens niet het hoofdbereik van een CSRF-aanval is, hebben statuswijzigingen zeker een nadelig effect op de webtoepassing die wordt misbruikt. Het is dus aan te raden om te voorkomen dat uw website preventieve methoden gebruikt om uw website te beschermen tegen CSRF.

Aanbevolen artikelen

Dit is een leidraad geweest voor wat CSRF is. Hier hebben we het Key Concept, Anti-CSRF Tokens, hoe het werkt en voorbeelden van CSRF besproken. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie -

  1. Wat is Java Hibernate?
  2. Wat is ASP.NET?
  3. Wat is AWS Lambda?
  4. Wat is XHTML?