Slijede razlike između dviju inačica stranice.
Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
racfor_wiki:seminari:analiza_ranjivosti_xxe_i_njezino_iskoristavanje [2023/01/12 19:30] fj51890 [Zaštita od XXE napada] |
racfor_wiki:seminari:analiza_ranjivosti_xxe_i_njezino_iskoristavanje [2024/12/05 12:24] (trenutno) |
||
---|---|---|---|
Redak 3: | Redak 3: | ||
===== Sažetak ===== | ===== Sažetak ===== | ||
- | XXE (XML External Entity) ranjivosti su tip ranjivosti čije iskorištavanje omogućuje napadaču izvršavanje malicioznih radnji u aplikacijama koje parsiraju XML datoteke. Ranjivost se javlja kada aplikacija omogućuje korisnicima unos XML datoteka, a pritom se ne izvršava validacija ni sanitizacija | + | XXE (XML External Entity) ranjivosti su tip ranjivosti čije iskorištavanje omogućuje napadaču izvršavanje malicioznih radnji u aplikacijama koje parsiraju XML datoteke. Ranjivost se javlja kada aplikacija omogućuje korisnicima unos XML datoteka pritom |
===== Uvod ===== | ===== Uvod ===== | ||
- | XXE (XML External Entity) vrsta je ranjivosti koja se može pojaviti u bibliotekama za parsiranje XML-a. XXE ranjivost se javlja kada aplikacija ili sustav obrađuje XML na način koji napadaču omogućuje ubacivanje vanjskih entiteta u dokument, koji se mogu koristiti za pristup osjetljivim informacijama ili izvođenje zlonamjernih radnji. Aplikacija koristi korisnički unos za konstrukciju XML dokumenta te ga nakon toga parsira bez vršenja validacije ili sanitizacije | + | XXE (XML External Entity) vrsta je ranjivosti koja se može pojaviti u bibliotekama za parsiranje XML-a. XXE ranjivost se javlja kada aplikacija ili sustav obrađuje XML na način koji napadaču omogućuje ubacivanje vanjskih entiteta u dokument, koji se mogu koristiti za pristup osjetljivim informacijama ili izvođenje zlonamjernih radnji. Aplikacija koristi korisnički unos za konstrukciju XML dokumenta te ga nakon toga parsira bez vršenja validacije ili saniranja |
===== XXE ranjivosti i dohvat datoteka ===== | ===== XXE ranjivosti i dohvat datoteka ===== | ||
Redak 28: | Redak 28: | ||
Na primjer, napadač može poslati XML dokument koji sadrži referencu na interni poslužitelj koji nije dostupan na internetu. Ako aplikacija pošalje zahtjev internom poslužitelju u ime napadača, napadač bi potencijalno mogao dobiti pristup osjetljivim informacijama ili izvesti neovlaštene naredbe na internom poslužitelju. | Na primjer, napadač može poslati XML dokument koji sadrži referencu na interni poslužitelj koji nije dostupan na internetu. Ako aplikacija pošalje zahtjev internom poslužitelju u ime napadača, napadač bi potencijalno mogao dobiti pristup osjetljivim informacijama ili izvesti neovlaštene naredbe na internom poslužitelju. | ||
- | Mjere kao što su sanitizacija | + | Mjere kao što su saniranje |
- | Priložen je primjerak XML datoteke čije parsiranje rezultira zahtjevom na napadečevu stranicu gdje on može spremiti informacije o IP adresi poslužitelja i druge informacije iz zahtjeva. Ovo je primjer najjednostavnijeg XML baziranog SSRF napada, u stvarnosti oni mogu biti mnogo kompleksniji i detaljniji. | + | Priložen je primjerak XML datoteke čije parsiranje rezultira zahtjevom na napadačevu stranicu gdje on može spremiti informacije o IP adresi poslužitelja i druge informacije iz zahtjeva. Ovo je primjer najjednostavnijeg XML baziranog SSRF napada, u stvarnosti oni mogu biti mnogo kompleksniji i detaljniji. |
< | < | ||
<?xml version=" | <?xml version=" | ||
Redak 44: | Redak 44: | ||
===== XXE ranjivost kao platforma za druge napade ===== | ===== XXE ranjivost kao platforma za druge napade ===== | ||
- | XXE ranjivosti često se mogu koristiti kao platforma za druge vrste napada. Jednom kada napadač uspije iskoristiti XXE ranjivost i dobiti pristup osjetljivim informacijama ili mogućnost slanja zahtjeva | + | XXE ranjivosti često se mogu koristiti kao platforma za druge vrste napada. Jednom kada napadač uspije iskoristiti XXE ranjivost i dobiti pristup osjetljivim informacijama ili mogućnost slanja zahtjeva |
- | Na primjer, napadač koji je uspio dohvatiti osjetljive informacije poput korisničkog imena i lozinke baze podataka putem XXE ranjivosti može upotrijebiti te informacije za napad na bazu podataka i potencijalno izvlačenje osjetljivijih podataka. Slično, napadač koji je u mogućnosti uputiti zahtjeve unutar lokalne mreže ili resursima putem XXE baziranog SSRF napada može koristiti ovaj pristup za ispitivanje drugih ranjivosti ili krađu dodatnih informacija. | + | Na primjer, napadač koji je uspio dohvatiti osjetljive informacije poput korisničkog imena i lozinke baze podataka putem XXE ranjivosti može upotrijebiti te informacije za napad na bazu podataka i potencijalno izvlačenje osjetljivijih podataka. Slično, napadač koji ima mogućnost uputiti zahtjeve unutar lokalne mreže ili resursima putem XXE baziranog SSRF napada može koristiti ovaj pristup za ispitivanje drugih ranjivosti ili krađu dodatnih informacija. |
Nadalje, XXE ranjivosti također se mogu koristiti za izvođenje drugih vrsta napada umetanjem (injection). Na primjer, ako napadač uspije ubaciti zlonamjerni unos u aplikaciju ili sustav koji se zatim prosljeđuje SQL upitu, to može dovesti do napada umetanjem SQL-a, dopuštajući napadaču da dohvati ili manipulira podacima iz baze podataka. | Nadalje, XXE ranjivosti također se mogu koristiti za izvođenje drugih vrsta napada umetanjem (injection). Na primjer, ako napadač uspije ubaciti zlonamjerni unos u aplikaciju ili sustav koji se zatim prosljeđuje SQL upitu, to može dovesti do napada umetanjem SQL-a, dopuštajući napadaču da dohvati ili manipulira podacima iz baze podataka. | ||
Redak 60: | Redak 60: | ||
Kako bi zaštitili svoje aplikacije od XXE napada potrebno je više stvari neke od kojih su: | Kako bi zaštitili svoje aplikacije od XXE napada potrebno je više stvari neke od kojih su: | ||
* Onemogućivanje korištenje vanjskih entiteta - XML parseri najčešće imaju mogućnost da se ova opcija onemogući | * Onemogućivanje korištenje vanjskih entiteta - XML parseri najčešće imaju mogućnost da se ova opcija onemogući | ||
- | * Sanitizacija | + | * Saniranje |
* Redovito ažuriranje softvera - Mnoge XXE ranjivosti otkrivene su i popravljene kroz sigurnosna ažuriranja. Važno je održavati sav softver i biblioteke ažuriranima kako bi se smanjila površina napada | * Redovito ažuriranje softvera - Mnoge XXE ranjivosti otkrivene su i popravljene kroz sigurnosna ažuriranja. Važno je održavati sav softver i biblioteke ažuriranima kako bi se smanjila površina napada | ||
+ | * Korištenje vatrozida i drugih sigurnosnih kontrola na razini mreže | ||
* Praćenje sustava: redovit pregled log datoteka, praćenje ponašanja sustava kako bi se uočila sumnjiva aktivnost | * Praćenje sustava: redovit pregled log datoteka, praćenje ponašanja sustava kako bi se uočila sumnjiva aktivnost | ||
Redak 68: | Redak 69: | ||
===== Zaključak ===== | ===== Zaključak ===== | ||
+ | XXE (XML vanjski entiteti) je vrsta ranjivosti koja utječe na biblioteke za parsiranje XML-a u softveru, a koja se javlja kada aplikacija ili sustav obrađuje XML unos na način koji dopušta napadaču da ubaci vanjske entitete u dokument. To se može koristiti za pristup osjetljivim informacijama, | ||
+ | Sprječavanje XXE ranjivosti zahtijeva nekoliko aspekata, među kojima su: korištenje XML parsera koji automatski onemogućuje rezoluciju vanjskog entiteta, saniranje i validaciju unosa, održavanje softvera ažurnim, vatrozida ili drugih sigurnosnih kontrola na razini mreže i nadgledanje sustava za sumnjive aktivnosti. | ||
+ | |||
+ | Važno je napomenuti da su XXE ranjivosti ozbiljan problem i organizacije bi trebale provesti mjere zaštite od ovakvih vrsta napada. Razumijevanjem prirode XXE ranjivosti i poduzimanjem odgovarajućih akcija za njihovo sprječavanje, | ||
+ | |||
+ | Prezentacija: | ||
+ | https:// | ||
===== Literatura ===== | ===== Literatura ===== | ||
- | [1] [[https://dl.acm.org/doi/pdf/10.1145/1161366.1161375| Wang W., Farid H.: Exposing Digital Forgeries in Video by Detecting Double MPEG Compression]] | + | [1] [[https://www.fer.unizg.hr/_download/repository/10-Sigurnost-web-aplikacija.pdf | Sigurnost web aplikacija prezentacija kolegija SRS]] |
+ | |||
+ | [2] [[https://owasp.org/ | ||
+ | |||
+ | [3] [[https:// | ||
- | [2] [[http://clem.dii.unisi.it/~vipp/website_resources/ | + | [4] [[https://portswigger.net/web-security/xxe]] |
- | [3] [[https:// | ||