Machine Learning Static Malware Analysis-Shalaginov-Paper Review

Paper Title:Machine Learning Aided Static Malware Analysis: A Survey and Tutorial

Authors: Andrii Shalaginov, Sergii Banin, Ali Dehghantanha, Katrin Franke

Venue: Springer, Advances in Information Security , vol 70, p7-45

URL: https://arxiv.org/abs/1808.01201

Problem:Malware masih menjadi ancaman nomer satu bagi pengguna Windows. Jumlah malware juga terus bertambah. Analisa malware terdiri dari 2 cara static dan dinamis. Analisa dinamis membutuhkan resource yang besar. Sementara static membutuhkan skill yang baik dan waktu yang cukup. Perlu ada pendekatan baru untuk deteksi malware

Contribution

  1. Melakukan review komprehensif teknik machine learning untuk analisa static malware
  2. Menyusun taxonomy konstruksi feature static untuk klasifikasi ML
  3. Memberikan tutorial teknik ML dan membandingkan performanya

Method/solution

  1. Menggunakan 1 dataset benign dan 2 dataset malware untuk studi
  2. Training menggunakan AdaBoost dan Random Forest untuk 500 best selected n-grams pada range 1-8 n
  3. Function call membentuk graph untuk menampilkan PE32 header fitur seperti nodes, edges dan subgraph
  4. Jumlah besar fitur yang diekstrak dapat digunakan untuk membangun model menggunakan SVM atau single-layer Neural Netowrk
  5. Array of API calls dari IAT diproses dengan Fisher score 
  6. Fitur dasar dari PE32 header adalah Ukuran header, Ukuran Uninitialized Data, Ukuran Stack Reverse
  7. Menggunakan Decision Tree untuk analisa PE Header
  8. Menggunakan F-score sebagai performance metrik untuk analisa PE32 header
  9. MEnggunakan control flow change dari 256 alamat pertama untuk membangun fitur n-gramm
  10. Naïve Bayes digunakan untuk klasifikasi binary (benign atau malicious); Input harus symbolical, contohnya string, opcode, instruction n-gramm
  11. Bayesian Network digunakan pada klasifikasi dan information retrieval seperti semantic search
  12. Algoritma rule based C4.5 digunakan untuk membangun decision tree
  13. Neuro-Fuzzy digunakan untuk membedakan malware dan benign, tapi juga untuk mendeteksi tipe malware
  14. Teknik distance based diantaranya k-NN tidak memerlukan training. Diperlukan pemilihan fitur yang temat serta metode untuk membedakan data yang mixed
  15. Fungsi kernel dipilih antara polynomial, GAussian, hyperbolic dll
  16. Neural network terdiri dari input layer, hidden layer dan output layer. Input menerima normalized data, hidden layer menhasilkan output aktivasi menggunakan weighted input dan fungsi aktivasi. ANN dugunakan pada model kompleks dengan high-dimensional spaces
  17. Tools yang digunakan Weka, untuk split dataset; Python weka wrapper, LibSVM, RapidMiner dan Dlib
  18. Metode pemilihan fitur menggunakan Information Gain dan CFS (Correlation-base Feature subset selection)
  19. Metode information gain digunakan untuk menentukan atribut malware
  20. Menggunakan sequence opcode dengan length 1-4 dengan Random forest, J48, kNN, bayesian networks dan SVM
  21. Pengujian dilakukan pada VM Ubuntu 14.04 dengan server Xen4.4. Intel Core i7 2,6Ghz denan 4 core (8 thread, 2 core untuk VM; Harddisk SSD RAID, Ram 8GB 
  22. Pre-processing dengan scrit bash; database mySql 5.5; python 2.7.6 dan PhP 5.5.8
  23. Membangun benign file dari windows XP,7, 8.1 dan windwos 10
  24. Dataset malware menggunakan VX Heaven dan Virusshare
  25. Benign sampel 16.632 dengan ukuran 7,4GB; malware0 58.023 ; 14 GB dan malware 2 41.899 sampel; 16 GB
  26. Konstruksi fitur dengan PEFrame, Hexdump, dan objdump
  27. Fitur PE32 dipilih dengan metode Cfs dan InfoGain dengan 5-fold cross validation

Main result

  1. N-gram byte sequence adalah salah satu fitur dari sequence byte binary
  2. Akurasi deteksi malware menggunakan fitur n-gram byte mencapai 97%
  3. Algoritma yang digunakan diantaranya Naive Bayes, C4.5 dan k-NN digunakan untuk deteksi n-gramm
  4. N-gram 4-5 menghasilkan akurasi tinggi. 
  5. Opcode banyak digunakan untuk klasifikasi
  6. Beberapa API calls hanya ditemukan di malware 
  7. Belum ada penelitian yang mencapai akurasi 100%, karena malware menggunakan obfuscation dan enkripsi untuk menghindari deteksi
  8. Pendeketan dengan n-grams membutuhkan resource besar
  9. SVM menghasilkan akurasi yang tinggi
  10. Banyak peneliti menggunakan fitur byte n-gram, opcde n-gramm dan PE32 header, dan algoritma C4.5, SVM dan k-NN
  11. Peneliti memilih antara ekstrak fitur yang menghasilkan akurasi klasifikasi tinggi, atau menggunakan metoda konvensional seperti information gain
  12. N-gram based membutuhkan FS lainnya untuk menghilangkan feature yang tidak diperlukan
  13. Rule based ML adalah metode klasifikasi yang banyak digunakan, diikuti SVM
  14. Metode Forest-based lebih mudah diterapkan untuk fitur PE32 header based
  15. ANN tidak banyak digunakan
  16. Metode Bayes-based menghasilkan akurasi rendah 50%, metoda lain 80-100%
  17. Fitur dari shortinfo dari PE32 header dapat dijadikan indikator malware
  18. ANN dan C4.5 menghasilkan performa yang lebih baik

Limitation:

  1. Tidak melakukan review pada Deep Lerning
  2. Tidak melakukan review pada image representation

Note:

  1. N-gram byte sequence adalah salah satu fitur dari sequence byte binary
  2. Malware PE32 paling banyak ditemukan karena bisa menginfeksi windows 64 bit dan 32 bit
  3. PE32 dimulai dari windows 3.1 dan kemudian berkembang jd format PE32+ untuk OS windows 64 bit
  4. PE file mengandung header COFF (Common Object File Format). Standar COFF field adalah header, section table, data directories dan Import Address Table (IAT)
  5. Selain PE Header fitur static lainnya diekstrak dari eksekutable binary seperti strings, entropy dan size of various sections
  6. Feature static ada yang numerik dan nominal
  7. Numerk contohnya integer, real atau binary
  8. Nominal contohnya finite set dari kategori atau label
  9. Contoh fitur numerik adalah CPU (%) usage, RAM dalam Megabyte) usage
  10. Contoh nominal bisa sebuah tipe file seperti *.dll atau *.exe atau API function call seperti write() atau read()
  11. N-gramm didapate menggunakan hexdump; membuat 4gram dari byte sequence dari PE32
  12. Fitur dikumpulkan dengan sliding window of n bytes, yang menghasilkan 200 juta fitur dengan 10-gramm pada 2 ribu files
  13. Feature selection digunakan untuk memilih 500 feature paling penting berdasarkan information Gain Metric
  14. Ada penelitian yang menggunakan 100-500 selected n-grams pada set 250 malicious dan 250 sampel benign
  15. Opcode sequence atau operation code adalah set of low level machine abstraksi  berurutan yang digunakan untuk berbagai macam operasi CPU. Banyak digunakan untuk fitur pada klasifikasi malware
  16. Namun perlu ada balance antara ukuran feature set dan Panjang n-gram opcode sequence.
  17. Bragen menguji kehandalan analisa malware menggunakan sequence opcode dari 992 PE malware dan benign.50 juta opcode diekstrak. 1gram dan 2 gram menghasilkan akurasi baik dan komputasi yang sedang
  18. Wang menggunakan 2-tuple opcode sequence digunakan pada kombinasi density clustering
  19. API call adalah fungsi yang dipanggil sebuah program untuk menjalannkan fungsi tertenti
  20. Perlu dibedakan System API dan User API. System API call disediakan oleh dll sistem
  21. User API disediakan oleh software yang diinstal pengguna
  22. API call berbahaya, Anti-VM dan anti-debugger hook dan calls bisa diekstrak menggunakan tools analisa PE seperti PEframe
  23. API calls bisa juga diekstrak dengan PE parser
  24. PE Header adalah koleksi dari metadata terkait PE file
  25. Belum ada penelitian yang menjamin akurasi 100% pada deteksi malware. 
  26. Metode menggunakan n-gram cenderung menggunakan set pemilihan fitur seperti tf-idf dan symetric uncertainty yang lebih cocok untuk similar sequence dalam jumlah besar
  27. Fitur berbasis PE32 cenderung menghasilkan entropy tinggi untuk klasifikasi; sehingga control-flow graph based dan gain ratio lebih cocok untuk task ini
  28. 4 fitur disarankan untuk klasifikasi; PE32 header, Byte n-gram, opcode n-gram dan API calls
  29. PE32 header diperoleh dari tools PE-Frame; Berikut beberapa fitur numerical dari pe32 header
  30. ShortInfo_Directories menjelaskan 16 data directory yang tersedia di PE; yang paling banyak digunakan adalah import, export, resource, debug, relocation
  31. ShortInfo_Xor menunjukan deteksi XOR obfuscation
  32. ShortInfo_DLL adalah sebuah flag binary atau apakah sebuah file executable atau dll
  33. shortInfo_fileSize adalah ukuran binary dalam bytes
  34. ShortInfo_Detected menampilkan teknik evading deteksi seperti hooks untuk disable execution in virtualized environment atau API calls mencurigakan
  35. ShortInfo_Sections adalah jumlah subsection pada header
  36. DigitalSignature berisi informasi tentang digital signature 
  37. Packer  mengnjukkan deteksi packer
  38. AntiDebug memberikan gambaran teknik untuk mencegah debugging process
  39. AntiVM digunakan untuk mencegak eksekusi pada VM
  40. SuspiciousAPI api mencurigakan
  41. SuspiciousSections seperti .rsrc \u0000 \u0000\u0000
  42. Url adalah beberapa alamat url  pada binary
  43. Byte n-gram adalah sequence dari some items (dengan minimum length adalah 1
  44. Opcode-ngram: set instruksi yang dilakukan CPU bila binary dijalankan; pop, push, mov, add, sub

Supervised Contrastive Learning-Khosla- Paper Review

Paper Title:Supervised Contrastive Learning

Authors: Prannay Khosla, Piotr Teterwak, Chen Wang, Aaron Sarna, Yonglong Tian, Phillip Isola, Aaron Maschinot, Ce Liu, Dilip Krishnan

Venue34th Conference on Neural Information Processing Systems (NeurIPS 2020), Vancouver, Canada.

URLhttps://arxiv.org/pdf/2004.11362v5.pdf

Problem: Contrastive learning banyak digunakan pada self-supervised learning. Pada prakteknya sebagian besar model tidak bekerja lebih baik pada dataset besar seperti ImageNet, terutama dari sisi cross-entropy loss

Contribution

  1. Mengembangkan pendekatan self-supervised batch contrastive menjadi fully-supervised
  2. Mengajukan sebuah loss untuk supervised learning yang terinspirasi dari self-supervised dengan memanfaatkan informasi label. 
  3. Mengajukan ekstensi baru dari contrastive loss function yang menggunakan banyak positive per anchor
  4. Menunjukan bahwa loss dari sistem usulan menghasilkan akurasi top-1 dari beberapa dataset berbeda, dan lebih kuat terhadap korupsi natural
  5. Menunjukan secara analisis bahwa gradient dari loss function usulan mendorodng dari hard positive dan hard negative
  6. Menunjukan secara empiris bahwa loss usulan lebih tidak sensitive daripada cross-entropy pada range hyperparameter

Method/solution

  1. Cluster poin yang masuk pada kelas yang sama, ditarik ke embedding space, dan mendorong cluster sampel dari kelas berbeda
  2. Melakukan analisa 2 versi dari Supervised contrastive (SupCon) loss 
  3. Pendekatan supervised contrastive menggunakan soft-nearest neighbour loss, yang ditingkatkan dengan normalisasi embeddings dan mengganti Euclidean distance dengan inner product. Selain itu ditambahkan dengan augmentasi data, sebuah contrastive head disposable dan 2 tahap training (contrastive diikuti dengan cross-entropy) dan mengganti form dari loss function 
  4. Embedding ternormalisasi dari kelas yang sama, ditarik mendekat dibandingkan embedding dari kelas berbeda
  5. Mendapat input batch data, kemudian dilakukan augmentasi data 2x untuk mendapat 2 kopi dari batch
  6. Kedua kopi tersebut diforward melalui jaringan encoder untuk mendapatkan embedding normalisasi dengan dimensi 2048
  7. Melalui training, representasi ini dipropagasi melalui sebuah jaringan projeksi yang diabaikan pada waktu inference
  8. Supervised contrastive loss dihitung pada output dari projection network
  9. Untuk menggunakan model training untuk klasifikasi, dilatih sebuah klasifikasi linear dengan cross-entropy loss
  10. Komponen utama dari framework usulan adalah: module augmentasi data; encoder network dan projection network
  11. Pada setiap input x, digenerate 2 random augmentasi x’ masing-masing mewaliki view yang berbeda terhadap data dan terdiri dari beberapa subset informasi pada sampel asli
  12. Encoder network melakukan pemetaan x pada representasi vector r. Kedua sampel yang telah diaugmentasi secara terpisah dimasukan pada sebuah encoder yang sama. Yang menghasilkan sepasang vector representasi. R dinormalisasidengan unit hypershere pada Rde
  13. Jaringan projection memetakan r ke vector z. projeksi yang digunakan adalah multi-layer perceptron dengan sebuah hidden layer dengan ukuran 2048 dan vector output dengan ukuran Dp=128 atau hanya sebuah layer linear single dengan ukuran Dp=128
  14. Kemudian dilakukan normalisasi dari output dari jaringan ini pada unit hypershere, menggunakan inner product untuk mengukur distance dari projection space
  15. Loss yang digunakan memiliki properti: generalisasi pada number positive, contrastive power meningkat dengan banyak negative, memiliki kemampuan untuk melakukan hard positive/negative mining
  16. SupCon loss diuki dengan mengukur akurasi klasifikasi pada beberapa benchmark seperti CIFAR-10 dan CIFAR-100 dan ImageNet
  17. Kemudian model ImageNet dibenchmark juga untuk mengetahui common image corruptions, dan mengetahui perubahan performa dengan perubahan hyperparameter dan pengurangan data
  18. Untuk Encoder network, diuji dengan 3 arsitektur encoder yang umum yaitu ResNet-50, ResNet-101 dan ResNet-200
  19. Final Pooling layer menggunakan normalized activation (De-2048)
  20. Implementasi diuji pada 4 modul data augmentasio: autoAugment; randAugment, SimAugment dan Stacked RandAugment
  21. ResNetMelakukan pengujian alternatif memory based. Dengan ImageNet pada memory size 8192 dengan ukuran storage 128-dimensi vector, ukuran batch-size 256 dan SGD optimizer, pada 8 Nvidia V100 GPUs
  22. Melakukan pengujian cross-entropy ResNet-50 baseline dengan ukuran batchsize 12.288
  23. Menggunakan daaset ImageNet-C untuk benchmark pengukuran performa model pada korupsi natural, dibandingkan dengan mCE (Mean Corruption Error) dan Relative Mean Corruption Error Metric
  24. Menguji stabilitas hyperparameter dengan mengubah augmentasi, optimizer dan learning rate satu persatu dan mencari kombinasi yang terbaik.
  25. Perubahan Augmentasi dilakukan dengan RandAugment, AutoAugment, SimAugment, Stacked Rand Augmet; Perubahan optimizer dengan LARS, SGD with momentum dan RMS props
  26. Mengujia learned representation untuk fine-tuning pada 12 natural image dataset.
  27. Training dilakukan dengan 700 epoch pada pretraining untuk ResNet-200 dan 250 epochs untuk model yang lebih kecil
  28. Melatih model dengan batch size sampai 6144. Untuk ResNet-50 diuji sampai batch size 6144 dan ResNet-200 dengan batch-size 4096
  29. Menggunakan temperature = 0,1

Main result

  1. Pengujian pada ResNet-200 diperoleh akurasi 81,4% (top-1) pada dataset ImageNet. 0,8% lebih baik dari state-of-the-art arsitektur ini
  2. Menghasilkan performa lebih baik pada cross-entropy pada dataset lain dan 2 ResNet Variant.
  3. AutoAugment menghasilkan performa yang terbaik pada ResNet-50 pada SupCon dan cross Entropy dengan akurasi 78,7%
  4. Stacked RandAugment menghasilkan performa terbaik untuk ResNet-200 untuk kedua loss functions
  5. Menghasilkan performa sedikit lebih baik dibandingkan CutMix, yang merupakan state-of-the-art pada strategi data augmentasi
  6. Menghasilkan akurasi 79,1 pada pengujian alternatif memory based dengan ResNet-50. 
  7. Akurasi 77,5% pada pengujian cross-entropy ResNet-50
  8. Pada pengujian penambahan training epoch pada cross-entropy sampai 1400, akurasi turun menjadi 77%
  9. Pada pengujian N-Pair loss dengan batchsize 6144 mendapatkan akurasi 57,4% pada ImageNet
  10. Pada pengujian natural corruption model usulan memiliki nilai mCE lebih rendah pada corruption berbeda, menunjukan robustness.
  11. Model usulan menghasilkan degradasi akurasi yang lebih rendah pada peningkatan korupsi
  12. Hasil pengujian stabilitas hyperparameter menunjukan nilainya konstan top-1 akurasi
  13. Sistem usulan memiliki contrastive loss yang setara dengan cross-entropu dan self-supervised pada transfer learning ketika ditrain pada arsitektur yang sama
  14. Pada ResNet50 fungsi akurasi menunjukan 200 epoch sudah mencukupi
  15. Hasil pengujian menunjukan batch size 2048 sudah mencukupi
  16. Performa terbaik untuk ImageNet menggunakan LARS untuk pre-training dan RMSProp untuk training layer linear
  17. Untuk CIFAR1- dan CIFAR 100, SGD menghasilkan performa terbaik

Limitation:

  1. Tidak melakukan training linear classifier Bersama dengan encoder dan projection network
  2. N-Pair loss masih rendah

Note: 

  1. Contrastive learning telah menjadi state-of-the-art pada unsupervised training pada model deep image
  2. Pendekatan batch contrastive modern melampaui tradisional contrastive loss seperti triplet, max-margin dan N-pair los
  3. Cross-entropy loss adalah fungsi loss paling banyak digunakan pada supervised dari model deep classification
  4. Perkembangan contrastive learning mendorong perkembangan self-supervised learning
  5. Contrastive learning bekerja dengan menarik sebuah anchor dan sebuah sampel positive ke embedding space dan memisahkan anchor dari sampel negative
  6. Karena tidak ada label tersedia, sebuah pasangan positive terdiri dari augmentasi data dari samepl, dan pasangan negatif dibentuk oleh anchor dan secara random memilih sampel dari minibatch
  7. Koneksi dibuat dari contrastive loss dari maximization dari informasi mutual antara view data-data yang berbeda
  8. Kebaruan teknis adalah dengan mempertimbangkan banyak positive dari anchor sebagai tambahan pada banyak negative; berbeda dengan self-supervised contrastive learning yang hanya menggunakan single positive
  9. Positive diambil dari sampel pada kelas yang sama dengan anchor, tidak dari augmentasi data dari anchor. 
  10. Walaupun terlihat sebagai extensi sederhana dari SSL, namun tidak mudah untuk mensetting loss function dengan baik. Ada 2 alternatif yang dipelajari
  11. Loss pada model ini dapat dilihat sebagai sebuah generalisasi dari triplet dan N-Pair los
  12. Triplet hanya menggunakan 1 positif dan 1 negative sampel per anchor
  13. N-Pair menggunakan 1 positive dan banyak negative
  14. Banyak positive dan banyak negative pada setiap anchor menghasilkan performa state-of-the art tanpa perlu mining hard negative, yang susah untuk detuning
  15. Model ini adalah contrastive loss pertama yang menghasilkan performa lebih baik daripada cross entropy pada tugas klasifikasi besar
  16. Metode ini menghasilkan sebuah loss function yang dapat digunakan pada self-supervised atau supervised
  17. SupCon mudah diimplementasi dan stabil untuk di training
  18. Naive extension menghasilkan performa lebih buruk dibandingkan sistem usulan
  19. Cross-entropy loss adalah powerfull loss function untuk train deep network; setiap kelas diassigned sebuah target (biasanya 1-hot) vector. Namun tidak jelas kenapa target label tersebut adalah yang optimal, dan banyak penelitian telah mencoba mengidentifikasi target label vector yang lebih baik
  20. Kekurangan cross entropy loss diantaranya sensitivitas label noisy, adanya adversarial examples dan poor margin
  21. Loss alternativ telah diajukan, tapi yang terbaik adalah mengubah reference label distribution seperti label smoothing, data augmentasi seperti mixup dan cutmix dan knowledge distillation
  22. SSL berbasis model deep learning banyak digunakan pada natural language. 
  23. Pada domain image, pendekatan pixel prediksi digunakan untuk belajar embedding.
  24. Metode ini digunakan untuk memprediksi bagian yang hilang dari sinyal input.
  25. Pendekatan yang lebih efektif adalah mengganti sebuah desne per-pixel predictive loss, dengan sebuah loss di lower dimensional representation space.
  26. State-of-the-art family model untuk SSL menggunakan paradigma yang dibawah istilah contrastive learning
  27. Loss pada penelitian tersebut terinspirasi oleh noise contrastive estimation atau N-pair loss
  28. Loss diterapkan pada layer terakhir dari sebuah deep network
  29. Pada pengujian embedding dari layer sebelumnya digunakan untuk downstream transfer task, fine tuning atau direct retrieval task.
  30. Terkait dengan contrastive learning adalah family dari loss berbasis metric distance learning atau triplets
  31. Loss tersebut banyak digunakan utk supervised, dimana label digunakan untuk memandu pemilihan positive dan negative pairs
  32. Yang membedakan triplet loss dan contrastive loss adalah jumlah pasangan positive dan negative pada setiap data poin
  33. Triplet loss menggunakan 1 positive dan 1 pasangan negative per anchor.
  34. Pada setingan supervised metric, hamper selalu dibutuhkan hard-negative mining untuk performa yang baik
  35. SSL contrastive loss hanya menggunakan 1 positive pair utk setiap anchor sampel, memilih antara co-occurrence atau data augmentation
  36. Perbedaannya adalah banyak negative pair digunakan untuk setiap anchor. Yang dipilih secara random menggunakan weak knowledge seperti patches dari gambar lain atau frame dari video random lainnya. Dengan asumsi bahwa pendekatan ini menghasiklan probability false negative paling rendah
  37. Loss formulation yang dekat dengan usulan adalah entangle representasi pada intermediate layer dengan melakukan maximize loss
  38. Metoda yang paling mirip adalah Compact clustering via label propagation (CCLP) regularizer
  39. CCLP focus pada semi-supervised, pada fully supervised regularizer mengurangi hamper sama dengan loss formulation usulan
  40. Perbedaannya adalah normalisasi yang diusulkan adalah dengan embedding ke unit sphere, tuning parameter temperatur dan augmentasi yang lebih kuat
  41. Deep Neural network tidak robust terhadap data yang out of distribution atau korupsi natural seperti noise, blur dan kompresi JPEG

Framework contrastive learning – chen -paper review

Paper Title: A Simple Framework for Contrastive Learning of Visual Representation

AuthorsTing Chen, Simon Kornblith, Mohammad Norouzi, Geoffrey Hinton

VenueProceedings of the 37 th International Conference on Machine Learning, Vienna, Austria, PMLR 119, 2020

URL : http://proceedings.mlr.press/v119/chen20j/chen20j.pdf

Problem: Mempelajari representasi visual tanpa supervise orang adalah sebuah tantangan. Sistem  self-supervised yang ada masih menghasilkan performa yang lebih rendah dibandingkan dengan supervised learning. Diperlukan pendekatan baru untuk meningkatkan performa metode self-supervised

Contribution

  1. Menyederhanakan algoritma SSL, sehingga tidak memerlukan arsitektur khusus atau sebuah memory bank
  2. Menunjukan bahwa komposisi dari augmentasi data berperan penting dalam menentukan prediction task yang efektif
  3. Mengusulkan transofmasi nonlinear learnable dan contrastive loss akan meningkatkan kualitas dari representasi
  4. Contrastive learning lebih efektif pada ukuran batch yang lebih besar dan step training yang lebih banyak dibandingkan supervised

Method/solution

  1. Memiliki 4 komponen utama: modul data augmentasi stochastic, neural network base encoder f(.) ; proyeksi neural network head kecil g(.) dan contrastive loss function
  2. Module data augmentasi stochastic melakukan transformasi data example secara random, menghasilkan 2 corelated view dari contoh yang sama xi dan xj, yang dinamakan positive pair
  3. Menggunakan 3 augmentasi: random cropping, diikuti dengan resize back ke ukuran original; random color distortions, dan random Gaussian blur
  4. Jaringan neural network base encoder mengekstrak vector representasi dari augmented data example
  5. Menggunakan ResNet untuk mendapat hi=f(xi)=ResNet(xi) adalah output dari average pooling layer
  6. Small neural network projection head memetakan representasi ke space dimana contrastive loss diterapkan
  7. Sebuah MLP digunakan 1 hidden layer untuk mencapai zi=g(hi)=W (2)σ(W (1)hi  
  8. Contrastive loss function digunakan untuk sebuah contrastive prediction task
  9. Model tidak ditrain dengan sebuah memory bank, namun mengubah-ubah ukuran training batch N dari 256 ke 8192
  10. Untuk men stabilkan training digunakan LARS optimizer untuk semua batch sizes
  11. Model ditrain dengan Cloud TPU, dengan 32-128 core
  12. Dataset menggunakan ImageNet ILSVRC-2012 untuk unsupervised pretraining. 
  13. Pengujian representasi menggunakan protocol linear evaluation dan dibandingkan dengan metode state-of-the-art di semi-supervised dan transfer learning
  14. Untuk augmentasi data digunakan random crop dan resize, color distortion dan gaussian blur
  15. Menggunakan ResNet-50 sebagai base encoder network dan proyeksi MLP 2-layer head
  16. Melakukan crop image secara random dan resize ke resolusi yang sama 
  17. Membandingkan NT-Xent loss terhadap fungsi loss contrastive lain seperti logistic loss dan margin loss
  18. Untuk membandingan dengan state-of-the-art dilakukan pengujian dengan ResNet-50 pada 3 hidden layer width yang berbeda, dan ditrain dengan 1000 epoch
  19. Membandingkan dengan semi-supervised mengginakan ILSVRC-12 dilakukan training dengan 1%-10% dataset yang class-balanced
  20. Menguji transfer learning pada 12 dataset natural imate pada linear evaluation dan fine-tuning. Dilakukan hyperparameter tuning pada setiap kombinasi model-dataset

Main result:

  1. Menghasilkan performa lebih baik dibandingkan metoda state-of-the-art dari SSL dan semi-supervised learning pada ImageNet
  2. SimCLR mencapai akurasi 76,5% top-1, peningkatan 7% daripada state-of-the-art dan menyamai performa supervised ResNet-50
  3. Setelah fine-tuning pada 1% label akurasi mencapai 85,8% top-5, mengalahkan AlexNet dengan 100x label lebih sedikit
  4. Augmentasi warna yang lebih kuat meningkatkan linear evaluation pada unsupervised model
  5. Meningkatkan depth dan width meningkatkan performa
  6. Proyeksi nonlinear lebih baik 3% daripada proyeksi linear dan lebih baik >10% daripada no projection. Hidden layer sebelum projection head adalah representasi yang lebih baik dibandingkan layer sesudahnya
  7. Tanpa normalisasi dan skaling temperatur, performa menurun. Tanpa normalisasi l2, akurasi contrastive task lebih tinggi, namun representasi lebih buruk dibawah linear evaluation
  8. Bila jumlah training epoch kecil (100 epoch) ukuran batch size yang lebih besar memberi keunggulan dibandingkan ukuran yang lebih kecil. Dengan training step/epoch lebih banyak, gap antara batch size yang berbeda menurun atau menghilang
  9. Berbeda dengan supervised learning, pada contrastive learning, semakin besar batch sizes menghasilkan lebih banyak negative example, menyebabkan convergence. Training lebih lama juga menghasilkan negative example yang lebih banyak
  10. Dibandingkan state-of-the-art, sistem usulan dapat menggunakan network standar untuk hasil yang lebih baik, dibandingkan metode sebelumnya yang memerlukan arsitektur yang didesain khusus
  11. Hasil terbaik dengan Resnet-50 (4x) dapat menyamai supervised pretrained ResNet-50
  12. Fine-tuning model pretrained ResNet-50 pada full ImageNet lebih baik 2% dibandingkan training dari awal
  13. Setelah fine-tuned model self-supervised menghasilkan performa lebih baik dibandingkan baseline supervised pada 2 jenis (contoh pets dan flower)

Limitation:

  1. Membutuhkan komputasi yang besar

Note:

  1. Pendekatan utk representasi visual tanpa supervise manusia dapat dibagi 2: generative atau discriminative
  2. Generative belajar untuk generate atau model pixel pada input space (Hinton.et.al 2006, Kingma & Welling 2013, GoodFellow et.al 2014)
  3. Namun pixel-level generation membutuhkan komputasi besar, dan bisa saja tidak dibutuhkan pada representation learning
  4. Pendekatan diskriminativ mempelajari representasi menggunakan objective function seperti yang digunakan pada supervised learning, tapi melakukan train network untuk melakukan pretext task dimana input dan label diturunkan dari dataset unlabeld. Penekatan ini banyak menggunakan heuristics untuk merancang pretext task (Doersch, 2015; Zhang, 2016, Noroozi & Favaro, 2016; Gidaris, 2018). Pendekatan ini dapat membatasi generalitas dari representasi
  5. Pendekatan Discriminative berdasarkan contrastive learning pada latent space telah menunjukan hasil yang menjajikan, dan hasil state-of-the-art (Hadsell, 2006; Dosovitskiy, 2014; Oord, 2018; Bachman, 2019)
  6. Unsupervised contrastive learning mendapatkan manfaat dari stronger data augmentasi daripada supervised learning
  7. Representasi learning dengan contrastive cross entropy loss mendapatkan hasil lebih baik daripada normalized embeddings dan menyesuaikan parameter temperature
  8. Model Network base encoder mengijinkan beberapa pilihan dari arsitektur jaringan tanpa hambatan

Self-Supervised Learning -Goyal -Paper Review

Paper Title: Self Supervised Pretraining of Visual Features in the wild

Authors: Priya Goyal, Mathilde Caron, Benjamin Lefaudeux, Min Xu, Pengchao Wang, Vivek Pai, Mannat Singh, Vitaliy Liptchinsky, Ishan Misra, Armand Joulin, Piotr Bojanowski

Venue: pre-print; Arxiv

URL: https://arxiv.org/abs/2103.01988

Problem:

Beberapa model self-supervised learning seperti MoCo, SimCLR, BYOL dan SwAV telah mengalami perkembangan yang baik dan mendekati performa Supervised learning. Namun pengujian model-model tersebut dilakukan pada lingkungan yang terkontrol seperti dataset ImageNet. Apakah model SSL bisa belajar dari random image, uncurated, unlabeled, dan dari dataset manapun

Contribution:

  1. Mengajukan model Self-Supervised (SEER) baru
  2. Membuktikan bahwa SSL dapat bekerja pada kondisi sebenarnya

Method/solution

  1. Melakukan pretraining high capacity model pada miliar gambar internet random, tampa memperhatikan meta-data atau anotasi untuk filtering pada data
  2. Fokus pada REgNet family, terutama aristektur dengan 700 juta parameter
  3. Training model dilakukan secara onlne pada sebuah dataset 2Milliar gambar internet random menggunakan SwAV SSL. Menggunakan beberapa tools yang ada untuk mengurangi pemakain memori, termasuk mixed precision dan gradient checkponting
  4. SwAV membandingkan fitur-fitur dari sudut pandang berbeda dari gambar yang sama menggunakan intermediate cluster assignment. SwAV adalah metode clustering online untuk training convnets tanpa anotasi. Caranya dengan melakukan training sebuah embedding yang menghasilkan cluster assignment konsisten antara multiple view dari gambar yang sama
  5. Dengan mining cluster invariant ke augmentasi data, sistem belajar representasi semantic.
  6. Bila feature menangkap informasi sama, maka mungkin untuk memprediksi assignment dari satu fitur ke view lain.
  7. Kita menetapkan sebuah set K cluster, yang diasosiasikan dengan prototype vector vk dengan d dimensi. Diberikan sebuah batch B image, setiap gambar i ditransformasikan menjadi 2 views: xiq dan xi2. Setiap view kemudian difiturisasi dengan sebuah convnet, menghasilkan 2 set fitur (f11,…,fB1) dan F12,…,fb2)
  8. Setiap set fitur di assigned secara independent ke prototipe cluster menggunakan optimal transport solver
  9. Solver ini memaksa fitur terbagi sepanjang cluster secara seragam, menghindarkan solusi trivial dimana semua representasi dipetakan ke prototipe unik.
  10. Cluster prediction loss l(f,y) adalah cross entropy antara cluster assignment dan sebuah softwax dari dot produk dari f dan semua prototipe vk
  11. Menggunakan Arsitektur RegNetY dan menambahkan sebuah squeeze-and excitation op untuk meningkatkan performa
  12. Model family RegNetY diparameterkan dengan 5 parameter
  13. Model menggunakan arsitektur RegNetY-256GF dengan paramater; w0=640, wa=230,83, wm=2,53, group width=373
  14. Memiliki 4 stages dengan stage depths (2,7,17,1 dan stage width (528, 1056, 2904, 7392) yang menghasilkan 695,5 juta parameter
  15. Menguji 2 learning rate schedule; cosine wave dan fixed learning rate. Pada training model RegNetY-256GF menggunakan cosine learning rate schedule pada 1 milliar gambar
  16. Mengurangi pemakaian memori GPU selama training dengan gradient checkpointing dan mixed precision
  17. Menggunakan level optimasi 01 pada NVIDIA Apex Library untuk operasi GEMMs dan konvolusi pada 16 bit floating point precision
  18. Menggunakan Pytorch gradient checkpointing implementasi
  19. Mengenable mixed-precision untuk optimasi memori dan training speed.
  20. Melakukan pretraining RegNetY-256GF dengan SwAV dengan 6 crop per image pada resolusi 2×224+4×96. Data Augmentation mengikuti Caron et.al [7]
  21. Pada pretraining menggunakan 3-layer multi-layer perceptron (MLP) projection head of dimensions 10444×8192, 8192×8192 dan 8192×256
  22. Tidak menggunakan layer BatchNorm pada head
  23. Menggunakan 16ribu proroipe, temperature t set =0,1 
  24. Parameter Sinkhorn regularisasi e=0,05 dan 10 iterasi algoritma Sinkhorn
  25. Melakukan sinkronisasi Batch-norm stat antara gpus dan membuat process group dengan ukuran 64 untuk sinkronisasi
  26. Menggunakan weight decay 10-5, Lars optimizer dan optimasi 01 mixed-precision dari Apex library
  27. Menggunakan activation checkpointing
  28. Melakukan training model dengan stochastic gradient descent menggunakan ukuran batch besar pada 8192 gambar berbeda yang didistribusikan pada 512 NVIDIA V100 32 GB GPUs, menghasilkan 16 gambar berbeda pada setiap GPU.
  29. Secara keseluruhan menggunakan 1 milliar gambar pada training dengan iterasi 122ribu
  30. Pengujian dilakukan dengan pretraining 6 arsitektur Regnet {8,16,32,64,128,256} pada 1 milliar random, public dan non-EU gambar Instagram dengan SwAV
  31. Melakukan finetune model tesebut dengan task image classification pada ImageNet dengan standar 1,28 juta gambar training dengan label, dan mengevaluasi 50ribu gambar pada standar validation set
  32. Finetune untuk 35 epochs dengan SGD, ukuran batch 256, learning rate 0,0125 dikurangi dengan factor 10 setelah 30 epoch, weight decay 10-4 dan momentum 0,9
  33. Baseline menggunakan iNaturalist, OpenImages, Places205, PascalVOC

Main result

  1. Hasil pengujian pada RegNetY dengan 1,3 Miliar parameter di training pada 1 milliar gambar random dengan GPU 512 menghasilkan akurasi 84,2%
  2. Hasil akurasi lebaih baik 1% daripada model ssl terbaik saat ini
  3. Model pretraining SEER tidak hanya baik untuk insialisasi training pada dataset curated seperti Image NET, namun juga baik pada few shot learning. Mencapai 75,1% hanya dari 10% dataset ImageNet. 
  4. Sebuah Iterasi training pada 8704 gambar membutuhkan waktu 6125 ms,pada Nvidia GPU 512 V100 32GB
  5. Training model pada 1 milliar gambar membutuhkan 114.890 iterasi training pada sebuah ukuran batch 8701 gambar, selama 8 hari training
  6. Learning rate 0,15-9,6 pada 8000 training update. 6Setelah itu mennggunakan cosine learning rate schedule dan mendapatkan learning rate 0,009
  7. Mendapatkan akurasi terbaik pada validasi set dengan 224×224 center crop
  8. Pada pengujian 1-10% gambar didapatkan akurasi 77,9%
  9. Untuk downstream task dan arsitektur, model self-supervised pretraining menghasilkan performa lebih baik dibandingkan supervised sekitar 1,5-2 point
  10. Dibandingkan dengan weakly-supervised pretraining model usulan menghasilkan performa lebih rendah 65% dibandingkan 81%
  11. Peningkatan kapasitas model secara signifikan meningkatkan kualitas feature secara logarithmic
  12. Meningkatkan jumlah parameter pada head dan jumlah cluster meningkatkan performa model (+3%)

Limitation:

  1. Performa model masih lebih rendah dibandingkan weak-supervised
  2. Dataset yang digunakan masih relatif besar

Note:

  1. SSL reduce the gap supervised learning; ex MoCo [22], SimCLR [8], BYOL [20] dan SwAV [7] in controlled environment dataset ImageNet
  2. Pre-training approaches (weakly-supervised, semi-supervised, self-supervised) meningkatkan performansi dari downstream task Deep Learning. Contoh implementasinya pada NLP, Speech Recognition dan computer vision
  3. Faktor yang berpengaruh: a) pretraining pada dataset besar; GPT-3 language model, pretrained pada 300 M words; Speech model Wav2vec2 belajar pada 53ribu jam audio; b) menggunakan model dengan kapasitas besar, triliunan parameter pada model NLP
  4. SSL model baik pada few-shot learner mencapai 77,9% dari hanya 10% gambar dari dataset ImageNet
  5. Pretraining pada unlabeled data untuk mencapai performa state-of-the-art pada transfer learning, dan membuat sistem yang belajar secara kontinu secara self-supervised pada datastream tidak berakhir
  6. SSL model pretrained pada image net lebih baik pada supervised pretrained model pada task multiple downstream
  7. training unlabele data dengan kemajuan SSL [6,8,20,22]
  8. regnet dipilih karena 2 alasan: a)trade-off yang baik antara efisiensi dan performansi; b)flexible untul scaling jumlah parameter
  9. SwAV digunakan karena convergencenya yang cepat dan performansinya yang baik pada setting online dengan jumlah batch size besar.
  10. SSL pada vision dengan basis autoencoder[42.51], clustering [1,5,11] instance level discrimination [3,15,21,51]; 
  11. Basis pada contrastive learning [21,38] menghasilkan bahwa pretraining unsupervised menghasilkan feature yang melebih supervised feature pada task downstream task [7,8,20,22,37]
  12. Metode berikut membedakan each instance feature [8,22,37] atau cluster assignmentsnya [2,7,32]
  13. Sebagian besar unsupervised pretraining focus pada supervised dataset seperti imagenet atau curated dataset yang dikumpulkan dengan melakukan filtering image terkair label pre-degiened.
  14. Kesimpulannya supervised label tidak diperlukan selama kita melakukan training pada data yang difilter.
  15. Unsupervised training pada image [6,13,19] dan video [36]
  16. Penelitian dilakukan pada skala kecil dan ada bukti bahwa self-supervised pretraining lebih baik pada arsitektur besar [7,9,25]
  17. Mendapat keutungan dari distributed training [18] beberapa penelitian menunjukan kelebihan pretraining pada large curated image dataset dengan weak-supervised learning [27,35], semi supervised learning [54] atau supervised training pada ribuan juta gambar yang difilter [29.47]
  18. Mahajan et.al menunjukan pretraining pada miliaran gambar meningkatkan performa dari arsitektur besar dibandingkan melakukan training dari awal
  19. Penelitian tentang training pada data dengan skala besar bergantung pada sebuah langkah data filtering untuk menyimpan image yang terkait dengan konsep yang dituju.
  20. Filtering menggunakan hastag adalah synsets dari kelas ImageNet [35,54] atau prediksi dari sebuah pretrained object classifier.
  21. Banyak penelitian yang menunjukan manfaat training arsitektur besar untuk meningkatkan kualitas fitur visual [40,48,53]. Training arsitektur besar, penting pada pretraining sebuah dataset besar, dimana sebuah model dengan kapasitas terbatas akan underfit
  22. Hal ini menjadi lebih penting ketika pretraining dilakukan dengan contrastive learning, dimana jaringan belajar untuk membedakan antara instance pada dataset [6,8,9,20] untuk mendapatkan representasi visual yang baik
  23. Kolesnikov et.al menunjukan pentingnya training jaringan lebar untuk kualitas dari fitur visual yang dipelajari dengan self-supervision
  24. Chen et.al [9] mendapatkan performa yang baik dengan konfigurasi ResNet yang lebih dalam dan lebih lebar25. SwAV yang digunakan me-refer pada Caron.et.al [7]. 

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

Klasifikasi Malware dengan recurrent network – Pascanu – review paper

Paper TitleMalware Classification with recurrent Networks

Authors: Razvan Pascanu, Jack Stokes, Hermineh Sanossian, Mady Marinescu, Anil Thomas

Venue: IEEE International Conference on Acoustic, Speech and Signal Processing 2015

URL10.1109/ICASSP.2015.7178304

Problem: Classifier malware mesin learning yang ada saat ini berbasis hand-crafted feature vector. Metode ini rentan terhadap teknik obfuscation dengan melakukan rewrite dan reorder kode malwarenya.

Contribution

  1. Mengajukan pendekatan baru yang mempelajari bahasa malware melalui instruksi yang dieksekusi dan melakukan ekstraksi fitur time domain.
  2. Metode ini robust terhadap teknik obfuscation yang melakukan rewrite dan reorder kode malware

Method/solution

  1. Untuk ekstraksi feature menggunakan Echo state network (ESN) dan Recurrent Neural
  2. Model di training secara unsupervised
  3. Classifier menggunakan feature ini untuk mendeteksi malicious
  4. Menggunakan max-pooling dan model half-frame
  5. Recurrent model ditrain untuk memprediksi API call berikutnya dan menggunakan hidden state dari model sebagai fiexed-length feature vector yang memberikan classifier terpisah (logistic regression atau MLP)
  6. Menggunakan arsitektur Leaky-units (dengan low-pass filter yang exponential decay) untuk meningkatkan long-term memory dari sistem
  7. Menggunakan model bi-directional yang melakukan kombinasi 2 model terpisah, satu model belajar dengan memproses event pada forward direction dan model kedua yang membangun sebuah model dengan memproses event pada reverse direction
  8.  Win adalah input dari hidden layer weight matrix, Wrec adalah recurrent weight matrix, , b adalah bias, Wout adalah output weight matrix, bout adalah bias output ;  adalah fungsi activation dari hidden layer dan output layer ;  
  9. Maximum hidden state output hmax adalah 
  10. Half-frame model memasukan state dari middle sequence sebagai tambahan dari state dari end of sequence
  11. Untuk mendapatkan fixed-lentg representation digunakan maximal length N dan minimal length n pada stream manapun. Minimal n ditetapkan 15, N dicoba pada nilai 50, 100, 200 dan 65536
  12. Logistic regression dan multi-layer perceptron dengan rectifier unit digunakan untuk melakukan klasidikasi proyeksi fixed-length
  13. Menggunakan droupout untuk menampilkan peningkatan generalisasi dari model MLP
  14. RNN dan ESN ditraining secara terpisah pada klasifier
  15. Feature extractor ditrain dengan model unsupervised
  16. Dataset malware dan benign didapat dari microsoft. 
  17. Pada training, analis menyediakan event streams dari 250000 file malware yang dipilih secara random dan 250000 benign file yang dipilih secara random.
  18. Pembagian dataset adalah, pada training 297.500, validasi 54.500 dan 150.000 pada tes
  19. Training dilakukan pada segment dengan length 100 event
  20. Raw event stream terdiri dari 114 high level event yang berbeda, yang melaulan encode semua low-level API
  21. Hyper-parameter dari proyeksi dan klasifikasi model di tuned.
  22. Pada tahapan klasifikasi digunakan logistic regression dan 2 hidden-layer MLP

Main result

  1. Hasil pengujian menunjukan model hybrid dengan ESN pada model recurrent, max-pooling pada sampling non-linear dan logistic regression untuk klasifikasi akhir
  2. Dibandingkan dengan model trigram of event, menghasilkan performa lebih baik dengan true positive rate 98,3% dengan false positive rate 0,1%
  3. Pada model logistic regression dan MLP optimal learning rate adalah 1.0
  4. Dropout pada MLP memiliki probability 0,5
  5. Hidden layer dari MLP memiliki 1024 unit den menggunakan rectifier activation function. Learning rate setengah ketika validation error meningkat
  6. Ukuran dari fixed-length representation adalah 3000 untuk semua model recurrent
  7. Spectral radius awal 0,99
  8. Learning rate training adalah 1
  9. False positive rate adalah 0,1%
  10. True positive rate model trigrams adalah 36,17% lebih baik daripada bag of events model 24,46%
  11. TPR dari model ESN adalah 71,71% pada FÜR 0,1%; lebih baik daripada event trigrams 

Note

  1.  RNN- excellent results pada language modelling, online handwritten recognition dan generation, speech recognition
  2. ESN success dalam prediksi chaotic systems. 
  3. In malware, Most informative part of a sequence occurs at the beginning of the sequence and may be forgotten by standard recurrent models

Malware image Classification – Nataraj – Review Paper

Paper TitleMalware Images: visualization and automatic classification

Authors: L Nataraj, S.Karthikeyan, G.Jacob, B.S.Manjunanth

Venue         : ACM Proceedings of the 8th International Symposium on Visualization for Cyber Security

URLhttps://doi.org/10.1145/2016904.2016908

Problem: Metode deteksi malware saat ini menggunakan analisa statik dan dinamik. Namun keduanya membutuhkan waktu yang besar dan membutuhkan resource hardware yang memadai. Selain itu juga beberapa malicious behaviour tidak dapat diamati dengan setting environment yang ada. Untuk itu perlu ada pendekatan analisa malware baru

Contribution

  1. Mengajukan metode baru dalam analisa malware. Malware sampel diubah dari bentuk binary string 0 dan 1, menjadi sebuah matrix dan menjadi gambar. 
  2. Menemukan bahwa terdapat kemiripan visual dari texture gambar dari sampel malware yang berada dalam family yang sama
  3. Metode yang diajukan resilient terhadap teknik obfuscation seperti encryption

Method/solution

  1. Binary malware dibaca sebagai sebuah vector 8 bit integer, kemudian diatur menjadi array 2 dimensi
  2. Vector 8 bit diubah menjadi gambar grayscale (0: black; 255 white)
  3. Lebar gambar fix, tingginya berbeda-beda mengikuti ukuran file
  4. Untuk menghitung feature texture gambar digunakan GIST, yang menggunakan dekomposisi wavelet dari gambar
  5. Menggunakan steerable pyramid dengan 8 orientasi dan 4 skala pada gambar
  6. Representasi lokal dari gambar   N=20 adalah jumlah sub-band
  7. Untuk menangkap properti global namun tetap mendapatkan property local dihitung nilai rata-rata dari magnitude feature local :  ; w(x) adalah averaging window
  8. Hasil representasi di downsampled menjadi 4×4 pixel; 
  9. Dimensi GIST feature adalah 320
  10. Menggunakan k-NN dengan Euclidiean distance untuk klasifikasi
  11. Melakukan 10 fold cross validation, dimana pada setiap tes, sebuah subset random dari sebuah kelas digunakan untuk training dan testing
  12. Pada setiap iterasi,tes memilih secara random 90% data dari sebuah kelas pada training dan 10% pada testing
  13. Sampel berasal dari Anubis, diklasifikasikan menjadi beberapa family berdasarkan label dari Microsoft Security Essentials
  14. Dataset terdiri dari 8 family malware dengan total 1713 gambar
  15. GIST image feature dihitung pada setiap gamber, rata2 waktu utk menghitung feature GIST pada sebuah gambar adalah 54ms
  16. High dimensi GIST Feature diproyeksikan ke lower dimensional space untuk analisa
  17. Pengujian ditambahkan sampel 123 benign dari file system Win32 dan aplikasi
  18. Distribusi sampel 335 instantaccess.(A), 485 Yuner.A (B); 111 obfuscator.AD (C); 80 skintrim.N (D), 298 Fakerean(E), 88 Wintrim.BX(F), 97 VB.AT(G) dan 219 Allaple.A(H)
  19. Pengujian berikutnya dengan 25 family malware dengan total 9458

Main result

  1. Ditemukan bahwa sections malware yang berbeda menghasilkan texture gambar yang berbeda; contohnya sections text, rdata, data dan rsrc memiliki pola gambar yang berbeda
  2. Section .text umumnya berisi kode executable, pada kasus trojan Dontovo.A polanya bada bagian awal terlihat halus (fine grained), yang diikuti dengan zeros (hitam), yg menunjukan zero padding pada bagian akhir section
  3. Section .data memiliki pola uninitialized code (black patch) dan initialized data (fine grained)
  4. Section .rsrc yang berisi semua resource dari modul terlihat hitam
  5. Feature poin pada family Allaple.A, VB.AT, Wintrim.BX, Yuner.A dan Fakerean mudah dipisahkan
  6. NAmun pada family Instantaccess, Obfuscator.AD dan Skintrim.N agak sulit dipisahkan, dan terlihat serupa
  7. Menggunakan k-NN (k-3) dengan 10 fold cross validation diperoleh classification rate 0,9993 dengan standar deviasi 0,0019 dari 10 pengujian
  8. Dari dataset baru classification rate 0,9929 dari 10 fold cross validation dengan standar deviasi 0,002
  9. Family Yuner.A, VB.AT, Malex.gen!J, Autorun.K, Rbot!gen dipack dengan UPX
  10. Akurasi Classification 0,9718 pada 25 family
  11. Akurasi setelah packing 0,9808
  12. Dapat melakukan klasifikasi pada malware yang memasukan engine polymorphic dan section encryption

Limitation:

  1. Malware yang menggunakan teknik packing terklasifikasi sebagai family yang sama
  2. Rentan terhadap teknik relocating section binary atay menambah redundant data.

Analisa malware high level behaviour – Deng – Paper Review

Paper TitleMalware Analysis through High-level Behaviour

Authors: Xiyue Deng, Jelena Mirkovic

Venue: Usenix Workshop on Cyber Security Experimentation and Test 2018

URL: https://www.usenix.org/conference/cset18/presentation/deng

Problem: Malware semakin kompleks dan menggunakan banyak teknik stealth, agar tidak terdeteksi. Bagaimana cara mendeteksi malware dari behaviour nya di jaringan secara aman, dan menghindari resiko jaringan terinfeksi malware

Contribution

  1. Melakukan studi behaviour malware di jaringan
  2. Mengajukan platform baru Fantasm untuk melakukan analisa behaviour malware di jaringan secara aman dan efektif

Method/solution

  1. Membangun platform analisa aktifitas malware Fantasm
  2. Malware dijalankan pada sebuah host windows 
  3. Aktifitas jaringannya ditangkap dan dianalisa menggunakan sebuah host linux (gateway) yang berada diantara host windows dan internet 
  4. Fantasm memutuskan komunikasi mana yang dipalsukan, yang mana yang diteruskan, dan yang mana yang didrop
  5. Setiap komunikasi keluar (flow) dicatat IP tujuannya, port tujuan dan protocol yang digunakan
  6. Setiap flow secara default diset non-essential dan didrop
  7. Bila Tindakan tersebut menyebabkan aktifitas malware berhenti, maka analisa distop, direstart dan diubah statusnya menjadi essensial
  8. Fantasm kemudian membuat relpy palsu (impersonator) 
  9. Jika tidak menyebabkan malware berhenti, fantasm akan mengevaluasi resiko dari koneksi ersebut. Bila koneiksi tersebut berbahaya maka akan didrop
  10. Bila tidak berbahaya maka akan di teruskan ke internetm namun tetap dimonitor. Bila kemudian mencurigakan akan di abort
  11. Service atau protokol yang diberi label tidak berbahaya adalah DNS, HTTP dan HTTPS
  12. Service atau protokol yang diberi label berbahaya dan dapat dipalsukan adalah FTP, SMTP, ICMP_Echo
  13. Service lainnya diberi label berbahaya dan tidak dipalsukan
  14. Flow yang diijinkan keluar bisa jadi adalah bagian dari scanning atau DDoS
  15. Aktifitas jaringan dimonitor, dan dibatasi 10 koneksi. Koneksi yang melebihi 10 akan diabort
  16. Impersonator adalah server yang dirancang untuk memberikan respon seperti pada server asli di internet
  17. Layanan yang disediakan impersonator adalah ICMP, SMTP dan FTP
  18. Impersenator memberi positive reply pada setiap request ICMP_ECHO
  19. Malware berkomunikasi menggunakan SMTP untuk spam, impersonator menyediakan sebuah email server yang memberi jawaban „250 OK“ pada setiap request
  20. Impersonator menyediakan layanan FTP yang menerima semua kombinasi nama dan password
  21. Impersonator juga menyediakan DNS caching proxy untuk setiap request DNS malware
  22. Beberapa trafik malware dijaringan yang dipantau diantaranya: Downloading, reporting, scanning, scamming, spamming (malicious URL/attachment), komunikasi C&C (melalui IRC) dan propagating (melalui FTP, samba, NFS, dll
  23. Fantasm melakukan monitoring sequence network behaviour, misalnya koneksi ke port 25,465 atau 587 dan mengirimkan email diberi kategori spam
  24. Fantasm dibangun berbasis DesterLab Testbed
  25. Satu ronde analisa Fantasm adalah: a) monitoring pada gateway linux; b) reload OS; c) Deploy binary malware selama waktu tertentu (5 menit); d) kill malware proses dan save network traces
  26. Sampel malware menggunakan Georgia Tech Apiary project, 999 sampel malware pada Maret 2016
  27. Sampel disubmit ke virustotal

Main result

  1. Dari 999 sampel aktivitas terbanyak adalah: Scanning 28,5% ; Propagating 11,5%; Downloading 10,9%;  Reporting 5,6% Spamming 2,2 %; Komunikasi  c&c 0,2%; tidak terdeteksi aktifitas jaringan 57%
  2. Persentasi malware yang memiliki 1 behaviour adalah 67,5%; 2 behaviour 28,2%; 3 behaviour 3,4%; 4 behaviour 0,7%; lebih dari 5 behaviour 0%
  3. Untuk 57% yang tidak memiliki aktifitas jaringan, kemungkinan disebatkan oleh: a) waktu observasi yang pendek; b) malware menunggu trigger eksternal; c) outdate atau dormant
  4. Kombinasi behaviour tertinggi adalah: Scanning+propagating 43,1%; Downloading+propagating 16,5%; Scanning+Spamming 12,2%

Limitation:

  1. Hanya membatasi pada 6 behaviour  jaringan (high level), tidak mempertimbangkan behaviour low-level
  2. Tidak mempertimbangkan malware polymorphic dan teknik evading malware

Android Malware negative-day hunting- Yuan-paper review

Paper TitleTowards Large-Scale Hunting for Android Negative-day Malware

Authors: Lun-Pin Yuan, Wenjun Hu, Ting Yu, Peng Lie, Senchun Zhu

Venue: Usenix 22nd International Symposium on Research in Attacks Intrusions and ­Defenses

URL: https://www.usenix.org/system/files/raid2019-yuan.pdf

Problem: Dibutuhkan waktu minimum 6 bulan bagi para peneliti malware untuk membuat signature sebuah malware Zero Day. Bagaimana cara mendeteksi malware pada fase awal sebelum malware di deploy (Negative-Day)?

Contribution:

  1. Mengajukan sistem Lshand (Large Scale Hunting for Android Negative-Days), yang dapat mendeteksi malware Android Neg-Day (malware yang masih dalam tahap development) melalui analisa submission pada online scanner
  2. Merancang dan implementasi Lshand untuk mengatasi 3 tantangan berikut: hubungan malware yang minim pada binary, minimnya bukti pengembangan malware terkait identity dan scalability
  3. Menguji Lshand dengan 2 dataset, 10 kasus neg-day malware yang disubmit ke Virustotal pada Januari 2016 dan 15 kasus neg-day pada bulan Mei 2018

Method/solution

  1. Mencari kesamaan dari submisi malware
  2. Memilih feature yang tidak diobfuscasi, seperti set of permissions, contacted hosts, numbers of components, dll
  3. Lshand terdiri dari: sebuah data digestor, sebuah report clusterer, sebuah AMDT (Android Malware Development Trace) extractor dan sebuah Neg-Day alerter
  4. Lshand melakukan clustering report malware (format text terstruktur), bila dibutuhkan melakukan klasifikasi sampel (binary) berdasarkan kemiripan dan maliciousness
  5. Data digestor mencari submisi baru terkait android, contohnya memiliki label android, dari package information, informasi kompresi (apk, dex); 
  6. Submisi baru dilihat dari „last-seen“ atau timestamp last-scan dari metadata
  7. LShand Report clusterer mencari DT (development trace) setiap submisi. Dengan mencari hubungan antara sampel-malware
  8. Feature yang diekstrak adalah submission timestamp, package information, compression information, behavioral information
  9. AMDT extractor mengekstrak AMDT, dengan menguji deteksi ratio r
  10. Neg-day memberi alert
  11. Model clustering yang digunakan adalah incremental density-based clustering 
  12. Weighted diperoleh dengan mengumpulkan 50 AMDT dan dilakukan kategori light, medium dan heavy. Kategori heavy ada 3 yaitu package number of activity, number of services dan number permission by category
  13. Clustering threshold τ awalnya diset besar, kemudian dituning kebawah
  14. Pengujian dilakukan pada dataset 1: submisi virustotal pada bulan Januari 2016, yang memiliki 1,3 juta submission android dari 3852 submitter.
  15. Pengujian dilakukan pada dataset 2: submisi virustotal bulan mei 2018
  16. Beberapa teknik Obfuscation yang dipertimbangkan dalam perancangan Lshand: package name, class name, method and variable name, inter-component interaction injection, dataflow-analysis evasive code injection, native code and bytecode injection, daummy and benign methods injection and dropper payload loadin
  17. Beberapa teknik Evasion yang dipertimbangkan: incrementally adding large number of dummy activities, dummy services, irrelevant files (number of activities, service and files)
  18. Beberapa teknik anonym yang digunakan penulis malware yang dipertimbangkan: menggunakan akun free yang berbeda, menggunakan proxy berbeda (atau tor) , submit irrelevant apps, tidak submite 100 sampels per hari,akun, proxy

Main result

  1. Lshand berhasil 10 kasus neg-day pada dataset 1, yang terdiri dari 48 sampel malware hanya dalam waktu 1 jam. 48 sampel tersebut diberi label benign oleh 62 antivirus pada virusTotal pada bulan januari 2016, 
  2. Sampel tersebut dianalisa secara manual dan discan dengan Palo Alto Networks Wildfire dan terdeteksi sebagai malware
  3. Lshand menemukan 15 neg-day pada dataset 2. Hasil analisa manual  menemukan 80% sampel adalah malware atau greyware
  4. Kasus Neg-day malware yang dideteksi diberi label, Dnotua, Dowgin, Ewind, Huer, Jiagu, Rootnik, SmsPay, SMSref, dan Triada, SLocker, Triada
  5. 96 dari 253 sampel menggunakan teknik xor-encrypted
  6. Ditemukan 2 kasus false-positive (54 app) yang dibuat oleh Appbyme
  7. Memperoleh similarity score 96,77% dan skor maliciousness 31,25%
  8. Menghasilkan performa lebih baik dibandingkan metode SSDC dengan akurasi 99,16%

Limitation:

  1. Hanya dapat mendeteksi sampel yang disubmit dan revisi berulang
  2. Tidak dapat medeteksi sampel yang dibuat dengan sebuah proxy app-creation platform
  3. Tidak dapat mendeteksi malware yang menambahkan large number of dummy component atau files
  4. Tidak melakukan pengujian ground-truth

Image Malware Classification with LBP – Luo – Review Paper

Paper TitleBinary Malware image Classification using Machine learning with local binary pattern

Authors: Jhu-sin Luo, Dan chia-tien lo

Venue: 2017 IEEE international Conference on Big Data

URL: 10.1109/BigData.2017.8258512

Problem: Klasifikasi malware adalah bagian penting dalam pengamanan jaringan. Namun metode klasifikasi malware saat ini masih mengandalkan metode deteksi tradisional untuk mendeteksi malware, yaitu analisa statik dan dinamik. Teknik ini memiliki beberapa kelemahan, untuk itu dibutuhkan pendekatan baru dalam klasifikasi malware. 

Contribution:

Mengajukan metode klasifikasi malware baru menggunakan image binary dan ekstraksi local binary pattern (LBP) feature

Method/solution:

  1. Melakukan konversi malware ke greyscale dalam range [0,255], dengan lebar fix dan tinggi bebas
  2. Binary malware dibaca sebagai sebuah vector 8 bit unsigned integer, kemudian diatur menjadi array 2D
  3. Setiap pixel dari image malware diatur menjadi grid 3×3 agar memudahkan proses ekstraksi descriptor LBP
  4. Nilai pixel central adalah threshold. * pixel tetangganya dibandingkan dengan nilai central pixel. 
  5. Bila nilai pixel tetangganya lebih besar dari central pixel, maka nilai tetangga menjadi 1
  6. Bila lebih kecil dari threshold, maka ditulis 0.
  7. Hasil threshold dikalikan dengan weight yang merupakan pangkat 2.
  8. Central value adalah jumlah dari hasil perkalian.
  9. Untuk setiap pixel lakukan proses yang sama
  10. Descriptor LBP final didapatkan dengan menghitung histogram gambar
  11. Training dan testing menggunakan tensorflow
  12. Convolutional filter yang digunakan 3×3 dengan RelU, kemudah dilakukan 2×2 max pooling layer dengan stride 2 untuk downsample
  13. Nilai convolutional filter pertama adalah 16
  14. Ukuran convolutional filter kedua juga 3×3 dengan 32 filter. 
  15. Output max pooling adalah multi dimensi
  16. Dataset terdiri dari 32 family dengan jumlah 12000 image malware greyscale.
  17. Tipe malware adalah trojan, password steeler dan virus
  18. 20% malware digunakan untuk training, dan sisanya untuk pengujian
  19. Menggunakan tensorflow untuk klasifikasi fitur LBP, dan menggunakan fitur LBP untuk training klasifier SVM dan classifier KNN
  20. Menggunakan fitur GIST dengan tensorflow dengan KNN dan SVM

Main result

  1. Malware family 28,29,30 yaitu Virut.A, Virut.AC dan Virut.AT lebih sulit untuk diklasifikasi
  2. Tensorflow dapat membedakan ketiga malware tersebut dengan akurasi yang lebih tinggi
  3. Waktu eksekusi lebih pendek dengan GPU
  4. Akurasi dengan fiture LBP lebih baik 93,17% 
  5. Waktu eksekusi lebih baik daripada sistem pembanding

Limitation:

  1. Metode ini dapat dikelabui oleh malware yang di-rewrite dengan cara lain atau menggunakan instruksi yang berbeda
  2. Jumlah family malware terbatas
  3. Tidak mencoba menggunakan RGB