SourceFinder: finding malware sourcecode-Rokon-PaperReview


Paper TitleSourceFinder: 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

  1. Mengajukan sistem SourceFinder, sistem untuk mengidentifikasi repository source code malware menggunakan machine learning
  2. Mengumpulkan 97ribu repository terkait malware dari Github, 
  3. Mempelajari pola dan tren repository malware, termasuk property, behaviour temporal dan author centric
  4. Membuat arhive source malware dengan 7504 repository

Method/solution

  1. Repository dikumpulkan melalui API Github dengan keyword malware
  2. 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
  3. Membuat groundtruth dengan 2013 repository
  4. 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
  5. Query dilakukan menggunakan PyGithub, kemudian dilakukan cleaning
  6. Ground truth dilakukan dengan 3 komputer scientist melakukan label 1000 repository secara manual (malicious atau benign). Hasil labelin diberi nama LD137, LD50 dan LD1
  7. Pada tahapan preprocessing dilakukan: a) character level preprocessing; b) word level preprocessing; c) entity level filtering
  8. Setelah preprocessing dilakukan pelabelan repository fields.
  9. Untuk text field representation digunakan Bag of Words dan word embedding
  10. Tahap ketiga adalah selecting the fields
  11. Tahap keempat adalah pemilihan engine ML
  12. Tahap kelima detecting source code repository
  13. 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
  14. Field yang dipilih adalah title, description, topics, readme file, nama file dan nama folder
  15. Field representation menggunakan bag of words mencapai akurasi 86%, sementara word embedding 85%
  16. Pemilihan jumlah kata per field didapatkan top 550 kata

Main result

  1. Pengujian klasifikasi repository malware menghasilkan akurasi 89%, recall 86% dan F1 score 87% dengan 5 field dari repository
  2. Jumlah malware baru pada repository meningkat 3x lipat setiap 4 tahun
  3. Membuat ranking repository yang paling popular berdasarkan jumlah watcher, forks dan stars
  4. 3% penulis malware memiliki follower > 300 
  5. 0,2% penulis malware memiliki lebih dari 7 repository malware
  6. Ada penulis malware yang membuat 336 repository malwre
  7. Berhasil mengidentifikasi 18 penulis malware professional, contohnya 3vilp4wn penulis keylogger
  8. Q1 diperoleh 2775 repositry, Q50 14332 dan Q137 97375
  9. Multinomial Naïve Bayes memperoleh nilai F1-score 87%; dengan presisi 89% dan recal 86%
  10. Deteksi benign class diperoleh presisi 92%, 94% recall dan 93% F1-score.
  11. F1 score pada algoritma lain (Logistic regression, decision tree, random forest, KNN, Linear discriminant analysis dan SVM) dibawah 79%
  12. KNN, LR, dan LDA memperoleh presisi lebih tinggi dengan recall lebih rendah
  13. Setelah dilakukan 10-fold cross validation diperoleh presisi diatas 89% dan recall diatas 77% untuk ketiga dataset
  14. 2% repository memiliki pengaruh kuat denan minimum 100 forks; 78% repository hanya memiliki forks < 2
  15. 2% repository memiliki stars > 250; 75% repository memiliki stars <3
  16. 8 repository memiliki pengaruh tertinggi adalah: ytisf (thezoo), n1nj4sec, Screetsec, malwaredllc, RoganDawes, Visgean, Ramadhan, dana-at-cp
  17. Kategori terbanyak malware adalah keylogger (679 repo)
  18. Windows dan Linux adalah target paling popular (1592 – windows; 1365 – linux)
  19. Hanya ada sedikit MacOs repo (380)
  20. Aktifitas malware sedikit menurun pada tahun 2018
  21. Malware IoT dan iphone mulai muncul tahun 2014
  22. Malware windows dan linux masih dominan, tapi ada tren penurunan. Sementara IoT dan android meningkat
  23. Username unik muncul pada berbagai platform online seperti Offensive community, ethical hacker dan hackthissite
  24. Username penulis malware tercatat memiliki aktifitas hacking 
  25. Repository digunakan penulis malware untuk meningkatkan reputasinya

Limitation:

  1. Hanya melakukan analisa pada github yang diset public, dan memiliki keyword tertebtu
  2. Hanya melakukan analisa pada Github, masih ada platform sharing malware lainnya seperti darkweb

Silahkan tuliskan tanggapan, kritik maupun saran