Slijede razlike između dviju inačica stranice.
Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
racfor_wiki:seminari:maliciozni_javascript_u_pdf_dokumentima [2023/01/11 15:57] db51613 [Poglavlje 2] |
racfor_wiki:seminari:maliciozni_javascript_u_pdf_dokumentima [2024/12/05 12:24] (trenutno) |
||
---|---|---|---|
Redak 2: | Redak 2: | ||
===== Sažetak ===== | ===== Sažetak ===== | ||
- | U današnje doba napadi korištenjem PDF formata sve su češći. Ljudi često ne razmišljaju kod preuzimanja PDF datoteki | + | U današnje doba napadi korištenjem PDF formata sve su češći. Ljudi često ne razmišljaju kod preuzimanja PDF datoteka |
===== Uvod ===== | ===== Uvod ===== | ||
- | PDF format postao je najkorišteniji format datoteke u proteklim godinama te je s time postao vrlo zanimljiv za napadače. Postoji još par faktora uz njegovu popularnost koji ga čine izuzetno povoljnim za napadača a onaj glavni je mogučnost pokretanja JavaScripta. JavaScript se u PDF-u obićno koristi kako bi se automatizralo | + | PDF format postao je najkorišteniji format datoteke u proteklim godinama te je s time postao vrlo zanimljiv za napadače. Postoji još par faktora uz njegovu popularnost koji ga čine izuzetno povoljnim za napadača a onaj glavni je mogućnost pokretanja JavaScripta. JavaScript se u PDF-u obično koristi kako bi se automatiziralo |
===== JavaScript napadi na PDF ===== | ===== JavaScript napadi na PDF ===== | ||
+ | Korištenje JavaScripta u PDF-u je odlična praksa ali iz pogleda napadača otvara više mogućnosti za napad. | ||
- | ===== Poglavlje 3 ===== | + | DDOS-ovi napadi se ostvaruju tako da se kreira pdf dokument koji tjera računalo da troši sve svoje resurse. To se najčešče ostvaruje kreiranjem beskonačnih ili akcijskih petlji te tjeranjem koda da izvršava neke kompleksne matematičke operacije u pozadini bez korisnikovog znanja. |
+ | Otkrivanje informacija - poanta ovih napada je da ostvare konekciju između napadača i žrtve te tako omoguće napadaču da dođe do informacija o žrtvi i njenim podacima. Neki od napada koji spadaju pod otkrivanje informacija su URL invocation, data leakage i credential theft. | ||
- | ===== Poglavlje | + | Manipulacija podacima - ovaj tip napada fokusira se na izmjenu žrtvinih podataka. Ovi napadi mogu se izvršiti kao modifikacija forme gdje se korisniku mijenja unos u pdf formu omogućavanjem pisanja po korisnikovim lokalnim datotekama i maskiranjem sadržaja dokumenta. |
+ | Pokretanje koda - u ovoj vrsti napada otvaranjem pdf dokumenta na žrtvinom računalu izvršava se maliciozni kod napadača. | ||
+ | ===== Detekcija malicioznog JavaScripta ===== | ||
+ | Kako bi započeli priču oko detekcije malicioznog JavaScript koda moramo prvo pogledati strukturu pdf formata datoteke: | ||
+ | {{: | ||
+ | Kao što se vidi na slici pdf se sastoji od: | ||
- | ===== Zaključak ===== | + | header - sadrži verziju pdf-a |
+ | object - jedan ili više objekata obično sadrže informacije koje su potrebne za renderiranje dokumenata | ||
+ | xref - sadrži offset vrijednosti za razne elemente pdf-a | ||
+ | trailer - sadrži metapodatke | ||
+ | end of file - označava kraj dokumenta. | ||
+ | Kako bi započeli analizu tako za početak možemo otvoriti pdf u nekom plain text editoru gdje ćemo dobiti slijedeće: | ||
+ | {{: | ||
+ | |||
+ | U ovom zapisu vidimo header, vidimo da ovaj pdf sadrži 2 objekta koji su označeni sa | ||
+ | < | ||
+ | 2 0 obj </ | ||
+ | |||
+ | Bitno je uočiti da kad pogledamo objekt 2 vidimo slijedeci isječak: | ||
+ | < | ||
+ | / | ||
+ | /JS 1 0 R | ||
+ | >> | ||
+ | </ | ||
+ | |||
+ | Taj dio nam govori da je nečitki niz iznad objekta zapravo javascript kod. U ovakvom obliku jasno ne možemo shvatiti koja je svrha tog JavaScript koda te možemo primijeniti neku od postojećih python skripti kako bi dobili čitku verziju JavaScript koda. Kopiranjem toga u neki IDE možemo jasno pročitati čemu taj kod služi. U našem slučaju dobit ćemo slijedeće: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Sada iz ovog koda možemo vidjeti da tu postoji jedna potencijalno zabrinjavajuća stvar, a to je da ovaj kod kontaktira domenu readnotify.com što znači da napadaču vjerojatno dostavlja informacije o korisniku. Naravno, ovo je samo jedan banalan primjer te se maliciozni kod može i malo bolje sakriti. Postoje i razni alati koji mogu pomoći u takvim situacijama kao npr. VirusTotal, LogRhythm Netmon, itd. | ||
+ | |||
+ | |||
+ | |||
+ | ===== Potencijalna zaštita ===== | ||
+ | Mogućnosti napada korištenjem JavaScripta ograničene su vrstom čitača pdf-a kojim se koristimo kao i njegovom verzijom, no neki generalni načini prevencije napada su: | ||
+ | Statički - korištenjem potpisa, uzoraka, struktura i strojnog učenja, | ||
+ | Dinamički - detekcija tijekom izvođenja u virtualnom okruženju, zaštita tijekom izvođenja | ||
+ | |||
+ | Iako većina navedenih načina mogu otkriti maliciozni kod postoji mogućnost da se to ne dogodi pa je zapravo jedini pravi način da se osiguramo od takvih napada onemogućavanje izvršavanja JavaScripta kod otvaranja pdf-a. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Zaključak ===== | ||
+ | |||
+ | Pdf kao format je najpopularniji format datoteke te ga većina ljudi smatra sigurnim za korištenje. Zbog te činjenice je za napadača izuzetno učinkovito koristiti baš taj format kako bi ostvario neki napad na žrtvu. Kada preuzimamo neku pdf datoteku trebali bi pripaziti prije njenog otvaranja kako baš mi ne bismo postali žrtva napada. Postoje metode provjere i detekcije malicioznih pdf datoteka te bi bilo dobro za sumnjive datoteke provesti analizu nekim od gore opisanih postupaka ili, ako već nismo sigurni kako ih provjeriti, barem onemogućiti izvođenje JavaScripta u našem pdf čitaču. | ||
===== Literatura ===== | ===== Literatura ===== | ||
+ | [1][[https:// | ||
+ | |||
+ | [2][[https:// | ||
+ | |||
+ | [3][[https:// | ||
+ | |||
+ | [4][[https:// | ||
+ | |||
+ | [5][[https:// | ||
+ | |||
+ | Prezentacija: | ||
+ | https:// | ||