Feature extraction from Android application packages and its usage in machine learning for malware classification
Extrakce příznaků z programových balíčků systému Android a jejich použití ve strojovém učení pro klasifikaci malware
bakalářská práce (OBHÁJENO)

Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/90466Identifikátory
SIS: 190526
Kolekce
- Kvalifikační práce [11266]
Autor
Vedoucí práce
Oponent práce
Kofroň, Jan
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Obecná informatika
Katedra / ústav / klinika
Informatický ústav Univerzity Karlovy
Datum obhajoby
6. 9. 2017
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Dobře
Klíčová slova (česky)
analýza malware, android, strojové učení, feature engineeringKlíčová slova (anglicky)
malware analysis, android, machine learning, feature engineeringV této práci navrhujeme klasifikační algoritmus založený na metodách stro- jového učení pro aplikace na populární operační systém Android, který má za cíl rozlišovat škodlivé aplikace od nezávadných. Extrakce příznaků pro strojové učení je založena na statické analýze bajtkódu se zaměřením na API volání a volání metod. Ukazujeme různé přístupy jak z nejčastějších API volání vytvořit seznam číselných příznaků. Dále zkoumáme specifika extrahovaných příznaků a jejich důležitost. Dataset, který je použit pro experimenty v této práci, obsahuje přes 200 000 vzorků, z nichž přibližně polovina je škodlivá a polovina nezávadná. Zkoušíme několik různých algoritmů strojového učení a vyhodnocujeme jejich kva- litu. Velikost našeho datasetu snižuje poměr šumu a poskytuje tak dobrý základ pro trénování klasifikačních modelů. Výsledky experimentů ukazují, že navrhovaný algoritmus má poměru vzorků, které byly chybně označné jako škodlivé, pod 2,9 % přičemž správně nalezne přes 93,6 % malwaru. 1
In this Thesis, we propose a machine-learning based classification algorithm of applications for a popular mobile phone operating system Android that can dis- tinguish malicious samples from benign ones. Feature extraction for the machine learning is based on static analysis of the application's bytecode with focus on API and method calls. We show various ways to transform the most frequent API and method calls into numeric (histogram-based) features. We further examine the specifics of the extracted features and discuss their importance. The dataset used for experiments in this Thesis contains more than 200,000 samples with approxi- mately half of them malicious and half of them benign. Further, multiple machine learning algorithms are examined and their performance is evaluated. The size of our dataset prevents overfitting and hence provides a reliable basis for training of classification models. The results of the experiments show that the proposed algo- rithm achieves very low false positive rate under 2.9% while preserving specificity over 93.6%. 1