Preskoči na sadržaj

Sigurnost web aplikacija

doc. dr. sc. Vedran Miletić, vmiletic@inf.uniri.hr, vedran.miletic.net

Fakultet informatike i digitalnih tehnologija Sveučilišta u Rijeci, akademska 2021./2022. godina


Uvod i motivacija

U svom inboxu pronađete e-mail prikazan na slici s desne strane. Vjerujete li mu i zašto?

Phishing bg right 95%


TLS (SSL) i HTTPS

Naučili smo na Računalnim mrežama i Sigurnosti informacijskih i komunikacijskih sustava, odnosno Računalnim mrežama 2:


Evolucija TLS-a

TODO


Napadači ciljaju na web aplikacije

Prema Impervi, tvrtci specijaliziranoj za kibernetičku sigurnost:

  • Kompleksne aplikacije imaju velik izvorni kod i time velik potencijal za postojanje ranjivosti i zlonamjernih promjena izvornog koda.
  • Potencijalne nagrade u slučaju uspješnog napada su visoke vrijednosti, uključujući osjetljive privatne podatke (npr. brojeve kreditnih kartica) prikupljene uspješnom manipulacijom izvornim kodom.
  • Napadi se jednostavno izvršavaju jer se većina napada odjednom može lako automatizirati i pokrenuti neselektivno protiv tisuća, desetaka tisuća ili stotina tisuća ciljeva (web aplikacija).

Nedavni primjeri: Log4j, JWT biblioteke


Security bg 80% left

Sigurnost

Izvor: Security (MonkeyUser, 17th January 2017)


Ubrizganje u SQL upit

Ubrizganje u SQL upit (engl. SQL injection) događa se kada počinitelj koristi zlonamjerni SQL kod za manipulaciju pozadinskom bazom podataka kako bi otkrio informacije. Posljedice uključuju neovlašteno pregledavanje popisa, brisanje tablica i neovlašteni administrativni pristup (Imperva).

xkcd 327: Exploits of a Mom


Zaštita od ubrizganja u SQL upit


Cross-site Scripting (XSS)

Skriptiranje na više web sjedišta (engl. cross-site scripting, kraće XSS) je injekcijski napad koji cilja korisnike kako bi ostvario pristup računima, aktivirao trojanske programe ili izmijenio sadržaj stranice. Pohranjeni XSS događa se kada se zlonamjerni kôd ubrizga izravno u aplikaciju (Imperva). Reflektirani XSS se javlja kada se zlonamjerna skripta odrazi iz aplikacije u korisnikovu pregledniku (Imperva).


Zaštita od XSS-a


Cross-site Request Forgery (CSRF)

Krivotvorenje zahtjeva za više web sjedišta (engl. Cross-site Request Forgery, kraće CSRF) je napad koji može rezultirati neželjenim prijenosom sredstava, promijenjenim lozinkama ili krađom podataka. Uzrokuje se kada zlonamjerna web aplikacija tjera korisnikov preglednik da izvrši neželjenu radnju na web mjestu na koje je korisnik prijavljen (Imperva).


Zaštita od CSRF-a


Uključivanje udaljene datoteke

Uključivanje udaljene datoteke (engl. remote file inclusion) ubacuje datoteku na poslužitelj web aplikacija i uključuje je kod izvođenja. To može rezultirati izvršavanjem zlonamjernih skripti ili koda unutar aplikacije, kao i krađom podataka ili manipulacijom (Imperva).

Uključivanje udaljene datoteke sprječava se sanitizacijom korisničkog unosa, provjerom izlaza na poslužitelju i ograničavanjem vrsta datoteka s kojima aplikacija radi na poznat popis (npr. PDF, PNG, JPEG i GIF).


Cross-Origin Resource Sharing (CORS)

Prema Wikipediji:

Dijeljenje resursa s više podrijetla (engl. Cross-Origin Resource Sharing, kraće CORS) je mehanizam koji omogućuje da se resursi na web stranici kojima je u zadanim postavkama ograničen pristup zatraže s druge domene izvan domene u odnosu na onu s koje je prvi resurs poslužen.


Web application firewall

Prema Wikipediji:

Vatrozid web aplikacije (engl. web application firewall, kraće WAF) je vatrozid koji filtrira, nadgleda i blokira HTTP promet prema i od web servisa ili aplikacije. Pregledom HTTP prometa može spriječiti napade koji iskorištavaju poznate ranjivosti web aplikacija, poput ubrizganja u SQL upit, skriptiranja na više web sjedišta (XSS), uključivanja udaljene datoteka i nepravilne konfiguracija sustava (Cloudflareova ilustracija rada).

Implementacije u oblaku:

Implementacije otvorenog koda: Shadow Daemon, ModSecurity i druge.


Open Web Application Security Project (OWASP)

Open Web Application Security Project (OWASP) je neprofitna zaklada koja radi na poboljšanju sigurnosti programske podrške na webu kroz softverske projekte otvorenog koda, stotine lokalnih organizacija širom svijeta, desetke tisuća članova i obrazovne konferencije.

Najzanimljiviji među projektima koje provode:


TODO Dodati

  • API key, JWT token, OAuth

Author: Vedran Miletić