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

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

File Entropy Wavelet Malware-Guo-ReviewPaper

Paper TitleFile Entropy signal analysis combined with wavelet decomposition for malware classification

Authors: Hui Guo, Shuguang huang, Cheng huang, Zulie pan, Min zhang, fan shi

Venue: IEEE access vol 8 – 158961 – 158971

URL: https://doi.org/10.1109/ACCESS.2020.3020330

Problem: Penulis malware banyak menggunakan (reuse) source code malware yang sudah ada untuk membuat malware baru. Malware ini biasanya memiliki kemiripan dan dapat digolongkan ke dalam variant malware atau family malware yang sama. Melakukan klasifikasi variant malware ini membutuhkan waktu dan resource computing yang besar. Untuk itu diperlukan pendekatan baru untuk melakukan klasifikasi varian malware.

Contribution

  1. Mengajukan metoda klasifikasi baru menggunakan feature entropy biner. Metode ini melakukan konversi raw bytes malware menjadi sequence entropy dan melakukan ekstraksi feature struktural berbasis pada teknik sinyal prosesing
  2. Implementasi MESRF, sebuah framework untuk mengekstrak feature dari malware dan mengkombinasi mereka dengan sebuah classifier untuk melakukan klasifikasi variant malware. Framework ini dapat meningkatkan kemampuan untuk melakukan klasifikasi variant malware pada family yang sama
  3. Hasil pengujian menunjukan MESRF dapat menyelesaikan permasalahan kesalahan klasifikasi family malware yang sama dibandingkan metode yang sudah ada

Method/solution

  1. Ekstrak sequence entropy dary raw bytes ke malware
  2. Mining feature di entropy, dan menampilkan sequence entropy menjadi sinyal
  3. Menggunakan 2 feature global dan local. 
  4. Global feature diekstrak dari karakteristik statik seperti length, nilai mean, maximum, standard deviation dan rasio minimum. 
  5. Untuk karakteristik lokal (struktural) sinyal entropy diperoleh dengan algoritma Discrete wavelet decomposition dan vektorisasi feature lokal berbasis model bag-of-words.
  6. Kemudian ditrain dengan machine learning dan malware diklasifikasikan untuk menentukan family dari sampel malware baru
  7. Raw byte malware dibagi menjadi blok 256, agar bisa mendapatkan value 00-FFh
  8. Bila ukuran blok tidak 256 dan bisa mencapai 128 maka byte ditambah dengan zero, bila kurang maka byte akan dibuang
  9. Nilai entropy dihitung menggunakan rumus:  ; xi nilai raw byte dan pProbability (frekuensi blok)
  10. Global feature yang digunakan: length (Panjang sequence entropy); square root; mean; standev; max; max_7, min_0
  11. Malware diekstraksi menjadi 2 fungsi pada saat decopmposisi yaitu father wavelet (scaling function) dan mother wavelet (fungsi wavelet)
  12. Fungsi Wavelett dan fungsi scaling dengan  Haar Wavelett transform menggunakan rumus:

    ;  

  1. Sebelum dekomposisi sinyal serangkaian transformasi fungsi pada mother wavelett dan father wavelett dilakukan.
  2. Pemilihan wavelet dibandingkan fourier karena detail sinyal bisa didapatkan dari berbagai skala prosesing. Hasilnya adalah power dari sebuah sinyal pada beberapa frequency berbeda.
  3. Haar wavelet memproyeksikan sinyal menjadi sebuah set gelombang kotak dengan tinggi, widt dan struktur berbeda.
  4. Menggunakan enropy sequence sebagai sebuah sinyal dan Transformasi Haar Wavelett untuk mengekstrak structure feature
  5. Fungsi transforming dijelaskan pada persamaan berikut:   
  6. Feature dikonversi ke vectore menggunakan model bag-of-words; tahapannya terdiri dari : a) codebook generation dan b) komputasi histogram
  7. Algoritma K-means diimplementasikan untuk menghasilkan cluster center
  8. Kemudian sampel malware dikonvert ke vector dengan codebook
  9. Histogram dari code words digunakan untuk representasi feature lokal dari sequence entropy
  10. Sistem MESRF (malware entropy sequences reflect the family) dikembangkan dengan python 2.7 dengan pywt library dan sklearn library.
  11. Prototipe sistem dijalankan pada sebuah PC dengan Intel ® Core ™ i7-4790 CPU (3,6 GHz) dan 20 GB RAM
  12. Dataset I didapat dari malware research lab yang terdiri 9339 sampel malware dari 25 family, yang diperoleh dari real environment dan diklasifikasikan dengan platform Microsoft security
  13. Dataset II didapat dari Microsoft Malware Classification Challenge (BIG 2015) terdiri dari 10.868 sampel terdiri dari 9 family (Ramnit, Lollopop, Kelihos_ver3, Vundo, Simda, Tracur, Kelihos_ver1, Obfuscator.ACY, GATAK)
  14. Pengukuran menggunakan akurasi, presisi, recall, ROC Curve (Receiver Operating Characteristic Curve) dan AUC (Area Under ROC Curve), F1
  15. Klassifier ditraining menggunakan Random Forest (RF), Multi-layer Perceptron (MLP), k-Nearest Neighbor (KNN), SVM dan DT
  16. Setiap sampel memiliki 263 feature (7 dari global dan 256 feature local)
  17. nilai K dari KNN diset 2, SVM menggunakan linear kernel function, classifier lainnya menggunakan parameter konfigurasi default dari sklearn
  18. Hasil pengujian dibandingkan dengan 4 model yaitu: GIST+KNN, LBP+KNN, GIST+DSIFT+KNN dan VGG16

Main result

  1. KNN memiliki performa terburuk, dengan akurasi 98,5%, sementara akurasi classifier lainnya diatas 99%, SVM menghasilkan performa terbaik 99,82%
  2. SVM mendapatkan nilai F1-score dan AUC terbaik pada saat eksperimen, namun waktu training membutuhkan 7 detik dengan 9000 sampel
  3. RF menghasilkan efisiensi terbaik
  4. Akurasi klasifer yang menggunakan local feature yang diekstrak dengan DWT dan BOW mencapai 99,75%
  5. Penggunaan feature global dan local secara bersamaan menghasilkan akurasi terbaik 99,83%
  6. MESRF menghasilkan performa terbaik daripada 4 model pembanding, dengan waktu yang lebih pendek
  7. Dari sisi akurasi dan efisiensi MESRF juga lebih baik dibandingkan 4 sistem pembanding yaitu 97,88

Limitation:

1.Jumlah family yang diuji terbatas

2. Analisa attribute dari feature penting belum dilakukan

SourceFinder: finding malware sourcecode-Rokon-PaperReview

Paper TitleSourceFinder: Finding malware source-code from ublicly available repositories in Github

Authors: Md Omar Faruk Rokon, Risul Islam, Ahmad Darki, Evangelos E.Papalexakis

Venue: Usenix 23rd International Symposium on Research in attacks, intrusions and defences

URL: https://www.usenix.org/conference/raid2020/presentation/omar

Problem: Untuk memahami malware, peneliti perlu mempelajari source code malware. Bagaimana mencari source code malware dari repositories di internet seperti Github?

Contribution

  1. Mengajukan sistem SourceFinder, sistem untuk mengidentifikasi repository source code malware menggunakan machine learning
  2. Mengumpulkan 97ribu repository terkait malware dari Github, 
  3. Mempelajari pola dan tren repository malware, termasuk property, behaviour temporal dan author centric
  4. Membuat arhive source malware dengan 7504 repository

Method/solution

  1. Repository dikumpulkan melalui API Github dengan keyword malware
  2. Keyword dibagi 3 tipe: a) keyword terkait malware dan security, seperti malware dan virus; b) time malware, seperti ransomware dan keylogger; c) nama popular malware: seperti mirai
  3. Membuat groundtruth dengan 2013 repository
  4. Membuat 3 set keywords: a) Q1 set, hanya mengandung keyword malware; b) Q50 set yang memiliki 50 keywords; c) Q137 set yg memiliki 137 keywords; Q137 adalah superset dari Q50; dan Q50 adalah superset dari Q1
  5. Query dilakukan menggunakan PyGithub, kemudian dilakukan cleaning
  6. Ground truth dilakukan dengan 3 komputer scientist melakukan label 1000 repository secara manual (malicious atau benign). Hasil labelin diberi nama LD137, LD50 dan LD1
  7. Pada tahapan preprocessing dilakukan: a) character level preprocessing; b) word level preprocessing; c) entity level filtering
  8. Setelah preprocessing dilakukan pelabelan repository fields.
  9. Untuk text field representation digunakan Bag of Words dan word embedding
  10. Tahap ketiga adalah selecting the fields
  11. Tahap keempat adalah pemilihan engine ML
  12. Tahap kelima detecting source code repository
  13. Pengujian dilakukan untuk mengetahui tentang: a) repository fields selection; b) field representation; c) feature selection; d) ML algoritma selection; e) efektifitas klasifikasi; f) Identifikasi repo malware; g) identifikasi repo source code malware
  14. Field yang dipilih adalah title, description, topics, readme file, nama file dan nama folder
  15. Field representation menggunakan bag of words mencapai akurasi 86%, sementara word embedding 85%
  16. Pemilihan jumlah kata per field didapatkan top 550 kata

Main result

  1. Pengujian klasifikasi repository malware menghasilkan akurasi 89%, recall 86% dan F1 score 87% dengan 5 field dari repository
  2. Jumlah malware baru pada repository meningkat 3x lipat setiap 4 tahun
  3. Membuat ranking repository yang paling popular berdasarkan jumlah watcher, forks dan stars
  4. 3% penulis malware memiliki follower > 300 
  5. 0,2% penulis malware memiliki lebih dari 7 repository malware
  6. Ada penulis malware yang membuat 336 repository malwre
  7. Berhasil mengidentifikasi 18 penulis malware professional, contohnya 3vilp4wn penulis keylogger
  8. Q1 diperoleh 2775 repositry, Q50 14332 dan Q137 97375
  9. Multinomial Naïve Bayes memperoleh nilai F1-score 87%; dengan presisi 89% dan recal 86%
  10. Deteksi benign class diperoleh presisi 92%, 94% recall dan 93% F1-score.
  11. F1 score pada algoritma lain (Logistic regression, decision tree, random forest, KNN, Linear discriminant analysis dan SVM) dibawah 79%
  12. KNN, LR, dan LDA memperoleh presisi lebih tinggi dengan recall lebih rendah
  13. Setelah dilakukan 10-fold cross validation diperoleh presisi diatas 89% dan recall diatas 77% untuk ketiga dataset
  14. 2% repository memiliki pengaruh kuat denan minimum 100 forks; 78% repository hanya memiliki forks < 2
  15. 2% repository memiliki stars > 250; 75% repository memiliki stars <3
  16. 8 repository memiliki pengaruh tertinggi adalah: ytisf (thezoo), n1nj4sec, Screetsec, malwaredllc, RoganDawes, Visgean, Ramadhan, dana-at-cp
  17. Kategori terbanyak malware adalah keylogger (679 repo)
  18. Windows dan Linux adalah target paling popular (1592 – windows; 1365 – linux)
  19. Hanya ada sedikit MacOs repo (380)
  20. Aktifitas malware sedikit menurun pada tahun 2018
  21. Malware IoT dan iphone mulai muncul tahun 2014
  22. Malware windows dan linux masih dominan, tapi ada tren penurunan. Sementara IoT dan android meningkat
  23. Username unik muncul pada berbagai platform online seperti Offensive community, ethical hacker dan hackthissite
  24. Username penulis malware tercatat memiliki aktifitas hacking 
  25. Repository digunakan penulis malware untuk meningkatkan reputasinya

Limitation:

  1. Hanya melakukan analisa pada github yang diset public, dan memiliki keyword tertebtu
  2. Hanya melakukan analisa pada Github, masih ada platform sharing malware lainnya seperti darkweb

Do & Dont’s of Machine Learning in Computer security-Arp-Paper Review

Paper TitleDo and Don’ts of machine learning in computer security

Authors: Daniel Arp, Erwin Quiring, Feargus Pendlebury, Alexander Warnecke, Fabio Pierazzi, Christian Wressnegger, Lorenzo Cavallaro, Konrad Rieck

Venue: underreviewed; Technical Report: Arxiv:2010.09470, October 2020

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

Problem: Machine learning mulai banyak digunakan di bidang security. Namun ada beberapa pitfall yang dapat menurunkan performa dan menyebabkan implementasinya tidak sesuai dengan standar task security di mesin learing

Contribution:

  1. Identifikasi 10 pitfall machine learning di security yang mempengaruhi workflow sistem, serta melakukan analisa longitudinal pada 30 paper security yang telah dipublikasikan pada 30 top-tier conference pada 10 tahun terakhir
  2. Melakukan eksperimen analisa impact pitfall tersebut pada 4 domain security berbeda, apakah menimbulkan bias eksperimen, hasil yang membesar, dan menimbulkan misinterpretasi
  3. Memberi rekomendasi dos and don’t bagi peneliti dan praktisi keamanan dalam pengembangan dan penggunaan machine learning di bidang security

Method/solution

  1. Melakukan studi longitudinal, dengan focus pada 6 tahun terakhir, 30 paper yang dipublikasikan pada 4 conference terbaik dibidang security yaitu ACM CCS, IEEE S&P, USENIX Security dan NDSS. 
  2. 6 paper tentang deteksi malware, 4 paper tentang deteksi serangan pada jaringan, 4 paper tentang vulnerability discovery (mencari celah keamanan sistem), 4 paper tentang serangan website pingerprinting, 3 paper tentang abuse social media, 3 paper tentang analisa kode binary, 2 paper tentang atribusi kode, 1 paper masing-masing tentang steganography, online scam, game bots dan ad blocking
  3. Setiap paper di review oleh 2 orang reviewer yang menguji artikel apakah mengandung 10 pitfall machine learning
  4. Reviewer terdiri dari 6 peneliti yang telah memiliki publikasi pada tema machine learning dan security pada minimal 1 conference diatas.
  5. Setelah 2 reviewer selesai mereview 1 paper, mereka mendiskusikan hasil temuannya dengan reviewer ketiga
  6. Pada setiap paper pitfall dikategorikan sebagai, present (ada), not present (tidak ada), unclear from text (tidak jelas), atau does not apply (tidak berlaku)
  7. Pengujian dilakukan pada 4 domain; mobile malware detection (P1,P4,P7), vulnerability discovery (P2,P4,P6); source code authorship attribution (P1,P4) dan network intrusion detection (P6, P9)

Main result

10 pittfall machine learning:

  1. Sampling bias: dataset yang dikumpulkan tidak merepresentasikan distribusi data pada permasalahan security yang sesungguhnya (60%)
  2. Label Inaccuracy: label ground truth pada klasifikasi tidak akurat, tidak stabil, mengandung eror, dan mempengaruhi performansi sistem secara keseluruhan (10%)
  3. Data Snooping: Model melakukan training pada data yang umumnya tidak ada di dunia nyata. (57%)
  4. False Causality: Artifak yang tidak berhubungan dengan permasalahan yang dihadapi, menyebabkan shortcut pattern pada kelas yang berbeda. Sehingga model tidak menyelesaikan task yang diberikan tapi beradaptasi terhadap artifak tersebut (57%)
  5. Bias pemilihan parameter: Parameter akhir dari metode yang digunakan tidak fix pada saat training. Sehingga parameter ini tergantung pada set test (20%)
  6. Inappropriate baseline: Pengujian dilakukan tanpa baseline atau, dengan baseline yang terbatas. Sehingga sulit untuk mengetahui peningkatan dari state-of-the-art (23%)
  7. Inappropriate performance measures: Pengukuran performa yang digunakan tidak memperhatikan Batasan aplikasi, seperti imbalanced data atau kebutuhan untuk tingkat false-positive yang rendah (40%)
  8. Base Rate Fallacy: Imbalance kelas besar diabaikan Ketika melakukan interpretasi pengukuran performa, sehingga menyebabkan overestimasi dari performa (13%)
  9. Lab-only evaluation: Sistem hanya diuji pada laboratorium tanpa memperhatikan Batasan implementasinya di dunia nyata (43%)
  10. Inappropriate threat model: Keamanan machine learning yang dibangun tidak dipertimbangkan, misalnya dengan serangan poisoning dan evasion attack (17%)
    • Inter-rater reliability review berdasarkan Krippendorff’s alpha adalah α = 0.832 dimana α > 0.800 adalah reliably
    • Pitfall yang paling banyak ditemukan adalah Sampling bias (P1) dan data snooping (P3) yang ditemukan pada lebih dari 73% paper
    • Lebih dari 50% paper memiliki pitfall inappropriate threat model (P10), lab-only evaluations (p9) dan inappropriate baselines (p6)
    • Setiap paper setidaknya memiliki 3 pittfalls
    • Pengumpulan dataset masih menjadi masalah
    • Beberapa dataset yang tersedia masih belum sempurna
    • Keberadaan beberapa pitfall masih belum jelas dari paper yang ada dibandingkan pitfall lain. Contohnya biased parameter selection (p5) pada saat tidak ada deskripsi dari hyperparameter atau prosedur tuning diberikan; false causality (p4) ketika tidak ada percobaan untuk menjelaskan pemilihan model dan data snooping (P3) ketika pembagian dataset atau prosedur normalisasi tidak secara eksplisit dijelaskan.
    • Semua pitfall ditemukan pada penelitian, dengan range 23%-90%
    • Hanya 20% paper memiliki bagian discussion
    • Rekomendasi: Mengumpulkan data yang berhubungan tentang security, handling noisy label, explainable learning, calibrating security systems, performance metrics, security baselines, deployment for security, security of deployment.

Limitation:

  1. Hasil review bisa bias, tergantung dari perspektif reviewer
  2. Jumlah paper yang direview terlalu sedikit