Paper tentang berbagai teknik deteksi malware

Saya baru nulis paper tentang teknik deteksi malware, judulnya “A Survey on Malware Detection Technology and Future Trends”. Paper ini bercerita tentang klasifikasi dari berbagai macam teknik deteksi malware terkini. Ada yang tradisional, pake signature dan heuristic. Kedua teknik ini masing2 memiliki kelebihan dan kekurangan. Namun masih mengandalkan proses analisa manual dari analis malware. Karena jumlah malware makin banyak maka mulai dikembangkan teknik deteksi pake machine learning. Teknik deteksi dengan machine learning ada yang menggunakan supervised learning dan unsupervised learning. Ada berbagai macam algoritma machine learning yang telah digunakan untuk deteksi malware, ada yang pake decision tree, random forest, svm dll.

Cuman teknik deteksi malware dengan machine learning yang ada saat ini masih banyak kekurangan. Diantaranya masih bisa dikelabui dengan adversarial malware, proses labeling juga memakan waktu. Untuk lebih lengkapnya bisa baca papernya pada link berikut:

https://ieeexplore.ieee.org/document/9310841

Semoga Bermanfaat!

Deteksi Malware dengan Metoda Data Mining

Saya lagi baca paper tentang deteksi malware dengan metoda data mining. Paper ini ditulis oleh Ms. Shital Balkrishna Kuber dari India. Judul lengkapnya A Survey on Data Mining Methods for Malware Detection. Di bagian awal , paper ini bercerita tentang berbagai metoda deteksi malware. Ada Signature Based, Heuristic Based dan Specification Based. Kemudian Kuber melakukan studi literatur tentang beberapa teknik deteksi malware dengan metoda data mining.

Paper pertama yang dibahas adalah dari D.Bilar dengan judul Opcodes as predictor for malware. Pada paper ini dipelajari tentang opcode frequency distributions untuk mengidentifikasi dan membedakan malware. Jadi diusulkan penggunaan analisa statistik dari distribusi opcode. Dari hasil pengujian ditemukan bahwa opcode berikut yang sering muncul seperti move, push, call dll tidak dapat dijadikan indikator keberadaan sebuah malware. Namun keberadaan opcode yang jarang muncul seperti add, sub, ja, adc dll justru dapat dijadikan indikator adanya malware pada sebuah sistem.

Paper kedua masih dari D. Bilar, Callgraph properties of executables and generative mechanisms,” . Kali ini dia melakukan analisa struktur call graph dari 120 malware dan 200 benign. Semua sampel dibikin graphnya. Source code disusun struktur fungsinya. Fungsi ini didapat dari proses disassembly sampel. Kemudian dibuat semacam flowchart, dan dibandingkan cabang dari instruksi. Cabang yang pendek digunakan untuk menyampaikan kontrol dari sebuah fungsi dari sampel, sementara cabang yang paanjang digunakan untuk memanggil fungsi lain. Cabang yang pendek tidak memberikan return adress dari memori.  Kemudian dibuat CFG (call function graph. CFG ini dibandingkan. Bilar menyimpulkan malware cenderung memiliki jumlah blok dasar yang rendeh. CFG malware memiliki interaksi yang lebih sedikit, cabang yang lebih sedikit dan fungsi yang terbatas. Sementara file benign cendering memiliki jumlah blok yang lebih banyak dengan interaksi yang lebih kompleks

Sekar menggunakan pendekatan Finite State Automaton (FSA) approach. FSA. Membangun FSA tanpa perlu aksesk ke source code program. Kemudian metode ini dibandingkan dengan analisa n-gram.

Wei-jen Li melakukan analisa pada file PDF malware. Kemudian melakukan analisa n-gram, dan membuat model malware.

Santos menggunakan signature n-gram untuk deteksi malware. Pada n=2, tingkat deteksi malware rendah, sementara pada  n=4, deteksi malware sangat baik.

Santos melakukan analisa juga sequence opcode.  Kemudian dibangun classifier machine learning, untuk membedakan malware dan benign.

Shabtai menggunakan analisa statik untuk menguji sistem deteksi malware. Pengujian dilakukan dengan analisa ngram dengan (N=1 to 6) pada berbagai classifiers. Hasilnya ditemukan bahwa N=2 menghasilkan performa terbaik. Untuk deteksi digunakan juga pola opcode n-gram untuk ekstraksi fitur. pemilihan feature dan algoritma deteksi.

Papernya bisa dilihat disini:

Klik untuk mengakses A-SURVEY-87.pdf

Semoga Bermanfaat!

CrashOverRide Malware yang melumpuhkan Power Grid

Saya lagi baca beberapa kasus malware unik yang menyerang infrastruktur atau kadang dibilang ICS (Industrial control system) malware. Salah satu yang cukup menghebohkan adalah malware Crashoverride yang menyerang power grid Ukraina pada bulan desember 2016. Serangan ini sempat melumpuhkan jaringan listrik di 1/5 bagian kota Kiev selama 1 jam. Malware crashoverride ini sering dinamakan juga Indistroyer. Insiden ini konon serangan yang kedua pada jaringan listrik di Ukraina. Yang pertama adalah malware Blackenergy pada tahun 23 Desember 2015.

Serangan ini juga serangan ICS keempat yang tercatat setelah Stuxnet, Havex dan Blackenergy. Menurut peneliti dari ESET, malware ini terdiri beberapa modul berikut:

  • Backdoor digunakan untuk mengendalikan komponen malware lainnya. Backdoor terhubung dengan server command & server
  • Backdoor tambahan, sebagai cadangan dan mekanisme persistence bila backdoor utama terdeteksi sistem pertahanan
  • Komponen launcher adalah file executable yang bertugas untuk menjalankan komponen payload dan komponen wiper. Bagian ini mengatur waktu dan tanggal aktivasi malware. Dari hasil analisa ditemukan 2 tanggal aktivasi yaitu 17 desember 2016 dan 20 desember 2016. Tanggal 17 desember adalah tanggal serangan terjadi
  • 4 komponen payload yang menargetkan protokol komunikasi khusus pada siste industri yaitu IEC 60870-5-101IEC 60870-5-104IEC 61850, dan OLE untuk Process Control Data Access (OPC Data Access) . Fungsi komponen payload ini diantaranya melakukan scanning dan mapping jaringan, dan memberikan perintah pada perangkat kontrol industri khusus.
  • Komponen data wiper dirancang untuk menghapus registry keys pada sistem target, dan menimpa file untuk membuat sistem tidak bisa direboot dan mempersulit proses recovery.

Wah makin canggih ya malwarenya, bisa nyerang listrik. Jangan2 PLN klo listriknya mati juga karena malware ini :)  Semoga bermanfaat!

Laporal lengkap tentang malware ini bisa dilihat pada link berikut:

https://dragos.com/blog/crashoverride/

https://www.eset.com/int/industroyer/

https://www.wired.com/story/crash-override-malware/

Bagaimana Cara Membangun Lab Malware

Pada waktu memberi pelatihan analisa malware, saya mendapat pertanyaan bagus dari peserta dari Lemsaneg tentang bagaimana cara membangun lab Malware ? Software apa saja yang diperlukan, serta apa spesifikasi hardware yang diperlukan untuk membangun lab Malware? Memang melakukan analisa sebuah sampel malware gak bisa disembarang komputer. Sangat tidak disarankan untuk melakukan analisa malware pada komputer yang kita gunakan sehari-hari. Karena ada risiko komputer kita dan jaringan kita terinfeksi malware.

Virtual Mesin

Idealnya memang membangun lab malware kita menggunakan server khusus, dan setting jaringan yang terpisah. Cuman untuk belajar, bisa menggunakan laptop atau pc di rumah yang ada virtual mesin. Virtual mesin bisa menggunakan virtualbox atau virtual mesin. Pastikan menggunakan versi virtual mesin terbaru. Karena ada malware yang bisa mengeksploitasi celah keamanan pada virtual mesin.

Siapin RAM yang banyak, Harddisk besar juga perlu, untuk menyimpan berbagai virtual mesin. Pake virtual mesin ini lebih simpel, karena kita bisa setup dengan cepat, dan kalo dia rusak karena infeksi malware tinggal bikin virtual mesin baru. Cuman kelemahannya ada malware yang bisa mendeteksi virtual mesin. Sehingga klo dia mendeteksi VM, maka perilakunya berubah. Karena itu ada juga analis malware yang tidak mau pake VM, tapi pake komputer beneran.

Isolasi

Langkah berikutnya kita harus isolasi jaringan, biasanya dengan konfigurasi firewall untuk memisahkan lab dengan komputer dan jaringan lokal. Matikan juga fungsi network sharing. Untuk memindahkan data bisa menggunakan USB yang di write-protect.

Untuk koneksi internet sebaiknya gunakan koneksi internet yang terpisah dari jaringan lokal. Klo udah gak dipake, putus koneksinya.

Tools

Sebelum masukin sampel malware, install dulu lab dengan berbagai tools.  Untuk windows biasanya pake tools:

Tools online

Selain tools tadi, pelajari juga tools online berikut, karena bakal sangat membantu untuk analisa:

Ada distro yang khusus dibuat untuk analisa malware, namanya REMnux. Tools ini dibuat lenny zeltser. Sampai disini dulu. Semoga bermanfaat!

referensi

https://www.alienvault.com/blogs/security-essentials/building-a-home-lab-to-become-a-malware-hunter-a-beginners-guide

https://zeltser.com/build-malware-analys

Trojan TR/Crypt.ZPACK.Gen

Hari ini ada teman yang mintol, katanya malwarenya kena malware. Malwarenya bisa kedetek sama antivirus tapi gak bisa diremove. Setelah saya lihat ternyata malwarenya TR/Crypt.ZPACK.GEN. Ini sejenis trojan, maksudnya malware yang ngumpulin data2 di komputer korban terus dikirim ke pemilik malware. TR/Crypt.ZPACK.Gen ini nama yang digunakan oleh Avira. Biasanya nyebar lewat email, dan punya fungsi auto run.

Sayangnya avira gak bisa ngeremove trojan ini. Jadi pilihannya paling di karantina. Untuk ngeremove bisa menggunakan tools berikut:

  1.  Kaspersky tdss killer , 
  2. Malwarebytes chameleon
  3. RogueKiller
  4. Hitman Pro
  5. Emsisoft emergency kit

Semoga bermanfaat!

referensi:

Remove TR/Crypt.ZPACK.Gen trojan (Removal Instructions)

Malware Penambang – cryptomining malware

Nambang Bitcoin saat ini telah jadi tren baru, mengalahkan tren batu akik yang semakin meredup. Bahkan di kantin kampus seringkali saya dengar obrolan para penambang dan para pedagang cryptocurrency. Para penambang rela menghabiskan jutaan rupiah untuk membeli GPU paling canggih. Konon semakin canggih hardware yang digunakan maka semakin banyak keuntungan yang bisa diraih. Demi keuntungan besar, para penambang memanfaatkan malware untuk nambang di komputer orang lain. Malware jenis ini yang dinamakan cryptomining malware.

Contohnya malware Smominru botnet (Ismo). Malware ini digunakan untuk nambang Koin Monero di Windows Server. Malware ini menyebar ke komputer korban memanfaatkan eksploit EternalBlue (CVE-2017-0144).

Buat yang tertarik belajar tentang malware cryptomining ini, berikut ini ada beberapa link tentang malware cryptomining

The state of malicious cryptomining

Mining is the new black

https://www.eset.com/int/malicious-cryptominers/

https://www.darktrace.com/en/blog/crypto-mining-malware-uncovering-a-cryptocurrency-farm-in-a-warehouse/

https://www.trendmicro.com/vinfo/de/security/news/cybercrime-and-digital-threats/security-101-the-impact-of-cryptocurrency-mining-malware

Github

https://github.com/gsuareztangil/cryptomining-malware

https://github.com/topics/cryptomining

Paper:

https://arxiv.org/pdf/1808.00811.pdf%C2%A0

Klik untuk mengakses 1901.00846.pdf

Klik untuk mengakses JAKO201919761178776.pdf

Semoga Bermanfaat!

Link tentang belajar analisa malware

Berikut ini beberapa link menarik untuk belajar analisa malware:

Tentang repositori Sampel malware:

https://github.com/threatland/TL-TROJAN

Untuk belajar reverse engineering

https://www.begin.re

https://github.com/corkami

https://software.intel.com/en-us/articles/intel-sdm

Tutorial analisa malware

https://malwareunicorn.org/#/workshops

https://github.com/RPISEC/Malware

https://securedorg.github.io/RE101/

https://securedorg.github.io/RE102/ 

Untuk tau jenis ransomware

https://id-ransomware.malwarehunterteam.com

https://www.nomoreransom.org

Info tentang format file PE

https://www.aldeid.com/wiki/PE-Portable-executable

Cara setting sandbox – cuckoo:

https://github.com/julianoborba/Ansible-Cuckoo

Tutorial dari ENISA:

https://www.enisa.europa.eu/topics/trainings-for-cybersecurity-specialists/online-training-material/technical-operational#advanced-analysis

Resource lainnya:

https://www.first.org/global/sigs/malware/resources/

https://github.com/sindresorhus/awesome

https://www.goggleheadedhacker.com

https://arnaugamez.com

https://docs.google.com/document/d/1BfLPJpRtyq4RFtHJoNpvWQjmGnyVkfE2HYoICKOGguA/edit

https://github.com/Malware-Research/Resources

Kanal youtube tentang analisa malware

https://www.youtube.com/channel/UC–DwaiMV-jtO-6EvmKOnqg

Dokumentasi tentang grup APT:

https://docs.google.com/spreadsheets/d/e/2PACX-1vTheajUWzRhTK0XhSI3_RnYVtUJvl8mlX8HlThPyCJGK1g5SBecgS78O1oeTFQxDYS0oWlKTg2pNLyb/pubhtml#

http://iec56w4ibovnb4wc.onion

Kumpulan Yara rules

https://github.com/Neo23x0/signature-base/tree/master/yara

Tools untuk sharing cyber threat:

https://github.com/intelowlproject/IntelOwl

Tools untuk analisa malware android

blog tentang report hasil analisa malware

https://dexters-lab.net/ 

3. Tools Analysis malware : tools yg sangat direkomendasikan pakai Cuckoo Sanbox, untuk analysis malware. Dan untuk linknya sbb :

https://cuckoosandbox.org/

4. Untuk analisis android malware, bisa pakai turunannya tools cuckoo, CuckooDroid pad link berikut.

https://github.com/idanr1986/cuckoo-droid

5. Link update info2 security, bisa pantau blog ini https://securityaffairs.co/wordpress/

https://www.csoonline.com/

https://www.zdnet.com/

https://www.techrepublic.com/

6. Link contoh Malware Dynamic Analysis 

https://app.any.run/tasks/a9a8bb3a-5c79-4ed3-ab97-ab8f4768413b/

7. Link contoh Sanbox untuk static dan dynamic analysis

https://cape.contextis.com/analysis/88592/

8. Link Video Basic Cyber Security and IT Learning

https://www.cybrary.it/course/malware-analysis/

https://www.slideshare.net/proferyk/web-application-hacking-the-art-of-exploiting-vulnerable-web-application

semoga bermanfaat!

Belajar analisa malware

Saya baru baca tulisan Zeltser tentang analisa malware. Zeltser ini instruktur analisa malware di SANS. Analisa malware membutuhkan banyak skill, diantaranya insiden respon, forensik, administrasi sistem, admin jaringan, keamanan dan programming. Memang cukup banyak pengetahuan yang diperlukan. Zeltser mengelompokan skil analis malware ini jadi 4 kelompok berikut dari yang paling mudah sampe paling susah:

  1. Analisa otomatis: menjalankan sampel di sandbox, membaca laporan interaksi sampel dengan sistem dan jaringan
  2. Analisa statik: mempelajari metadata dan info lainnya di file, seperti string, tanpa menjalankan sampel.
  3. Analisa behavior: menjalankan file di lab, dipelajari perilakunya
  4. Reverse kode malware: melakukan reverse malware dengan disassembler dan debugger untuk dipelajari apa saja fungsi malware

untuk mulai belajar, bisa dimulai dengan mempelajari hasil analisa malware yang dilakukan analis berpengalaman, atau dari sandbox. Beberapa contoh report analisa malware bisa dilihat di postingan zeltser di laman facebook ini https://web.facebook.com/LearnREM

Selain itu report analisa malware bisa diliat juga dari analisa sandbox gratis. Berikut ini list sandbox yang dikumpulkan zeltser pada blog dia https://zeltser.com/automated-malware-analysis/

Setup lab analisa malware

Untuk mulai belajar analisa malware, idealnya dilakukan di lab khusus. Bisa juga menggunakan virtual mesin yang dikonfigurasi khusus. Zeltser menjelaskan cara setting lab di blog dia https://zeltser.com/build-malware-analysis-toolkit/

Selain itu bisa juga nonton youtube berikut:

Pelajari juga slide berikut ini:

https://published-prd.lanyonevents.com/published/rsaus19/sessionsFiles/13567/HT-T09_Practical%20Malware%20Analysis%20Essentials%20for%20Incident%20Responders.pdf

Cara lain bisa juga pake distro Remnux, ini distro khusus yang dirancang om zeltser untuk analisa malware. Bisa diunduh disini : https://remnux.org

Dia juga nyediain video tentang remnux:

Nah langkah berikutnya belajar assembler, bisa pake ollydbg atau x64dbg . Zeltser nyedian video untuk tentang belajar assembly disini:

Kita bisa melajar analisa dinamis dengan menggunakan breakpoints pada API call di sampel. Tools yang bisa digunakan adalah FLOSS https://github.com/fireeye/flare-floss . Contoh cara pake floss bisa dilihat disini: https://isc.sans.edu/diary/Malware+Triage+with+FLOSS%3A+API+Calls+Based+Behavior/26156?_ga=2.12270132.1431902920.1621807715-1728014147.1621807715

Panduan untuk belajar reverse bisa dilihat disini: https://zeltser.com/reverse-engineering-malicious-code-tips/

Malware banyak yang menggunakan teknik evasion untuk mempersulit proses analisa. Tentang teknik evasion bisa liat video zeltser berikut:

sama slidenya ada disini: https://zeltser.com/media/docs/malware-analysis-lab.pdf

Selanjutnya unutuk anaisa statik bisa pake Ghidra https://ghidra-sre.org. Tentang ghidra bisa dilihat video Anuj Soni berikut:

dan baca juga blognya disini: https://blogs.blackberry.com/en/2019/07/an-introduction-to-code-analysis-with-ghidra

Nah selain berbentuk binary, malware ada juga yang berbentuk skript, biasanya pake javascript. Tentang malicious script ini bisa tonton video Evan Dygert berikut:

Dan pelajari juga slidenya disini: https://www.dropbox.com/sh/34zvd5ww6nminid/AAAfKexd3nyoW96OkMuYrklQa?dl=0

Khusus tentang malware yang pake Powershell bisa liat video Mari DeGrazia berikut:

Kalo mau belajar tentang malware yang sembunyi di dokumen office bisa nanton video Didier Steven berikut:

Selain itu bisa ikutin workshop Ryan chapman di github ini: https://github.com/rj-chap/CFWorkshop . Om zeltser juga nyediain link tentang malware di dokumen office pada link ini: https://zeltser.com/analyzing-malicious-documents/

Untuk belajar tentang shellcode bisa nonton video ini:

Selanjutnya kalo butuh sampel malware untuk latihan bisa dilihat pada link berikut:

Semoga bermanfaat!

diterjemahkan dari: https://www.sans.org/blog/how-you-can-start-learning-malware-analysis/

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