Festival Bunga Chiang Mai

Setiap tahun di Chiang Mai ada festival bunga di awal bulan Februari (Chiang Mai Flower Festival). Ternyata setelah sekian lama di sini, kami belum pernah menuliskan soal festival bunga ini. Festival ini diselenggarakan tiap Sabtu pertama bulan Februari.

Ada dua bagian utama festival ini: parade mobil bunga, dan tempat parkir mobil bunga.  Paradenya pagi hari, dan selain mobil bunga disertai juga dengan berbagai tarian, delman dan juga marching band. Di tempat parkir mobil bunga, ada banyak makanan dan juga panggung musik.

Bagi para pengunjung/turis ke Chiang Mai: bagian paling seru adalah paradenya, jadi siapkan diri pagi-pagi datang ke salah satu titik jalan yang dilalui parade. Untuk mudahnya, gunakan Grab/Uber dan minta diturunkan di salah satu titik yang nyaman/teduh.

Salah satu mobil bunga (2008)

Di awal waktu kami di Chiang Mai, kami datang ke sini, lalu mengajak orang tua juga untuk melihat festival ini. Setelah Jonathan lahir kami juga mencoba untuk melihat festival ini. Ternyata acara ini agak kurang cocok untuk anak kecil karena terlalu rame , jadi setelah agak lama baru tahun ini kami datang lagi ke festival ini, tapi hanya di tujuan parkir mobil bunganya saja.

Suasana ramai di tempat parkir mobil bunga

Mobil bunga diparkir di jalanan dekat Buak Hard Public Park, dan jalanan itu ditutup untuk mobil sehingga penjual makanan dan penjual berbagai tanaman bisa berjualan di sisi jalan. Ada beberapa lokasi di sekitar taman yang bisa dijadikan tempat parkir, tapi harus bayar parkir (di berbagai tempat di Chiang Mai, bayar parkir merupakan hal yang tidak lazim, bahkan di hampir semua mall dan supermarket parkir digratiskan).

Sudah dicoba, beneran nggak pedes

Di dalam park sendiri ada banyak bunga yang baru dipasang, selain yang memang ada sehari-hari di taman tersebut.

Intinya di dalam taman kita bisa melihat bunga, membeli makanan, membiarkan anak bermain di playground (Tapi sangat rame di hari festival bunga), membeli makanan dan melihat pertunjukan.

Skrip dan Extension untuk Browsing

Sekarang ini banyak waktu saya habiskan di browser, bahkan ketika melakukan programming sekalipun perlu sering mencari solusi dengan Google. Untuk mempernyaman browsing, saya menggunakan berbagai browser extension baik yang diterbitkan resmi atau buatan sendiri plus beberapa bookmarklet.

Untuk yang belum tahu: browser extension adalah program yang bisa ditambahkan ke browser untuk menambah atau mengubah fungsionalits tertentu.  Supaya lebih singkat, berikutnya extension yang saya maksud di artikel ini adalah browser extension.

Salah satu contoh extension paling populer adalah untuk memblokir iklan. Ini membuat browsing jadi lebih nyaman, lebih cepat dan lebih hemat data. Extension lain yang banyak digunakan orang adalah password manager untuk mengingat password berbagai situs.

Semua browser modern saat ini mendukung extension. Browser yang saya gunakan sehari-hari adalah Chrome dan Firefox, tapi informasi yang saya tuliskan di sini berlaku untuk browser lain juga (semua browser sudah mendukung extension).

Dulu saya cukup percaya berbagai extension yang ada, tapi lama-lama kepercayaan itu mulai hilang. Ada banyak kasus yang menyebabkan saya kurang percaya, baik itu karena bug parah, karena kecerobohan developer, atau keserakahan developer.

Contoh bug parah adalah di extension Last Pass, program password manager. Beberapa kali bug penting ditemukan di extension ini yang memungkinkan orang jahat untuk mengambil semua password kita, dan bahkan dalam kondisi tertentu bisa menjalankan program (misalnya malware) di komputer kita. Saya sempat memakai extension ini, lalu segera menguninstall setelah beberapa kali bug semacam ini muncul.

Contoh yang ceroboh: ada extension “Web Developer” yang penggunanya ada 1 juta extensionnya “dibajak” dengan phishing email. Sang penjahat mengambil alih account developer lalu mengupload versi baru extension dengan perubahan. Pembajak  mengubah extension untuk menginjeksi iklan ke halaman yang dikunjungi, dan mencuri password Cloudflare tapi Andaikan pembajak jahat maka bisa digunakan untuk mencuri password apa saja (termasuk juga situs Bank).

Contoh yang serakah: sebagian extension yang usernya banyak dijual ke pihak lain, dan pihak yang baru ini biasanya akan mencoba mencari uang dengan cara apapun. Kadang sebuah extension tidak dijual tapi bekerjasama dengan pihak lain yang meminta timbal balik (ini salah satu contohnya).

Untuk dapat mengubah halaman web yang kita kunjungi, maka sebuah extension perlu punya akses ke halaman yang kita kunjungi. Ini artinya sebuah extension yang jahat bisa mencuri password ataupun data lainnya, atau menjalankan skrip apapun (misalnya crypto miners). Secara umum semua extension (terutama yang memiliki permission berbahaya) bisa memiliki bug, bisa jatuh ke tangan yang salah karena kecerobohan developer, dan bisa juga dijual ke pihak lain.

Sekarang saya mengurangi jumlah extension yang saya pakai dan memperhatikan berita untuk berbagai extension yang saya pakai. Contoh: dulu saya memakai AdBlock plus, tapi setelah pembuat extension ini bekerja sama dengan berbagai pihak agar iklan bisa diloloskan, maka saya berpindah ke uBlock Origin.

Chrome dan Firefox mendukung penggunaan profile untuk memisahkan beberapa account (misalnya account pekerjaan dan account rumah). Untuk berbagai jenis pekerjaan, saya memakai profile browser tersendiri. Tiap profile bisa memiliki extension sendiri. Jadi misalnya saya ingin melakukan pentesting, saya bisa memakai profile khusus dengan berbagai extension khusus pentesting.

Saat ini saya percaya berbagai extension dari pembuat browser (extension dari Google untuk Chrome dan extension dari Mozilla untuk Firefox).  Tapi tidak langsung percaya pada extension yang populer karena belajar dari kasus extension “Web Developer”: popularitas sebuah extension bukan jaminan bahwa itu akan aman.

Waktu tahun-tahun pertama memakai Firefox, ada extension Grease Monkey. Dengan ini kita bisa membuat skrip sendiri (atau menggunakan skrip orang lain) untuk mengubah perilaku sebuah situs. Salah satu yang pernah saya publish dulu adalah untuk otomatis membuka tag spoiler di kaskus. Dulu ada situs userscripts.org yang menghosting semua skrip ini, tapi sekarang sudah down. Saat ini ada beberapa extension pengganti Grease Monkey dan ada situs pengganti userscripts.org, tapi semuanya agak kurang meyakinkan dari sisi security.

Di browser kita bisa membuat bookmark dan isinya adalah URL javascript, istilahnya bookmarklet. Dengan bookmarklet  kita bisa menjalankan skrip kecil. Ini bisa menjadi alternatif untuk extension. Saya memakai beberapa bookmarklet buatan orang lain (biasanya kodenya singkat dan bisa dengan mudah dimengerti) dan membuat beberapa bookmarklet sendiri.

Bookmarklet buatan saya biasanya untuk mengatasi beberapa site yang menyebalkan. Contohnya di salah satu situs banking yang saya pakai di sini mematikan semua fungsi copy paste di situs tersebut, sehingga saya tidak bisa copy paste nomor ID untuk membayar tagihan internet (padahal nomornya panjang) dan entah kenapa untuk jenis tagihan ini tidak bisa disimpan sebagai favorit. Dengan bookmarklet sederhana, saya bisa memasukkan nomor pelanggan ini langsung. Contoh skripnya kira-kira seperti ini:

javascript:document.querySelector(“#ctl00_ctl00_C_CW_txtRef2”).value = “nomoridsaya”;

Ada beberapa situs menyebalkan sejenis ini: meminta banyak input tapi tidak bisa disimpan jadi harus selalu entry ulang. Menurut saya bookmarklet adalah yang termudah dan teraman. Alternatif lain saya perlu menggunakan extension khusus untuk mengaktifkan kembali copy paste, tapi ini menambah kekhawatiran karena ada kemungkinan malah extension tersebut mencuri password saya (mungkin versi saat ini aman, tapi ketika auto update ternyata sudah dibajak orang lain).

Selain menggunakan bookmarklet, sekarang saya mulai memilih untuk membuat extension sendiri. Saat ini extension sudah sangat mudah dibuat dan didebug, dan fiturnya bisa lebih banyak dari userscript maupun bookmarklet (sebuah extension bisa memiliki ikon di toolbar, bisa sinkronisasi data antar browser, dsb). Firefox dan Chrome juga sudah memakai API yang serupa (web extension API). Mozilla juga membuat polyfill agar extension bisa kompatibel di kedua browser.

Mozilla dan Google memiliki tutorial yang bagus untuk mulai membuat extension sendiri. Tutorial dari Google bisa diakses di sini dan Mozilla di sini. Versi Mozilla menurut saya lebih bagus karena penjelasannya lebih cross platform. Selain tutorial, ada banyak contoh kode yang disediakan yang oleh Chrome dan Mozilla.

Jika Anda programmer yang sudah lama tidak menyentuh Javascript, perlu diperhatikan dengan seksama bahwa ada banyak fitur security yang diaktifkan di sebuah extension, misalnya CSP (content security policy) yang memblok inline javascript (tidak bisa “onlick=fungsi() “di tag html), dan berbagai aksi butuh permission di manifest.json.

Setelah membuat extension untuk satu browser, kita juga ingin agar extension itu bisa dipakai di browser lain di komputer lain, misalnya di rumah dan kantor atau laptop dan desktop. Di Chrome kita bisa membuat extension yang diterbitkan di Chrome Web Store, tapi statusnya unlisted sehingga orang lain tidak bisa menginstall extension tersebut jika tidak tahu URLnya (URL-nya panjang dan random). Selain itu kita juga bisa mempublish secara private untuk account kita sendiri. Dengan cara ini extension yang dibuat bisa dipakai di semua browser yang kita miliki. Di Firefox kita bisa menghosting sendiri extension yang kita miliki di web sendiri (atau bisa ditaruh di Dropbox/File sharing lain).

Di satu sisi, extension buatan sendiri bisa sangat aman, apalagi kalau orang lain tidak mengetahui apapun tentang extension yang kita buat. Tapi extension juga bisa memiliki bug, dan ada kemungkinan bisa dieksploitasi orang lain (lihat kasus Last Pass di atas). Saya memisahkan antara extension yang penting (ada kemungkinan menyentuh data penting), dan yang kurang penting, supaya jika satu “jebol”, yang lain tidak terpengaruh.

Dengan extension buatan sendiri, hal-hal yang sangat spesifik bisa saya dapatkan. Contoh kecil yang baru saya buat adalah ini: ketika mengunjungi situs bitcoin di Thailand (bx.in.th) saya selalu ingin membandingkan dengan situs bitcoin Indonesia (bitcoin.co.id). Kadang jika ada masalah spesifik di satu negara , harga bitcoin bisa tiba-tiba berbeda jauh  (misalnya ketika isu Bank Indonesia melarang bitcoin, harga bitcoin di Indonesia harganya yang tadinya lebih mahal dari Thailand tiba-tiba anjlok menjadi 15% lebih murah dari harga di Thailand).

Saya juga menambahkan menu search ketika memilih teks. Saya bisa mengklik kanan dan mencari kata di KBBI karena kadang tidak yakin apa ejaan baku sebuah kata. Contoh lainnya: ketika membaca mengenai cryptocurrency, sering kali saya tidak pernah mendengar nama sebuah cryptocoin (karena sekarang sudah ada lebih dari 1400 koin), saya bisa menambahkan “search in coinmarketcap” untuk mencari informasi mengenai koin tertentu. Sebagai catatan: saat ini kita tidak bisa menambahkan context menu search tanpa extension.

Membuat extension sendiri memang butuh waktu, tapi saya punya beberapa alasan kenapa ini worth the time:

  1. Saya jadi terpaksa belajar Javascript dan berbagai API baru yang ada di browser
  2. Saya merasa lebih aman karena tahu dengan tepat kode apa yang saya tuliskan
  3. Dalam jangka panjang, extension yang saya buat akan menghemat waktu saya lebih banyak

Menurut saya membuat extension ini cukup menarik karena biasanya program yang dibuat cukup kecil, dan sudah ada banyak library Javascript untuk melakukan hampir apa saja. Awalnya ketika mencoba satu fitur tertentu memang butuh waktu (contohnya menambahkan custom menu right click pertama), tapi berikutnya sangat cepat (menambah menu baru hanya perlu semenit saja).

Untuk saat ini saya belum tertarik untuk mempublikasikan extension pribadi yang saya pakai karena merasa terlalu spesifik untuk kasus saya, dan jika dipublikasikan akan menambah beban untuk memaintain extension tersebut.

Hacking aplikasi web dengan Zaproxy

Saat ini kebanyakan tulisan di blog ini sifatnya cerita yang tidak sampai ke teknis detail. Tulisan kali ini sangat praktis, mengenai memakai Zaproxy untuk hacking (mencari bug atau mengeksplotasi bug) aplikasi web. Atau lebih tepatnya lagi aplikasi yang memakai komunikasi HTTP, baik itu aplikasi berbasis mobile, desktop, maupun browser. Sekaligus ini untuk menjawab berbagai pertanyaan mengenai hacking web yang sering diajukan ke saya.

Zaproxy pada dasarnya adalah sebuah intercepting proxy dengan berbagai fitur tambahan (scanner, spider, dsb). Sebuah intercepting proxy bisa mencegat komunikasi dari client ke server (request) dan balasan dari server (response). Defaultnya, komunikasi yang dicegat akan diteruskan saja dan dicatat (di-log), tapi kita juga bisa mengubah baik request maupun response.

Sebagai catatan, Zaproxy bukan satu-satunya tools yang ada, tapi tools ini gratis,  open source, cross platform (Windows, OS X, Linux) dan fiturnya lengkap. Alternatif populer adalah Burp suite, ini ada versi gratisnya, tapi fitur pentingnya berbayar (salah satu fitur paling penting yang berbayar adalah menyimpan sesi). Tools lainnya yang gratis dan bagus untuk Windows adalah Fiddler (saat ini Fiddler versi OS X dan Linux masih beta), sayangnya Fiddler tidak open source. Jika sudah menguasai salah satu tools ini, berpindah yang lain tidak terlalu sulit. Continue reading “Hacking aplikasi web dengan Zaproxy”

Bulan Penuh Diskon

Bulan November merupakan bulan penuh diskon, karena ada 11/11 (singles day) dan ada banyak diskon dari berbagai situs di China, lalu diikuti dengan Black Friday dan Cyber Monday yang penuh dengan diskon global.

Dibandingkan tahun lalu, tidak terlalu banyak diskon yang diberikan oleh AliExpress, benda mahal yang saya beli  hanya Proxmark3 versi paling sederhana (tidak memiliki konektor batere) dengan harga 66 USD (termasuk ongkos kirim). Proxmark3 ini adalah tool untuk eksplorasi RFID/NFC.

Sebenarnya dalam banyak kasus berbagai penstest dan hacking NFC bisa dilakukan dengan reader sederhana yang harganya kurang dari 5 USD, tapi proxmark ini diperlukan untuk sniffing dan juga untuk mengakses berbagai kartu yang tidak standar.

Texas Instruments baru saja meluncurkan board MSP43  baru (Launchpad dengan FRAM), dengan harganya 9.9 USD belum termasuk ongkos kirim, tapi saat ini  diskon menjadi 4.30 USD (sudah termasuk ongkos kirim). Diskonnya masih ada sampai Desember 2017. Development board dari TI ini bisa dipakai juga memprogram chip MSP430 lain.

Waktu pindah ke rumah baru, UPS yang tadinya baik-baik saja menjadi tidak berfungsi sama sekali. Setelah dibongkar, ternyata ada kabel yang kendor di dalamnya (mungkin kendor waktu pindahan). Tapi UPS-nya sudah tidak menyimpan daya lagi dan baterenya agak melendung (batere dari tahun 2012). Akhirnya  beli baru dan UPS-nya bisa berfungsi lagi.

Ada kit yang namanya Makey Makey yang fungsinya mengubah berbagai benda konduktif menjadi input device. Contoh benda dan aplikasinya bisa dilihat di situs tersebut, tapi beberapa di antaranya: mengubah pisang menjadi alat musik atau membuat tangga musikal dengan conductive tape.

Harga makey makey cukup mahal, jadi ketika saya lihat ada modul MPR121  di aliexpress yang harganya kurang dari 2 USD, saya langsung cek apakah mudah dipakai (dari beberapa tutorial dan video youtube), dan ternyata mudah. Dengan menghubungkan modul ini ke Arduino Leonardo, saya bisa membuat tiruan makey makey. Sebagai catatan, seri Arduino Leonardo dan Pro Micro bisa dengan mudah mengemulasikan USB, seri lain defaultnya tidak bisa kecuali dengan menambah beberapa komponen dan memakai software Lufa atau V-USB.

Cukup seru memainkan ini, tapi setiap kali selesai bermain dari kamar lain dan melihat pisangnya, Joshua berusaha ambil untuk dimakan.

Dan setelah share ini di Facebook, beberapa hari kemudian muncul iklan diskon Makey makey di Facebook feed.

Selain bulan diskon, di bulan November kami banyak melakukan aktivitas lain.  Tahun ini festival Loi Krathong dirayakan di awal bulan. Kami datang ke sungai dekat rumah untuk melihat orang-orang melarung krathong. Festival ini selalu bersamaan fetival Yi Peng, di mana orang menerbangkan sky lantern (seperti di film Tangled).

Beberapa kali ulang tahun Jonathan dirayakan bersama orang Indonesia di Chiang Mai, dan tahun ini lagi. Sekarang lebih ramai dari dulu karena lebih banyak keluarga yang punya anak. Tema tahun ini Doctor Who (sebelumnya Pokemon, dan sebelumnya lagi Paw Patrol).

Risna berhasil membuat tempe lagi tahun ini dengan ragi yang dibawakan oleh mama saya. Seperti biasa, demi privasi, foto-foto yang ada orang lain hanya diupload di Facebook untuk friends saja.

Untuk kesekian puluh kalinya, kami jalan-jalan di Night Safari. Sebenarnya tempat ini mahal (800 baht sekitar 320 rb rupiah per orang) tapi kami punya membership gratis masuk berapa kalipun dalam 6 bulan (membership 6 bulan hanya 500 baht sekitar 200 rb rupiah). Kami bisa menghabiskan waktu 3-6 jam di sini tiap kali datang. Ada bus keliling 2 jalur, totalnya sudah 1 jam, plus ada play ground (biasanya sekitar 1 jam main di play ground).

Joshua menjatuhkan iPad ke jempol kakinya dan hasilnya dalam beberapa hari kuku kakinya lepas, jadi kami membatasi jalan-jalan ke tempat yang tidak berdebu/berpasir. Ketika dibawa ke night safari, Joshua dengan semangat berlari di walking trail.

Ada tempat baru yang kami kunjungi: Rabbit Union. Di sini anak-anak bisa memberi makan dan mengelus-elus kelinci. Awalnya cukup menyenangkan bermain dan mengejar kelinci, tapi di akhir Joshua mulai berusaha mengangkat kelincinya.

Chiang Mai Citylife Garden Fair adalah acara tahunan outdoor. Di sini ada musik, banyak penjual makanan, pembaca kartu tarot, dan ada juga kegiatan untuk anak-anak.

Jonathan ikut menghias pot bunga, dan setelah itu potnya (dengan bunganya) bisa dibawa pulang.

Wii kami yang umurnya sudah hampir 10 tahun rusak. Sepertinya NAND-nya error secara fisik karena sudah dicoba restore dari backup (yang dibuat dengan BootMi) tapi gagal. Format ulang dan recreate juga gagal.

Terpikir untuk upgrade ke Wii U atau Switch, tapi akhirnya beli second hand console Wii lagi dari eBay. Nintendo Switch masih mahal dan tidak kompatibel dengan Wii Fit Board, sedangkan Wii U sepertinya masih agak bahaya jika Joshua membawa-bawa controllernya.

Teringat dulu saya pernah bikin beberapa app homebrew di console ini yang sampai saat ini masih berjalan karena Wii tidak mengupdate lagi firmwarenya.

Saya tidak mengikuti berita kalau Rasberry Pi meluncurkan majalah baru untuk oprekan hardware secara umum, bukan hanya Raspberry Pi. Versi PDFnya gratis bisa didownload dari hsmag.cc dan kita juga bisa berlangganan versi fisiknya.

Saya sempat heran kenapa ada majalah baru di kotak surat, ternyata sebagai pelanggan MagPi, saya dapat edisi pertama fisik gratis. Dan jika Anda ingin berlangganan, ada kode diskon 25 GBP di kertasnya.

Hacking dan Reverse engineering hardware

Saat ini di jaman IOT, makin banyak orang yang tertarik untuk hacking dan reverse engineering (RE) hardware. Karena sudah cukup banyak orang menanyakan topik ini, maka di artikel ini akan saya bahas dasar-dasarnya, plus tools apa saja yang dibutuhkan jika ingin memulai.

Dalam artikel ini RE hanya bertujuan memahami software dan hardware dalam sebuah sistem. Hacking hardware bermakna lebih luas misalnya menambah atau mengubah sesuatu di hardware, misalnya menjalankan Doom di printer, membuat hardware baru, atau oprekan apapun yang berhubungan dengan hardware.

Supaya bisa mengubah sebuah hardware yang tidak terdokumentasi, kita perlu melakukan dulu reverse engineering untuk memahami cara kerjanya, baru setelah itu kita bisa melakukan perubahan. Untuk hardware open source atau yang dokumentasinya sangat baik, proses RE ini tidak perlu.

Tujuan melakukan Hacking Hardware

Ada banyak tujuan RE dan hacking hardware, misalnya:

  • Mencari key enkripsi untuk mengakses konten gratis atau untuk membuat konten baru (misalnya game homebrew), atau bahkan membajak, contohnya dalam kasus Game Console
  • Memperbaiki, menambah atau menghilangkan fungsionalitas , misalnya menambah SD Card di router
  • Mengekstraksi firmware dengan berbagai tujuan: mencari bug di firmwarenya, mengclone firmwarenya (membuat produk tiruan), mencari key dalam firmwarenya

Perlu dicatat bahwa dalam 99% kasus, ujung dari reversing hardware adalah melakukan reversing software yang berjalan di hardware tersebut. Continue reading “Hacking dan Reverse engineering hardware”

Jadi peserta CTF yang bener dong, jangan malu-maluin

Tahun lalu saya mengkritik panitia Cyber Jawara karena soal CTF-nya ngawur. Sekarang gantian saya mengkritik peserta yang ngawur di penyisihan online. Banyak peserta yang sharing jawaban, seperti mencontek soal ujian.

Tahun ini, panitia Cyber Jawara dan pembuat soal sudah bekerja sangat baik. Soal yang dibuat berkualitas, dan mereka juga mengecek jawaban peserta dengan teliti sehingga kelakuan curang seperti itu bisa diketahui dan didiskualifikasi.

Kutipan komentar dari panitia (Fariskhi Vidyan):

jadi gini ceritanya ya. Ada beberapa tim yang melaporkan ada tim-tim yang minta flag dan juga menawarkan flag dengan bukti screenshot. Jadi ada tim yang kerjaannya minta-minta flag dan mendistribusikan itu ke tim lain dengan syarat minta pap/foto tim. Ada juga yang pakai cara-cara lain. Gara-gara komunikasi pakai telegram jadinya mudah untuk ngelakuin ini.

Selain itu writeupnya juga pada gak bener. Ada yang persis copy paste. Bahkan user terminalnya pun sama persis -,- dan kata-katanya pure copy tanpa ada perubahan satu karakter pun. Banyak juga yang isinya asal-asalan dan bahkan penjelasan yang salah pun diikutin.

Dan katanya ini emang udah terjadi dari tahun2 lalu. Tapi kalau tahun2 lalu nilai akhir itu nilai di web scoring + nilai write up. Makanya yang curang-curang pada datang rombongan. Mana bisa begitu. Untuk tahun ini, ditegasin dengan kasih penalti besar-besaran ke write up yang gak valid, untuk nilai soal yang write upnya gak bener/ngasal dijadikan 0. Ada yang tadinya full score sampai jadi di bawah 500. Yang write up soalnya sama persis juga dikasih penalti dua-duanya.

Saya kesal dengan mentalitas pencontek seperti ini. Dulu waktu saya masih sering ikutan CTF di akhir pekan, banyak juga yang menanyakan apa flag (jawaban) sebuah soal. Sebenarnya kalo ada yang tanya petunjuk (hint) untuk mengerjakan soalnya, biasanya akan saya jawab. Misalnya akan saya jawab dengan: coba SQL injection, atau: coba baca artikel ini.

Untungnya masih ada beberapa yang bertanya seperti itu, dan sampai sekarang pun masih ada yang rajin menanyakan hint dan meminta petunjuk buku atau artikel mana yang perlu dibaca untuk menyelesaikan soal tertentu atau memahami konsep tertentu. Orang-orang seperti ini yang akan sangat dirugikan oleh cheater.

CTF perlu anti contek juga?

Banyak orang mengkritik kalau pejabat pemerintah bobrok, banyak koruptor, dsb. Padahal kelakuan seperti itu dimulai dari kelakuan kecil seperti mencontek ini.  Jangan pikir bahwa mencontek ini tidak merugikan siapa-siapa: di lomba semacam ini, kelakuan curang akan sangat merugikan orang yang jujur dan memiliki keahlian.

Sebenarnya apa sih tujuan main CTF kalau mainnya curang? CTF itu untuk belajar, dan nanti bisa terpakai di dunia nyata di dunia security. CTF juga buat bersenang-senang seperti menyelesaikan puzzle. Kelakuan cheater seperti ini cuma merusak kesenangan orang yang beneran menikmati main CTF.

Andaikan team curang ini lolos ke final, mereka akan bengong melihat soal-soal yang ada. Andaikan panitia tidak teliti, dan semua team cheater yang masuk final, maka ketika ke tahap berikutnya di level ASEAN, mereka akan bengong dan memalukan Indonesia.

Mencegah kecurangan

Sebenarnya ada cara untuk mempersulit kecurangan semacam ini, tapi panitia harus bekerja ekstra. Tiap flag bisa dibuat unik per peserta, jadi flag tidak bisa dishare begitu saja. Tentunya tidak mudah membuat variasi ini untuk semua jenis soal, tapi mungkin bisa dilakukan untuk sebagian soal saja. Ini tidak mencegah peserta untuk sharing cara mereka menyelesaikan soal.

Untuk membuat orang segan berbagi metode, di beberapa CTF, skor untuk satu soal dikaitkan dengan dua faktor: siapa yang menyelesaikan duluan dan berapa banyak yang menyelesaikan soal tersebut.

Peserta yang duluan menyelesaikan soal mendapat skor lebih tinggi dari peserta berikutnya (misalnya 100%, 99%, dst). Jika sebuah soal banyak diselesaikan oleh orang, maka bobot soal dikurangi, artinya soal yang hanya bisa dipecahkan oleh 10 orang bobotnya lebih tinggi dari yang bisa diselesaikan 100 orang.

Dalam metode scoring ini skornya jadi dinamis. Misalnya soal 1 nilai bobot awalnya 1000. Team A menyelesaikan soal 1, dan mendapat skor 1000. Tiba-tiba ada 9 peserta lain yang berhasil menyelesaikan, bobot skor dikurangi jadi 900, sekarang tiba-tiba team A memiliki skor 900 meskipun tidak melakukan apa-apa.

Team yang jagoan, yang bisa menemukan beberapa flag akan malas sharing dengan team lain: buat apa sharing, nanti skor saya akan menurun kalo banyak yang menyelesaikan soalnya.

Penutup

Bagi saya sendiri, CTF untuk bersenang-senang, kenalan dengan banyak orang, dan kadang-kadang juga mendatangkan rejeki dari tawaran pekerjaan. Beberapa CTF (Seperti Flare On) juga menawari peserta untuk mengirimkan resume (jika berhasil menyelesaikan semua challengenya).

CTF yang baik dan fun butuh panitia yang baik, dan juga butuh peserta yang baik. Jadilah peserta CTF yang jujur dan mau belajar. Panitia jadi akan punya lebih banyak waktu untuk membuat soal yang baik daripada susah payah mencegah cheater.