Listrik Padam

Dalam sebulan terakhir ini, Chiang Mai sering sekali mati listriknya. Ini sebenarnya sangat tidak wajar, selama 7 tahun kami di sini, mati listrik sangat jarang. Saat ini sedang musim panas di Chiang Mai, dan suhunya kadang mencapai 43 derajat celcius. Tapi kadang tiba-tiba sekarang hujan tiba-tiba turun, dan kalau sedang mulai hujan, tiba-tiba listrik padam. Kejadiannya biasanya tidak lama, cuma beberapa menit, tapi pernah juga hampir 2 jam.

Beberapa hari lalu, waktu pergi ke mall Promenada, tiba-tiba listrik padam, dan mall jadi gelap selama beberapa menit. Sepertinya mall-mall di Chiang Mai ini kurang siap dengan kejadian pemadaman listrik, mereka butuh waktu lama untuk menyalakan genset, dan ketika menyala pun, tidak semua toko mendapatkan listrik. Sudah dua kali di dua mall yang bebeda kami mengalami kejadian ini, dan kejadiannya mirip.

Ketika kemarin listrik mati, kami baru selesai belanja kado untuk anak teman kami, dan akan sekalian makan malam. Kami jadi bingung mau nunggu di mall, atau pulang. Kalau pulang: apakah listrik di rumah juga mati? Risna ingin menelpon teman kami yang di komplek yang berbeda, tapi saya bilang: kemarin di komplek kita mati, di komplek mereka idup. Terus saya bilang: bentar aku cek dulu via internet, ssh ke rumah, terus ping raspberry pi di ruang tamu. Risna langsung mengerti bahwa Raspberry Pi di ruang tamu tidak terhubung ke UPS, sedangkan modem dan router terhubung ke UPS. Ternyata listrik di rumah baik-baik saja, dan tak lama kemudian listrik kembali normal di mall itu.

Di saat itu saya merasa senang betapa istri saya dan saya saling paham dan mengerti. Saya tidak perlu menjelaskan apa itu SSH, atau bahwa router dan modem masuk UPS dan Raspberry Pi di ruang tamu tidak terhubung ke UPS, tidak perlu menjelaskan apa itu ping, dsb.

Geek banget ya ceritanya 🙂

Security CTF

Di posting ini saya hanya ingin memperkenalkan apa itu kompetisi security CTF (capture the flag). Posting ini akan membahas apa itu security CTF, apa manfaatnya ikut security CTF, seperti apa saja soal-soalnya, dan bagaimana caranya mulai ikut.

Sebenarnya selain security CTF ada berbagai CTF yang lain, tapi dalam posting ini selanjutnya saya akan menyebut CTF saja untuk security CTF. Setelah ikutan CTF-nya Noosc saya jadi lebih tertarik dengan CTF lalu gabung dengan team Rentjong (yang sejak sebelum saya bergabung sudah memiliki prestasi luar biasa). Anggota team ini kebanyakan bapak-bapak yang waktunya sedikit sekali setiap kali ada event CTF, dan melalui posting ini saya ingin memperkenalkan CTF ini ke publik, supaya suatu saat team dari Indonesia bisa masuk minimal 10 besar di https://ctftime.org/

Apa itu CTF

CTF adalah satu jenis kompetisi di bidang information security, biasanya formatnya ada tiga: jeopardy, attack-defence, dan mixed. Dalam format jeopardy, kita diminta menyelesaikan berbagai task, dan mendapatkan poin, pemenangnya adalah yang poinnya paling banyak. Dalam format attack-defence, tiap team menyerang dan mempertahankan sistem komputer yang diberikan kepada team tersebut. Format mixed artinya campuran dari kedua itu (tergantung panitianya, mungkin ada aturan khusus).

Setiap kita menyelesaikan soal, kita akan mendapatkan sebuah string yang jadi flagnya (misalnya “Flag{MyFlag}”), dan kemudian kita submit string tersebut ke sistem submisi, sebagai tanda bahwa kita berhasil menyelesaikan soalnya.

Manfaat ikut CTF

Selain menyenangkan (untuk refreshing), mengikuti CTF juga bermanfaat untuk menguji dan menyegarkan ilmu informatika (dari mulai networking, kriptografi sampai programming), ilmu mencari di Google (ilmu Google-fu), serta memaksa kita mengikuti perkembangan terbaru. Untuk Anda yang merasa jago dan sudah mengenal berbagai aspek komputer, inilah ajang untuk menguji kemampuan Anda.

Untuk Anda yang ingin jadi hacker, atau hobinya ngehack, ini adalah ajang legal tingkat dunia di mana Anda bisa menunjukkan kebolehan Anda. Perlu diingat, bahwa di sini Anda diminta untuk menyelesaikan tugas, bukan menyerang server dengan DOS (denial of service attack). Di hampir tiap event CTF selalu ada yang melakukan ini. Ini sama saja seperti Anda diminta bertanding bersama dengan orang-orang, tapi karena Anda nggak mampu bertanding, Anda malah merusak tempat pertandingannya, sehingga tidak ada yang bisa bertanding di situ.

Di Amerika, beberapa team CTF tingkat atas dunia, seperti PPP (Plaid Parliament of Pwning dari Carnegie Mellon University) sangat dikenal di kalangan banyak perusahaan, sehingga alumni PPP ini banyak dicari oleh perusahaan besar (seperti Facebook atau Microsoft).

Team

Sebagian besar event CTF ditujukan untuk team, dan tidak dibatasi jumlah anggota teamnya, sebagian kecil CTF membatasi jumlah anggota team (terutama untuk lomba offline), dan sebagian lagi hanya ditujukan untuk individu.

Hadiah dan Ranking

Banyak event CTF yang memberikan hadiah, mulai dari hadiah kecil seperti lisensi software, sampai hadiah besar seperti uang cash atau tiket pesawat. Biasanya hanya sedikit yang mendapatkan hadiah karena hanya beberapa pemenang saja, tapi banyak yang ikut semua CTF karena ingin belajar, dan mendapatkan ranking tinggi. Situs ctftime.org mentrack tim-tim yang mendaftar di situs mereka, dan memberikan rangking berdasarkan pencapaian dalam tiap event CTF (tiap event bobotnya berbeda). Situs tersebut juga berisi link ke banyak soal dan pembahasan (istilahnya writeup).

Bentuk kompetisi

Kebanyakan CTF online sifatnya jeopardy (walau ada juga yang attack defence, dengan akses VPN), dan hampir semuanya gratis untuk diikuti siapa saja. Sebagian CTF hanya memberikan soal kategori tertentu saja (misalnya SqiLab CTF yang diadakan oleh NotSoSecure hanya berurusan dengan code injection), tapi kebanyakan CTF memberikan soal campuran dalam berbagai kategori.

Jenis soal

Saya akan membahas beberapa kategori yang biasanya ada: web, crypto, forensic, reversing, pwnables, dan misc. Biasanya dalam tiap kategori ada pointnya, yang menyatakan tingkat kesulitan soalnya, misalnya web100 lebih mudah dari web200.

Perlu dicatat bahwa semua soal dalam sebuah CTF jarang sekali bisa diselesaikan dengan tool standar. Contohnya: Anda tidak bisa menjalankan sqlmap langsung untuk mendapatkan akses via SQL Injection (biasanya panitia sudah merancang soalnya seperti itu). Jadi script kiddies yang cuma bisa memakai tool akan segera berguguran.

Soal dalam kategori web biasanya adalah bagaimana masuk ke web site tertentu, atau bagaimana mendapatkan hak akses tertentu (misalnya dari user biasa mendapatkan hak akses admin). Cara masuk webnya bisa berbagai cara, misalnya bisa dari SQL injection, XSS injection, hash extension attack, dsb. Di sini keahlian yang dibutuhkan adalah pemahaman yang baik mengenai teknologi web. Soal dari CTF Noosc hampir semuanya kategori web (silakan lihat writeup yang saya tulis). Contoh lain bisa dilihat dari writeup oleh Rizki Wicaksono (dari ilmuhacking.com, anggota team Rentjong).

Sesuai namanya, soal dalam kategori crypto berhubungan dengan kriptografi. Soalnya bisa sangat sederhana (ini contoh writeup cryptanalysis untuk menyelesaikan substitution cipher), sampai lebih rumit, misalnya mencari kelemahan dari custom encryption yang diberikan. Di sini ilmu kriptografi sangat diperlukan.

Soal dalam kategori forensic meminta kita mengekstrak flag dari data yang diberikan (jadi biasanya kita tidak berurusan dengan memahami/reverse kode program). Contohnya: mengekstrak informasi yang disembunyikan dengan steganography, mengekstrak data dari disk image, memory dump. Pemahaman mengenai berbagai format data dibutuhkan untuk menyelesaikan soal-soal dalam kategori ini. Ini ada dua contoh writeup soal forensic: soal steganografi dan soal memory dump.

Soal dalam kategori reversing meminta kita mereverse engineer sebuah kode (bisa binary, bisa source code), tujuannya untuk mendapatkan flag dari kode tersebut. Keahlian untuk membaca kode assembly biasanya diperlukan untuk menyelesaikan ini (walaupun kadang soalnya bisa berupa source code, seperti yang saya bahas di sini)

Soal dalam kategori pwnables meminta kita mengexploit service yang berjalan di suatu mesin remote. Source dan atau binary (biasanya sih hanya binary saja) dari service yang berjalan akan diberikan dalam soal. Ini merupakan gabungan dari reverse engineering dan exploit writing. Dalam kategori soal reversing, kode diberikan kepada kita dan dijalankan di mesin kita, sementara dalam pwnables, kode dijalankan di mesin remote, dan flag yang harus kita ambil ada dalam mesin remote tersebut. Ini contoh writeup dari team Rentjong dalam lomba di Malaysia.

Soal dalam kategori misc tidak termasuk dalam semua kategori di atas, dan kadang-kadang gabungan dari kategori-kategori di atas.

Berbagai writeup puntuk semua kategori di atas bisa dilihat di https://ctftime.org/writeups

Mulai ikutan

Jika ingin ikut sebuah CTF, bisa langsung mendaftar untuk event terdekat, yang bisa dilihat di https://ctftime.org/event/list/upcoming, hampir tiap minggu ada event baru. Kadang ada juga event yang tidak terdaftar di situ, misalnya jika sifatnya hanya teaser. Weekend ini, 26/27 April 2014 ada event teaser di https://ctf.dragonsector.pl/ yang hadiahnya adalah diskon untuk event offline (ini untuk individual).

Jika event sifatnya adalah team, Anda tetap bisa mendaftar sebagai individu (atau buat saja team dengan anggota satu orang). Jika punya teman-teman yang tertarik hal yang sama, Anda bisa mendaftar bersama. Ketika event berlangsung, semua bisa bertemu (baik di dunia nyata ataupun maya) untuk membahas dan mengerjakan soalnya.

Silakan mencari-cari event dan silakan mencoba. Event CTF biasanya 48 jam atau lebih dan biasanya weekend, jadi Anda bisa meluangkan waktu sebisanya di weekend (misalnya mungkin ketika bangun pagi di hari Minggu, atau sepulang kencan di sabtu malam), karena gratis, Anda juga nggak akan rugi uang. Sebagian orang memakai nama asli, tapi kebanyakan memakai nickname ketika mendaftar, jadi Anda juga tidak akan merasa malu kalau kalah (atau tidak jadi mengerjakan soalnya jika sibuk saat weekend).

Selain event online, di Indonesia sudah diadakan juga beberapa event CTF offline, tapi sayangnya ini tidak banyak didokumentasikan (jarang yang menulis writeupnya), dan kadang eventnya sangat lokal (misalnya ICT USO EXPO Makassar). Kemhan juga mengadakan Cyber Defence Competition

Sebagai tambahan, jika Anda tertarik sedikit sejarah CTF, Anda bisa membacanya di Edisi 29 Echo ezine, ini adalah tulisan member team Rentjong yang sudah berpengalaman dalam banyak CTF. Di artikel itu juga diceritakan tentang berbagai kendala ikut event CTF dari Indonesia, misalnya koneksi Internet yang lambat. Anda juga bisa membaca banyak artikel security lain di Echo ezine (berguna untuk CTF). Buat yang belum tahu, Echo e-zine ini adalah publikasi security dalam bahasa Indonesia sejak 2003.

10 tahun ngeblog bareng Joe

Seperti posting Joe sebelumnya, hari ini 10 tahun kami ngeblog bareng. Dengan kata lain 10 tahun kami sudah punya domain ini. Sedikit flashback, dulu cukup lama mencari domain yang pas dan judul blog yang pas. Nama domain compact byte terpilih karena dari dulu setiap Joe mrogram dia selalu berusaha mengoptimalkan ukuran (byte size) file aplikasi hasilnya secompact mungkin. Ya 10 tahun yang lalu koneksi internet belum secepat sekarang. Mendownload aplikasi yang ukuran besar selalu terasa berat, Apalagi waktu itu Joe lagi memulai belajar bikin aplikasi mobile untuk symbian. Smartphone 10 tahun lalu masih ga sesmart sekarang hehee.

Nah kalau soal judul blog ini rasanya pernah dituliskan kenapa dalam salah satu posting. Kalau ada yang mau tau silakan di Google aja ya hehe.

Duluuuuuu waktu masih semangat ngeblog, rasanya banyak sekali yang pengen ditulis. Kepikiran kalau punya HP dengan keyboard qwerty dan koneksi internet yang unlimited dan cepat pasti bisa ngeblog kapan saja dan di mana saja. Sayangnya sekarang setelah punya HP yang sesuai keinginan malah semakin jarang ngeblog. Mungkin karena di blog orang2 ga banyak komen kayak di socmed ya, dan mengetik status dan komen di socmed jauh lebih mudah dibanding menulis sebuah blog post yang diharapkan ada kesinambungan antara paragraphnya.

Anyway, tulisan ini saya ketik di HP menjelang tidur. Mumpung masih dalam hari ulang tahun 10 tahun ngeblog bareng dan mumpung lagi niat. Semoga setelah hari ini bisa inget buat rajin ngeblog lagi.

10 Tahun ngeblog bareng

Tanggal 7 April 2004 kami memutuskan untuk ngeblog bareng. Ini dua posting pertama kami. Sebenarnya waktu itu kami dah punya blog masing-masing (dua-duanya sudah ditutup), tapi saya mengusulkan buat ngeblog bareng aja, biar postingnya terkumpul. Mbak Risna (waktu itu manggilnya masih pake “mbak”) setuju.

Sebenarnya kalo dipikir-pikir lagi: nekat juga ya, pacaran baru beberapa bulan, dah ngeblog bareng (dan pacarannya pun backstreet, kedua orang tua kami gak tau). Waktu itu saya nggak memikirkan: andaikan putus gimana? karena dari awal kami merasa serius. Gaya pacarannya lebih banyak ngobrol, diskusi, baca buku bareng.

Saya senang kami bisa menuliskan banyak kisah hidup dan berbagai pemikiran di blog ini selama 10 tahun terakhir ini. Tidak semua kisah bisa diceritakan pada waktunya, misalnya betapa susahnya dulu propose jadi pacarnya Risna sampai dikenalkan ke dua temennya untuk blind date. Tapi secara umum blog ini menangkap momen-momen penting dalam hidup kami dari mulai pacaran, menikah, pindah ke Thailand, punya anak, dan berbagai tempat yang kami kunjungi, berbagai keisengan yang kami lakukan.

Meski kebanyakan orang (termasuk kami) sekarang aktif di social media, kami juga masih mengupdate blog ini. Blog ini dibuat sebelum Facebook terbuka untuk umum (Facebook membuka pendaftaran umum tanggal 26 September 2006), dan saya berharap akan tetap ada andaikan nanti Facebook ditinggalkan orang-orang seperti Friendster, MySpace atau Plurk yang sempat populer. Memiliki blog sendiri, dengan hosting sendiri rasanya lebih enak karena semua dikontrol oleh kami sendiri.

Dari sisi teknis: blog ini memakai wordpress dari versi 0.7 (Lihat sejarahnya WordPress di sini, ini adalah versi rilis pertama kali). Sudah sempat pindah hosting beberapa kali (semuanya dijelaskan di berbagai posting yang tersebar di sini).

Semoga dalam kebersamaan kami, kami bisa ngeblog bersama puluhan tahun lagi.