LSTM malware classification – Kang – Paper Review


Paper Title : Long short-term memory-based Malware classification Method for information Security

Authors: Jungho Kang, Sejun Jang, Shuyu Li, Young-Sik Jeong, Yunsick Sung

Venue: Elsevier Computers & electrical engineering, Vol 77, July 2019, pages 366-375

URLhttps://doi.org/10.1016/j.compeleceng.2019.06.014

Problem: 

Deteksi malware signature based yang banyak digunakan saat ini tidak mampu mendeteksi berbagai macam teknik obfuscation malware. Diperlukan pendekatan deteksi malware baru.

Contribution:

  1. Mengajukan metoda deteksi malware menggunakan Word2vec untuk klasifikasi malware. Word2vec dan one-hot encoding telah banyak diimplementasikan pada NLP
  2. Metoda klasifikasi malware baru menggunakan LSTM
  3. Mengajukan metode klasifikasi menggunakan API function dan opcode. Klasifikasi malware tradisional banyak menggunakan opcode atau API function name. Namun memiliki batasan dalam akurasi

Method/solution:

  1. Source assembly degenerate dari malicious file kemudian diekstrak opcode dan nama API function.
  2. Pada fase training, word2vec dan LSTM dilatih untuk melakukan klasifikasi malware ke dalam family
  3. Tahapan training adalah: input, preprocessing dan learning
  4. Pada tahap input, tool disassembly digunakan untuk mengekstrak label source assembly dari label file malicious.
  5. Pada tahap preprocessing, opcode dan nama API function diekstrak dari label source assembly
  6. Model Word2vec mempelajari opcode dan nama API function dengan network word2vec dan terdiri dari sebuah kamus dan matrix embedding.
  7. Opcode dan nama API function yang diekstrak diindeks dengan kamu berbasis vocabulary
  8. Embedding dilakukan dengan melakukan embedding matrix word2vec menggunakan index2vec
  9. Pada tahapan learning, network LSTM dilatih dengan vektor dari opcode dan nama function API dan label2nya
  10. Pada tahapan eksekusi, family dari sebuah malicious file ditentukan dengan mempelajari model word2vec dan network LSTM
  11. Proses preprocessing terdiri dari 8 tahap: 1) ekstrak opcode dan nama API function; 2) model word2vec belajar dari opcode dan api; 3) matrix embedding dan vocabulary degenerated; 4) Vocabulary-based dictionary degenerated dengan sorting; 5) index opcode dan api function dibuat dari dictionary berbasis word2index; 6) Jika opcode dan index function API lebih pendek dari maximum sequence length, ukurannya disamakan dengan zero-padding
  12. Label vector dibuat dengan one-hot encoding
  13. Vektor berbasis index degenerate dengan matrix embedding melalui fungsi index2vec
  14. Panjang vector opcode dan function API adalah 300, weight setiap cell pada hidden layer diinisialisasi dengan 1.
  15. Hidden layer memiliki 128 cell
  16. Output vector dikirim ke layer softmax
  17. Dataset menggunakan Microsoft malware classification challenge berukuran 500GB dan 10,868 malware pada 9 family
  18. Pada setiap malware setiap source assemblu degenerate dengan idapro
  19. 90% dataset digunakan pada training, 10% pada testing

Main result:

  1. Akurasi akhir yang dihasilkan adalah 97,59%
  2. Akurasi awal pada proses training adalah 77,11% dan secara bertahap meningkat menjadi 97,59%
  3. Akurasi sistem 0,5% lebih tinggi dibandingkan sistem pembanding one-hot encoding
  4. Proses konvergen juga lebih cepat 10 menit dibandingkan sistem pembanding
  5. Loss pada metode yang diusulkan adalah 0,73 dan menuru secara gradual menjadi 0,05. Sementara pada sistem pembanding lossnya adalah 1,21 dan konvergen menjadi 0,09. Loss yang didapat 0,04 lebih rendah dibandingkan metode one-hot encoding

Limitation:

  1. Komputasi besar karena menggunakan 2 fitur opcode dan function API
  2. Belum dilakukan klasifikasi malware berdasarkan family
  3. Pengujian hanya dilakukan pada malware Windows (PE)

Silahkan tuliskan tanggapan, kritik maupun saran