Deteksi Malware Behaviour Based – Aslan


Saya lanjutkan sharing paper Aslan et.al tentang malware detection. Selanjutnya tentang teknik deteksi behaviour based. Pada teknik ini perilaku malware diamati menggunakan tools dan ditentukan apakah mwlare atau benign. Walaupun kodenya diganti namun sebagian malware memiliki perilaku yang sama. Teknik ini dapat mendeteksi sebagian besar malware baru. Namun ada beberapa binary malware yang tidak berjalan dengan baik pada Virtual mesin dan sandbox, sehingga tidak terdeteksi sebagai malware

Proses Deteksi

Beberapa teknik yang digunakan:

  • Analisa secara otomatis dengan Sandbox
  • Monitoring system calls
  • Monitoring perubahan file
  • Membandingkan snapshot registry
  • Monitoring aktifitas jaringan
  • Monitoring Process

Proses yang dilakukan:

  • behavior malware ditentukan menggunakan teknik diatas,
  • dataset dibuat dengan extraks feature menggunakan datamining.
  • Feature tertentu diperoleh dan diklasifikasi dengan machine learning

Penelitian tentang behavior based:

  • Wagener et.al mengajukan sistem untuk melakukan ekstraksi behavior malware dari system calls. Teknik yang digunakan mencari kesamaan menggunakan perhitungan Hellinger distance. Teknik ini bisa mendeteksi variant malware yang menggunakan teknik obfuscation. Menurut Wagener, proses klasifikasi bisa ditingkatkan menggunakan phylogenetic tree yang merepresenasikan fungsi umum dari malware.
  • Fukushima et.al membuat sistem deteksi behaviour based. Teknik ini bisa mendeteksi malware baru dan malware yang dienkripsi pada Windows. Framework ini tidak hanya menguji behaviour umum malware tapi juga behaviour normal yang tidak dilakukan malware. DR (detection rate) sekitar 60-67% tanpa FP (False Positive) 
  • Semantic-aware malware detection dapat mendeteksi malicious behaviur seperti decryption loop pada virus polymorphic yang umumnya dijumpai pada variant malware tertentu. Teknik ini dapat mendeteksi varian malware tanpa FP dan kebal terhadap transformasi obfuscation. Namun teknik ini tidak dapat mendeteksi malware yang menggunakan teknik instruction replacement. Handling instruction replacement dan pengubahan urutan update memori dapat meningkatkan performance
  • Lanzi et.al membuat system-centric behavior model. Pada model ini, interaksi malware dengan resource sistem (directory, file, registry dll) berbeda dengan benign. Sequence behaviour program kemudian dibandingkan. Teknik ini tidak dapat mendeteksi beberapa malicious activity seperti malware yang berusaha menyembunyikan diri, mencari kontrol ke sistem operasi, dan yang menggunakan jaringan komputer. 
  • Chandramohann et.al mengajukan sistem Bounded Feature Space Behaviour Modeling (BOFM). Sistem ini membatasi jumlah feature yang digunakan untuk mendeteksi malware. Pada model ini, system call diubah menjadi high-level behavior dan featyre dibuat menggunakan behaviour. Feature vector dibuat, dan algoritma ML diimplementasikan ke feature vector. BOFM memiliki dimensi yang tetap, sehingga tidak akan bertambah seiring meningkatnya sampel malware. Dengan teknik ini BOFM efisien dan scalable. Akurasi deteksi meningkat, waktu komputasi berkurang, dan penggunaan memori juga diperoleh. Teknik ini mengabaikan frekuensi penggunaan system calls. Eksekusi system call yang sama secara berulang bisa menyebabkan DoS attack. Untuk meningkatkan DR dan akurasi dapat menambahkan frekuensi eksekusi system-calls. 
  • Hardware enhanced-architekture menggunakan sebuah prosesor dan FPGA )field-programmable gate array). Sistem ini menggunakan FCM (Frequency-centralized model) untuk mengekstrak system call dan menyusun features dari behaviour. Feature yang diperoleh kemudian digunakan untuk melakukan training ML yang menghasilkan classifier untuk mendeteksi malware. Sistem ini memiliki akurasi klasifikasi tinggi, DR cepat, pemakaian komsumsi power rendah dan dapat mendeteksi sampel malware baru. Sistem ini juga memiliki sistem prediksi yang dapat mendeteksi malware ketika malware dijalankan. Walaupun begitu behaviour malware beragam, dan tidak ada sebuah kebijakan yang menentukan jumlah behaviour dan feature yang diekstrak sebelum membuat sistem prediksi. 
  • Liu et.al membuat MapReduce untuk mengelompokan behaviour dan mendeteksi malware. Menurut Lie, studi sebelum ini terlalu fokus pada proces, dan hanya mendefinisikan proses malicious dari system calls. Padahal banyak malware kompleks, yang terdiri dari beberapa proses dan masuk ke sistem melalui driver atau DLL. Pada kasus ini malware menggunakan beberapa proses, sehingga malware tidak dapat dideteksi bila hanya satu proses yang dianalisa.
  • Bayer et.al menggunakan teknik ASEP (Auto-start extensibility points) untuk mendeteksi persistent behavior.
  • Pajouh et.al menggunakan model supervised ML. Teknik ini menghitung frekuensi dari setiap library call untuk mendeteksi mac malware. DR sistem ini 91% dengan FR 3,9%. Hasil pengujian menunjukan semakin banyak ukuran sampel, meningkatkan akurasi deteksi, tapi menurunkan FP. Untuk meningkatkan performa dapat melakukan kombinasi feature statid dan dinamik,  menggunakan teknik klasifikasi fuzzi maupun deep learning
  • Kolbitsch et.al membuat sistem deteksi graph-based. Pada tekni ini system calls diubah menjadi behavior graph, dimana node merepresentasikan system call, dan edges mengindikasikan transisi antara system calls yang menunjukan dependensi data. Program graph dari file yang discan dibandingkan dengan graph yang ada untuk menentukan apakah program tersebut malware atau bukan. Teknik ini mengalami kesulitan untuk mendeteksi malware baru. 
  • Park et.al juga mengajukan metoda graph-based yang membedakan perilaku umum malware dan benign. Obyek kernel ditentukan oleh system calls , dan behavior ditentukan oleh obyek tersebut. Metode ini scalable dan dapat mendeteksi malware dengan tingkat DR tinggi dan FP rendah
  •  Anderson et.al membuat sistem deteksi malware berbasis graph menggunakan analisa dinamis. Graph disusun dari instruction trace yang dikumpulkan secara dinamis. Markov chain digunakan dengan vertice adalah instruction dan transition probabilities diperkirakan dari data yang disimpan pada trace. Kemudian dibuat similarity matrix yang merupakan kombinasi dari kernel graph antara beberapa instruction trace graph. Klasifikasi dilakukan menggunakan similarity matrix SVM 
     
  • Mojtaba dan Hashemi menggunakan metode graph mining untuk mendeteksi malware baru. Control flow graph (CFG) diekstrak dari programs dan dikombinasikan dengan API calls yang diekstrak. Model representasi ini disebut API-CFG. CFG kemudian dikonversi menjadi sebuah set feature vectors. Kemudian klasifikasi dilakukan dengan algoritma ML. 

Secara umum deteksi malware menggunakan behavior based terdiri dari 3 langkah:

  • menentukan malicious behavior (dapat menggunakan teknik datamining)
  • Ekstrak feature dari behaviour (menggunakan datamining)

  • Melakukan klasifikasi (dengan ML)

Teknik datamaning seperti  n-gram, n-tuple, bag, graph model, dll telah digunakan untuk menentukan feature dari behaviour. Hellinger distance, cosine coefficient, chi-square, serta metode probabilitas dan statistik seperti distance algorithm digunakan untuk menentukan kemiripan diantara feature. 

Namun ada beberpa kendala dari metode ini:

  • kesulitan menentukan behavioir
  • Ukuran feature yang besar (misalnya pada n-gram, dll)
  • Kesulitan menentukan kemiripan dan perbedaan dari behavior yang diekstrak
  • Beberapa malware tidak berjalan dengan baik pada VM dan sandbox
  • Kendala pada malware yang menggunakan teknik obfuscation lanjut.

Sampai disini dulu, besok insyaallah akan saya lanjutkan sharing tentang metode heuristic

Reference:

Aslan, Ö. A., & Samet, R. (2020). A comprehensive review on malware detection approaches. IEEE Access, 8, 6249-6271.


Silahkan tuliskan tanggapan, kritik maupun saran