Hunting Stealthy Malware-Wang-Review Paper


Paper Title: You are what you do: Hunting Stealthy Malware via Data Provenance Analysis

Authors: Qi Wang, Wajih Ul Hasan, Ding Li, Kangkook Jee, Xiao Yu, Kexuan Zou, Junghwan Rhee, Zhenzhang Chen, Wei Cheng, Carl A. Gunter, Haifeng Chen

Venue : Network and Distributed Systems Security (NDSS) Symposium 2020

URL: https://dx.doi.org/10.14722/ndss.2020.24167

Problem: Bagaimana mendeteksi malware stealthy? Malware yang menggunakan berbagai teknik untuk mengelabui antivirus dengan menyerupai aplikasi benign.

Contribution : 

  1. Merancang ProvDetector, sebuah provenance-based system untuk mendeteksi stealthy malware yang menggunakan teknik impersonation
  2. Untuk meningkatkan akurasi dan efektifitas, mengusulkan sebuah algoritma novel path selection untuk identifikasi malicous part pada provenance graph pada sebuah proses
  3. Merancang sebuah novel neural embedding dan machine learning pipeline yang secara otomatis membangun sebuah profile behaviour untuk setiap program dan identifikasi proses anomali
  4. Melakukan pengujian sistematis Provdetector dengan malware

Method/solution:

  1. ProvDetector terdiri dari 4 tahapan: graph building, representation extraction, embedding dan anomaly detection
  2. ProvDetector melakukan model operasi normal dari sebuah sistem
  3. Menggunakan casual path sebagai sebuah feature yang membedakan bagian malicious dan benign dari data provenance.
  4. Provdetector memilih sebuah subset casual paths dari sebuah provenance graph untuk menunjukan masalah dependency explosion dan meningkatkan kecepatan training dan deteksi
  5. Melakukan konfigurasi untuk melakukan monitoring pada aplikasi dan mendeteksi bila aplikasi tersebut dibajak oleh stealthy malware. 
  6. Deploy sebuah monitoring agent pada host, mengumpulkan provenance data dari sisten dan menyimpannnya pada sebuah database sentral. 
  7. Memiliki 2 mode: training dan deteksi
  8. Dari sebuah  p , PROVDETECTOR membangin  provenance graph G(p) =< V, E > sebagai sebuah labeled temporal graph menggunakan data yang disimpan di database
  9. nodes V adalah entitas sistem yang labelnya adalah atributnya,  E adalah edges dimana  labelnya adalah  relations dan timestamps.
  10. Setiap  node V merupakan salah satu dari: processes, files atau sockets.
  11. Setiap edge e pada E adalah e = {src,dst,rel,time}.
  12. Pembangunan  provenance graph G(p) dimulai dengan  v == p.
  13. Kita tambahkan edge e dan source node src dan destination node pada graph seperti e.src ∈ V atau e.dst ∈ V .
  14. Setelah provenance graph terbangun, dilakukan ekstraksi representation. Untuk mencari representasi dari graph untuk membedakan malicious dan benign
  15. Casual path sebagai feature dari graph. causal path λ dari sebuah dependency graph G(p) sebagai sequence berurutan dari sebuah sistem (edges) {e1,e2,…,en} pada G(p), dimana ∀ei,ei+1 ∈ λ, ei.dst == ei+1.src dan ei.time < ei+1.time.
  16. Untuk menemukan  top K rarest paths, digunaian regularity score dari path λ = {e1,e2,…,en} 
  17. Embedding, menambahkan path pada model deteksi anomali, menggunakan intuisi, embedded learning dan final decision making
  18. Menggunakan model PV-DM seperti pada doc2vec. Metoda ini adalah self-supervised
  19. Deteksi anomali menggunakan model Local Outlier Factor (LOF). LOF adalah metoda density based. Sebuah titik dikatakan outlier jika dia memiliki sbuah local density yang lebih rendah dari tetangganya
  20. Training dilakukan pada mesin Intel core i7-6700 Quad-Core Processor (3.4 GHz) and 32 GB RAM running Ubuntu 16.04 OS

Main result: 

  1. Akurasi deteksi antara 0,952-0,965
  2. Recall range antara 0,965-1
  3. F1 score range 0,961-0,982
  4. ProvDetector lebih baik dibandingkan metode deteksi Strawman yang menghasilkan F! 0,78 dengan padalah 3%
  5. Performa lebih baik dibandingkan metode graph2vec dan path nodes averaging
  6. Training oada datan 30 ribu paths membutuhkan waktu 94 detik pada model doc2vec dengan ukuran embedding vector 100 dan epoch 100. Sementara pada LOF hanya dibutuhkan 39 detik 
  7. Rata2 dibutuhkan 5 detik untuk membangun provenance graph dan 2 detik untuk memilik top 20 path dari graph. Perlu 1 milideteik untuk embed path ke vector dan 0,06 mikrodetik untuk deteksi model
  8. Mampu mendeteksi sampel yang menggunakan teknik Anti-VM. 26% sampel menggunakan teknik anti-VM. 
  9. 70% path dari proses yang dibajak tidak terdeteksi sebagai malware

Limitation:

  1. Offline detector, atau tidak bekerja secara real-time
  2. Hanya diuji pada sistem operasi windows
  3. Hanya menddunakan 2 model doc2vec dan LOF
  4. Tidak diuji dengan advarsarial malware
  5. Tidak diuji tentang  polusi data
,

Silahkan tuliskan tanggapan, kritik maupun saran