Paper Title: Malware Detection on Highly Imbalanced Data through Sequence Modeling
Authors: Rajvardhan Oak, Min Du, David Yan, Harshvardhan Takawale, Idan Amit
Venue: AISec ’19, November 15, 2019, London, United Kingdom
URL: https://doi.org/10.1145/3338501.3357374
Problem: Deteksi malware Android menggunakan deep learning mengalami kendala dataset yang terbatas dan imbalanced.
Contribution:
- Menggunakan model BERT untuk mengatasi permasalahan imbalanced dataset pada deteksi malware android dengan deep learning.
- Menggunakan supervised LSTM untuk klasifikasi malware, melakukan validasi asumsi bahwa sequnce informasi akan mempengaruhi klasifikasi
- Menangani permasalahan imbalanced dataset dengan menggunakan teknik NLP BERT
- Melakukan studi kelebihan pre-training BERT dengan membandingkan hasil deteksi pada beberapa model dengan nilai inisialisasi berbeda (random atau di pre-trained pada data android) dan dilakukan training pada dataset android yang kecil
- Mempelajari efektifitas implementasi model BERT untuk deteksi malware android dengan setting pengujian beragam, seperti mempelajari sequence aktifitas secara mendalam
- Menampilkan berbagai analisa statistik untuk pengujian validitas
Method/solution
- Menggunakan dataset 180.000 sampel dengan 2/3nya adalah malware
- Menguji model bahasa BERT untuk deteksi malware pada dataset keseluruhan
- membangun re-balanced dataset yang memiliki sampel malwar eyang berbahaya
- melakukan simulasi kondisi dataset malware yang unbalanced
- Dataset yang digunakan dari Palo Alto Networks Wildfire yang kemudian dilakukan ekstraksi label action sequence dari aplikasi android.
- Action pada dataset bukan log dari function calls tertentu, melainkan deskripsi high level dari behavior setiap aplikasi, contohnya “file APK menggunakan HTTP post” atau “file APK membuat sebuah hidden file”
- Dari setiap sampel dicatat juga informasi seperti domain apa yang dihubungi, permission yang diminta, sequence dari aktivitas dinamik yang dibuat aplikasi dan sertifikat yang digunakan untuk sign APK.
- Aktifitas tersebut dicatat ketika aplikasi dimonitor dan dibuat urutan aktifitas secara kronologis.
- 174 aktifitas yang dicatat diubah menjadi integer
- Analisa behaviour dibuat dalam format XML
- Menggunakan analisa n-gram untuk analisa aktifitas malware
- Parameter yang diukur akurasi, presisi, recall dan F1-score berdasarkan nilai True Positive (TP), true negatives (TN) positives (P) dan negatives (N)
- Akurasi= (TP+TN)/(P+N) ; jumlah prediksi benar dibandingkan total sampel
- Precision=TP/P’ ; ketepatan prediksi malware
- recall=TP/P ; persentase malware dideteksi oleh model
- F1 score=2*precision*recall/(precision+recall) : evaluasi keseluruhan model
- Melakukan perbandingan analisa sequence dengan analisa bag-of-words
- Pembagian dataset 75% utk training; 25% pengujian
- Setiap activity sequence direpresentasikan menjadi activity vector Setiap nilai pada activity vector diganti dengan nilai Term Frequency-inverse Document Frequency (TF-IDF).
- Neural network menggunakan 3 hidden layer, masing2 100 neuron
- Rasio malware pada aplikasi android dimonitor menggunakan sistem Autofocus dari PaloALto
- Pada model unsupervised menggunakan metoda clustering, Autoencoder dan DAGMM.
- Untuk baseline menggunakan metode deteksi semi-supervised anomaly detection Deeplog
- Clustering menggunakan K-means; dengan cosine distance sebagai distance metric dan K=2
Main result:
- F1 Score 0,985 pada jumlah sampel 183.000 APK dengan, 66% nya adalah malware dan 33% benign
- Menggunakan BERT diraih F1 score 0.919 pada sebuah dataset dengan sampel malware sebanyak 0.5% saja
- Hasil pre-training model BERT sangat berguna ketika dataset training yang dilabel sedikit.
- Hasil preprocessing didapat total 183000 sequences; 120780 adalah malware dan 60390 benign
- Untuk LSTM didadapat nilai F1-0,985
- Positivity rates 0,01% untuk aplikasi lama
- Untuk file baru, positivity rates 2% untuk android dan 0,5% untuk windows
Limitation:
- Pendekatan TF-IDF ini hanya cocok untuk deteksi offline
- Hasil positivity rate masih rendah
- Terdapat banyak variant malware yang sama pada training dan test, baiknya ada penambahan variant identification pada pre-processing
- Tidak ada timestamp pada sampel maware
- Perlu dikaji atribusi malware ke dalam kelas atau family yang sama
- Perlu dibandingkan dengan model bahasa lainnya seperti XLNet
Pada bidang machine learning terjadi kemajuan pesat pada bidang klasifikasi. Di NLP dua arsitektur yang banyak digunakan adalah LSTM (Long Short-term Memory) dan BERT (Bidirectional encoder representations from transformer). LSTM adalah kelas khusus dari jaringan neural yang memiliki keunggulan dalam mengingat histori dari data sequence.LSTM menggunakan input current dan input histori untuk prediksi. BERT mencoba untuk membuat representasi deep bidirectional pada saat pre-training untuk unlabeled text dengan masked words dan sentences. Model pre-trained dapat difine-tuned dengan output single layer untuk beragam task downstream dengan jumlah training tambahan minimum. Model ini secara empiris bekerja dengan baik pada klasifikasi text, dan membutuhkan waktu train yang lebih sedikit.
LSTM efektif pada analisa file log dan sistem anomali deteksi. File log atau sequences aktivitas memiliki kemiripan dengan model language dimana sama2 memiliki ordered sequence dari tokens. Menurut penulis, model bahasa dapat memiliki performa yang baik pada deteksi malware.
Ratio aplikasi android dunia dibandingkan total aplikasi sekitar 0.01% – 2%. Sehingga membangun model yang bisa berjalan pada dataset imbalanced adalah sebuah keuntungan. BERT adalah model bahasa state-of-the-art pada nlp. Pendahulu bert adalah transformer. Tidak seperti recurrent neural networks sequence history untuk prediksi, transformer menggunakan mekanisme self-attention untuk membuat model hubungan antara semua kata pada sebuah kalimat.
BERT menggunakan training Transformer dua arah. BERT memiliki mekanisme pre-training yang dapat belajar parameter dengan self-supervised learning pada unlabeled dataset secara efektif.
Inovasi inti dari BERT adalah penggunaan model bahasa masked. Word sequence sebelum dimasukan ke BERT, 15% dari kata2 pada setiap sequence diganti dengan sebuah masking token. Model kemudian mencoba prediksi nilai asli dari masked words berdasarkan konteks dari kata-kata lain pada sequence. Poin penting untuk dicatat adalah model prediksi menggunakan semua konteks, diantaranya kata2 sebelum, dan sesudah masked word. Sebuah model pre-trained dapat melakukan model hubungan antara token (kata) pada konteks berbeda dengan efektif.
Langkah