Krivotvorenje zahtjeva za više web lokacija (CSRF) jedan je od najstarijih načina iskorištavanja ranjivosti web mjesta. Cilja se na mrežne prekidače na strani poslužitelja koji obično zahtijevaju provjeru autentičnosti poput prijave. Tijekom napada na CSRF, napadač ima za cilj prisiliti svoju žrtvu da u njihovo ime podnese neovlašteni, zlonamjerni web zahtjev.

Slabe ili loše prakse zaštite web stranica i nepažnja na putu korisnika neki su od čestih uzroka uspješnog napada CSRF-a.

Pogledajmo što je CSRF napad i moguće načine na koje se možete spriječiti kao programer ili kao korisnik.

Kako CSRF napadi utječu na vas?

CSRF je napad koji se koristi za provedbu neovlaštenih zahtjeva tijekom web akcija koje zahtijevaju prijavu ili provjeru autentičnosti korisnika. CSRF napadi mogu iskoristiti ID-ove sesija, kolačiće, kao i druge ranjivosti na poslužitelju za krađu vjerodajnica korisnika.

Na primjer, omogućavanje postupaka protiv CSRF sprječava zlonamjerne interakcije između domena.

Kad se ta prepreka probije, napadač može brzo iskoristiti ID korisničke sesije putem kolačića koje je kreirao korisnikov preglednik i ugraditi oznaku skripte u ranjivu web stranicu.

instagram viewer

Manipulirajući ID-om, napadač također može preusmjeriti posjetitelje na drugu web stranicu ili eksploatirati metode socijalnog inženjeringa poput e-pošte za slanje veza, potičući žrtvu da preuzme zlonamjerni softver.

Što je socijalni inženjering? Evo kako biste mogli biti hakirani

Saznajte kako socijalni inženjering može utjecati na vas, plus uobičajene primjere koji će vam pomoći da se identificirate i zaštitite od ovih shema.

Nakon što žrtva izvrši takve radnje, šalje HTTP zahtjev na stranicu korisničke usluge i autorizira radnju zahtjeva u korist napadača. To može biti poražavajuće za nesuđenog korisnika.

Uspješan CSRF napad može učiniti da ovlašteni korisnici izgube pristupne vjerodajnice napadaču, posebno tijekom radnji temeljenih na poslužitelju, poput zahtjeva za promjenom lozinke ili korisničkog imena. U gorim scenarijima napadač preuzima cijelu sesiju i djeluje u ime korisnika.

CSRF se koristi za otmicu transakcija preko interneta, kao i za promjenu korisničkih imena i lozinki, što dovodi do toga da korisnici gube pristup pogođenoj usluzi.

Kako napadači otimaju vaše sesije CSRF-om: primjeri

Glavni ciljevi CSRF napada su mrežne radnje koje uključuju provjeru autentičnosti korisnika. Da bi bio uspješan, potrebne su nenamjerne radnje žrtve.

Tijekom CSRF napada, GET, DELETE i PUT akcije, kao i ranjivi POST zahtjevi glavna su meta napadača.

Pogledajmo značenje tih pojmova:

  • DOBITI: Zahtjev za prikupljanje rezultata iz baze podataka; na primjer, Google pretraživanje.
  • POŠTA: Tipično za podnošenje zahtjeva putem web obrazaca. Zahtjev za POST uobičajen je tijekom korisnikove registracije ili prijave, inače poznate kao provjera autentičnosti.
  • IZBRISATI: Uklanjanje resursa iz baze podataka. To radite kad god izbrišete svoj račun s određene web usluge.
  • STAVITI: Zahtjev PUT mijenja ili ažurira postojeći resurs. Primjer je promjena imena na Facebooku.

U praksi napadači koriste otmice sesija da bi napravili sigurnosnu kopiju CSRF napada. Kada koristi ovu kombinaciju, napadač može otmicom promijeniti žrtvinu IP adresu.

Promjena IP adrese zatim prijavljuje žrtvu na novo web mjesto na koje je napadač umetnuo lažnu vezu koja šalje replicirani obrazac ili modificirani zahtjev poslužitelja koji su kreirali putem CSRF-a.

Tada nesumnjivi korisnik misli da preusmjeravanje dolazi od davatelja usluga i klikne vezu na web stranici napadača. Nakon što to naprave, hakeri predaju obrazac prilikom učitavanja stranice bez njihovog znanja.

Primjer GET zahtjeva CSRF napad

Zamislite da pokušavate izvršiti internetsko plaćanje putem nezaštićene platforme za e-trgovinu. Vlasnici platforme koriste GET zahtjev za obradu vaše transakcije. Taj GET upit mogao bi izgledati ovako:

https://websiteurl/pay? iznos = 10 USD & tvrtka = [račun ABC tvrtke]

Otmičar može jednostavno ukrasti vašu transakciju mijenjanjem parametara GET zahtjeva. Da bi to učinili, sve što trebaju je zamijeniti vaše ime za svoje, i još gore, promijeniti iznos koji namjeravate platiti. Zatim izvorni upit prilagode na nešto ovako:

https://websiteurl/pay? iznos = 20000 USD & tvrtka = [račun napadača]

Jednom kada kliknete vezu na taj modificirani GET zahtjev, na kraju izvršite nenamjerni prijenos na račun napadača.

Transakcija putem GET zahtjeva loša je praksa i čini aktivnosti ranjivima na napade.

Primjer POST zahtjeva CSRF napad

Međutim, mnogi programeri vjeruju da je korištenje POST zahtjeva sigurnije za obavljanje web transakcija. Iako je to istina, nažalost, POST zahtjev je također podložan CSRF napadima.

Da biste uspješno oteli POST zahtjev, napadaču su potrebni vaš trenutni ID sesije, neki replicirani nevidljivi obrasci i ponekad malo društvenog inženjeringa.

Na primjer, obrazac zahtjeva za POST može izgledati ovako:







Međutim, napadač može zamijeniti vaše vjerodajnice izradom nove stranice i modificiranjem gornjeg obrasca u ovaj:









U izmanipuliranom obliku napadač vrijednost polja s iznosom postavlja na "30000", zamijeni broj računa primatelja na njihov račun, predaje obrazac prilikom učitavanja stranice i također skriva polja obrasca korisnik.

Jednom kada otmu trenutnu sesiju, vaša stranica transakcije pokreće preusmjeravanje na stranicu napadača, što vas traži da kliknete vezu za koju znaju da ćete je najvjerojatnije posjetiti.

Klikom na ovo učitava se predaja repliciranog obrasca koji prenosi vaša sredstva na račun napadača. To znači da ne trebate kliktati gumbe poput "pošalji" da bi se transakcija dogodila, jer JavaScript to automatski čini nakon učitavanja sljedeće web stranice.

Alternativno, napadač također može izraditi HTML ugrađenu e-poštu koja će vas zatražiti da kliknete vezu da biste izvršili istu predaju obrasca za učitavanje stranice.

Još jedna radnja koja je ranjiva na CSRF napad je korisničko ime ili promjena lozinke, primjer zahtjeva PUT. Napadač replicira vaš obrazac zahtjeva i zamjenjuje vašu e-adresu njihovom.

Zatim vam ukradu sesiju i preusmjere vas na stranicu ili vam pošalju e-poštu koja vas traži da kliknete privlačnu vezu.

Tada se šalje izmijenjeni obrazac koji vezu za poništavanje lozinke šalje na hakerovu e-adresu umjesto na vašu. Na taj način haker mijenja vašu lozinku i odjavljuje vas s računa.

Kako spriječiti CSRF napade kao programer

Jedna od najboljih metoda za sprečavanje CSRF-a je upotreba često mijenjajućih tokena, umjesto da ovisi o kolačićima sesije za pokretanje promjene stanja na poslužitelju.

Povezano: Besplatni vodiči za razumijevanje digitalne sigurnosti i zaštitu vaše privatnosti

Mnogi moderni pozadinski okviri nude sigurnost protiv CSRF-a. Dakle, ako sami želite izbjeći tehničke poteškoće u pojačavanju CSRF-a, lako se možete pozabaviti uporabom okvira na strani poslužitelja koji dolaze s ugrađenim anti-CSRF tokenima.

Kada upotrebljavate anti-CSRF token, zahtjevi na poslužitelju generiraju nasumične nizove umjesto statičnijih ranjivih kolačića sesije. Na taj način možete zaštititi svoju sesiju od nagađanja otmičara.

Implementacija dvofaktorskog sustava provjere autentičnosti (2FA) za pokretanje transakcija u vašoj web aplikaciji također smanjuje šanse za CSRF.

Moguće je pokrenuti CSRF putem skriptiranja na više mjesta (XSS), što uključuje ubrizgavanje skripte u korisnička polja poput obrazaca komentara. Da biste to spriječili, dobra je praksa omogućiti automatsko izbjegavanje HTML-a u svim poljima korisničkog obrasca na vašoj web lokaciji. Ta radnja sprečava polja obrasca da interpretiraju HTML elemente.

Kako spriječiti CSRF napade kao korisnik

Kao korisnik web usluge koja uključuje provjeru autentičnosti, vi ćete imati ulogu u sprečavanju napadača da također ukradu vaše vjerodajnice i sesije putem CSRF-a.

Provjerite upotrebljavate li pouzdane web usluge tijekom aktivnosti koje uključuju prijenos sredstava.

Uz ovo koristite i sigurni web preglednici koji štite korisnike od izlaganja sesiji, kao i sigurne tražilice koje štite od curenja podataka o pretraživanju.

Povezano: Najbolji privatni pretraživači koji poštuju vaše podatke

Kao korisnik možete se osloniti i na nezavisne autentifikatore poput Google autentifikator ili njegove alternative za potvrdu vašeg identiteta putem weba.

Iako biste se osjećali bespomoćno spriječiti napadača da otme vašu sesiju, i dalje možete pomoći spriječite to osiguravajući da vaš preglednik ne pohranjuje podatke poput lozinki i ostalih podataka za prijavu pojedinosti.

Poboljšajte svoju web sigurnost

Programeri moraju redovito testirati web-aplikacije na sigurnosne povrede tijekom razvoja i implementacije.

Međutim, uobičajeno je uvoditi druge ranjivosti dok pokušavate spriječiti druge. Stoga budite oprezni kako biste osigurali da niste prekršili druge sigurnosne parametre dok ste pokušavali blokirati CSRF.

E-mail
5 alata za lozinku za stvaranje jakih zaporki i ažuriranje vaše sigurnosti

Stvorite jaku lozinku koje ćete se kasnije sjećati. Koristite ove aplikacije da biste danas nadogradili svoju sigurnost novim snažnim zaporkama.

Povezane teme
  • Sigurnost
  • Sigurnost na mreži
O autoru
Idowu Omisola (Objavljeno 46 članaka)

Idowu je zaljubljen u sve pametne tehnologije i produktivnost. U slobodno vrijeme igra se s kodiranjem i prebacuje se na šahovsku ploču kad mu je dosadno, ali također voli kad-tad odvojiti se od rutine. Njegova strast da ljudima pokaže put oko moderne tehnologije motivira ga da piše više.

Više od Idowu Omisole

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Još jedan korak…!

Molimo potvrdite svoju e-adresu u e-pošti koju smo vam upravo poslali.

.