Nesigurna deserijalizacijaInsecure Deserialization
Deserijalizacija je vraćanje zapakovanog objekta u oblik koji aplikacija može da koristi. Problem nastaje kada aplikacija prihvati objekat iz nepouzdanog izvora i obradi ga kao da je bezbedan. Tada napadač ne šalje samo podatke, nego posebno pripremljenu strukturu koja može da promeni tok izvršavanja.
Pojam
opis · primeri · napomeneDeserijalizacija je vraćanje zapakovanog objekta u oblik koji aplikacija može da koristi. Problem nastaje kada aplikacija prihvati objekat iz nepouzdanog izvora i obradi ga kao da je bezbedan. Tada napadač ne šalje samo podatke, nego posebno pripremljenu strukturu koja može da promeni tok izvršavanja.
Opis
U najtežim slučajevima nesigurna deserijalizacija vodi do daljinskog izvršavanja koda. U blažim, ali i dalje ozbiljnim slučajevima, može promeniti ulogu korisnika, izazvati pad servisa, zaobići logiku aplikacije ili otvoriti pristup podacima koji nisu smeli da budu dostupni.
Ova klasa ranjivosti je nezgodna jer često traži dobro poznavanje internog rada aplikacije, framework-a i biblioteka. Kada napadač pronađe odgovarajući lanac objekata, aplikacija sama uradi posao koji nikada nije smela da uradi.
Primeri
- Aplikacija prihvata serijalizovan objekat iz kolačića i iz njega određuje korisničku ulogu.
- Posebno pripremljen Java objekat pokreće lanac poziva koji završava izvršavanjem komande na serveru.
- Ranjiva biblioteka za obradu XML ili binarnih objekata omogućava napadaču da izazove RCE.
Napomene
- Nepoverljiv serijalizovan objekat nije običan unos. To je upakovano potencijalno maliciozno ponašanje.
- Ako deserijalizacija ne može da se izbegne, objekti moraju biti potpisani, strogo validirani i obrađeni u ograničenom kontekstu.
Spomenuto u vestima
Tehnike
izvodi se sa 2Tehnike kojima se izvodi. Klik vodi na stranicu pojma.
Odbrane
suzbija se sa 4Kako se brani. Klik vodi na stranicu pojma.