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

When Malware is Packin’Heat-Aghakhani-Review Paper

Paper Title: When Malware is packin’ Heat: Limits of machine leatning classifiers based on static analysis features

Authors: Hojjat Aghakhani, Fabio Gritti, Francesco Mecca, Martina Lindorfer, Stefano Ortolani, Davide Balzarotti, Giovani Vigna, Christopher Kruegel

Venue: NDSS (Network and distributed System Security) Symposium 2020

URL: https://www.ndss-symposium.org/wp-content/uploads/2020/02/24310-paper.pdf

Problem: Teknik packing dan obfuscation seringkali digunakan penulis malware untuk mengelabui proses deteksi malware. Namun teknik ini juga digunakan aplikasi benign untuk melindungi codenya.  Bagaimana mesin deteksi malware menggunakan machine learning dengan feature analisa static bisa membedakan sampel yang menggunakan teknik packing sebagai malware dan benign? 

Contribution:

  1. Melakukan studi tentang batasan dari malware classifier menggunakan machine learning yang hanya menggunakan feature static. 
  2. Dataset terdiri dari 392.168 sampel yang telah diberi label benign dan malicious serta packed dan unpacked.
  3. 341.444 sampel telah diketahui packernya

Method/solution

  1. Membangun 2 dataset, wild dataset dan lab dataset
  2. Wild dataset adalah kumpulan sampel yang diperoleh dari vendor antivirus yang menggunakan feature dinamik
  3. Menggunakan benchmark dataset EMBER
  4. Identifikasi sampel yang menggunakan packing menggunakan tools sandbox vendor, Deep Packet Inspector dan tools static lainnya
  5. Lab dataset adalah sampel dari wild dataset yang di packing dengan commercial dan free packer
  6. Melakukan ekstraksi 9 family feature dari 2 dataset diatas
  7. Pengujian menggunakan SVM, Malconv, Random Forest
  8. Pada tahan naive experiment, Training dilakukan pada packed malicious dan unpacked benign sampel
  9. Pengujian dilakukan pada 6 malware deteksi engine yang hanya menggunakan teknik static analisis feature.
  10. Packer yang digunakan diantaranya Themida, PECompact, PElock dan Obsidium.
  11. Sampel yang dipacking di submit ke VirusTotal, dan diuji dengan  vendor Antivirus dan dataset EMBER
  12. Membuat packer sendiri AES-Encrypter
  13. 4113 sampel diabaikan karena perbedaan hasil deteksi
  14. Sampel diuji apakah mengandung teknik packing menggunakan antimalware, DPI, Tools signature dan heuristic diantaranya manalyze, exeinfo PE, yara rules, PEiD dan F-Prot
  15. Digunakan 56,543 deature yang dikelompokan pada 9 Family Feature :PE Header, PE Sections, DLL imports, API imports, Rich Header, Byte n-grams, Opcode n-grams, Strings dan file generic

Main result

  1. 6 Classifier yang diuji hanya mendeteksi packing, sehingga tidak bisa membedakan sampel malware maupun benign yang menggunakan teknik packing
  2. Random Forest mendapatkan hasil classifier terbaik dan interpretasi hasil yang lebih baik dibandingkan neural network
  3. Hasil naive experiment, classifier menghasilkan tingkat false positive yang tinggi pada sampel packed benign. Sehingga disimpulkan classifier cenderung mendeteksi packing.
  4. Menambah ratio packed benign pada training set menurunkan tingkat false postive dan false negative.
  5. Packers menyimpan informasti tentang binary asli yang bisa digunakan untuk deteksi malware, contohnya file headers .cab pada section resource
  6. Sampel Benign yang menggunakan commercial packer Themida, PECompact, PElock dan Obsidium dideteksi sebagai malware
  7. 75% sampel malware menggunakan teknik packing. 50% sampel benign menggunakan teknik packing.
  8. 50% dari 69 packer yang diteliti digunakan baik oleh sampel malware dan benign, contohnya INNO dan UPX. 
  9. Packer yang banyak digunakan malware NSPack, Molebox
  10. 613 sampel benign dari file instalasi baru Windows 10  di pack dengan themida. 564 dideteksi sebagai malicious.
  11. Teknik Signature based untuk deteksi packing menghasilkan false negative yang tinggi. PEiD: 30% false negative.

Limitation:

  1. Classifier mengalami kesulitan dalam generalisasi packer yang belum dikenal
  2. Classifier sulit mengenali packer yang menggunakan teknik enkripsi yang kuat
  3. Rentan terhadap adversarial sample
  4. Tidak melakukan pengujian pada android

Source code dishare pada docker di web berikut: https://github.com/ucsb-seclab/packware. Ditemukan adanya dataset pollution, yaitu packed benign sampel yang dideteksi sebagai malicious. Packer adalah aplikasi yang melakukan kompresi atau enkripsi program. Teknik yang digunakan biasanya dekripsi atau dekompresi (runtime) dari payload original yang diikuti dengan sebuah jump dari memory address. 

Ugarte et.al membagi packer menjadi 6 tipe:

  1. Tipe I: Menggunakan sebuah rutin unpacking untuk transfer kontrol dari program asli. Packer yang populer adalah UPX
  2. Tipe II: Packer menggunakan sebuah rantai rutin unpacking secara sekuensial, dimana kode original yang dikomposisi ulang pada akhir sequence
  3. Tipe III: rutin unpacking dengan loops dan backward edges. Kode original tidak direkonstruksi pada layer terakhir, sebuah tail transision digunakan untuk memisahpan pakcer dan kode aplikasi
  4. Tipe IV: pada setiap layer packing, bagian dari unpacking rutin disisipkan pada bagian kode original. Namun seluruh kode orignal tetap unpacked di memori pada titik tertentu ketika dieksekusi
  5. Tipe V: Packer disusun dari laeyer berbeda dimana kode unpacking dicampur dengan kode asli. Ada banyak tail jump yang hanya menampilkan sebuah frame kode original pada waktu tersebut
  6. Packer unpack hanya sebuah fragment dari kode original

Pendekatan lainnya menggunakan heuristic utnuk mendeteksi packing, namun rentan terhadap adversary. Contohnya family malware Zeus menggunakan berbagai teknik berbeda, seperti memasukan set byte di executables untuk membuat entropy dari file dan sectionsnya rendah.  Untuk menghidari deteksi entropy-based heuristics. 

Deteksi dinamic memiliki performa lebih baik, karena mencari sequence write-execute pada sebuah lokasi memori. Teknik evasion lainnya adalah conditional execution dari unpacking routin.

Packer tELock dan Armadilo menggunakan beberapa teknik anti-debugging untuk menghentikan eksekusi pada setting debugging. Ada juga yang melakukan exploitasi virtualisasi hardware untuk mencapai transparansi, namun menghasilkah overhead performance yang tinggi. Themida menggunakan obfuscation virtualization pada unpacking routine, yang dapat menyebabkan slice size explosion. 

Beberapa asumsi pada generic unpacker: 

  1. Kode original ada di memori pada titik tertentu
  2. kode original diunpacked pada layer terakhir
  3. Eksekusi dari unpacking rutin dan kode original terpisah
  4. Kode unpacking dan kode original berjalan pada proses sama tanpai komunikasi inter-proses

Generik unpacker juga banyak menggunakan heuristic yang dirancang untuk packer tertentu

 

 

Malware detection Malconv-Raff

Paper Title: Malware Detection by Eating a Whole Exe

Authors: Edward Raff, Jon Barket, Jared Sylvester, Robert Brandon, Bryan Catanzaro, Charles Nicholas

Venue: AAAI-2018 Workshop on Artificial Intelligence for Cyber Security

URL: https://arxiv.org/pdf/1710.09435.pdf

Problem: Membangun neural network untuk deteksi malware dari raw byte sequence memiliki banyak permasalahan yang tidak timbul pada image processing maupun NLP.  Diantaranya masalah sequence denganlebih dari 2 juta time steps dan masalah batch normalization sepertinya menyulitkan proses learning. 

Contribution:

Arsitektur neural network untuk deteksi malware yang dapat memproses sebuah byte sequence melalui 2 juta time steps

Method/solution

  1. Dataset menggunakan 2 juta binary dengan 1 juta benign dan 1 juta malicious
  2. Menggunakan arsitektur convolution network dengan sebuah global max-pooling dan fully connected layers
  3. Menggunakan embedding layer untuk memetakan setiap byte pada sebuah feature vector fixed length 
  4. Shallow architecture dengan sebuah filter width besar 500 bytes dikombinasikan dengan 500 aggresive stride untuk mendapatkan komputasi balanced pada data paralel dengan PyTorch
  5. Menggunakan pendekatan gated convolution
  6. Ukuran input feature step besar (2 juta time steps)
  7. Menggunakan DeCov Regularization dengan memberikan penalti pada korelasi antara hidden state activation pada layer kedua dari belakang
  8. Menggunakan softmax
  9. Menggunakan temporal max-pooling agar hasil lebih dapat dipahami.
  10. Menggunakan batch size 256 sampel per batch
  11. Training menggunakan 8 GPUs pada DGX-1 dengan 16,75 jam per epoch pada 10 epoch. 
  12. Evaluasi performansi model menggunakan balanced accuracy dan AUC

 

Main result:

  1. Proses training pada 2 juta sampel menghabiskan waktu 1 bulan
  2. Regularization DeCov meningkatkan akurasi dari model
  3. 58-61% informasi malware diperoleh dari PE-HEader
  4. Akurasi dengan batch-norm hanya mencapai 60% pada training dan 50% pada pengujian
  5. Batch-norm tidak efektif pada model karena proses training dilakukan pada binary executable

Limitation:

  1. Terjadi overfitting
  2. Terjadi failure pada Batch-normalization 
  3. Kesulitan membedakan sampel packed malware dan benign
  4. Pemakaian memori sangat besar

Proses analisa manual 1 binary oleh analis bisa mencapai 10 jam (Mohaisen and alrawi 2013). 

Deteksi Malware sequence modeling-Oak-Paper Review

Paper Title: Malware Detection on Highly Imbalanced Data through Sequence Modeling

Authors: Rajvardhan Oak, Min Du, David Yan, Harshvardhan Takawale, Idan Amit

Venue: AISec ’19, November 15, 2019, London, United Kingdom

URL: https://doi.org/10.1145/3338501.3357374

Problem: Deteksi malware Android menggunakan deep learning mengalami kendala dataset yang terbatas dan imbalanced.

Contribution: 

  1. Menggunakan model BERT untuk mengatasi permasalahan imbalanced dataset pada deteksi malware android dengan deep learning.
  2. Menggunakan supervised LSTM untuk klasifikasi malware, melakukan validasi asumsi bahwa sequnce informasi akan mempengaruhi klasifikasi
  3. Menangani permasalahan imbalanced dataset dengan menggunakan teknik NLP BERT
  4. Melakukan studi kelebihan pre-training BERT dengan membandingkan hasil deteksi pada beberapa model dengan nilai inisialisasi berbeda (random atau di pre-trained pada data android) dan dilakukan training pada dataset android yang kecil
  5. Mempelajari efektifitas implementasi model BERT untuk deteksi malware android dengan setting pengujian beragam, seperti mempelajari sequence aktifitas secara mendalam 
  6. Menampilkan berbagai analisa statistik untuk pengujian validitas

Method/solution

  1. Menggunakan dataset 180.000 sampel dengan 2/3nya adalah malware
  2. Menguji model bahasa BERT untuk deteksi malware pada dataset keseluruhan
  3. membangun re-balanced dataset yang memiliki sampel malwar eyang berbahaya
  4. melakukan simulasi kondisi dataset malware yang unbalanced
  5. Dataset yang digunakan dari Palo Alto Networks Wildfire yang kemudian dilakukan ekstraksi label action sequence dari aplikasi android.
  6. Action pada dataset bukan log dari function calls tertentu, melainkan deskripsi high level dari behavior setiap aplikasi, contohnya “file APK menggunakan HTTP post” atau “file APK membuat sebuah hidden file”
  7. Dari setiap sampel dicatat juga informasi seperti domain apa yang dihubungi, permission yang diminta, sequence dari aktivitas dinamik yang dibuat aplikasi dan sertifikat yang digunakan untuk sign APK.
  8. Aktifitas tersebut dicatat ketika aplikasi dimonitor dan dibuat urutan aktifitas secara kronologis.
  9. 174 aktifitas yang dicatat diubah menjadi integer
  10. Analisa behaviour dibuat dalam format XML
  11. Menggunakan analisa n-gram untuk analisa aktifitas malware
  12. Parameter yang diukur akurasi, presisi, recall dan F1-score berdasarkan nilai True Positive (TP), true negatives (TN) positives (P) dan negatives (N)
  13. Akurasi= (TP+TN)/(P+N) ; jumlah prediksi benar dibandingkan total sampel
  14. Precision=TP/P’ ; ketepatan prediksi malware
  15. recall=TP/P ; persentase malware dideteksi oleh model
  16. F1 score=2*precision*recall/(precision+recall) : evaluasi keseluruhan model
  17. Melakukan perbandingan analisa sequence dengan analisa bag-of-words
  18. Pembagian dataset 75% utk training; 25% pengujian
  19. Setiap activity sequence direpresentasikan menjadi activity vector Setiap nilai pada activity vector diganti dengan nilai Term Frequency-inverse Document Frequency (TF-IDF).
  20. Neural network menggunakan 3 hidden layer, masing2 100 neuron
  21. Rasio malware pada aplikasi android dimonitor menggunakan sistem Autofocus dari PaloALto
  22. Pada model unsupervised menggunakan metoda clustering, Autoencoder dan DAGMM.
  23. Untuk  baseline menggunakan metode deteksi semi-supervised anomaly detection Deeplog
  24. Clustering menggunakan K-means; dengan cosine distance sebagai distance metric dan K=2

Main result: 

  1. F1 Score 0,985 pada jumlah sampel 183.000 APK dengan, 66% nya adalah malware dan 33% benign
  2. Menggunakan BERT diraih F1 score  0.919 pada sebuah dataset dengan sampel malware sebanyak 0.5% saja
  3. Hasil pre-training model BERT sangat berguna ketika dataset training yang dilabel sedikit.
  4. Hasil preprocessing didapat total 183000 sequences; 120780 adalah malware dan 60390 benign
  5. Untuk LSTM didadapat nilai F1-0,985
  6. Positivity rates 0,01% untuk aplikasi lama
  7. Untuk file baru, positivity rates 2% untuk android dan 0,5% untuk windows

Limitation:

  1. Pendekatan TF-IDF ini hanya cocok untuk deteksi offline
  2. Hasil positivity rate masih rendah
  3. Terdapat banyak variant malware yang sama pada training dan test, baiknya ada penambahan variant identification pada pre-processing
  4. Tidak ada timestamp pada sampel maware
  5. Perlu dikaji atribusi malware ke dalam kelas atau family yang sama
  6. Perlu dibandingkan dengan model bahasa lainnya seperti XLNet

Pada bidang machine learning terjadi kemajuan pesat pada bidang klasifikasi. Di NLP dua arsitektur yang banyak digunakan adalah LSTM (Long Short-term Memory) dan BERT (Bidirectional encoder representations from transformer). LSTM adalah kelas khusus dari jaringan neural yang memiliki keunggulan dalam mengingat histori dari data sequence.LSTM menggunakan input current dan input histori untuk prediksi. BERT mencoba untuk membuat representasi deep bidirectional pada saat pre-training untuk unlabeled text dengan masked words dan sentences. Model pre-trained dapat difine-tuned dengan output single layer untuk beragam task downstream dengan jumlah training tambahan minimum. Model ini secara empiris bekerja dengan baik pada klasifikasi text, dan membutuhkan waktu train yang lebih sedikit.

LSTM efektif pada analisa file log dan sistem anomali deteksi. File log atau sequences aktivitas memiliki kemiripan dengan model language dimana sama2 memiliki ordered sequence dari tokens. Menurut penulis, model bahasa dapat memiliki performa yang baik pada deteksi malware. 

Ratio aplikasi android dunia dibandingkan total aplikasi sekitar 0.01% – 2%. Sehingga membangun model yang bisa berjalan pada dataset imbalanced adalah sebuah keuntungan. BERT adalah model bahasa state-of-the-art pada nlp. Pendahulu bert adalah transformer. Tidak seperti recurrent neural networks sequence history untuk prediksi, transformer menggunakan mekanisme self-attention untuk membuat model hubungan antara semua kata pada sebuah kalimat. 

BERT menggunakan training Transformer dua arah. BERT memiliki mekanisme pre-training yang dapat belajar parameter dengan self-supervised learning pada unlabeled dataset secara efektif.

Inovasi inti dari BERT adalah penggunaan model bahasa masked. Word sequence sebelum dimasukan ke BERT, 15% dari kata2 pada setiap sequence diganti dengan sebuah masking token. Model kemudian mencoba prediksi nilai asli dari masked words berdasarkan konteks dari kata-kata lain pada sequence. Poin penting untuk dicatat adalah model prediksi menggunakan semua konteks, diantaranya kata2 sebelum, dan sesudah masked word. Sebuah model pre-trained dapat melakukan model hubungan antara token (kata) pada konteks berbeda dengan efektif.

Langkah 

Deep Self-supervised Clustering DarkWeb-Kadoguchi- paper review

Paper Title: Deep Self-Supervised Clustering of the dark web for cyber threat intelligence

Authors: Masashi Kadoguchi, Hanae Kobayashi, Shota Hayashi, Akira Otsuka, Masaki Hashimoto

Venue : 2020 IEEE International Conference on Intelligence and Security Informatics (ISI)

URL: https://ieeexplore.ieee.org/document/9280485

Problem:Bagaimana menggunakan machine learning untuk memprediksi serangan cyber berdasarkan threat intelligence informasi dari posting forum di dark web?

Contribution:

  1. Merancang sebuah metoda threat intelligence untuk mengekstrak informasi secara otomatis dari posting forum Dark Web

Method/solution:

  1. Menggunakan machine learning (K-means clustering), Deep clustering dan doc2vec (teknik nlp)
  2. Ekstrak forum post yang mengandung informasi critical post (jual beli malware, teknik hacking, info kredit card dan rencana serangan siber)
  3. Data dikumpulkan dengan melakukan web crawling pada dark web. 850 forum post terkait jual beli malware menggunakan tools sixgill
  4. Menggunakan doc2vec untuk feature extraction.
  5. Preprocessing menggunakan tokenization, cleaning, normalization, stemming dan stop-words
  6. Feature yang telah diekstrak menjadi input autoencoder.
  7. Output encoder dikalsifikasikan menjadi cluster dengan K-means
  8. Hasil klasifikasi menjadi pseudo label
  9. weight autoencoder di update untuk optimasi clustering
  10. Dimensi 200, iterasi learning 300
  11. Menggunakan keras

Main result:

  1. Hasil training 6 dari 8 cluster jelas terkait tentang jual beli malware
  2. 2 cluster berisi campuran post, didefinisikan sebagai kesalahan klasifikasi
  3. 57% posts diklasifikasikan dengan akurasi 97% dengan teknik self-supervised learning
  4. Visualisasi cluster menggunakan algoritma t-distributed stochastic neighbor embedding (t-SNE)

Limitation:

  1. Jumlah dataset kurang 
  2. Proses optimasi parameter terlihat mencoba-coba (trial and error)
  3. Methodnya kurang dijelaskan secara komprehensif forum darkweb apa saja yang diteliti
  4. Metode self-supervise learning yang digunakan tidak dijelaskan secara komprehensif

Self-supervised visual learning- Kolesnikov-review paper

Paper Title: Revisiting self-supervised visual representation learning

Authors: Alexander Kolesnikov, Xiaohua Zhai, Lucas Beyer

Venue:2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) 

URL: https://ieeexplore.ieee.org/document/8953672

Problem: Computer vision masih banyak bergantung pada supervised learning. Namun proses labeling data menjadi kendala pada supervised learning. Sehingga peneliti masih bergantung pada dataset yang tersedia saja. Untuk itu diperlukan baru dalam proses learning. Teknik yang cukup prospektif adalah self-supervised learning (SSL). SSL menerima unlabel data yang kemudian diformulasikan menjadi sebuah pretext learning task seperti prediksi konteks dan rotasi gambar. Namun Pretext task ini harus dirancang agar bisa memahami gambar input dengan benar. Paper ini melakukan studi tentang teknik apa saja yang dapat digunakan untuk meningkatkan performa SSL.

Contribution:

  1. Melakukan studi tentang teknik pretext task pada arsitektur CNN untuk meningkatkan performa SSL
  2. Melakukan studi empiris berbagai arsitektur SSL 

Method/solution:

  1. Model CNN menggunakan ResNet, Revnet dan VGG
  2. Teknik Self-supervised yang digunakan adalah rotation, exemplar, jogsaw, relative patch location
  3. Visual representasi dievaluasi dengan melakukan training pada sebuah model regresi logistik linear untuk menyelesaikan masalah klasifikasi image yang membutuhkan pemahaman high-level scene. Task ini disebut downstream task.
  4. Untuk mempercepat evaluasi digunakan teknik optimasi efficient convex untuk training model logistik regression menggunakan L-BFGS
  5. Dataset yang digunakan ImageNet dan Places205

Main result:

  1. Sifat arsitektur pada supervised tidak otomatis terbawa ketika diterjemahkan ke self-supervised learning. 
  2. Kualitas representasi yang dipelajari pada arsitektur CNN dengan skip-connections tidak menurun mendekati akhir model. Hal ini kontras dengan pengamatan pada arsitektur Alexnet.
  3. Meningkatkan jumlah filter pada sebuah model CNN dan menambah ukuran representasi secara signifikan dan konsisten meningkatkan kualitas dari representasi visual yang dipelajari
  4. Prosedur evaluasi dimana sebuah model linear di train pada sebuah representasi fixed-visual menggunakan stochastic gradient descent sensitive terhadap learning rate schedule dan membutuhkan banyak epoch untuk mendapatkan hasil.

Limitation:

  1. Hanya melakukan studi pada representasi image
  2. Tidak melakukan pengujian pada BERT
  3. Tidak melakukan pengujian dengan GAN

SSL adalah learning framework dimana sebuah supervised signal pada sebuah pretext task dibuat secara otomatis, dalam rangka untuk learn representations  yang berguna dalam menyelesaikan task. 

Banyak penelitian SSL yang menggunakan arsitektur AlexNet. Pada paper ini dilakukan studi implementasi varian ResNet dan arsitektur sebuah batch-normalized VGG. Semuanya menghasilkan performa tinggi pada training fully-supervised. VGG secara struktur dekat dengan AlexNet karena tidak memiliki skip-connections dan menggunkan layer yang fully-connected.

Pada pengujian awal, diamati properti dari ResNet model: kualitas representasi tidak menurun mendekati akhir network. Hipotesa penulis adalah ini akubat dari skip-connection membuat residual unit tidak bisa diinvert pada keadaan tertentu, sehingga menyebabkan penyimpanan informasi pada depth walaupun tidak relevan untuk pretext task. Berdasarkan hipotesis ini dimasukan RevNets pada studi ini karena memiliki stronger invertibility namun secara struktur mirip dengan ResNets

PGP signing party

Hari ini di kelas Pak BR materinya tentang pgp signing party, yaitu acara dimana kita bertukar kunci publik dengan orang lain. Kemudian kita lakukan verifikasi kunci publik orang tersebut, kalo emang bener itu orangnya dan kuncinya bener, kita signed kunci publik tersebut, dan kita upload ke keyserver.

Karena masih pandemi, acara signing ini dilakukan online. Jadi pertama kita creat dulu kunci masing2. Klo di linux gampang, tinggal buka terminal dan ketik

gpg –gen-key

nanti masukin alamat email, nama dll, masa berlaku dll. Kalo mau liat list kuncinya tinggal ketik

gpg –list-keys

Kemudian untuk bertukar kunci dengan orang kita harus export kuncinya tinggal ketik:

gpg –output nama.gpg –export nama@email.org

setelah itu di armor, maksudnya diexport dalam formard ascii. Karena format aslinya adalah binary, jadi kurang manusiawi klo untuk dikasi ke orang

gpg –armor –export nama@email.org

trus file ini bisa kita tukar ke orang, atau kita upload ke keyserver. Misalnya pada kuliah ini kami pake keyserver pgp.key-server.io

Setelah itu untuk melakukan signing kunci orang lain caranya seperti berikut:

Pertama saya unduh dulu kunci pak budi, kita minta 8 kode terakhir dari kunci publiknya dari keyserver:

gpg –keyserver pgp.key-server.io –recv-key 7E1023FE

terus kita signed:

gpg –keyserver pgp.key-server.io –sign-key 7E1023FE

nanti diminta masukin password. Setelah itu kita kirim lagi ke keyserver:

gpg –keyserver pgp.key-server.io –send-key 7E1023FE

Materi berikutnya adalah untuk menandatangani secara digital sebuah dokumen. Pake perintah clearsign. Contohnya pada latihan berikut ini saya melakukan digital signing file pernyataan.txt

gpg –clearsign pernyatan.txt

 

Sekian catatan kuliah hari ini. Semoga bermanfaat!

referensi:

https://en.wikipedia.org/wiki/Key_signing_party

https://www.gnupg.org/gph/en/manual/x135.html

 

 

Image-based malware Classification- Vasan- Paper review

Paper Title: IMFCN: Image-based malware classification using fine-tuned convolutional neural network architecture

Authors: Danish Vasan, Mamoun Alazab, Sobia Wassan, Hamad Naeem, Babak Safaei, Qin Zheng:

Venue: Journal Computer Networks, Vol 171, 22 April 2020, 107-138

URL: https://www.sciencedirect.com/science/article/pii/S1389128619304736 ; https://doi.org/10.1016/j.comnet.2020.107138

Problem: Volume, tipe dan kompleksitas malware terus meningkat. Pendekatan deteksi malware. Teknik deteksi konvensional tidak mampu mendeteksi variant malware. Teknik deteksi malware dengan image representation membutuhkan komputasi yang besar. Permasalahan data imbalance pada dataset.

Contribution: 1. Mengembangkan metode baru deteksi dan klasifikasi umalware dengan hybrid deep learning (IMCFN) yang menggabungkan teknik visualisasi dan arsitektur CNNyang efisien, scalable dengan overhead run-time rendah

2. Model tidak membutuhkan feature engineering maupun domain expert knowledge seperti reverse engineering, binary disassembly, dan bahasa asembler. Performanse model lebih baik dari pendekatan ekstraksi feature

3. Implementasi skema fine-tuninge untuk fingerprint malware image dengan metode back-propagation. Teknik Augmentasi datai digunakan untuk optimasi performa algoritma IMCFN dan menangani imbalance dataset. Layer yang menggunakan FC2, FC1 dan block5 membutuhkan komputasi yang lebih kecil, dan lebih cepat dalam melakukan klasifikasi malware.

4. Implementasi normalisasi image malware, untuk identifikasi obfuskasi dan packed pada normalized program

5. Melakukan analisa mendalam menggunakan berbagai teknik ML klasik dan aristektur deep learning pada dataset besar untuk evaluasi arsitektur usulan dalam penanganan varian malware baru.

6. Menguji model terhadap obfuscated malware, menggunakan 25 family malware dari dataset Malimg, untuk melakukan prediksi ketangguhan serangan obfuscated malware.

Method/solution: 

  1. Sistem terdiri dari 2 bagian: a. Malware image generation dan b. CNN fine-tuning dengan teknik backpropagation. Pada saat fine-tuning digunakan teknik data augmentasi untuk meningkatka performa IMFCN
  2. Representasi Image dari malware: input binary dirubah menjadi vektor 8 bit, kemudian ditransformasi jadi array 2D dan divisualisasikan menggunakan color-map.
  3. Menggunakan teknik texture-based malware classification untuk mendeteksi teknik obfuscation.
  4. Dataset menggunakan Malimg, dan IoT android mobile
  5. Untuk menangani masalah imbalance dataset digunakan teknik data augmentation.
  6. Tools menggunakan python pada mesin NVIDIA Ti-1080 12GB GPU untuk training dan Intel Core i7-4790 processor dengan 8GB memori untuk classification
  7. Algoritma klasifikasi malwar emenggunakan GIST+KNN, LBP+KNN, GLCM+KNN dan DSIFT+GIST+KNN
  8. Performa classifier diukur dengan paramater akurasi, f1-score, recall atau TPR (True Positive rate), precission dan FPR (false positive rate)
     

Main result:

1.Efek augmentasi: F1 score IMFCN 98,75% sementara utk non-augmentasi 97,81%

2. Hasil perbandingan IMFCN dengan 4 metode klasifikasi malware dengan image represetation, IMFCN memiliki F1 Score tertinggi yaitu 98,75%,  sementara GIST 87,94% , LBP 96,12%, GLCM 95,76% dan DSIFT+GIST 93,12%

3. Perbandingan dengan metode VGG16, ResNet50 dan Inceptionv3. Akurasi IMCFN adalah 98,82%, Resnet50 98,61%, InceptionV3 98,65%, VGG16 97,12%

4. Perbandingan waktu yang dibutuhkan untuk klasifikasi: VGG16 0,97 detik, 0,63 detik untuk Resnet50, 0,68 detik untuk InceptionV3 dan 0,81 detik untuk IMFCN. 

5. Rata2 hasil presisi, recall dan akurasi IMFCN lebih baik daripada teknik klasifikasi malware dengan representasi image lainnya seperti softmax, KNN dan SVM)

6. Sementara untuk dataset IoT-android mobil diperoleh akurasi 97,35% sementara untuk algoritma pembanding 96,69%

Limitation:

  1. Dataset image yang digunakan hanya dari malimg, perlu dilakukan pengujian dengan dataset microsoft classification challenge
  2. Jenis malware yang diuji terbatas hanya 25 family
  3. Metode konversi binary ke gambar berwarna belum dijelaskan secara komprehensif

Feature Extraction – Raff

Saya lanjutkan review paper Raff tentang klasifikasi malware windows dengan machine learning

3. Fitur Binary

Ekstraksi Fitur adalah langkah awal pada setiap metode ML. Pada domain analisa malware PA, ada 2 pendekatan statik dan dinamik. Fitur Dinamik diekstrak dengan menjalankan binary dan mengekstrak fitur yang menarik pada saat sampel dijalankan. Faktanya eksekusi program bisa berbeda2 pada eksekusi yang berbeda, maupun pada lingkungan yang berbeda. Amalisa dinamik seringkali dilakukan pada virtual mesin. sementara fitur sttik didapatkan dari binari, tanpa menjalankan binary tersebut.

3.1. Fitur analisa dinamik

Ada beberapa fitur umum yang diperoleh dari analisa dinamik. Contohnya tipe analisa dinamik yang awal adalah modifikasi linker pada sistem operasi untuk membungkus setiap function call pada OS atau pada library lain dengan prolog dan epilog khusus (Willems et.al, 2007). Dengan cara ini funsi yang dipanggil dapat dilacak pada urutan kemunculannya dan dapat didapatkan juga urutan API atau function call nya. Pelacakan API Call dapat digunakan pada berbagai cara dan seringkali diartikan sebagai sebuah urutan sequensial atau sebagai sebuah directed graph (elhadi et.al 2014; Frederikson et.al, 2010) 

Tracking khusus ini dapat ditambahkan untuk task umum seperti regeistry edit, file yang dibuat atau dihapus, operasi mutex dan TCP/IP calls (Rieck et al, 2008). Ini adalah tindakan yang umum dilakukan malware, merekam informasi tambahan seperti argumen method bisa juga menguntungkan. Ada banyak cara untuk mengkombinasikan API functions yang dipanggel dengan operasi yang dijalankan, dengan banyak, banyak pekerjaan yang menggunakan satu atau keduanya, dan melakukan tracking terhadap subset action yang berbeda. Pendekatan ini disebut juga behavior based.

Fitur Statik yang umum dicari adalah: Bytes,  nilai header, entropy, assembly, API/function calls dan contextual

Fitur dynamic yang umum adalah: assembly, API/function calls, system calls, trafik jaringan, performance counter, perubahan sistem, kontekstual

Representasi fitur dengan fixed-length adalah: bytes, nilai header, assembly, API/function calls, System calls, performance counter, system changes

Representasi fitur dengan sequence adalah: bytes, entropy, assembly, api/function calls, system calls, network traffic, performance counter, system changes

Representasi fitur dengan graph adalah: assembly, API/function calls, system calls, network trafik dan contextual

Yang langsung berhubungan dengan pelacakan API calls adalah tracking system calls. Pada PE system call yang dimaksud adalah layanan yang disediakan oleh kernel windows, dan biasanya diakses melalui entry poin Ntdll.dll (Russinovich et.al, 2012 a,b) . Ada ratusan jenis function ini, dan mereka umumnya dipanggil dengan API yang disediakan microsoft, sangat jaringa digunakan oleh kode user. Bahkan penggunan fungsi ntdll.dll oleh kode user adalah sebuah indikator malware (sikorski dan honig, 2012). Satu keuntungan dari pelacakan system calls dibandingkan pelacakan semua calls ke API windows, adalah set system calls, cenderung stabil dari satu versi windows ke versi lainnya, demi compatibilitas

Teknik sama yang digunakan untuk melacak API call dapat juga digunakan untuk melacak perubahan kondisi sistem. Perubahan sistem seperti registry edit dan file created, process started/ended dan berbagai setting dan konfigurasi lainnya pada OS (Bailey et.al 2007b; Kirat et al., 2014). Perubahan sistem dapat juga kita ketahui dari system logs (Berlin et al., 2015), yang dapat digunakan sebagai sumber fitur yang nyaman dengan biaya yang rendah. Karena sistem pasti akan mencatat log, atau untuk mendeteksi malware pada saat lampau, maupun menentukan waktu infeksi.

Walaupun tidak sepopular fitur sebelumnya, informasi lannya yang bisa diekstrak diantaranya sequence instruksi asembler (Dai et al., 2009). Pendekan ini membutuhkan fitur selection tambahan dan processing, ukuran data juga akan meningkat dengan cepat dan lama eksekusi program menjadi tidak terbatas. PIlihan lainnya dengan melacak hasil dari beberapa performansi dan hardware counter yang tersedia pada CPU modern maupun proses lainnya yang terkait dengan counter yang dilacak oleh OS (Tang et al., 2014).  Diantarnya jumlah page memori yang dialokasikan atau swapped, voluntary dan forced context switches, cache hits dan misses, dan other  fields lainnya. Alasannya adalah performan sistem ketika terinfeksi malware akan berbeda dengan ketika menjalankan aplikasi benign.

Pendekatan lainnya yang jarang digunakan adalah monitoring network traffic dan konten yang dihasilkan binary (Stakhanova et al., 2011; Nari dan Ghorbani, 2013; Wehner, 2007; Perdisci et al., 2010; Mohaisen and Alrawi, 2013). Banyak malware menggunakan command-and- control servers (lokasinya bisa disamarkan) atau melaporkan actions yang dilakukan oleh komputer korban. Penggunaan jaringan lokal juga sebuah indikasi aktifitas penyebaran malware. Namun ada sejumlah kecil malware yang tidak menggunakan internet maupun jaringan lokal.

Utntuk mengetahui cara menangkap fitur dinamis dapat dipelajari penelitian (Egele et al., 2008) yang melakukan survey tentang teknologi tersebut. 

Reference:

Raff, E., & Nicholas, C. (2020). A Survey of Machine Learning Methods and Challenges for Windows Malware Classification. arXiv preprint arXiv:2006.09271.

 

Image Based Deep Learning Deteksi malware – Venkatraman – review Paper

Paper Title: A hybrid deep learning image-based analysis for effective malware detection

Authors: Sitalakshmi Venkatraman, Mamoun Alazab, R.Vinayakumar

VenueJournal of Information Security and Applications 47 (2019) 377–389; Elsevier

URL: https://doi.org/10.1016/j.jisa.2019.06.006

Problem: Dengan meningkatnya jumlah malware, perlu ada metode deteksi malware baru.

Contribution:

1. Metode deteksi malware menggunakan image based 

2. Menggunakan teknik hybrid image based dengan arsitektur deep learning untuk klasifikasi malware

Method/solution: Arsitektur deteksi malware yang dibangun terdiri dari 3 subsistem, satu subsistem menggunakan model unsupervised learning, dua subsistem menggunakan model supervised learning. Menggunakan tahapan pre-processing untuk proses konversi file binary menjadi bentuk representasi feature yang bisa digunakan untuk input model machine learning dan deep learning. Sistem ini bisa digunakan secara real time. Model ini menggunakan model machine learning klasik dan image based.

Arsitektur Deep learning menggunakan CNN dan bi-directional pipeline. Perhitungan cost matrix menggunakan LSTM. CNN menggunakan 3 layer berbeda, convolutional, poolong dan fully connected. Feature dipetakan menggunakan ReLU (Rectified Linear Units). Pada klasifikasi, digunakan sigmoid untuk binary dan softmax untuk klasifikasi multi class

Teknik image based menggunakan visual image dari binary atau log behaviour dari sampel malware.  Analisa image melakukan similarity mining dari behaviour pattern malware.

Dataset yang digunakan 52 ribu sampel malware, Pada tahapan preprocessing sampel yang menggunakan teknik packing dipisahkan dengan yang tidak menggunakan packing, menggunakan tools packer detektor. Feature yang diekstrak diantaranya API function call, binary n-gram. Model supervised pertama menggunakan classifier SVM. Dilakukan perhitungan similarity matrix.

Untuk analisa image feature diekstrak dengan model CNN, kemudian dilakukan clustering menggunakan algoritma K-means. Benchmark menggunakan dataset microsoft malware classification challeng dan Malimg.

Tools yang digunakan Tensorflow, KEras pada GPU NVidia GK110BGL Tesla k40

Main result:

1. 77% sampel menggunakan teknik packing.

2. Obfuscated malware atau variant dari family malware yang sama memiliki kemiripan pada pola image.

3. Tidak ada kesamaan antara file benign yang berbeda 

4. Model yang menggunakan CNN dan RNN menghasilkan performance terbaik

5. Akurasi yang didapat 98,6 pada model SVM

6. Model classifier yang dibangun lebih efektif dari sisi komputasi daripada model maschine learning klasik

Limitation:

  1. tidak mencoba teknik robust hashing dan transfer learning untuk klasifikasi image based
  2. Jumlah dataset relatif sedikit (<1 juta)
  3. Tidak dilakukan optimasi nilai parameter pada arsitektur deep learning