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/12 16:19] db51613 [Potenijalna zaštita] |
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 je odklična praksa ali iz pogleda napadača | + | Korištenje JavaScripta u PDF-u je odlična praksa ali iz pogleda napadača |
- | DDOS-Ovi napadi se ostvaruju tako da se kreira pdf dokument koji tjera računalo da troši sve sovoje | + | 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 |
- | Otkrivanje informacija-poanta ovih napada je da povežu napadača i žrtvu te tako omogućuju napadaču da dođe do informacijama | + | 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 |
- | Manipulacija podacima-ovaj tip napada fokusira se na izmjenu žrtvinih | + | Manipulacija podacima - ovaj tip napada fokusira se na izmjenu žrtvinih |
- | Pokretanje koda- u ovoj vrsti npada otvaranjem pdf dokumena | + | Pokretanje koda - u ovoj vrsti napada |
- | ===== Detekcija | + | ===== Detekcija |
+ | 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: | ||
+ | |||
+ | 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 ===== | ===== 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. | ||
Redak 29: | Redak 67: | ||
===== Zaključak ===== | ===== 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:// | ||