Kape – tools forensik

Untuk para penggemar Forensik, ada tools baru namanya KAPE. Program ini digunakan untuk menemukan artifak forensik dan melakukan parsing. Dengan KAPE ini penyelidik bisa menemukan artifak dengan cepat dan menentukan prioritas artifak tersebut.

Tools ini dapat penghargaan DFIR non-commercial tool of the year. Tools ini gak perlu diinstal, bekerja dalam command line. Tentang KAPE bisa dilihat pada web ini:

https://ericzimmerman.github.io/KapeDocs/#!index.md

Bisa dilihat juga di github berikut ini:

https://github.com/EricZimmerman/KapeFiles

Untuk mahasiswa yang sedang cari topik Proyek Akhir mungkin bisa dieksplorasi tools KAPE ini, dan dikembangkan jadi tools PA.

Semoga Bermanfaat!

Bahan bacaan Filsafat Ilmu

Alhamdulillah kuliah filsafat ilmu semester ini baru beres. Kuliah ini cukup menarik, awalnya rada puyeng tapi cukup memberikan pandangan tentang cara berpikir kritis dari para pemikir ulung. Berikut ini beberapa link bahan bacaan dari kuliah filsafat ilmu ini:

Yang pertama tentang cara berpikir induktif, dan apa saja permasalahannya:

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

Kemudian tentang Karl Popper, salah satu tokoh pencetus filsafat ilmu

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

https://www.sfu.ca/~swartz/popper.htm

https://plato.stanford.edu/entries/popper/

Tulisan tentang kritik terhadap metode filsafat ilmunya popper:

https://www.researchgate.net/publication/240547732_A_Critique_of_Popper’s_Views_on_Scientific_Method

Tulisan tentang apa itu Pseudo science

https://plato.stanford.edu/entries/pseudo-science/

Demarkasi adalah prinsip yang digunakan popper untuk membedakan science dan pseudoscience:

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

Apa itu psikoanalisis? apakah psikoanalisis termasuk science?

https://rephip.unr.edu.ar/bitstream/handle/2133/7539/69_02_vida.pdf?sequence=4&isAllowed=y

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

Tentang proyek Google Flu Trends, apakah pseudoscience?

https://time.com/23782/google-flu-trends-big-data-problems/

Kritik tentang marx apakah marxism pseudoscience?

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

Tulisan tentang abiogenesis, yaitu teori tentang awal mula kehidupan, apakah pseudoscience?

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

https://www.quora.com/What-is-the-evidence-that-abiogenesis-is-possible

https://en.wikipedia.org/wiki/Talk%3ABiogenesis

https://ib.bioninja.com.au/standard-level/topic-1-cell-biology/15-the-origin-of-cells/biogenesis.html

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

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

Prinsip genetika Mendell apakah science?

https://id.wikipedia.org/wiki/Hukum_Pewarisan_Mendel

Pandangan tentang Astrology, apakah pseudoscience?

http://freethinkingblog.blogspot.com/2008/03/is-astrology-science.html

Semoga Bermanfaat!

Tanda tangan digital

Jaman pandemi karena wfh semuanya jadi serba digital. Termasuk salah satunya tanda tangan. Di kampus biasanya ada beberapa dokumen yang harus ditandatangan, contohnya untuk sidang tugas akhir, perlu tandatangan dosen pembimbing, dosen wali dll. Nah semenjak wfh jadinya semua dokumen harus ditandatangan secara digital.

Sayangnya orang masih banyak yang salah kaprah tentang tanda tangan digital. Yang dimaksud tanda tangan digital itu bukan tanda tangan di kertas yang kemudian discan. Bisa juga sih, cuman dari sisi security tandatangan seperti ini rentan untuk disalahgunakan. Misalnya tandatangan itu di gandakan tanpa seijin orangnya. Sudah ada beberapa kejadian misalnya mahasiswa meng-kopi tanda tangan dosen, kemudian ditempelkan di dokumen lain tanpa seijin dosennya. Nah ini kan tidak sesuai dengan etika.

Padahal buat orang security yang dimaksud tanda tangan digital yang menggunakan publik key. Jadi kita harus generate dulu kunci dengan sebuah algoritma kriptografi (biasanya pake RSA). Kunci yang digenerate ini sepasang, ada public key dan private key. Kunci publik itu untuk dibagikan ke umum, sementara kunci private disimpan sendiri. Kunci private ini yang digunakan untuk melakukan tanda tangan sebuah dokumen. Dokumen yang telah ditandatangani ini nantinya akan diverifikasi oleh penerima menggunakan kunci publik.

Gimana caranya untuk membuat kunci dan melakukan tanda tangan digital? ada beberapa cara, kalo males nginstall aplikasi bisa langsung di terminal. Caranya pernah saya tulis disini https://julismail.staff.telkomuniversity.ac.id/pgp-signing-party/

Kalo mau yang lebih gampang bisa pake aplikasi acrobat reader. Caranya bisa dilihat di youtube berikut ini:

Semoga Bermanfaat!

Materi kuliah Machine Learning

Buat yang tertarik belajar tentang machine learning, berikut ini ada materi kuliah machine learning dari beberapa kampus keren:

Kuliah machine learning dari Stanford University

Kuliah tentang dari UC Berkeley Full Stack Deep Learning

Kuliah tentang deep learning dari TU munchen – Introduction to Deep Learning (I2DL)

Kuliah tentang komputer vision dari NUS

Kuliah tentag Vision dari TU Munchen Detection, Segmentation and Tracking

Kuliah tentang Deep Learning pada komputer vision dari TU Munchen

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/

Pengalaman ikut tes Toefl iBT home edition

Minggu lalu saya coba ikut tes Toefl iBT yang home edition. Daftarnya langsung di web https://www.ets.org/toefl. Registrasi dulu bikin akun, trus nanti pilih tanggalnya dan bayar. Sebelum registrasi disarankan ngetes dulu apakah komputer kita kompatibel atau tidak. Ngetesnya dengan ngunduh software dari sana. Nanti dia cek spek komputer kita. Daftarnya gak ribet, tapi diminta no passport.

persiapan

Setelah daftar lanjut persiapan, waktu itu saya emang milih jadwal yang paling cepat, jadi cuman ada waktu persiapan 3 hari. Ujian iBT dibagi 4 sesi, ada reading, listening, speaking dan writing.

Buat persiapan saya liat beberapa link youtube. Ada banyak ternyata youtube yang jelasin tentang ujian toefl. Setelah liat2 beberapa link, saya lebih seneng punya om adam. Penjelasannya lumayan enak

https://www.youtube.com/user/EnglishTeacherAdam

Selain itu saya belajar dari buku juga. Setelah bongkar2 lemari ternyata saya punya buku Longman Complete Course for the toefl test karya deborah phillips. Buku ini lumayan keren ada latihannya juga.Tapi klo di buku cuman fokus ke reading

Terus terakhir saya coba ikut latian gratis dari edx. Ini web tempat latihan, kayaknya kerjasama dengan Toefl. Jadi katanya formatnya sama dengan tes aslinya, soalnya juga katanya soal2 lama TOEFL. Bisa register disini https://www.edx.org/course/toefl-test-preparation-the-insiders-guide

Oiya di web itu kita bisa latihan listening juga. Untuk speaking juga bisa, suara kita direkam trus mereka pake teknologi AI katanya yang langsung bisa ngasih nilai. Trus untuk writing juga bisa, dinilai sama komputer juga.

Di web TOEFLnya juga ada sampel soalnya. Kemaren saya agak fokus latian di speaking dan writing, karena saya ngerasa disini yang agak lemah

ujian

Waktu itu saya dapet jadwal ujian jam 19.15. Oiya ruangannya harus kita atur dulu. Karena ada ketentuannya, kita harus duduk di meja, sendirian di ruangan. Mejanya juga harus kosong gak boleh ada kertas dll. Untuk coret2 boleh pake whiteboard atau pake kaya plastik mika yang bisa dicoret dan dihapus.

Pas ujian nanti jalankan softwarenya yang udah kita instal pas registrasi, kemudian nanti nunggu ada petugas dari toeflnya. Petugasnya nanti ngomong dan ngasih instruksi macem2. Awalnya ada kendala karena dia gak bisa denger suara saya. Padahal saya bisa denger suara dia. Akhirnya saya diminta menunggu, karena saya akan dibantu sama teknisinya. Nah teknisinya ini kemudian ngeremote komputer saya, dia rubah2 setting speaker dan microphone saya. Selama proses itu saya cuman bisa chating dengan dia. Sampe akhirnya dia bisa denger suara saya.

Setelah itu saya dikembalikan ke petugas toefl yang pertama. Trus petugas ini mulai ngecek2 lagi. Pertama dia minta saya nunjukan identitas (passport saya) kemudian dia minta saya noleh ngecek telinga, karena gak boleh ada alat bantu. Terus dia minta saya nunjukin tangan saya sampe siku, trus dia minta kamera saya diputer untuk ngeliat kondisi ruangan. Dia minta juga kamera saya ditunjukan ke meja, dan kebawah meja. Terakhir dia minta cermin, jadi kayaknya dia pengen liat layar monitor saya, apakah ada tempelan atau tidak. Terus dia nanya handphone saya dimana, dia minta handphone saya disimpan dibelakang, yang bisa keliatan dari kamera.

Terus dia ngeremote juga komputer saya, dia kayaknya ngecek software apa aja yang jalan di komputer saya dll. Banyak yang dia periksa. Lumayan lama juga, sekitar jam 20.00 baru dia jelasin aturan tentang pelaksanaan tes, lama tes dll.

Reading

Akhirnya mulai dengan sesi pertama Reading. Sesi ini saya dikasi 3 atau 4 bacaan kalo gak salah. Temanya rada berat setelah itu disuruh jawab banyak pertanyaan. Tipe pertanyaannya ada macem2. Cuman waktunya sangat terbatas, jadi harus belajar baca secara cepat. Konon caranya kita baca paragraf pertama secara lengkap, kemudian paragraf berikutnya kita cukup baca kalimat pertama dan kalimat terakhir, sama baca paragraf terakhir secara lengkap.

Cukup melelahkan yang jelas sesi ini. Karena banyak istilah ilmiah. Yang jelas baca aja dulu, walaupun belum paham. karena waktunya terbatas banget. Ada 40an pertanyaan klo gak salah dengan waktu 1 jam. Vocabnya juga rada susah, terutama kalo temanya kita gak nguasain

Listening

Setelah itu masuk sesi Listening. Nah disini ada beberapa macam. Ada yang kita dengerin sebuah kuliah, kemudian nanti jawab beberapa pertanyaan tentang kuliah itu. Terus ada juga kita dengerin percakapan di sebuah kampus, misalnya antara mahasiswa dengan bagian administrasi di kampus dll. Ada 40 pertanyaan dengan waktu 60 menit.

Speaking

Setelah itu break 10 menit, selama break boleh meninggalkan ruangan. Cuman pas masuk dicek lagi semuanya kayak waktu awal lagi. Terus masuk sesi3 yaitu speaking. Nah dibagian ini udah mulai ngantuk banget saya, karena dah jam 10 malam. Jadi dikasi sebuah topik terus diminta ngomong pendapat kita. Oiya ngomongnya cuman bentar paling sekitar 1 menit. Sebelum ngomong dikasi waktu juga buat mikir.

Writing

Sesi terakhir adalah writing. Lebih tepatnya ngetik sih. Jadi ada 2 tugas. Yang pertama kita dikasi artikel, disuruh baca, terus dengerin sebuah kuliah. Nah setelah itu tugas kita kayak ngerangkum pendapat dari dosen di kuliah tersebut. Kalo tugas kedua, mengarang bebas. Jadi dikasi sebuah topik kemudian disuruh ngarang bagaimana pendapat kita tentang topik tersebut. Setuju apa gak. Klo setuju kenapa dst.

Totalnya hampir 4 jam. Setelah tes nanti diminta ngapus apa yang kita tulis di plastik mika tadi. Udah gitu beres. tinggal nunggu hasilnya. Oiya hasil reading dan listening kita langsung keluar. Cuman speaking dan writing belum, karena kayaknya harus diperiksa dulu sama orang.

Nunggu hasil akhirnya lumayan lama. Ada sekitar 10 hari kayaknya baru hasilnya muncul di webnya toefl.

Semoga bermanfaat!

Bayar pajak kendaraan bermotor via e-samsat (atm)

Pajak kendaraan saya sudah mau jatuh tempo, biasanya saya langsung bayar di samsat. Cuman berhubung masih pandemi, jadi males ke samsat. Jadi saya nyoba bayar via e-samsat. Kalo liat info dari web bapenda jabar, sepertinya gak ribet cara bayarnya.

Kode Bayar

  1. Pertama kita harus dapat kode bayar dulu. Menurut webnya bapenda jabar ada 3 cara buat dapat kode bayar, melalui aplikasi Sambara di android, melalui kirim sms ke sms gateway samsat, dan melalui website Bapenda.
  2. Saya kemaren coba lewat website bapenda. Linknya ada disini: https://bapenda.jabarprov.go.id/infopkb/
  3. Di web tersebut saya diminta masukan plat nomer, pilih jenisnya (hitam), terus masukan kode captcha dan klik cari
  4. Setelah itu nanti bakal keluar info kendaraan kita, sama jumlah tagihan.
  5. Kemudian di paling bawah ada pilihan lanjut daftar online , klik YA
  6. Setelah itu muncul menu pop-up, kita diminta masukan no NIK dan 5 angka terakhir no rangka kendaraan kita (bisa diliat di STNK) , klik proses
  7. Kemudian muncul 16 kode bayar. Nah nomer ini musti di copy, di foto atau disimpan teserah, karena nanti perlu buat bayar di atm

ATM

  1. Selanjutnya musti bayar ke ATM
  2. Menurut webnya bapenda pembayaran bisa dilakukan di ATM BJB, BCA atau BNI.
  3. Tahun lalu masih ada Bank Mandiri, cuman sekarang udah gak ada di daftar
  4. Oiya, pengalaman tahun lalu gak semua ATM bisa, gak tau kenapa? jadi saya sempat nyoba beberapa ATM, gak berhasil, mungkin jaringannya lagi eror.
  5. Saya coba ATM BNI, karena dari pengalaman tahun lalu ada 1 atm bni yang bisa
  6. Pilih menu Lain –> pilih menu pembayaran –> pilih menu pajak/penerimaan negara –> pilih menu e-samsat
  7. Masukan kode institusi (1502) + 16 angka kode bayar (yg tadi dapat dr web)
  8. klik lanjutkan
  9. alhamdulillah lancar, simpan struknya. Struk ini nanti perlu untuk pengesahan stnk

Pengesahan STNK

  1. Jadi abis bayar tetep musti ke Samsat :) tapi gak lama kok, jadi lebih aman semoga, karena gak pake ngantri dan nunggu lama
  2. Jadi pengesahan bisa dilakukan sampe 30 hari setelah kita bayar.
  3. Menurut web bapenda, pengesahan bisa dilakukan di samsat,samsat keliling, samsat outlet dan samsat gendong provinsi jabar
  4. Saya coba ke samsat di jl pajajaran.
  5. Setelah nanya ke petugasnya, disuruh ke lt 2, langsung ke loket 2 bagian pembayaran non-tunai.
  6. Disana diminta nunjukin e-ktp asli, stnk asli sama struk pembayaran tadi
  7. Setelah itu nunggu printan bukti pembayaran pajak
  8. Trus minta cap di loket sebelahnya
  9. gak sampe 5 menit sudah beres

Alhamdulillah lancar. terima kasih bapenda jabar dan petugas samsat. Semoga Bermanfaat!

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