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 3: 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 “{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 “lulusan” 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.

3 thoughts on “Security CTF”

  1. Pingback: CDC Kemhan 2015

Leave a Reply

Your email address will not be published. Required fields are marked *