Starije izmjene na obje strane
Starija izmjena
Novija izmjena
|
Starija izmjena
|
racfor_wiki:malware:detekcija_malicioznih_pdf_datoteka_metodama_strojnog_ucenja [2020/01/03 22:53] iilic2 [Feature extraction and feature selection] Image width |
racfor_wiki:malware:detekcija_malicioznih_pdf_datoteka_metodama_strojnog_ucenja [2024/12/05 12:24] (trenutno) |
====== Malicious PDF Detection using Machine Learning ====== | ====== Detekcija malicioznih PDF datoteka metodama strojnog učenja ====== |
| |
===== Abstract ===== | ===== Sažetak ===== |
| |
The complexity and structure of modern documents make it possible to hide malicious code or confuse it with data. For that reason, the so-called //trojan documents// are often used as a vehicle for the distribution of malicious code, often appearing as legitimate and useful. The goal is to exploit vulnerabilities in the client application to perform arbitrary code execution. The PDF file format, one of the most widely spread file formats, has become popular due to its ease of use and broad set of functionalities. This seminar will cover a method for static analysis of PDF documents that employs machine learning algorithms to discriminate between benign and malicious PDF documents, described in [1]. Besides benign/malicious classification, the same method will be used to discriminate between malicious documents designed for large-scale phishing attacks and the ones designed for targeted attacks. | Kompleksnost i struktura modernih digitalnih dokumenata omogućuje skrivanje ili namjerno predstavljanje malicioznog koda kao skupa korisnih podataka. Iz tog razloga se takozvani //trojanski dokumenti// često koriste kao sredstvo za distribuciju malicioznog koda, često djelujući kao legitimni i korisni dokumenti. Cilj takvih napada je iskoristiti ranjivosti u klijentskoj aplikaciji kako bi se postiglo izvršavanje proizvoljnog programskog koda. PDF dokumenti, jedni od najraširenije korištenih dokumenata, su postali popularni zahvaljujući svojoj jednostavnosti i širokom spektru funkcionalnosti koje nude. Ovaj seminar obradit će metodu statičke analize PDF dokumenata koja uz pomoć algoritama strojnog učenja obavlja klasifikaciju PDF dokumenta na benigni ili maliciozni dokument. Osim klasifikacije benignog/malicioznog dokumenta, ista metoda će se iskoristiti za klasifikaciju malicioznih dokumenata na one koji su namijenjeni za phishing napade na velikoj skali i onih koji su namijenjeni za ciljane napade. |
===== Introduction ===== | ===== Uvod ===== |
| |
Trojan documents exploit vulnerabilities of the rising number of document viewer applications, often combined with social engineering to deceive victims of the documents' legitimacy. For example, packaging malware in fake bank statements, company reports, etc. There are generally two types of attacks. The first is large-scale phishing attacks whose goal is to espionage and collect data on a large number of random victims. The second type is targeted (or victim specific) attacks which use knowledge about a specific person or entity.\\ | Trojanski dokumenti iskorištavaju ranjivosti sve većeg broja aplikacija za pregledavanje dokumenata, često u kombinaciji s društvenim inženjeringom kako bi zavarali žrtve o legitimnosti tih dokumenata. Na primjer, skrivanje malicioznog koda u lažne izvode iz banke, izvješća tvrtki itd. Općenito postoje dvije vrste napada. Prvi su phishing napadi izvedeni na velikoj skali čiji je cilj špijunaža i prikupljanje podataka o velikom broju slučajnih žrtava. Drugi tip su ciljani napadi koji koriste znanje o određenoj osobi ili entitetu.\\ |
\\ | \\ |
PDF documents are one of the most popular file formats for performing these types of attacks. Many different methods and strategies are used by attackers to conduct these attacks using PDF file format. To list a few: | PDF dokumenti jedan su od najpopularnijih formata datoteka za izvođenje ovih vrsta napada. Napadači koriste mnogo različitih metoda i strategija za izvođenje tih napada koristeći PDF datotečni format. Neki od tih metoda su: |
| |
* using document purely to exploit vulnerability in client reader application | * korištenje dokumenta isključivo radi iskorištavanja ranjivosti u klijentskoj aplikaciji za čitanje dokumenata |
* using document to transfer complete malware code on victims machine | * korištenje dokumenta za prijenos kompletnog malicioznog koda na računalo žrtve |
* document contains code for downloading the remaining components of malware | * korištenje dokumenta koji ima ugrađen kod za preuzimanje malicioznog koda s interneta |
To detect malicious PDF documents, there are generally two main approaches. First is static analysis of document which employs signature analysis or pattern matching. Second is dynamic analysis which observes the behavior of decoded PDF document. \\ \\ The method in this seminar takes a static analysis approach. Using regex matching and set of documents, features are extracted from document metadata and structural elements, without ever decoding the PDF document. These features are then used by the machine learning algorithm called //Random forests// to distinguish between benign and malicious documents. \\ The fundamental assumption is that any two benign documents will have similar features. The same goes for two malicious documents. But, no two documents will ever have similar features if one of them is benign and the other one is malicious. \\ The main benefit of the machine learning approach is the ability to generalize to new types of malware. The method is vulnerability and exploit agnostic, requiring no prior knowledge of any malware families. | Za otkrivanje malicioznih PDF dokumenata obično postoje dva pristupa. Prvi pristup je statička analiza dokumenta koja koristi //signature analysis// ili regularne izraze kako bi se ekstrahirali uzorci i usporedili s bazom uzoraka malicioznih kodova. Drugi pristup je dinamička analiza koja analizira ponašanje dekodiranog PDF dokumenta. \\ \\ Metoda opisana u ovom seminaru bazirana je statičkoj analizi. Korištenjem regularnih izraza, za svaki dokument u skupu podataka izvlače se značajke iz metapodataka dokumenta te njegovih strukturnih elemenata, bez potrebe za dekodiranjem samog PDF dokumenta. Te se značajke zatim predaju algoritmu strojnog učenja zvanim //Random forests//, čiji je cilj naučiti uzorke koji se nalaze u podacima te iskoristiti te uzorke za razlikovanje benignih od malicioznih dokumenata. \\ Temeljna je pretpostavka da će svaka dva benigna dokumenta imati slične ekstrahirane značajke. Ista pretpostavka vrijedi i za dva maliciozna dokumenta. No, dva dokumenta neće imati slične značajke ako je jedan od njih benigni, a drugi maliciozan. \\ Glavna prednost pristupa koji koristi algoritme strojnog učenja je mogućnost generaliziranja na nove vrste malicioznog koda. Metoda je agnostična na specifične ranjivosti te ne zahtijeva prethodno znanje o obiteljima malicioznog koda. |
| |
===== Feature extraction and feature selection ===== | ===== Ekstrakcija i selekcija značajki ===== |
| |
Two different datasets are used, one for the training phase and one for the testing phase. The distribution is shown in the table below. Detailed descriptions of two datasets can be found in the original paper [1].\\ | Koriste se dva različita skupa podataka, jedan za fazu treniranja i drugi za fazu testiranja. Detaljnije informacije o skupovima podataka i načinu njihova prikupljanja mogu se naći u originalnom članku ove metode [1]. \\ {{ :racfor_wiki:malware:dataset.png?nolink&300x76 }} \\ Nad svakim dokumentom provodimo ekstrakciju značajki iz metapodataka i strukturalnih elemenata korištenjem regularnih izraza, njih ukupno 202 po dokumentu. Neke od tih značajki su: |
{{ :racfor_wiki:malware:dataset.png?nolink&25% }}\\ | |
\\ | |
For each document simple string matching was utilized to extract features from metadata and structural elements, with 202 features in total per document. A few of those features are: | |
| |
* Count of font objects ("/Font" markers) | * Broj font objekata ("/Font" markeri) |
* Average length of stream objects (difference between "/Stream" and "/Endstream" markers) | * Prosječna duljina stream objekata (razlika između pozicija "/Stream" i "/Endstream" markera) |
* Dimensions of JavaScript objects ("/JavaScript" markers) | * Broj JavaScript objekata ("/JavaScript" markeri) |
* Dimensions of JS objects ("/JS" markers) | * Broj JS objekata ("/JS" markeri) |
* Dimensions of box and image objects | * Dimenzije box i image objekata |
* Number of lower case letters in the title | * Broj malih slova u naslovu |
* Sum of pixels in all images | * Suma piksela u svim slikama |
* … | * … |
| Ova metoda ekstrakcije značajki također dobro radi i na enkriptiranim dokumentima jer kod takvih dokumenata metapodaci i strukturalni elementi ostaju dekriptirani. Gotovo sve značajke su numeričke, a one koje nisu se transformiraju tako da postanu numeričke. \\ Sve značajke su odabrane na način da se neutralizira ovisnost o nizovima znakova i bajtova specifičnim za neki napad ili familiju malicioznog koda, s razlogom da se poveća generalizacija algoritma strojnog učenja. Također, izbjegavaju se značajke poput imena autora ili broj znakova u polju imena autora. |
| |
This kind of feature extraction also works well on encrypted documents because structure and metadata are not encrypted. Most of the features are numeric, those which are not are transformed to make them numeric. \\ \\ Features are designed to eliminate reliance on specific strings or byte sequences. A few examples of those features would be the name of the author, the number of characters in the author field, etc. Also, any features connected to specific vulnerabilities of malware families. | ===== Klasifikacija korištenjem algoritma Random forests ===== |
| |
| |
===== Classification using Random forests algorithm ===== | |
| |
Random forests algorithm is an ensemble classification algorithm. The result is based on the output of many decision trees trained using random subsets of feature set. The classification result is determined by voting. More about Random forests can be found in [2]. \\ \\ This method includes training two different Random forests classifiers. The first classifier determines whether PDF document is benign of malicious. The second classifier is used only if document is malicious and it determines wheres PDF document for designed for large-scale attack or targeted attack. Image below illustrates this setup. Benign document is denoted with //"ben"//, malicious document with //"mal"//, large-scale attack with //"opp"//, targeted with //"tar"//. \\ \\ {{ :racfor_wiki:malware:random_forest.png?nolink&20% }} \\ \\ To get the best results using the Random forests algorithm, authors perform space-search to find the set of hyperparameters that maximize the accuracy on the test set. | Random forests algoritam je zapravo ansambl velikog broja stabala odlučivanja koji su trenirani na slučajnim podskupovima skupa značajki. Rezultat se dobiva metodom glasanja stabala odluke. Više o Random forests algoritmu može se pronaći u [2]. \\ \\ Ova metoda uključuje treniranje dva različita Random forests klasifikatora. Prvi klasifikator odlučuje o tome je li PDF dokument benigni ili maliciozan. Drugi klasifikator primjenjuje se samo na maliciozne PDF dokumente. Njegova uloga je klasifikacija dokumenta na one koji su namijenjeni phishing napadima na velikoj skali ili na one koji su namijenjeni za ciljane napade. Na donjoj slici ilustriran je ovaj pristup. Benigni dokumenti su označeni sa "ben", a maliciozni sa "mal". Maliciozni dokumenti namijenjeni phishing napadima na velikoj skali označeni su sa "opp", a oni za ciljane napade su označeni sa "tar". \\ \\ {{ :racfor_wiki:malware:random_forest.png?nolink&200x186 }} \\ \\ Kako bi se postigli najbolji rezultati s Random forests algoritmom, autori metode pretražuju prostor hiperparametara koji maksimiziraju točnost na testnom skupu dokumenata. Vremensko trajanje procesa treniranja kao i obično ovisi o veličini skupa podataka s kojim algoritam strojnog učenja raspolaže. U članku koji predstavlja ovu metodu treniranje je trajalo 15 minuta. \\ \\ Važno je da mehanizam za detekciju bilo koje vrste malicioznih datoteka, pa tako i PDF datoteka, bude otporan na metode izbjegavanja otkrivanja (eng. detection evasion). Napadači uz poznavanje algoritma detekcije mogu pokušati zavarati sustav namjernim prilagođavanjem dokumenta kako bi proizveli dokument koji izgleda benigno. Zato je važno da sustav za detekciju bude robustan i otporan na takve napade. Takve vrste napada na sustave bazirane na algoritmima strojnog učenja nazivamo napadi neprijateljskim primjerima (eng. adversarial attack). Cilj im je izgraditi primjer dokumenta koji će prevariti klasifikator. \\ Ova metoda pokazuje visok stupanj otpornosti na napade neprijateljskim primjerima. Međutim, autori ove metode pokazuju da je robusnost moguće povećati perturbacijom skupa značajki za učenje algoritma. U suštini cilj je unijeti neku razinu šuma u podatke, što će imati efekt porasta varijabilnosti u podacima. Algoritmu strojnog učenja bit će otežano favoriziranje određenih značajki u odnosu na druge. |
| |
===== Results ===== | ===== Rezultati i analiza ===== |
| |
Each classifier is evaluated on the test set. The results are shown in the following tables using standard classification metrics [5]. \\ \\ The table below shows the performance of benign/malicious document classifier. Recall of malicious documents is very high, with a price of very small amount of false positives (0.24%). \\ {{ :racfor_wiki:malware:benmal.png?nolink&30% }} \\ The table below shows the performance of large-scale/targeted attack classifier. Recall of documents designed for a targeted attack is also high, with false positives rate of 1%, which are very good results. \\ {{ :racfor_wiki:malware:opptar.png?nolink&30% }} \\ After training, the Random forests model can be exported and packaged in the form of desktop software or an online service with associated API. Executing takes 1s when predicting class for the new document. \\ \\ It is important for any detection mechanism to be able to detect malicious documents even when the attacker tries to perform some kind of detection evasion. This method shows strong resilience to adversarial attacks. To make it even stronger, authors of the paper perturbate the training data. Essentially, they make the data more noisy which results in a higher variance of features and makes it harder for Random forests algorithm to prefer some features over others by a large amount. | Svaki od klasifikatora je evaluiran na testnom skupu dokumenata. Rezultati su prikazani u sljedećim tablicama, koristeći standardne klasifikacijske metrike [5]. \\ \\ Donja tablica prikazuje performanse prvog klasifikatora benignih i malicioznih PDF dokumenata. Vidljivo je da je postotak detekcije malicioznih primjera vrlo visok (TP rate u tablici), dok je razina //false positive// slučajeva vrlo niska (FP rate u tablici). \\ {{ :racfor_wiki:malware:benmal.png?nolink&300x93 }} \\ Donja tablica prikazuje performanse drugog klasifikatora za klasifikaciju PDF dokumenata namijenjenih za phishing napade na velikoj skali i one namijenjene za ciljane napade. Postotak detekcije malicioznih dokumenata za ciljane napade je također vrlo visok (TP rate u tablici), dok je razina //false positive// slučajeva opet vrlo niska (FP rate u tablici). \\ {{ :racfor_wiki:malware:opptar.png?nolink&300x104 }} \\ Jednom kad je treniranje klasifikatora gotovo moguće je upakirati klasifikatore u desktop program ili ih koristiti kao servis preko Interneta. Izvođenje klasifikatora na novom dokumentu za koji nas zanima klasifikacija traje 1 sekundu. |
| |
===== Conclusion ===== | ===== Zaključak ===== |
| |
This seminar explores an approach for malicious PDF detection using machine learning algorithms. Features are extracted using static analysis (string matching) from metadata and structural elements. The result of this approach are two classifiers. The first classifier is used for the initial discovery of malicious PDF documents. Once a malicious PDF document was detected, the second classifier predicts which type of attack the document performs, a large-scale or targeted attack. This method achieves high accuracy and shows robustness to detection evasion. | Ovaj seminar istražuje pristup otkrivanja malicioznih PDF dokumenata koristeći algoritme strojnog učenja. Značajke se ekstrahiraju statičkom analizom, konkretno regularnim izrazima, iz metapodataka i strukturnih elemenata. Rezultat ovog pristupa su dva klasifikatora. Prvi klasifikator koristi se za početno otkrivanje malicioznih PDF dokumenata. Jednom kada je otkriven maliciozni PDF dokument, drugi klasifikator predviđa vrstu napada koju dokument provodi, phishing napad na velikoj skali ili ciljani napad. Ovom se metodom postiže visoka točnost te robusnost na metode izbjegavanja detekcije. |
| |
===== Sources ===== | ===== Izvori ===== |
| |
[1] [[https://cs.gmu.edu/~astavrou/research/Malicious_PDF_Detection_ACSAC_12.pdf|Smutz, Charles, and Angelos Stavrou. "Malicious PDF detection using metadata and structural features." Proceedings of the 28th annual computer security applications conference. ACM, 2012.]] | [1] [[https://cs.gmu.edu/~astavrou/research/Malicious_PDF_Detection_ACSAC_12.pdf|Smutz, Charles, and Angelos Stavrou. "Malicious PDF detection using metadata and structural features." Proceedings of the 28th annual computer security applications conference. ACM, 2012.]] |