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:
- Mengajukan sistem MalGene, sistem yang secara otomatis dapat mengesktrak evasion signature dari malware. Teknik ini menggunakan data mining dan data flow analysis
- 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
- Menguji dengan 2810 sampel malware yang menggunakan teknik evasion. Sistem dapat mengesktrak evasion signature secara otomatis dan mengelompokan pada 78 kelompok
Method/solution:
- Analisa malware evasion dilakukan 2 tahap: yang pertama ekstrak informasi tentang execution environment. Tahap kedua membandingkan informasi yang diekstrak
- 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
- 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.
- Evasion signature adalah ∆=P∪Q ; P adalah set dari semua call events (system calls dan API calls) Q adalah set dari semua comparison events
- 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.
- 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
- 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
- Dataset adalah sampel malware yang menggunakan teknik evasive dan dideteksi oleh tools deteksi dari BareCloud
- Sampel dianalisa pada dua environment dimana sampel melakukan evasion pada satu environment dan menampilkan malicious activity pada environment lainnya.
- 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.
- Deviation adalah gap terbesar pada aligned sequence. Titik ini dinamakan evasion point. Hanya system call yang dimonitor untuk menentukan evasion point
- Kemudian evasion signature diekstrak dari analisa log secara detail, yang terdiri dari user API calls dan comparison event
- Jaringan local dan konfigurasi software internal pada 2 environment sama
- Kedua sampel dieksekusi pada waktu bersamaan di 2 environment berbeda
- Menggunakan filter network service untuk menyediakan response ke DNS dan SMTP
- Menggunakan diff pada sequence untuk mencari gap terbesar
- Menggunakan algoritma sequence alignment dari bioinformatik; Global alignment dan local alignment
- Algoritma global alignment menggunakan Needleman-Wunsch
- Local alignment menggunakan algoritma Smith-waterman
- Untuk menghitung kemiripan system calls menggunakan skema similarity scoring
- Menggunakan linear gap penalty pada proses alignment
- Menggunakan recursive algorithm untuk branched sequence
- Dua environment yang digunakan adalah Anubis dan Hypervisor
- Dataset terdiri dari 3107 sampel malware yang menggunakan teknik evasion
- Ground truth didapat dengan menguji 52 sampel dan melakukan analisa manual
Main result
- Largest gap didapat pada td=0,02
- AUC tertinggi adalah 85,214 dengan kombinasi parameter ga=-2; gb=-0,1; nwt=-2, wt=3
- Hasil optimasi, nilai wa=2, nwa=-2, wb=20 td=0,02
- Performa lebih baik daripada algoritma pembanding (LCS based);
- Semua dataset ground truth dideteksi pada ω > 83 (100% recall rate)
- Precission dan recall rate pada crossover point adalah 0,83 dan threshold τ = 2.75.
- Berhasil mengekstrak 83% elemen true evasion signature dengan presisi 83%
- Hasil clustering mengelompokan 78 family dengan h=099
Limitation:
- Hanya menangkap evasion yang menggunakan system calls atau API calls
- Tidak membahas teknik evasion yang menggunakan forced exeption-based CPU-fingerprinting, stalling code, inspeksi FPU, memory, atau register state
- Hanya membahas malware Windows