Teknologi ML untuk deteksi malware


Saya lagi baca tulisan kaspersky tentang teknologi ML yang mereka pake untuk deteksi malware. Disana dijelasin mereka pake berbagai teknik. Ada supervised learning. Task yang dipake adalah dari input fitur X dan label Y, dirancang model untuk melakukan klasifikasi pada obyek X yang tidak dikenali. X adalah fitur tentang konten/behaviour sebuah file seperti : statistik file, daftar API yang digunakan dll. Sementara Y adalah label malware dan benign. Y bisa juga klasifikasi virus, trojan-downloader, adware dll.

Untuk unsupervised learning, mereka gunakan untuk menemukan struktur tersembunyi pada data, misalnya mengelompokan sampel yang serupa, atau mengelompokan fitur yang berhubungan (correlated).

Mereka menggunakan beberapa layer teknologi, dan beberapa layer deteksi. Ada clustering untuk melakukan preprocessing file input di server mereka, ada juga model deep neural network di komputer pengguna untuk deteksi behavioral. Model ML yang mereka bangun tujuannya memiliki parameter:

  1. tingkat false positive yang rendah,
  2. model yang dapat dipahami (interpretability)
  3. kuat terhadap serangan adversary.

Beberapa teknologi yang ML yang mereka pake:

Ensemble Decision Tree

Mereka pake model predeksi dengan berbagai algoritma decision tree seperti (random forest ,  gradient boosted trees). Setiap non leaf node (cabang) memiliki pertanyaan tentang fitur pada file. Sementara leaf node (daun) menghasilkan keputusan final tentang sampel. Pada saat pengujian (fase tes), model mengikuti tree, dengan menjawab pertanyaan2 pada node yang berhubungan dengan fitur pada file. Pada final stage, keputusan dari multiple tree di rata2kan dengan menggunakan algoritma tertentu untuk menghasilkan klasifikasi pada obyek. Model menggunakan tahapan Pre-Execution Proactive protection pada endpoint site (user).Teknologi ini banyak dipake di Android Cloud ML untuk mobile threats detection.

Similarity hashing (Locality sensitive hashing)

Hashe sering dipake untuk membuat ciri/signature malware. Namun hash sangat sensitif terhadap perubahan sekecil apapun pada file. Kelemahan teknik ini dieksploitasi oleh penulis malware dengan menggunakan teknik obfuscation, contohnya server-side polymorphism.

Similarity hash (locality sensitive hash) adalah metode untuk mendeteksi malware yang mirip. Caranya, sistem mengekstrak fitur file dan menggunakan orthogonal projection learning untuk memilih fitur penting. Kemudian kompresi berbasis ML digunakan sehingga nilai vektor dari fitur yang mirip ditransformasikan menjadi pola yang mirip atau identik. Metode ini dapat melakukan generalisasi, dan mengurangi ukuran database deteksi. Karena satu hash, sekarang bisa mendeteksi seluruh family dari polymorphic malware. Model ini digunakan pada tahap Pre-Execution Proactive protection stage pada user khususnya pada Similarity Hash Detection System.

Behavioral model

Ini adalah komponen yang melakukan monitor dan mencatat behaviour dari sampel. Catatannya disimpan di behavior log, yang dicatat adalah sequence dari system events yang terhadi ketika sampel dijalankan (process execution) beserta tindakan yang ditimbulkan (corresponding arguments). Untuk mendeteksi aktifitas malware pada data log, model ML melakukan kompresi sequence dari events yang didapatkan menjadi set dari vektor binary dan melakukan training deep neural network untuk memisahkan log yang malicious dan benign. Klasifikasi obyek ini dilakukan oleh Behavioral model yang digunakan pada modul deteksi statik dan dynamic pada komputer user.

Sementara itu di server mereka teknologi ML yang dipake diantaranya:

Large-scale classification models

Mereka pake model klasifikasi yang besar (contohnya huge random decision forest) butuh resource besar (processor time, memory) serta ekstraktor fitur yang mahal (contohnya sandbox untuk dapetin behavior logs). Model ini dijalanin di lab mereka. Hasil dari training di lab kemudian dirancang model klasifikasi yang lebih ringan dari hasil label dari model besar.

Keamanan Machine Learning

Mereka nyiapin pengamanan juga terhadap algoritma ML -nya. Ada banyak cara yang digunakan penyerang untuk membuat sistem ML eror. Contohnya penyerang melakukan poisoning pada training dataset atau melakukan reverse-engineer dari kode model. Selain itu penyerang bisa melakukan ’brute-force’ model ML models dengan ‘adversarial AI’ untuk menggenerate serangan secara otomatis, sampe ditemukan titik lemah dari model.

Akibat dari serangan berbasis ML ini bisa berbahaya, contohnya Trojan yang tidak dikenal bisa menginfeksi jutaan perangkat dan menyebabkan kerugian jutaan dolar.

Tulisan lengkapnya bisa dilihat disini

https://www.kaspersky.com/enterprise-security/wiki-section/products/machine-learning-in-cybersecurity


Silahkan tuliskan tanggapan, kritik maupun saran