Zeek IDS

Salah satu mahasiswa sedang mencoba tools Zeek IDS untuk Proyek akhirnya. IDS atau Intrusion Detection System adalah tools untuk melakukan deteksi serangan di jaringan. IDS biasanya menggunakan “sensor” di perangkat jaringan untuk melakukan monitoring aktifitas jaringan, kemudian mendeteksi serangan dengan menggunakan “rules”. Rules ini kayak pola serangan yang sudah dikenali dan dibikin signature nya oleh peneliti keamanan. Kalo udah mendeteksi serangan, IDS ngasih alert ke admin.

Zeek ini pengembangan dari Bro IDS. IDS yang cukup populer. Konon mulai dikembangkan dari tahun 1990. Zeek ini open source. Dia bisa di konfigurasi ulang dengan menyediakan fungsi scripting, dengan dukungan library. Scripting ini bisa digunakan untuk mendeteksi aktifitas mencurigakan menggunakan deteksi semantik, deteksi anomali dan analisa behavioral.

Dia mencatat semua aktifitas jaringan dalam bentuk log. Aktifitas yang dicatat diantaranya http session, DNS request, dll. Dia bisa ekstrak juga file dari sesi http, deteksi malware, melaporkan kerentanan aplikasi, identifikasi aplikasi web populer, deteksi serangan SSH brite-force, validasi sertifikat SSL dll.

Zeek banyak digunakan di kampus, riset, superkomputer, perusahaan bahkan pemerintahan. Zeek konon dapat melakukan monitoring pada jaringan dengan kecepatan tinggi yaitu jaringan 10GE, dan sedang dikembangkan untuk dapat digunakan pada jaringan dengan link 100GE.

Tutorial instalasinya dapat dilihat pada link berikut:

https://docs.zeek.org/en/master/about.html

Selamat mencoba, semoga bermanfaat!

Cyberdefender challenge

Buat para satpam, ada platform baru buat belajar security. Namanya Cyberdefender. Disini ada banyak challenge untuk belajar security. Misalnya ada tentang forensic, ada tentang malware, ada tentang analisa trafik dan threat hunting. Formatnya biasanya kita dikasi file, kemudian nanti diminta menjawab beberapa pertanyaan. Mirip kayak CTF.

Buat main kita musti register dulu cukup masukin username, email dan password. Kemudian musti cek email untuk aktivasi akun. Challengenya seru menurut saya. Contohnya misalnya challenge malware traffic analysis. Jadi skenarionya kita kerja sebagai analis pada SOC sebuah perusahaan. Trus ada kasus mail filter perusahaan itu down, dan spam nyebar kemana2. Nah kita dikasi sebuah file pcap dan 4 email spam yang sempet dibuka sama seorang karyawan. File pcap nya adalah trafik jaringan dari karyawan yang sempet buka spam tadi.

Tugas kita melakukan analisa terhadap pcap dan 4 email tadi, terus ngejawab ada 19 pertanyaan. Mulai dari yang gampang sampe yang susah. Misalnya apa nama malicious file, apa nama family dari malware tadi, sampe kita diminta melacak malware tadi melakukan koneksi ke IP mana?

Untuk melakukan analisa ini perlu tools beneran. Dikasi penjelasan juga di challenge details. Misalnya bisa pake Suricata, wireshark, network miner, hybrid analysis dan brim security. Ada juga tutorial buat setup brim security dan suricata.

Selain itu platform ini juga menyediakan beberapa training menarik. Sebagian besar gratis. Tapi ada juga yang bayar. Contohnya yang basic, ada training tentang setup virtual mesin, Pengenalan digital forensik dan Malware noob2Ninja.

Training Malware noob2ninja ini ngajarin cara untuk ngebangun lab analisa malware. Lab yang dimaksud sebenarnya virtual mesin yang sudah dikonfigurasi khusus untuk analisa malware. Jadi analisa malware kan gak bisa sembarangan, karena ada resiko komputer kita kena infeksi malware. Terus diajarin juga cara nganalisa malicious dokumen, teknik analisa statik, teknik analisa dinamis. Selain itu dikenalkan juga cara pake cuckoo Sandbox, x32dbg, x64dbg & ghidra. Cuckoo ini tools analisa malware otomatis. klo x32dbg, x64dbg dan ghidra tools untuk reverse engineering malware.

Kemudian dikenalkan juga teknik obfuscation malware, dan teknik analisa memori (RAM). Silahkan dicoba. Cyberdefender challenge ini bisa diakses pada link berikut:

https://cyberdefenders.org/labs/

Semoga Bermanfaat!

Materi Keamanan Aplikasi

Kemaren ada teman yang menanyakan tentang materi kuliah keamanan jaringan. Ceritanya dia diminta ngajar mata kulah itu di kampusnya. Saya langsung share dia materi kuliah keamanan jaringan yang saya ampu. Ternyata setelah ngobrol, karena dia dari prodi Manajemen Informatika (MI), menurut saya lebih pas kalo kontennya ke materi keamanan aplikasi. Karena anak MI kan nantinya diharapkan jadi programmer.

Jadi secara umum materi satpam (security) dapat kita bagi 3 ada keamanan jaringan, keamanan aplikasi dan keamanan komputer. Ketiganya memang belajar tentang satpam, tapi dari pendekatan yang berbeda.

Kalo keamanan jaringan lebih fokus belajar mengamankan jaringan dari serangan. Teknik pengamanannya misalnya menggunakan firewall, ids, ips dll. Jenis serangannya sniffing, DOS, spoofing, MITM dll.

Sementara keamanan aplikasi lebih fokus belajar tentang bagaimana mengamankan aplikasi. Teknik pengamanannya misalnya secure coding, atau bisa pake WAF untuk web server. Teknik serangannya misalnya SQL Injection, Buffer overflow dkk

Kalo keamanan komputer lebih fokus ke ngamanin sistem operasi dan hardware. Teknik pengamanannya misalnya Hardening. Teknik serangannnya misalnya dengan vulnerability analysis, exploit, malware, dst

Untuk keamanan aplikasi salah satu kitab kuningnya adalah buku Gary Mcgraw tentang software security. Atau bisa mulai dari dokumen owasp top 10 tentang keamanan aplikasi . Selain itu bisa juga liat materi sertifikasi ec-council tentang secure coding. Kalo lebih suka yang bahasa Indo bisa coba cek materi kuliahnya pak Budi Rahardjo.

Nah setelah dishare beberapa materi tersebut, dia langsung puyeng. Padahal saya masih mau ngasih beberapa link keren lainnya tentang keamanan aplikasi. Ya sudah akhirnya saya share disini aja linknya. Semoga Bermanfaat!

Link lainnya tentang keamanan aplikasi:

https://samsclass.info/129S/129S_S18.shtml

https://github.com/topics/secure-coding

https://github.com/OWASP/SecureCodingDojo

https://about.gitlab.com/handbook/engineering/security/secure-coding-training.html

https://portswigger.net/web-security

Bayesian Network – Expectation Maximization

Pada tulisan sebelumnya telah dipaparkan tentang proses pembelajaran pada Bayesian Network, contohnya pada kasus dimana struktur graph diketahui dan datanya fully observed yaitu dengan menggunakan perhitungan MLE (maximum likelihood estimate). Namun bagaimana bila ada nilai variabel yang tidak diketahui?

Contohnya pada graph berikut, nilai Sinus tidak diketahui, nilai variabel lainnya diketahui.

dari slide tom mitchell- machine learning

Untuk memudahkan perhitungan kita mengubah semua variabel yang diketahui menjadi X. Dan semua variabel yang tidak diketahui menjadi Z. Dalam kasus ini F,A,H,N menjadi X. Sementara S menjadi Z. Kemudian kita menggunakan EM (Expectation maximization) berikut:

Walaupun nilai Z ini diprediksi, namun karena perhitungannya dilakukan berulang dengan beberapa iterasi, diharapkan nantinya akan konvergen mendapatkan nilai S yang stabil. Sehingga EM ini menjamin kita akan mendapatkan nilai maksimum lokal (local maximum). Perhitungannya untuk kasus ini dimana X={F,A,H,N} dan Z={S} adalah

EM digunakan untuk pembelajaran pada kasus partially observed data (ada data yang tidak diketahui. Dari variabel X yang diketahui dan Z yang tidak diketahui maka dapat didefinisikan:

Kemudian lakukan interasi sampai konvergen :

langkah E (ekspektasi): menggunakan X dan nilai theta untuk menghitung P(Z|X,theta)

Langkah M (maksimisasi): mengganti nilai theta saat ini menjadi:

. Setiap Iterasi akan meningkatkan nilai:

Bila E dan theta perubahannya semakin kecil dan nilainya menjadi stabil maka dapat dikatakan konvergen. Contoh penghitung pada kasus sinus ini:

Langkah estimasinya menjadi:

Nilai S pertama bisa dipilih dulu secara random. Kemudian lakukan maksimisasi parameter sebagai berikut:

Bandingkan nilai diatas dengan nilai MLE bila semua nilai variabel diketahui:

Hasil perhitungan E(estimasi) digunakan untuk mengupdate semua paramater di perhitungan M. Kemudian theta dari M kemudian digunakan lagi untuk perhitungan E estimasi. Kemudian hasilnya dilakukan maksimisasi lagi. Prosesnya dilakukan berulang (iterativ) sampai terjadi konvergen.

Langkah E (estimasi) lakukan perhitungan untuk setiap data training. Hasil perhitungan ini akan mendapat nilai prediksi dari variabel yang tidak diketahui.

Langkah M dihitung untuk melakukan estimasi, mirip seperti MLE, tapi mengganti nilai variabel count (kemunculan) dengan nilai prediksi (expetcted count)

Sampai disini dulu, pada tulisan berikutnya insyaallah akan dibahas tentang tentang contoh perhitungan data yang tidak diketahui untuk training Naive Bayes Classifier. Semoga Bermanfaat!

Referensi:

Mitchell, Tom. “Machine learning.” (1997): 870-877.

Sidang Proyek Akhir

Bulan ini lumayan padat, banyak anak bimbingan saya yang ngejer pendaftaran sidang proyek akhir. Alhamdulillah 3 udah beres sidang. Ada boby yang melakukan forensik di apps onedrive. Skenarionya boby bantu forensik pada kasus korupsi. Penyidik mendapatkan barang bukti HP android dan diminta melakukan forensik.

Teza melakukan analisa malware di deepweb. Jadi dia diminta melakukan studi tentang peredaran malware di deepweb. Jadi dia nemu beberapa forum dan website ilegal yang digunakan untuk jual beli malware. Kemudian sampel yang ditemukan coba dianalisa dengan metode statik menggunakan Ghidra.

Fikri membangun Honeypot untuk pengamanan SSL, webserver dan wordpress. Dia pake cowrie, snare dan log honeypot.

Minggu ini ada 3 siswa juga yang lagi ngejar daftar sidang. Semuanya tentang forensik. Ada Farrel, dia melakukan forensik di gopay. Michelle melakukan forensik di Ovo dan Dinar melakukan forensik pada kasus serangan malware di wordpress. Semoga bisa lancar semua dan lulus dengan nilai baik.

Belajar tentang celah keamanan android

Android sekarang jadi salah satu sistem operasi yang paling populer. Buat para satpam yang berminat belajar tentang celah keamanan android alias vulnerability atau kerentanan, berikut ini ada beberapa website yang menyediakan tutorial tentang kerentanan Android:

1. Android Application Security Series
https://manifestsecurity.com/android-application-security/
2. Android Forensics & Security Testing
http://opensecuritytraining.info/AndroidForensics.html
3. Introduction to ARM
http://opensecuritytraining.info/IntroARM.html
4. Infosec Institute
http://www.androidpentesting.com
5. Learning Android Bytecode
https://mariokmk.github.io/…/06/learning-android-bytecode.h…

Kerentanan tuh maksudnya celah keamanan, yang sering dimanfaatkan atau dieksploitasi oleh hacker. Jadi kayak pintu masuk buat hacking. Kerentanan biasanya dieksploitasi menggunakan skrip hacking. Skrip ini seringkali dikemas dalam bentuk malware. Dalam kasus android, malwarenya biasanya dibungkus (packing) dalam bentuk aplikasi yang dishare dalam bentuk APK.

Buat belajar lebih dalam tentang kerentanan android, daftar kerentanan Android bisa dilihat pada link berikut ini:

1. Android Vulnerabilities
http://androidvulnerabilities.org/ Daftar vulnerability alias kerentanan disini udah disortir berdasarkan Manufaktur, versi dan tahun.

2. Android CVE Details
https://www.cvedetails.com/vulnerability-list/vendor_id-1224/product_id-19997/Google-Android.html

3. Android Vulnerability & Exploit
https://docs.google.com/spreadsheets/d/13GXrCL9Q-V-pOKQThSKnS03SSuDe4hVRDfr9FZQIHO8/pub?single=true&gid=0&output=html

Silahkan dipelajari, jangan digunakan untuk hal ilegal ya. Semoga Bermanfaat!

Bacaan tentang Android security

Ada temen yang share materi di grup beberapa bahan bacaan tentang Android Security berikut ini:

1. Analysis of Secure Key Storage Solutions on Android
https://www.cs.ru.nl/E.Poll/papers/AndroidSecureStorage.pdf

2. ATTACKING THE LINUX PRNG ON ANDROID
https://www.usenix.org/…/conference/woot14/woot14-kaplan.pdf

3. Android OEM’s applications (in)security and backdoors without permission
http://www.quarkslab.com/…/Android-OEM-applications-insecur…

4. Attacks on Android Clipboard
http://www.cis.syr.edu/…/pap…/clipboard_attack_dimva2014.pdf

5. A Study of Android Application Security
http://www.cs.rice.edu/%7Esc40/pubs/enck-sec11.pdf

6. Attacks on Webview in the Android System
http://www.cis.syr.edu/…/Resear…/paper/webview_acsac2011.pdf

7. Gues who’s is Texting you?Evaluating Security of Smartphone Messaging Applications
https://www.sba-research.org/…/publicati…/ndss2012_final.pdf

8. Evaluations of Security Solutions for Android Systems
http://arxiv.org/ftp/arxiv/papers/1502/1502.04870.pdf

9. Why Eve and Mallory Love Android: An Analysis of Android SSL (In)Security
http://www2.dcsec.uni-hannover.de/files/android/p50-fahl.pdf

10. The Impact of Vendor Customizations on Android Security
https://www.cs.ncsu.edu/faculty/jiang/pubs/CCS13.pdf

11. The Peril of Fragmentation: Security Hazards in Android Device Driver Customizations
http://www.cs.indiana.edu/%7Ezhou/files/sp14_zhou.pdf

12. An Empirical Study of Cryptographic Misuse in Android Applications
http://www.cs.ucsb.edu/%7Ec…/research/…/ccs13_cryptolint.pdf

13. Android Permissions:User Attention, Comprehension, and Behavior
http://www.guanotronic.com/%7Ese…/papers/soups12-android.pdf

14. AppsPlayground: Automatic Security Analysis of Smartphone Applications
http://www.cs.northwestern.edu/%7Eychen/…/AppsPlayground.pdf

15. Understanding and Improving App Installation Security Mechanisms through Empirical Analysis of Android
http://users.encs.concordia.ca/%7Eclark/papers/2012_spsm.pdf

16. Android Malware Situation
https://www.incibe.es/…/Estud…/android_malware_situation.pdf

17. PowerSpy: Location Tracking using Mobile Device Power Analysis
http://arxiv.org/pdf/1502.03182v2

18. EdgeMiner: Automatically Detecting Implicit Control Flow Transitions through the Android Framework
http://yinzhicao.org/EdgeMiner/2015_ndss_edgeminer.pdf

19. Detecting Passive Content Leaks and Pollution in Android Applications
http://www.yajin.org/papers/ndss13_contentscope.pdf

20. DIVILAR: Diversifying Intermediate Language for Anti-Repackaging on Android Platform
http://www.yajin.org/papers/codaspy14_divilar.pdf

21. RiskRanker: Scalable and Accurate Zero-day Android Malware Detection
http://www.csc.ncsu.edu/faculty/jiang/pubs/MOBISYS12.pdf

22. DroidMOSS: Detecting Repackaged Smartphone Applications in Third-Party Android Marketplaces
http://www.csc.ncsu.edu/faculty/jiang/pubs/CODASPY12.pdf

23. Dissecting Android Malware: Characterization and Evolution
http://www.yajin.org/papers/oakland12_sok.pdf

24. Hey, You, Get off of My Market: Detecting Malicious Apps in Official and Alternative Android Markets
http://www.csc.ncsu.edu/facul…/…/pubs/NDSS12_DROIDRANGER.pdf

25. Systematic Detection of Capability Leaks in Stock Android Smartphones
http://www.csc.ncsu.edu/faculty/…/pubs/NDSS12_WOODPECKER.pdf

26. Fast, Scalable Detection of “Piggybacked” Mobile Applications
http://www.csc.ncsu.edu/faculty/jiang/pubs/CODASPY13.pdf

27. Leaving our ZIP undone: how to abuse ZIP to deliver malware apps
https://www.virusbtn.com/…/confe…/vb2014/VB2014-Panakkal.pdf

28. Forensic Analysis On Android: A Practical Case
https://www.sans.org/…/forensic-analysis-android-practical-…

29. A Machine Learning Approach to Android Malware Detection
http://www.utdallas.edu/~lkhan/papers/06298824.pdf

30. Cross Site Scripting Attacks on Android Webview
http://arxiv.org/ftp/arxiv/papers/1304/1304.7451.pdf

31. Autonomous smartphone apps: self-compilation, mutation, and viral spreading
http://arxiv.org/abs/1511.00444

32. BareDroid: Large-Scale Analysis of Android Apps on Real Devices
http://cs.ucsb.edu/~y…/publications/2015_acsac_baredroid.pdf

Semoga bermanfaat.

ICS security – Charles Kim

Saya lagi baca paper Charles Kim, judulnya A cyber resilient ICS through diversifed redundancy and intrusion detection. Mr Kim itu professor di Howard University amrik. Papernya ngebahas tentang keamanan sistem industrial control system (ICS). Jadi dia mengajukan arsitektur sistem kontrol baru yang lebih aman.

Sistem ICS umumnya masih banyak celah keamanan. Karena biasanya gak dibangun dengan memperhatikan aspek keamanan. Namun lebih memperhatikan tentang gimana caranya bisa mengendalikan berbagai sistem di industri secara otomatis.  Awalnya komunikasi antara perangkatnya menggunakan ModbusTCP, namun kemudian berkembang menggunakan Ethernet, agar lebih mudah untuk menghubungkan peralatan dari berbagai vendor berbeda.

Mr. Kim ini mengusulkan arsitektur ICS yang lebih kuat menghadapi serangan hacker. Arsitektur ini menambahkan perangkat yang terpisah (terisolasi) dari jaringan utama, dan dapat menjalankan sistem cadangan ketika terjadi serangan. Sistem ini memiliki komponen supervisor yang dapat melakukan monitoring jaringan utama dan jaringan cadangan.

Kemudian bagian supervisor ini dapat mengalihkan operasi ke jaringan cadangan bila terjadi serangan. Pengalihan ini dilakukan bila terdeteksi adanya anomali. Arsitektur ini menggunakan hardware yang berbeda (diversifikasi) dan komunikasi satu arah (unidirectional) ketika memberi alarm tentang serangan pada layer atas.

Namun menurut Kim, bisa saja sistem mendeteksi anomali walaupun tidak terjadi serangan. Untuk itu dia menggunakan IDS berbasis snort. Snort ini dikonfigurasi pada komponen supervasor untuk melakukan monitoring trafik TCP/IP Modbus. Hasil pengujian yang dia lakukan telah berhasil melakukan inisiasi mode safe-mode pada jaringan, dan memindahkan operasi pada jaringan cadangan ketika terdeteksi adanya serangan.

Presentasi mr Kim bisa dilihat pada link berikut:

http://www.mwftr.com/ck/WCICSS2017_CK_FINALp.pdf

Papernya bisa dilihat pada link berikut:

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

Semoga Bermanfaat!

Hacking in Darkness – Jaehyuk Lee

Weekend ini saya lagi baca paper keren, judulnya Hacking in Darkness – Return Oriented Programming against Secure Enclaves, karya Jaehyuk Lee dkk. Mereka adalah peneliti di KAIST (korea), Georgia Institute of Technology dan Microsoft. Papernya dipresentasikan pada conference Usenix tahun 2017. Usenix ini salah satu konferensi keamanan paling bergengsi.

Paper ini ngebahas tentang Intel Software Guard Extensions (SGX). SGX ini adalah teknik isolasi pada hardware dan enkripsi memori yang dibikin intel. Tujuannya untuk meningkatkan keamanan aplikasi. Jadi aplikasi bisa dipartisi menjadi “enclave” untuk membatasi area eksekusi memori.

Nah menurut Lee, SGX ini cuman aman untuk software yang bebas dari bug. Padahal yang namanya software buatan manusia, pasti gak ada yang sempurna. Bug ini bisa dimanfaatkan penyerang untuk mengambil alih sistem. Terus menurut dia, pengujian keamanan SGX lebih fokus pada serangan side-channel. Belum ada yang nguji keamanan dari kode enclave. Terutama belum ada juga yang nguji tentang celah keamanan memory corruption di kode enclave.

Nah yang dilakukan om Lee, nganalisa berbagai teknik eksploitasi pada enclave, contihnya teknik Dark-ROP. Menurut Lee, teknik ini bisa melumpuhkan SGX. Caranya dengan mengeksploitasi celah keamanan memory corruption melalui return-oriented programming (ROP). Cuman teknik Dark-ROP ini beda sama teknik ROP biasa. Karena si targetnya ini punya perlindungan hardware (SGX).

Caranya dia bikin oracle (mesin virtual) yang dapat menginfokan penyerang tentang status eksekusi enclave. Dengan cara ini penyerang bisa melakukan serangan ROP sementara kode dan data tetap hidden.  Kode enclave  dan data ditarik ke oracle (shadow app) tadi untuk dikontrol. Oracle tadi melakukan emulasi enclave. Penyerang kemudian bisa menggunakan ROP calls untuk mengendalikan SGX, misalnya membaca kunci cripto dari SGX.

Dengan cara ini penyerang bisa meretas perlindungan memori dari enclave dan mencuri kunci enkripsi. 

Lebih lengkapnya silahkan dibaca papernya dibawah ini:

Klik untuk mengakses jain:opensgx.pdf

Semoga bermanfaat!

Referensi

https://scholar.google.com/citations?hl=de&user=_hF51IMAAAAJ&view_op=list_works&sortby=pubdate

https://cysec.kaist.ac.kr/brentkang/brentkang.html

Dasar Asembly Analisa Malware

Melakukan analisa malware memerlukan berbagai keterampilan. Untuk analisa statik maka pengetahun tentang bahasa Asembly akan sangat berguna. Kali ini saya akan coba share tentang dasar Asembly analisa malware khususnya untuk komputer x86.

Pada sistem berbasis x86 ada 8 jenis register (general purpose registers/GPR).

EAX : Menyimpan value dari function calls
EBX: Digunakan untuk base pada beberapa fungsi aritmetika
ECX: Digunakan untuk menambah index dalam loops
EDX: Digunakan untuk operasi input/output
ESI: Digunakan untuk operasi string sebagai source/seumber
EDI:  Digunakan untuk operasi string sebagai tujuan
EBP : digunakan sebagai  base pointer pada stack frames
ESP : Menunjuk ke  stack paling atas

Register-register ini dapat digunakan untuk menyimpan data seperti variabel atau alamat memori. Kita dapat membaca dari register dan menulis pada register. Setiap register memiliki panjang 32 bit (yaitu 4 byte). Oleh karena itu setiap register dapat menyimpan alamat lengkap titik mana pun pada  memori 4 GB. Kita dapat juga mengakses hanya setengah dari register ini. Untuk itu harus menggunakan AX, BX, CX, DX, SI, DI, BP, SP sebagai pengenal/identifier. Dengan demikian, kita akan selalu mengakses 16 bit yang lebih rendah dari register.

Untuk EAX, EBX, ECX, dan EDX bahkan dimungkinkan untuk membagi setengahnya lagi: Untuk mengakses delapan bit terendah,  harus menggunakan AL, BL dan seterusnya (L untuk rendah). Untuk mengakses
8 bit berikutnya, gunakan AH, BH dan seterusnya (H untuk high). General Purpuse Register tujuan umum juga dapat digunakan untuk beberapa tugas khusus. Sampai disini dulu, insyaallah nanti saya lanjutkan lagi.

Bacaan lebih lanjut:

https://resources.infosecinstitute.com/topic/assembly-basics/

https://gist.github.com/muff-in/ff678b1fda17e6188aa0462a99626121