Klasifikasi Malware Windows dengan machine learning – raff


Paper Title: A survey of machine learning methods and challenges for windows malware classification

Authors: Edward Raff, Charles Nicholas

Venue: NeurIPS 2020 Workshop: ML Retrospectives, Surveys & Meta-Analyses (ML-RSA).

URL: https://ml-retrospectives.github.io/neurips2020/camera_ready/1.pdf

Problem: Malware classification menggunakan machine menghadapi beanyak kendala diantaranya pada tahapan: 1) Pengumpulan data, 2) labelling data, 3) feature creation and selection, 4) model selection 5) evaluation. Paper ini melakukan survey state-of the art implementasi machine learning pada deteksi malware dan apa saja tantangannya.

Contribution:

  1. Melakukan survey state-of the art teknik machine learning pada deteksi malware
  2. Teknik apa saja yang telah digunakan, apa kelebihannya, apa saja tantangannya
  3. Bidang apa saja yang masih perlu diteliti

Method/solution: Studi literatur dan studi komparasi terhadap 298 penelitian tentang machine learning dan deteksi malware. Hasil studi dianalisa berdasarkan: 

  1. metode Pengumpulan dataset
  2. metode ekstraksi fitur: 
  3. metode Machine learning yang digunakan
  4. Teknik sequence processing yang digunakan
  5. Algoritma graph nya
  6. Penilaian hasil sistem (metric)

Main result:

  1. Pengumpulan Dataset: a) melalui repository komunitas; b) honeypot; c) File instalasi windows; d) dataset EMBER; 
  2. Permasalahan labelling:a) manual; b)Antivirus; c) Virustotal
  3. Ekstraksi Fitur: a) Dinamis: API Call, System calls, system change, network traffic ; b) tantangan fitur dinamis; malware dapat mendeteksi VM, risiko infeksi; emulasi network; c) fitur statik: string, raw byte, entropy, histogram, PE header parsing, sequence assembly; d) tantangan analisa statik: Obfuscation, packing, polymorphic, metamorphic; e) fitur kontekstual: graph-based, file relation, IP reputation, domain reputation; f) tantangan kontekstual: keterbatasan akses informasi, reproducibility, sensitive to time
  4. Metode ML: a) n-grams dan N-gram Coalescing: b) model linear; c) metode kernel; d) Decision Tree; e) Neural network
  5. Teknik sequence processing: a) model Hidden Markov; b) Menghitung Byte similarity: similarity digest, normalized compression distance, Lempel-ziv jaccard distance, ; c) CNN dan RNN d) Transwormasi Haar Wavelet: Haar distance, haar energy feature; e) dynamic programming
  6. Algoritma Graph:a) graph to feature vector: graph feature dan descriptor, graph embedding; b) graph matching: graph edit distance
  7. Macam2 Metrik : akurasi, balanced accurasi, precision, recal, AUC, F1/F-Measure
  8. Metrik pada deteksi malware: akurasi dan AUC
  9. Metrik pada klasifikasi malware family: akurasi, AUC, F1, matthew correlation coeffisien, dll
  10. Faktor pada training: run time requirement, lama waktu training, keterbatasan memori, latency, scalability

Limitation:

  1. Adversarial malware: malware yang dirancang untuk mengelabui classifier
  2. Gambaran menyeluruh tentang malware
  3. Belum membahas semi-supervised learning
  4. Belum Menggunakan kombinasi fitur statik dan dinamik
  5. Permasalahan imbalanced dataset
  6. Studi tentang malware abu-abu, antara malware dan benign
  7. Waktu berlaku malware dalam dataset belum dibahas
  8. implementasi NLP untuk generate report

Intro:

Insiden malware menyebabkan kerugian puluhan juta dollar pada perusahaan (Musil 2016, Riley dan Pagliery 2015, Frizell 2015). Tahun 2015 menurut Gantz et.al 2014 total biaya ekonomi terkait distribusi malware mencapai $500 milliar dollar. Jumlah malware terus tumbuh secara eksponensial (spaffford 2014, AV-test 2016a, F-secure 2016) 

Permasalahan besar dalam deteksi malware adalah classification, yang dibagi 2 jenis: 

  1. Deteksi malware

Klasifikasi untuk membedakan malware dan benign. Antivirus menggunakan teknik signature-based untuk mendeteksi malware. Namun membuat signature tidak mudah dan membutuhkan waktu (Yadron 2014, Hypponen 2012).

2. Klasifikasi malware family

Inputnya adalah malware, klasifikasi dilakukan untuk mengelompokan malware ke dalam familynya. Contohnya Conficker memiliki 5 variant besar (porras 2009). Classifier harus bisa mendeteksi semua varian tersebut ke dalam family malware conficker.

Penggunaan ML untuk klasifikasi malware telah dimulai oleh Kephard.et.al 1995. Deteksi malware berbeda untuk jenis file yang beragam dan sistem operasi yang berbeda (Tabish et.al 2009), misalnya untuk jenis PDF, Linux dan Android.  Paper ini hanya fokus pada Microsoft PE binary 32 dan 64 bit (Schultz et al 2001).  ML dapat melakukan generalisasi, sehingga model yang digunakan dapat mengenali malware baru. Menurut (Li et.al 2017) 94% aplikasi dari 100 juta mesin adalah unik. Sehingga antivirus harus bisa mendeteksi jutaan file unik.

Untuk membuat model classifier menggunakan pengetahuan algoritma bahasa tinggi, statistik dan teori informasi. Untuk analisa malware dibutuhkan pengetahuan tentang instruksi asembler set arsitektur, software desain dan jaringan. 

Paper ini dibagi menjadi beberapa section (bagian):

Section  2: menjelaskan tentang tantangan untuk mendapatkan data yang representatif

Section 3: tentang ekstraksi fitur dari binary, baik statik maupun dinamik fitur kekuatan dan kelemahannya.

Section 4: metode ML standar yang menggunakan vektor dengan fitur sederhana

Section 5: model ML yang memahami representasi input sebagai sebuah type of sequence. Tipe ini memetakan data lebih menyerupai kondisi sebenarnya. 

Section 6: model ML yang menggunakan representasi graph. tipe Graph ini sebenarnya melakukan enkode fitur dengan baik, namun jarang digunakan  pada classifier

Section 7: membahas tentang evaluasi clissifier

section 8: riset kedepan

section 9: kesimpulan

Kompleksitas malware beragam, mulai dari yang sederhana yang melakukan eksploitasi celah keamanan, sampai yang kompleks seperti Stuxnet yang mampu mengelabui deteksi malware (Kushner, 2013). 

2. Data collection challenge

Pada ML semakin banyak data dan semakin baik data memiliki label maka akan meningkatkan akurasi sistem ML (Domingos, 2012; Halevy et.al, 2009) Menurut Geiger et.al, 2020 tidak mungkin mengumpulkan dataset yang dapat mewakili kondisi keseluruhan binary yang ada, walaupun menggunakan teknik multipel label pada file  dan menilai inter-labeler agreement.

Beberapa cara untuk mengumpulkan dataset diantaranya:

  1. menggunakan website yang mengumpulkan sampel yang dikirim para relawan (roberts, 2011, Quist, 2009). Repositori malware ini juga memiliki bias dalam pemilihan malware mana yang diterima
  2. Honeypots (Baecher et.al 2006). kendala yang dihadapi honeypot menurut (zhuge et.al 2007) karena honeypot hanya menangkap malware tertentu yang bisa berinteraksi dengan honeypot. Ada juga malware juga dapat mengenali honeypot (Krawetz, 2004)

Mengumpulkan benign atau goodware juga memiliki tantangan sendiri. Sejauh ini dataset yang dikumpulkan berasal dari binary yang dikumpulkan pada saat instalasi windows. Hal ini bisa menyebabkan over-fitting, dimana model cenderung hanya mengenali string “microsoft windows” (Seymour 2016; raff et.al 2016). Hal ini menyebabkan classifier cenderung melakukan klasifikasi aplikasi non microsoft sebagai malware. (seymour, 2016). Bahkan menurut Raff et.al 2017 hanya menggunakan subset informasi juga masih menimbulkan over fitting. 

Anderson dan Roth 2018 merilis dataset EMBER, yang isinya fitur yang sudah diekstraksi dari 1,1 juta binary malware dan benign. Bila peneliti ingin membuat fitur sendiri dari raw binary, maka mereka harus mengumpulkan sendiri binary tersebut, karena Anderson tidak bisa membaginya terkait permasalahan copyright. Info tentang malware family juga tidak terdapat pada versi aslinya. Pada versi terbaru (2018) info tentang family malware telah dimasukan.

Setelah mendapatkan sampel, permasalahan berikutnya adalah memberi label. Proses labelling membutuhkan waktu yang besar dan skill khusus. Hal ini berbeda dengan klasifikasi gambar. Menurut Mohaisen dan Alrawi, 2013, seorang pakar analisa malware memerlukan 10 jam untuk melakukan analisa malware. Menurut Votipka bahkan untuk memahami secara utuh apa yang dilakukan malware membutuhkan waktu antara sejumlah jam dan berminggu2. Hal ini membuat proses labelling secara manual, corpus besar menjadi tidak praktis. Upchurch dan Zhou, 2015 melakukan labelling corpus public dengan family classification dari 85 sampel dengan fungsi yang serupa kedalam 8 grup.

Untuk labeling malware vs benign, banyak peneliti yang menggunakan Antivirus. Cara lain dengan mengupload binary ke Virustotal. Bila 30% antivirus mendeteksi file sebagai malware, maka file tersebut diasumsikan sebagai malware. Bila tidak ada yg mendeteksi maka benign. File yang berada di antara 1-30% dibuang dari eksperimen (Berlin et.al 2015; saxe dan berlin, 2015). Ada juga yang menggunakan ambang batas >4 AV (Incer et.al, 2018) atau ada jg yang tidak menyebutkan (Kolosnjaji et.al , 2016). Zhu et.al, 2020 menggunakan threshold <15. Argumennya adalah: 

  1. Keputusan AV fluktuatif pada sampel baru, baru mulai stabil setelah beberapa bulan
  2. False Positive sering terjadi pada sampel baru
  3. False positive pada benign bisa jadi lebih tinggi
  4. Banyak engine AV yang sepertinya tergantung atau mengikuti hasil scan engine AV lainnya. 

Studi tentang perbedaan label Virustotal ini hanya untuk benign vs Malware, untuk malware family belum ada. Sampel yang hanya terdeteksi malware oleh beberapa antivirus, bisa jadi false positive (benign yang terdeteksi malware) atau false negative (malware yang tdk terdeteksi. Menghilangkan sampel ini akan mempengaruhi akurasi. Menghilangkan sampel seperti ini juga membuat model keliru dalam mengamati border antara benign dan malicious. Ember Dataset menggunakan labeling dengan cara ini, disebut juga “easy”.  Permasalahan bias AV juga mempengaruhi keefektifan evaluasi model, sehingga mempengaruhi akurasi pada beberapa metrik.

Botacin et.al 2020 menjelaskan dan mengkategorisasi av-bias ini, dengan menunjukan rate deteksi dari Antivirus berbeda2 antar negara. Contohnya ada malware global, ada malware yang spesifik pada negara tertentu, tipe executable (.com vs .dll) dan tipe family (ransomware vs trojan). Bias ini sering terjadi pada model yang menggunakan label dari AV. Menggunakan file lama juga tidak mengurangi bias ini, karena engine AV memiliki metoda regresi label atau kadaluarsa, maksudnya setelah beberapa waktu tertentu mereka akan berhenti memberi label malware terhadap suatu file (Botacin et.al, 2020)

Layanan langganan Virustotal mengijinkan unduh file sampel berdasarkan nilai hash. Dengan cara ini mereka mendapatkan versi raw dari dataset EMBER, atau membuat dataset mereka sendiri. Namun biaa langganan virus total tidak murah (meskipun dengan diskon akademik, bahkan bisa melebihi anggaran dari kelompok riset kecil atau peneliti baru. 

Bila label yang diinginkan adalah malware family, output AV menjadi lebih problematis. Label Family yang diberikan AV tidak standar dan AV yang berbeda bisa memiliki label yg berbeda (Bailey et.al, 2007a). Meskipun ada metode yang lebih advanced dibandingkan menggunakan threshold (contoh 3/5 AV memberi label conficker) untuk menentukan benign vs malware (Kantchelian et.al, 2015) dan family ( sebastian et.al, 2016) menggunakan banyak produk AV tetap menjadi metode labeling yang umum. Proses labeling family dengan kualitas tinggi memerlukan proses analisa manual, yang membutuhkan wakttu harian hingga mingguan. Selain itu penulis malware seringkali melakukan copy paste atau mencuri kode dari malware lainnya, sehingga membuat proses penentuan family menjadi lebih rumit (Calleja et.al 2019)

Isu lainnya adalah concept drift, yaitu terjadinya perubahan. Misalnya benign dan malware akan berubah mengikuti perubahan API windows, adanya compiler baru, pemakaian library baru dan faktor lainnya. Menurut Masud et.al, 2011 penting untuk mengetahui performansi classifier ketika terjadi perubahan. Distribusi malware juga sebuah faktor.  Malware terdistribusi dengan cepat dengan penulis malware cenderung  merubah kodenya untuk menghindari deteksi. Contohnya Rajab et.al 2011 melakukan studi tentang malware web based pada infrastruktur google safe browsing. Selama 4 tahun mereka melihat peningkatan pada malware yang menggunakan teknik social engineering, usia yang singkat dari penggunaan exploit yang terdokumentasi pada CVE dan peningkatan percobaan “IP cloaking” untuk mengamankan sumbernya. Evolusi malware yang cepat ini adalah hasil dari skenario adversarial, dan menyulitkan solusi deteksi jangka panjang (Kantchelian et.al, 2013 dan Singh et al, 2012)

sampai disini dulu besok akan saya lanjutkan dengan section 3, Fitur binary

referensi: Raff, E., & Nicholas, C. (2020). A Survey of Machine Learning Methods and Challenges for Windows Malware Classification. arXiv preprint arXiv:2006.09271.

,

Silahkan tuliskan tanggapan, kritik maupun saran