Introduktion till CSRF?

CSRF, XSRF eller Cross Site Reference Forgery är en typ av attack som inträffar på en webbplats när en skadlig webbplats delegerar sin begäran till en annan webbplats eller webbapplikation som har en autentiserad användare. I denna typ av attack, med offerets autentiserade webbläsare, kan en angripare komma åt webbplatsen helt eller delvis.

Hur fungerar det?

  • Det fungerar bara om det potentiella offeret är autentiserat.
  • En angripare kan gå in på en webbplats genom att kringgå autentiseringsprocessen med en CSRF-attack.
  • CSRF-attacker används i scenarierna där ett offer med ytterligare rättigheter utför vissa åtgärder och andra inte kan komma åt eller utföra dessa åtgärder. Till exempel onlinebank.

CSRF Attack utförs i två huvuddelar

  • Det första steget är att locka användaren / offret att klicka på en länk eller ladda en skadlig sida. Socialt teknik används av angriparen för att lura offret.
  • Det andra steget är att lura offret genom att skicka en förfalskad begäran till offrets webbläsare. Den här länken omdirigerar de legitima förfrågningarna till en webbplats. Angriparen kommer att ha de värden eller detaljer från offret som han måste leta efter, ett offer skulle ha fyllt det och trodde att begäran är legitim. Angriparen kommer också att ha detaljer om tillhörande kakor med offrets webbläsare.

Nyckelbegrepp för CSRF

  • En angripare skickar skadliga förfrågningar till en webbplats där användaren besöker en angripare anser att offret valideras mot den specifika webbplatsen.
  • Victims webbläsare är autentiserad mot målsidan och används för att dirigera skadliga förfrågningar till målsidan.
  • Här är offrets webbläsare eller en webbplats med CSRF-förebyggande metoder implementerade på den inte sårbar, en påverkad webbplats är den huvudsakliga sårbarheten.

Hur kan man förhindra förfalskning på olika platser (CSRF)?

Det finns ett antal förebyggande metoder för CSRF, få av dem är:

  • Logga av webbapplikationerna medan du inte arbetar med det.
  • Säkra dina användarnamn och lösenord.
  • Låt inte webbläsare komma ihåg lösenordet.
  • Undvik att surfa medan du arbetar i ett program och är inloggad i det.

Anti-CSRF-tokens

Den vanligaste implementeringen för att stoppa Cross-site Request Forgery (CSRF) är att använda ett token som är relaterat till en utvald användare och kan hittas som en dold form i varje tillstånd, dynamisk form som finns i online-applikationen.

1. Detta token som kallas CSRF-token fungerar enligt följande:

  • Klienten begär en HTML-sida som har ett formulär.
  • Som svar på denna begäran lägger servern till två tokens. Den skickar en som en cookie och behåller andra symboler i ett formulärfält som är dold. Dessa symboler genereras slumpmässigt.
  • Klienten skickar båda tokenet tillbaka till servern när han skickar in formuläret. Cookie-token skickas som ett token och formtoken skickas inuti formulärdata
  • Servern svarar inte eller avvisar begäran om en begäran inte har båda förfrågningarna.

Nu måste en angripare som försöker förfalska begäran gissa antik CSRF-symbolerna tillsammans med användarens autentiseringslösenord. Dessa tokens blir ogiltiga efter en tid och när sessionen är över. Detta gör att angriparen gissar att token är tuff.

2. Samma webbplatskakor

Det finns vissa cookies associerade med ett ursprung eller en webbplats och när en begäran skickas till det specifika ursprunget skickas cookies tillsammans med det. Sådana förfrågningar kallas förfrågningar över ursprung. Medan denna process skickas cookies till tredje parter, vilket möjliggör CSRF-attacker.

3. Samma webbplats-cookieattribut

  • För att förhindra CSRF-attacker kan samma webbplats-cookieattribut användas. Det inaktiverar användning från tredje part för en specifik cookie.
  • Det görs av servern när du ställer in cookien; den begär sedan att webbläsaren skickar cookien endast när användaren använder webbapplikationen direkt.
  • Om någon nu försöker begära något från webbapplikationen skickar webbläsaren inte cookien.
  • Men förhindrar CSRF-attacken.

Detta har en begränsning, samma webbplatskakor stöds inte i moderna webbläsare, medan webbapplikationer som använder samma webbplatskakor stöds inte i äldre webbläsare.

Exempel på CSRF

Nedan har vi förklarat några exempel på CSRF:

1. Använda GET-förfrågningar:

Anta att du har implementerat och utformat en webbplats, bank.com, för att utföra åtgärder som online-transaktioner med GET-förfrågningar. Nu kan en smart angripare som vet hur man skapar en skadlig URL använda element för att få webbläsaren att ladda sidan tyst

Exempel på ett HTML-bildelement som innehåller en skadlig URL:

2. En av teknikerna nedan kan användas för att göra samma sak:

  • Genom att skicka ett e-postmeddelande som har HTML-innehåll
  • Genom att plantera ett skript eller en skadlig URL på de sidor som en användare troligen kommer att besöka när han gör online-transaktioner.

3. Använda POST-förfrågningar

Det finns en allmän missuppfattning om HTTP POST-förfrågningar om att CSRF-attacker kan förhindras genom att tillåta HTTP POST-förfrågningar, vilket faktiskt inte är sant. Angriparen kan skapa ett formulär med HTML eller JavaScript och använda auto-skicka-funktionalitet för att skicka in POST-begäran utan att kräva att användaren klickar på en skicka-knapp.

Slutsats

Cookies är sårbara eftersom de skickas automatiskt med begäran, vilket gör det möjligt för angripare att implementera CSRF och skicka skadliga förfrågningar. Effekten av en CSRF-sårbarhet beror också på offrets privilegium, vars cookie skickas med angriparens begäran. Medan datainsamling inte är huvudomfånget för en CSRF-attack, kommer tillståndsändringar säkert att ha en negativ inverkan på webbapplikationen som utnyttjas. Så det rekommenderas att förhindra att din webbplats använder förebyggande metoder för att skydda din webbplats mot CSRF.

Rekommenderade artiklar

Detta har varit en guide till vad som är CSRF. Här diskuterade vi Key Concept, Anti-CSRF Tokens, hur dess arbete och exempel på CSRF. Du kan också gå igenom våra andra föreslagna artiklar för att lära dig mer -

  1. Vad är Java Hibernate?
  2. Vad är ASP.NET?
  3. Vad är AWS Lambda?
  4. Vad är XHTML?

Kategori: