Paper Title: SourceFinder: Finding malware source-code from ublicly available repositories in Github
Authors: Md Omar Faruk Rokon, Risul Islam, Ahmad Darki, Evangelos E.Papalexakis
Venue: Usenix 23rd International Symposium on Research in attacks, intrusions and defences
URL: https://www.usenix.org/conference/raid2020/presentation/omar
Problem: Untuk memahami malware, peneliti perlu mempelajari source code malware. Bagaimana mencari source code malware dari repositories di internet seperti Github?
Contribution:
- Mengajukan sistem SourceFinder, sistem untuk mengidentifikasi repository source code malware menggunakan machine learning
- Mengumpulkan 97ribu repository terkait malware dari Github,
- Mempelajari pola dan tren repository malware, termasuk property, behaviour temporal dan author centric
- Membuat arhive source malware dengan 7504 repository
Method/solution
- Repository dikumpulkan melalui API Github dengan keyword malware
- Keyword dibagi 3 tipe: a) keyword terkait malware dan security, seperti malware dan virus; b) time malware, seperti ransomware dan keylogger; c) nama popular malware: seperti mirai
- Membuat groundtruth dengan 2013 repository
- Membuat 3 set keywords: a) Q1 set, hanya mengandung keyword malware; b) Q50 set yang memiliki 50 keywords; c) Q137 set yg memiliki 137 keywords; Q137 adalah superset dari Q50; dan Q50 adalah superset dari Q1
- Query dilakukan menggunakan PyGithub, kemudian dilakukan cleaning
- Ground truth dilakukan dengan 3 komputer scientist melakukan label 1000 repository secara manual (malicious atau benign). Hasil labelin diberi nama LD137, LD50 dan LD1
- Pada tahapan preprocessing dilakukan: a) character level preprocessing; b) word level preprocessing; c) entity level filtering
- Setelah preprocessing dilakukan pelabelan repository fields.
- Untuk text field representation digunakan Bag of Words dan word embedding
- Tahap ketiga adalah selecting the fields
- Tahap keempat adalah pemilihan engine ML
- Tahap kelima detecting source code repository
- Pengujian dilakukan untuk mengetahui tentang: a) repository fields selection; b) field representation; c) feature selection; d) ML algoritma selection; e) efektifitas klasifikasi; f) Identifikasi repo malware; g) identifikasi repo source code malware
- Field yang dipilih adalah title, description, topics, readme file, nama file dan nama folder
- Field representation menggunakan bag of words mencapai akurasi 86%, sementara word embedding 85%
- Pemilihan jumlah kata per field didapatkan top 550 kata
Main result
- Pengujian klasifikasi repository malware menghasilkan akurasi 89%, recall 86% dan F1 score 87% dengan 5 field dari repository
- Jumlah malware baru pada repository meningkat 3x lipat setiap 4 tahun
- Membuat ranking repository yang paling popular berdasarkan jumlah watcher, forks dan stars
- 3% penulis malware memiliki follower > 300
- 0,2% penulis malware memiliki lebih dari 7 repository malware
- Ada penulis malware yang membuat 336 repository malwre
- Berhasil mengidentifikasi 18 penulis malware professional, contohnya 3vilp4wn penulis keylogger
- Q1 diperoleh 2775 repositry, Q50 14332 dan Q137 97375
- Multinomial Naïve Bayes memperoleh nilai F1-score 87%; dengan presisi 89% dan recal 86%
- Deteksi benign class diperoleh presisi 92%, 94% recall dan 93% F1-score.
- F1 score pada algoritma lain (Logistic regression, decision tree, random forest, KNN, Linear discriminant analysis dan SVM) dibawah 79%
- KNN, LR, dan LDA memperoleh presisi lebih tinggi dengan recall lebih rendah
- Setelah dilakukan 10-fold cross validation diperoleh presisi diatas 89% dan recall diatas 77% untuk ketiga dataset
- 2% repository memiliki pengaruh kuat denan minimum 100 forks; 78% repository hanya memiliki forks < 2
- 2% repository memiliki stars > 250; 75% repository memiliki stars <3
- 8 repository memiliki pengaruh tertinggi adalah: ytisf (thezoo), n1nj4sec, Screetsec, malwaredllc, RoganDawes, Visgean, Ramadhan, dana-at-cp
- Kategori terbanyak malware adalah keylogger (679 repo)
- Windows dan Linux adalah target paling popular (1592 – windows; 1365 – linux)
- Hanya ada sedikit MacOs repo (380)
- Aktifitas malware sedikit menurun pada tahun 2018
- Malware IoT dan iphone mulai muncul tahun 2014
- Malware windows dan linux masih dominan, tapi ada tren penurunan. Sementara IoT dan android meningkat
- Username unik muncul pada berbagai platform online seperti Offensive community, ethical hacker dan hackthissite
- Username penulis malware tercatat memiliki aktifitas hacking
- Repository digunakan penulis malware untuk meningkatkan reputasinya
Limitation:
- Hanya melakukan analisa pada github yang diset public, dan memiliki keyword tertebtu
- Hanya melakukan analisa pada Github, masih ada platform sharing malware lainnya seperti darkweb