Uvod u CSRF?

CSRF, XSRF ili krivotvorenje križnih stranica je vrsta napada koji se događa na web mjestu kada zlonamjerna web stranica svoj zahtjev delegira na drugu web stranicu ili web aplikaciju koja ima provjerenog korisnika. Kod ove vrste napada, koristeći provjereni autentični preglednik žrtve, napadač može pristupiti web mjestu djelomično ili djelomično.

Kako radi?

  • Djeluje samo ako se potencijalna žrtva ovjeri.
  • Napadač može ući na web mjesto zaobilazeći postupak provjere autentičnosti pomoću CSRF napada.
  • CSRF napadi koriste se u scenarijima kada žrtva koja ima dodatna prava izvrši neku radnju, a druga ne može pristupiti tim aktivnostima ili ih izvesti. Na primjer, mrežno bankarstvo.

Napad CSRF-a izvodi se u dva glavna dijela

  • Prvi je korak privući korisnika / žrtvu da klikne na vezu ili učita stranicu koja je zlonamjerna. Napadač koristi socijalni inženjering da bi izigrao žrtvu.
  • Drugi je korak prevariti žrtvu slanjem krivotvorenog zahtjeva u preglednik žrtve. Ova će veza preusmjeriti zakonite zahtjeve na web mjesto. Napadač će od žrtve imati vrijednosti ili detalje koje mora tražiti, a žrtva bi to ispunila misleći da je zahtjev zakonit. Napadač će također imati detalje povezanih kolačića s preglednikom žrtve.

Ključni pojmovi CSRF-a

  • Napadač šalje zlonamjerne zahtjeve na web mjesto na kojem korisnik posjećuje napadača vjeruje da je žrtva ovjerena prema određenoj web lokaciji.
  • Preglednik žrtve potvrđuje se prema ciljanom mjestu i koristi se za usmjeravanje zlonamjernih zahtjeva na ciljno mjesto.
  • Ovdje nije ranjiv preglednik žrtve ili web mjesto na kojem su provedene preventivne metode CSRF-a, ranjivost na kojoj je pogođena glavna ranjivost.

Kako se može spriječiti krivotvorenje zahtjeva na više web lokacija (CSRF)?

Postoji nekoliko preventivnih metoda CSRF-a, od kojih su neke:

  • Odjavite se s web aplikacija dok ne rade na njima.
  • Osigurajte svoja korisnička imena i zaporke.
  • Nemojte dopustiti preglednicima da pamte lozinku.
  • Dok radite u aplikaciji i prijavljeni ste na nju, izbjegavajte pregledavanje.

Anti-CSRF tokeni

Najčešća implementacija za zaustavljanje zahtjeva za krivotvorenje na različitim lokacijama (CSRF) je upotreba tokena koji je povezan s odabranim korisnikom i može se naći kao skriveni oblik u svakom stanju, dinamični oblik prisutan u internetskoj aplikaciji.

1. Ova oznaka koja se naziva CSRF token funkcionira na sljedeći način:

  • Klijent zahtijeva HTML stranicu koja ima obrazac.
  • U odgovoru na ovaj zahtjev, server dodaje dva znaka. Jedan šalje kao kolačić, a ostale tokene čuva u skrivenom polju forme. Ovi se tokeni generiraju nasumično.
  • Klijent oba tokena vraća na server nakon što preda obrazac. Token kolačića šalje se kao token, a token obrasca šalje se unutar podataka obrasca
  • Poslužitelj ne odgovara ili odbija zahtjev ako zahtjev nema oba zahtjeva.

Sada napadač koji pokušava krivotvoriti zahtjev morat će pogoditi anti-CSRF tokene zajedno s korisničkim lozinkama za provjeru autentičnosti. Ovi tokeni postaju nevažeći nakon nekog vremena i nakon završetka sesije. Zbog toga napadač pogodi token.

2. Kolačići istog mjesta

Postoje neki kolačići povezani s podrijetlom ili web stranicom, a kada je zahtjev poslan tom određenom podrijetlu, kolačići se šalju zajedno s njim. Takvi se zahtjevi nazivaju zahtjevima unakrsnog podrijetla. Tijekom ovog postupka kolačići se šalju trećim stranama, što omogućuje CSRF napade.

3. Isti atribut kolačića

  • Za sprječavanje CSRF napada može se koristiti isti atribut kolačića web lokacije. Onemogućuje upotrebu treće strane za određeni kolačić.
  • To radi poslužitelj dok postavlja kolačić; tada od preglednika traži da kolačić pošalje kolačić samo kad korisnik izravno koristi web aplikaciju.
  • Ako netko pokuša nešto zatražiti od web aplikacije, preglednik neće poslati kolačić.
  • Međutim, sprječava napad CSRF-a.

To ima ograničenje, isti kolačići web lokacija nisu podržani u modernim preglednicima, dok web aplikacije koje koriste kolačiće iste web lokacije nisu podržane u starijim preglednicima.

Primjeri CSRF-a

Ispod smo objasnili neke primjere CSRF-a:

1. Korištenje GET zahtjeva:

Pretpostavimo da ste implementirali i dizajnirali web mjesto, bank.com, za provođenje radnji poput internetskih transakcija putem GET zahtjeva. E sad, pametni napadač koji zna kako stvoriti zlonamjeran URL može koristiti element da bi preglednik tiho učitao stranicu

Primjer elementa HTML slike koji sadrži zlonamjerni URL:

2. Jedna od sljedećih tehnika može se koristiti za isto:

  • Slanjem e-pošte koja sadrži HTML sadržaj
  • Sadnjom skripte ili zlonamjernog URL-a na stranice koje će korisnik vjerojatno posjetiti dok obavlja online transakcije.

3. Korištenje POST zahtjeva

Postoji općenita zabluda o HTTP POST zahtjevima da se CSRF napadi mogu spriječiti dopuštanjem HTTP POST zahtjeva, što zapravo nije istina. Napadač može stvoriti obrazac pomoću HTML ili JavaScript i koristiti funkciju automatskog slanja za podnošenje POST zahtjeva bez da korisnik zahtijeva da klikne na gumb za slanje.

Zaključak

Kolačići su ranjivi jer se automatski šalju sa zahtjevom, što napadačima omogućuje implementaciju CSRF-a i slanje zlonamjernih zahtjeva. Učinak CSRF ranjivosti također ovisi o privilegiranosti žrtve, čiji se Cookie šalje s napadačevim zahtjevom. Iako dohvaćanje podataka nije glavni opseg CSRF napada, promjene stanja zasigurno će imati štetne učinke na izradu web aplikacije. Stoga se savjetuje da se spriječi uporaba vaše web stranice preventivnim metodama za zaštitu vaše web stranice od CSRF-a.

Preporučeni članci

Ovo je vodič koji je CSRF. Ovdje smo razgovarali o ključnom konceptu, anti-CSRF tokenima, njegovom radu i primjerima CSRF-a. Možete i proći kroz naše druge Prijedloge članaka da biste saznali više -

  1. Što je hibernacija Java?
  2. Što je ASP.NET?
  3. Što je AWS Lambda?
  4. Što je XHTML?

Kategorija: