Introduksjon til CSRF?

CSRF, XSRF eller Cross Site Reference Forgery er en type angrep som oppstår på et nettsted når et ondsinnet nettsted delegerer forespørselen sin til et annet nettsted eller et webapplikasjon som har en autentisert bruker. I denne typen angrep, ved hjelp av offerets autentiserte nettleser, kan en angriper få tilgang til nettstedet helt eller delvis.

Hvordan virker det?

  • Det fungerer bare hvis det potensielle offeret er autentisert.
  • En angriper kan gå inn på et nettsted ved å omgå autentiseringsprosessen ved hjelp av et CSRF-angrep.
  • CSRF-angrep kommer i bruk, i scenariene der et offer som har tilleggsrettigheter utfører noen handlinger og andre ikke får tilgang til eller utfører disse handlingene. For eksempel nettbank.

CSRF Attack utføres i to hoveddeler

  • Det første trinnet er å tiltrekke brukeren / offeret til å klikke på en kobling eller laste inn en ondsinnet side. Sosialteknikk brukes av angriperen for å lure offeret.
  • Det andre trinnet er å lure offeret ved å sende en forfalsket forespørsel til offerets nettleser. Denne lenken vil omdirigere de legitime forespørslene til et nettsted. Angriperen vil ha verdiene eller detaljene fra offeret som han må se etter, et offer ville fylt det og tro at forespørselen er legitim. Angriperen vil også ha detaljene om tilknyttede informasjonskapsler med offerets nettleser.

Nøkkelbegreper av CSRF

  • En angriper sender ondsinnede forespørsler til et nettsted der brukeren besøker en angriper, mener at offeret er validert mot det aktuelle nettstedet.
  • Victims nettleser er autentisert mot målsiden og brukes til å rute ondsinnede forespørsler til målsiden.
  • Her er ikke offerets nettleser eller et nettsted med forebyggende CSRF-metoder implementert på den, ikke sårbar, et berørt nettsted er hovedsårbarheten.

Hvordan kan man forebygge forfalskning på tvers av nettsteder (CSRF)?

Det er en rekke forebyggende CSRF-metoder, få av dem er:

  • Logg av nettapplikasjonene mens du ikke jobber med det.
  • Sikre brukernavn og passord.
  • Ikke la nettlesere huske passordet.
  • Mens du jobber i et program og er logget inn i det, bør du unngå å bla.

Anti-CSRF-symboler

Den vanligste implementeringen for å stoppe Cross-site Request Forgery (CSRF), er å bruke et token som er relatert til en valgt bruker og kan bli funnet som en skjult form i hver tilstand, dynamisk form som finnes i den elektroniske applikasjonen.

1. Dette symbolet referert til som en CSRF-token fungerer som følger:

  • Klienten ber om en HTML-side som har et skjema.
  • I svaret på denne forespørselen legger serveren to symboler til. Den sender en som en informasjonskapsel og holder andre symboler i et skjemafelt som er skjult. Disse symbolene genereres tilfeldig.
  • Klienten sender tokenet tilbake til serveren når han har sendt skjemaet. Cookie-token sendes som et token, og skjema-token sendes i skjemadataene
  • Serveren svarer ikke eller avviser forespørselen hvis en forespørsel ikke har begge forespørslene.

Nå vil en angriper som prøver å forfalske forespørselen, gjette anti-CSRF-symbolene sammen med brukerens autentiseringspassord. Disse symbolene blir ugyldig etter en tid, og når økten er over. Dette gjør at angriperen gjetter token tøff.

2. Cookies for samme nettsted

Det er noen informasjonskapsler knyttet til et opphav eller nettsted, og når en forespørsel blir sendt til den aktuelle opprinnelsen, blir cookies sendt sammen med den. Slike forespørsler kalles forespørsler om opprinnelse. Mens denne prosessen sendes informasjonskapsler til tredjepart, noe som gjør CSRF-angrep mulig.

3. Samme cookieattributt for nettstedet

  • For å forhindre CSRF-angrep, kan du bruke det samme nettstedet cookie-attributtet. Det deaktiverer tredjeparts bruk for en spesifikk informasjonskapsel.
  • Det gjøres av serveren mens du setter cookien; den ber deretter nettleseren om å sende informasjonskapselen bare når brukeren bruker webapplikasjonen direkte.
  • Hvis noen prøver å be om noe fra nettapplikasjonen, vil ikke nettleseren sende informasjonskapselen.
  • Forhindrer imidlertid CSRF-angrepet.

Dette har en begrensning, cookies for samme nettsted støttes ikke i moderne nettlesere, mens webapplikasjoner som benytter seg av informasjonskapsler fra samme side ikke støttes i eldre nettlesere.

Eksempler på CSRF

Nedenfor har vi forklart noen eksempler på CSRF:

1. Bruke GET-forespørsler:

Anta at du har implementert og designet et nettsted, banking.com, for å utføre handlinger som online-transaksjoner ved å bruke GET-forespørsler. Nå kan en smart angriper som vet hvordan du lager en ondsinnet URL, bruke element for å få nettleseren til å laste siden stille

Eksempel på et HTML-bildeelement som inneholder en ondsinnet URL:

2. En av teknikkene nedenfor kan brukes til å gjøre det samme:

  • Ved å sende en e-post som har HTML-innhold
  • Ved å plante et skript eller en ondsinnet URL på sidene som en bruker sannsynligvis vil besøke mens han gjør online transaksjoner.

3. Bruke POST-forespørsler

Det er en generell misforståelse rundt HTTP POST-forespørsler om at CSRF-angrep kan forhindres ved å tillate HTTP POST-forespørsler, noe som faktisk ikke stemmer. Angriperen kan opprette et skjema ved hjelp av HTML eller JavaScript og bruke auto-sende funksjonalitet for å sende inn POST-forespørselen uten å kreve at brukeren klikker på en innsendingsknapp.

Konklusjon

Informasjonskapsler er sårbare fordi de sendes automatisk med forespørselen, som lar angripere implementere CSRF og sende ondsinnede forespørsler. Effekten av en CSRF-sårbarhet avhenger også av privilegiet til offeret, hvis cookie blir sendt med angriperens forespørsel. Mens innhenting av data ikke er hovedomfanget av et CSRF-angrep, vil tilstandsendringer sikkert ha en negativ effekt på webapplikasjonen som blir utnyttet. Så det anbefales å forhindre at nettstedet ditt bruker forebyggende metoder for å beskytte nettstedet ditt mot CSRF.

Anbefalte artikler

Dette har vært en guide til hva som er CSRF. Her diskuterte vi Key Concept, Anti-CSRF Tokens, hvordan dets arbeid og eksempler på CSRF. Du kan også gå gjennom andre foreslåtte artikler for å lære mer -

  1. Hva er Java Hibernate?
  2. Hva er ASP.NET?
  3. Hva er AWS Lambda?
  4. Hva er XHTML?