Slijede razlike između dviju inačica stranice.
| Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
|
racfor_wiki:seminari:sigurnosna_analiza_pdf_formata [2023/01/06 23:30] ip51131 |
racfor_wiki:seminari:sigurnosna_analiza_pdf_formata [2024/12/05 12:24] (trenutno) |
||
|---|---|---|---|
| Redak 1: | Redak 1: | ||
| ===== Sigurnosna analiza PDF formata ===== | ===== Sigurnosna analiza PDF formata ===== | ||
| + | ==== Sažetak ==== | ||
| + | U ovom radu predstavljena je sigurnosna analiza PDF formata. Opisan je PDF format te objašnjeni osnovni dijelovi njegove dokumentacije. Objašnjena je struktura PDF dokumenta i vrste podataka koje se mogu koristiti. Na kraju, predstavljen je eksperiment koji opisuje alate za sigurnu analizu PDF dokumenta u svrhu pronalaženja malicioznog koda. | ||
| ==== Uvod ==== | ==== Uvod ==== | ||
| - | Trenutno je prisutan velik broj kibernetičkih prijetnji, a većina njih temelji se na malicioznom kodu. Maliciozni kod, ili // | + | Trenutno je prisutan velik broj kibernetičkih prijetnji, a većina njih temelji se na malicioznom kodu. Maliciozni kod, ili // |
| ==== Opis i dokumentacija PDF formata ==== | ==== Opis i dokumentacija PDF formata ==== | ||
| Redak 20: | Redak 22: | ||
| U tijelu PDF dokumenta nalaze se tekstualni i multimedijski objekti - točnije - objekti prikazani korisniku. | U tijelu PDF dokumenta nalaze se tekstualni i multimedijski objekti - točnije - objekti prikazani korisniku. | ||
| === xref tablica kružnih referenci === | === xref tablica kružnih referenci === | ||
| - | Kako pristupiti elementima PDF dokumenta? Odgovor na to može se naći u tablici kružnih referenci koja sadrži reference na sve objekte u dokumentu. Tablica kružnih sastoji se od zapisa veličine 20 okteta koji predstavljaju svaki objekt u dokumentu, što omogućuje nasumični pristup željenom objektu bez slijednog pretraživanja cijelog PDF dokumenta. Ova tablica nalazi se iza tijela dokumenta i njen se početak može prepoznati po ključnoj riječi " | + | Kako pristupiti elementima PDF dokumenta? Odgovor na to može se naći u tablici kružnih referenci koja sadrži reference na sve objekte u dokumentu. Tablica kružnih sastoji se od zapisa veličine 20 okteta koji predstavljaju svaki objekt u dokumentu, što omogućuje nasumični pristup željenom objektu bez slijednog pretraživanja cijelog PDF dokumenta. Ova tablica nalazi se iza tijela dokumenta i njen se početak može prepoznati po ključnoj riječi " |
| Kako bismo ju demistificirali, | Kako bismo ju demistificirali, | ||
| === Trailer === | === Trailer === | ||
| Redak 32: | Redak 34: | ||
| ==== Struktura dokumenta ==== | ==== Struktura dokumenta ==== | ||
| - | Svaka stranica PDF dokumenta predstavljena je // | + | Svaka stranica PDF dokumenta predstavljena je // |
| === Katalog dokumenta === | === Katalog dokumenta === | ||
| Katalog dokumenta je korijen svih objekata u PDF dokumentu - sadrži reference na druge objekte koji definiraju sadržaj dokumenta. Referenca na katalog nalazi se u /Root elementu trailera. Zapisi sadržani u katalogu su sljedeći: | Katalog dokumenta je korijen svih objekata u PDF dokumentu - sadrži reference na druge objekte koji definiraju sadržaj dokumenta. Referenca na katalog nalazi se u /Root elementu trailera. Zapisi sadržani u katalogu su sljedeći: | ||
| Redak 38: | Redak 40: | ||
| * verzija (/Version) - verzija PDF specifikacije | * verzija (/Version) - verzija PDF specifikacije | ||
| * proširenja (/ | * proširenja (/ | ||
| - | * stranice (/Pages) - indirektna referenca na korijen | + | * stranice (/Pages) - indirektna referenca na korijen |
| * odredišta (/Dests) - indirektna referenca na korijen imenovanih odredišta | * odredišta (/Dests) - indirektna referenca na korijen imenovanih odredišta | ||
| * obrisi (/Outlines) - indirektna referenca na korijen hijerarhije obrisa | * obrisi (/Outlines) - indirektna referenca na korijen hijerarhije obrisa | ||
| Redak 45: | Redak 47: | ||
| i ostali. | i ostali. | ||
| - | === Drvo stranica === | + | === Stablo |
| - | Drvo stranica definira sve stranice PDF dokumenta i sadrži čvorove koji ih predstavljaju. Postoje dva tipa čvorova: **središnji** - čvorovi | + | Stablo |
| - | Svaki čvor u drvetu | + | Svaki čvor u stablu |
| - | ==== PDF " | + | ====Analiza==== |
| - | Za čitanje PDF datoteke, potrebno je instalirati neki od PDF čitača, poput Adobe Acrobat, no neke specifične informacije o PDF dokumentu mogu se //izvući// i bez pokretanja čitačem, pomoću alata **PDFiD** koji je korišten u primjerima ovog poglavlja. PDFiD skenira PDF datoteku u svrhu pronalaska zadanih nizova znakova te broji njihove pojave, što je korisno kod identifikacije JavaScript programa ili naredbi za izvršavanje akcija. Ovo se može identificirati pretragom za nizove znakova "/ | + | Za čitanje PDF datoteke, potrebno je instalirati neki od PDF čitača, poput Adobe Acrobat, no neke specifične informacije o PDF dokumentu mogu se //izvući// i bez pokretanja čitačem, pomoću alata **PDFiD** koji je korišten u primjerima ovog poglavlja. PDFiD skenira PDF datoteku u svrhu pronalaska zadanih nizova znakova te broji njihove pojave, što je korisno kod identifikacije JavaScript programa ili naredbi za izvršavanje akcija. Ovo se može identificirati pretragom za nizove znakova "/ |
| {{ : | {{ : | ||
| Slika je preuzeta iz [4]. | Slika je preuzeta iz [4]. | ||
| - | U tijelo PDF dokumenta korisnik može dodati sigurnosne značajke, nevidljive objekte, promijeniti logičku strukturu dokumenta ili zaštititi dokument od nedopuštenog pristupa i uređivanja. Kako bi se identificirali objekti u PDF dokumentu, koristi se alat **PDF-PARSER** koji ne prikazuje, već parsira elemente. | + | U tijelo PDF dokumenta korisnik može dodati sigurnosne značajke, nevidljive objekte, promijeniti logičku strukturu dokumenta ili zaštititi dokument od nedopuštenog pristupa i uređivanja. Kako bi se identificirali objekti u PDF dokumentu, koristi se alat **PDF-PARSER** koji ne prikazuje, već parsira elemente. Na slici je prikazan izlaz alata PDF-PARSER za naš dokument. |
| {{ : | {{ : | ||
| Slika je preuzeta iz [4]. | Slika je preuzeta iz [4]. | ||
| - | Na prethodnoj slici vidimo da objekt "Obj 12" sadrži referencu na objekt "Obj 13" s JavaScriptom i tokom. Kada se naredbom //pdftk// provjeri sadržaj toka, može se vidjeti kod skriven u JavaScriptu, | + | Na prethodnoj slici vidimo da objekt "Obj 12" sadrži referencu na objekt "Obj 13" s JavaScriptom i tokom. Kada se naredbom //pdftk// provjeri sadržaj toka, može se vidjeti kod skriven u JavaScriptu, |
| {{ : | {{ : | ||
| Slika je preuzeta iz [4]. | Slika je preuzeta iz [4]. | ||
| Redak 63: | Redak 65: | ||
| ==== Zaključak ==== | ==== Zaključak ==== | ||
| Maliciozne PDF datoteke smatraju se jednom od najvećih prijetnji sigurnosti računalnih sustava. Zbog svoje fleksibilne strukture, vrlo je lako generirati netočne i maliciozne PDF datoteke. Takve datoteke mogu zaraziti cijelo računalo malicioznim kodom ako ih otvorimo čitačem ili drugom aplikacijom koja izvršava kod u PDF datoteci. | Maliciozne PDF datoteke smatraju se jednom od najvećih prijetnji sigurnosti računalnih sustava. Zbog svoje fleksibilne strukture, vrlo je lako generirati netočne i maliciozne PDF datoteke. Takve datoteke mogu zaraziti cijelo računalo malicioznim kodom ako ih otvorimo čitačem ili drugom aplikacijom koja izvršava kod u PDF datoteci. | ||
| - | ==== Sažetak ==== | ||
| - | U ovom radu predstavljena je sigurnosna analiza PDF formata. Opisan je PDF format te objašnjeni osnovni dijelovi njegove dokumentacije. Objašnjena je struktura PDF dokumenta i vrste podataka koje se mogu koristiti. Predstavljeni su načini za generiranje netočnog PDF dokumenta. Na kraju, predstavljen je eksperiment koji opisuje alate za sigurno pretraživanje PDF dokumenta u svrhu pronalaženja malicioznog koda. | ||
| ==== Literatura ==== | ==== Literatura ==== | ||
| - | [1] [https:// | + | [1] https:// |
| - | [2] [https:// | + | |
| - | [3] [https:// | + | [2] https:// |
| - | [4] [[https:// | + | |
| - | [5] [https:// | + | [3] https:// |
| + | |||
| + | [4] https:// | ||
| + | |||
| + | [5] https:// | ||