MalGene malware evasion signature- Kirat – paper review


Paper Title: MalGene: Automatic Extraction of Malware Analysis Evasion Signature

Authors: Dhilung Kirat, Giovanni Vigna

Venue: Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security

URL: http://dx.doi.org/10.1145/2810103.2813642

Problem: Malware memiliki kemampuan untuk mendeteksi sistem deteksi malware dan menghindari deteksi (evasion). Bagaimana cara mendeteksi malware yang menggunakan teknik evasion

Contribution: 

  1. Mengajukan sistem MalGene, sistem yang secara otomatis dapat mengesktrak evasion signature dari malware. Teknik ini menggunakan data mining dan data flow analysis
  2. Mengajukan teknik baru dengan system call sequence allignment yang terinspirasi dari bioinformatik (untuk aligning DNA sequence). Algoritma ini melakukan deduplication, difference pruning dan menangani branced sequence
  3. Menguji dengan 2810 sampel malware yang menggunakan teknik evasion. Sistem dapat mengesktrak evasion signature secara otomatis dan mengelompokan pada 78 kelompok

Method/solution:

  1. Analisa malware evasion dilakukan 2 tahap: yang pertama ekstrak informasi tentang execution environment. Tahap kedua membandingkan informasi yang diekstrak
  2. Malware menggunakan system calls dan user-mode API calls untuk probing environtment, kemudian menggunakan predefiend constant valuies atau informasi dari sistem sebelumnya maupun user API calls
  3. Evasion signature didefinisikan sebagai sebuah set event system calls, user API Call events dan comparison events. Comparison event adalah eksekusi dari instruksi coparasi seperti instruksi CMP pada instruction set x86. 
  4. Evasion signature adalah ∆=P∪Q ; P adalah set dari semua call events (system calls dan API calls) Q adalah set dari semua comparison events
  5. Call event p : p ∈ P adalah (nama (p), attribut (p)), dimana (p) nama call, contohnya, NtCreateFile, dan attrib(p) nama dari obyek sistem operasi terkait, contohnya C:/boot.ini.
  6. Sebuah comparison event q : q ∈ Q adalah pasangan (p,v), dimana p sebuah call event yang menghasilkan informasi pada operand pertama yang dibandingkan dengan event q. v adalah constant value used yang digunakan pada operand kedua, atau call event lain yang menghasilkan informasi bagi operand kedua 
  7. Evasion signature ∆ didapat dari 2 tahap: pertama menentukan evasion pada call sequence, dari eksekusi malware pada environment berbeda; kedua identifikasi element ∆ yang digunakan untuk evasion
  8. Dataset adalah sampel malware yang menggunakan teknik evasive dan dideteksi oleh tools deteksi dari BareCloud 
  9. Sampel dianalisa pada dua environment dimana sampel melakukan evasion pada satu environment dan menampilkan malicious activity pada environment lainnya.
  10. Sequence system calls dari kedua sistem tersebut dibandingkan dan dicari deviasi pada sequence yang berhubungan dengan evasion. Caranya dengan melakukan elignment 2 sequence dari awal, mencari gaps yang dibutuhkan untuk optimal alignment. 
  11. Deviation adalah gap terbesar pada aligned sequence. Titik ini dinamakan evasion point. Hanya system call yang dimonitor untuk menentukan evasion point
  12. Kemudian evasion signature diekstrak dari analisa log secara detail, yang terdiri dari user API calls dan comparison event
  13. Jaringan local dan konfigurasi software internal pada 2 environment sama
  14. Kedua sampel dieksekusi pada waktu bersamaan di 2 environment berbeda
  15. Menggunakan filter network service untuk menyediakan response ke DNS dan SMTP
  16. Menggunakan diff pada sequence untuk mencari gap terbesar
  17. Menggunakan algoritma sequence alignment dari bioinformatik;  Global alignment dan local alignment
  18. Algoritma global alignment menggunakan Needleman-Wunsch
  19. Local alignment menggunakan algoritma Smith-waterman
  20. Untuk menghitung kemiripan system calls menggunakan skema similarity scoring
  21. Menggunakan linear gap penalty pada proses alignment
  22. Menggunakan recursive algorithm untuk branched sequence
  23. Dua environment yang digunakan adalah Anubis dan Hypervisor
  24. Dataset terdiri dari 3107 sampel malware yang menggunakan teknik evasion
  25. Ground truth didapat dengan menguji 52 sampel dan melakukan analisa manual

Main result

  1. Largest gap didapat pada td=0,02
  2. AUC tertinggi adalah 85,214 dengan kombinasi parameter ga=-2; gb=-0,1; nwt=-2, wt=3
  3. Hasil optimasi, nilai wa=2, nwa=-2, wb=20 td=0,02
  4. Performa lebih baik daripada algoritma pembanding (LCS based); 
  5. Semua dataset ground truth dideteksi pada ω > 83 (100% recall rate)
  6. Precission dan recall rate pada crossover point adalah 0,83 dan threshold τ = 2.75.
  7. Berhasil mengekstrak 83% elemen true evasion signature dengan presisi 83%
  8. Hasil clustering mengelompokan 78 family dengan h=099

Limitation:

  1. Hanya menangkap evasion yang menggunakan system calls atau API calls
  2. Tidak membahas teknik evasion yang menggunakan forced exeption-based CPU-fingerprinting, stalling code, inspeksi FPU, memory, atau register state
  3. Hanya membahas malware Windows

Silahkan tuliskan tanggapan, kritik maupun saran