Sadržaj

Sažetak

U današnje doba napadi korištenjem PDF formata sve su češći. Ljudi često ne razmišljaju kod preuzimanja PDF datoteka jer su navikli da je PDF format generalno siguran. Ono čega dosta ljudi nije svjesno jest da se u PDF-u može kriti maliciozni Javascript kod koji bi mogao ugroziti njihove podatke. U ovom radu proći ćemo kroz neke od napada korištenjem JavaScripta te pogledati kako je moguće provjeriti da li PDF sadrži maliciozni JavaScript kod te koji su mogući načini zaštite.

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 automatiziralo rukovanje obrascima, povezalo dokument s nekom bazom i generalno kako bi se povećala interaktivnost dokumenta. Za napadača to je izvrsno mjesto za ugraditi maliciozni kod koji može naštetiti žrtvi.

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.

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.

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:

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

 1 0 obj 
 2 0 obj 

Bitno je uočiti da kad pogledamo objekt 2 vidimo slijedeci isječak:

 <<
/S/JavaScript
/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

[1]https://www.sentinelone.com/blog/malicious-pdfs-revealing-techniques-behind-attacks/

[2]https://www.intezer.com/blog/incident-response/analyze-malicious-pdf-files/

[3]https://logrhythm.com/blog/detecting-malicious-javascript-in-a-pdf/

[4]https://pdf-insecurity.org/pdf-dangerous-paths/attacks.html

[5]https://labs.oracle.com/pls/apex/f?p=LABS:0:104194602404452:APPLICATION_PROCESS=GETDOC_INLINE:::DOC_ID:1072

Prezentacija: https://ferhr-my.sharepoint.com/:p:/g/personal/db51613_fer_hr/EVUeBPOtlspEpPt_yI4fVm0B72ltBQOT4ouGFz-2dJtPtQ?e=WNKuHw