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
bachelor thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/90466Identifiers
Study Information System: 190526
Collections
- Kvalifikační práce [11242]
Author
Advisor
Referee
Kofroň, Jan
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
General Computer Science
Department
Computer Science Institute of Charles University
Date of defense
6. 9. 2017
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Good
Keywords (Czech)
analýza malware, android, strojové učení, feature engineeringKeywords (English)
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