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.

Pertanyaan aneh lain

Ini saya mau menyambung tulisan saya tentang Hacking dan Reverse Engineering. Posting tersebut membahas beberapa jawaban untuk pertanyaan-pertanyaan yang sifatnya agak advanced. Tapi saya masih dapet banyak pertanyaan dari pemula. Misalnya: “gimana sih caranya membongkar email yahoo/gmail/dsb?” atau “gimana caranya mendapatkan account/password YM/Gtalk/facebook/dsb punya orang lain?”, atau
gimana caranya dapetin IP orang lain, atau melacak lokasinya?”.

Sebelum menanyakan pertanyaan-pertanyaan semacam itu, cobalah berpikir logis: kalau Yahoo/Google/Microsoft atau perusahaan lain membiarkan ada lubang keamanan yang sangat besar sehingga siapapun bisa membajak account semua orang, apakah mereka tidak akan dituntut dan apakah orang-orang tetap mau menggunakan layanan mereka?.

Untuk pertanyaan berikutnya: jika Anda tidak tahu konsep IP address, dsb, untuk apa ingin tahu IP orang lain? apakah Anda baru menemukan program yang katanya bisa menghack PC orang lain dengan memasukkan IP-nya? (kemungkinan Anda baru saja menginstall virus/trojan di komputer Anda sendiri). Lalu bagi Anda yang ingin bisa “melacak” orang dari IP-nya: tahukah Anda kalau IP yang diberikan ke pengguna umumnya dinamis dan hanya ISP yang mencatat client dan IP-nya?.

Sekarang jawaban yang lebih teknis. Secara teknis untuk mendapatkan password seseorang, Anda bisa menggunakan opsi “lupa password”, dan mengisi info mengenai orang tersebut. Tapi ini hanya akan berhasil jika orang tersebut membuat pertanyaan rahasia yang gampang ditebak. Cara lainnya adalah dengan “menipu” orang tersebut. Misalnya berpura-pura jadi admin yang meminta perubahan password. Bahkan kadang-kadang ada yang ditipu dengan program sederhana: jika ingin tahu password orang X, masukkan email si X, lalu masukkan email dan password Anda. Nah, Anda tidak akan pernah diberitahu password si X, yang terjadi adalah account Anda akan dibajak orang karena Anda telah memberi tahu emai dan password Anda.

Mengenai melacak orang: saat ini ada banyak layanan yang bisa dipakai untuk tracking orang yang *dikenal*. Contohnya adalah layanan dari operator seluler (menggunakan triangulasi BTS), atau layanan dari pihak ketiga (misalnya Google Latitude yang menggunakan kombinasi IP, BTS, dan GPS). Persamaan dari keduanya adalah: orang yang ingin Anda lacak keberadaannya harus menyetujui dulu supaya Anda boleh memonitor mereka (kecuali Anda punya akses ke HP mereka untuk “menyetujui” bahwa Anda boleh melacak mereka). Cara lain adalah Anda memakai alat khusus yang dipasang di mobil atau benda yang mereka bawa.

Jadi kesimpulannya: tidak ada cara mudah “menghack” atau “melacak” seseorang. Jika Anda punya masalah, selesaikanlah di dunia nyata. Secara khusus, kadang-kadang hal tersebut bisa dilakukan, tapi saya tidak akan mendikusikan hal tersebut. Bagaimana saya bisa tahu bahwa Anda adalah orang jujur yang punya masalah dengan suami/istri, dan bukan stalker/penguntit yang mengejar orang yang tidak bersalah?

Jika masalah Anda berhubungan dengan hukum, selesaikanlah melalui pengacara. Sebagai catatan, polisi Indonesia memiliki divisi cyber yang bisa membantu jika ada masalah yang berhubungan dengan kejahatan cyber. Jika masalah Anda cukup besar/serius, saya yakin akses ke data ISP/operator seluler bisa didapatkan.

Catatan tambahan: jika orang yang ingin Anda lacak adalah orang yang “pintar” (mengenal Internet dengan cukup baik, atau rajin mengikuti podcast/film teknologi), kemungkinan besar orang itu tahu bagaimana caranya agar tidak terlacak. Mereka dapat dengan mudah menggunakan proxy anonim, dan teknologi sejenis (misalnya Tor atau yang sejenis).

Data Pemilih LN Pemilu 2009 Dipajang di Internet

Setelah ramai kasus Diknas yang menampilkan data 36 juta siswa di Internet, sekarang giliran panitia pemilu luar negeri di beberapa negara berbuat hal yang sama. Kali pertama saya menyadari hal ini adalah ketika di milis IndoBangkok ramai membicarakan data pemilih yang dipajang di Internet di situs http://www.pplnbangkok.net/http://www.kbri-bangkok.com/, dan saya menemukan bahwa situs resmi Pemilu 2009 bangkok adalah http://www.pplnbangkok.net/ (Panitia Pemilihan Luar Negeri Bangkok 2009/PPLN Bangkok 2009). Data-data ini cukup penting, meliputi: Nomor Paspor, Nama, Tempat Tanggal Lahir, Jenis Kelamin, Alamat di Indonesia, dan Alamat di Thailand. Akhirnya setelah diprotes, data ini diturunkan dari Internet (meskipun selama beberapa hari masih dapat dicache via Google), dan pejabat yang berkait sudah meminta maaf di milis.

Saya segera berpikir bahwa nama domain yang aneh (pplnbangkok.net) menunjukkan bahwa tidak ada koordinasi antar PPLN, karena jika ada seharusnya nama domainnya hanya satu, dengan sub domain masing-masing negara/tempat PPLN. Jika memang tidak ada koordinasi, maka pasti kesalahan yang sama akan dilakukan oleh PPLN di negara lain. dengan mencari ‘data pemilih 2009 filetype:pdf‘ dan ‘daftar pemilih 2009 filetype:pdf‘ saya menemukan banyak data lain. Misalnya dari Iran (Nama, Jenis Kelamin, Paspor, Nama Kota, Pekerjaan), Seoul (Nama, Tempat Tanggal Lahir, Paspor), Toronto (Nama, No Paspor, Kota, Kode Pos) , Moskow (Paspor, Nama, Tempat Tanggal Lahir, Alamat di Rusia), Singapore (Nama dan Paspor), dan Brunei (Nama, Paspor, Tempat Tanggal Lahir, Pekerjaan, Alamat di Brunei, Alamat di Indonesia). Mungkin masih ada data lain dari PPLN luar negeri, silakan dicari sendiri. Dari semua itu, mungkin hanya Singapore yang paling aman (hanya menampilkan Nama dan Paspor) dan Brunei yang paling parah (meskipun sepertinya data dari Brunei tidak dirilis oleh PPLN, tapi oleh Perhimpunan Masyarakat Indonesia di Brunei Darussalam).

Saya sudah mengetahui fakta ini selama beberapa hari, tapi karena saya punya kemampuan mengendalikan ruang dan waktu, saya berpindah ke Bangkok sebelum data diupload, dan saya sudah menghapus data saya sehingga tidak muncul di file PDF yang dirilis oleh PPLN data saya tidak muncul di daftar pemilih di Bangkok, saya kurang peduli (dan masih sangat sibuk dengan pekerjaan). Saya belum menghubungi pihak-pihak yang berkait. Mungkin hari ini, saat makan siang akan saya lakukan, akhir pekan ini saya harus bekerje mengejar deadline, dan saya harus buru-buru berangkat.

Bagi Anda yang di luar negeri: Tolong cek data di PPLN negara Anda.

Hacking dan Reverse Engineering

Sejak dulu banyak yang bertanya kepada saya mengenai Hacking, dan mengenai  reverse engineering. Pertanyaan ini semakin sering muncul setelah saya menulis mengenai Hacking, Cracking dan IT Pemilu serta artikel Analisis Lengkap Virus Brontok. Pertanyaan yang sering muncul adalah yang sejenis ini “bagaimana caranya ngehack situs x”, “bagaimana caranya ngehack program x”, “di mana saya bisa mendapatkan program x”, “bagaimana caranya menganalisis virus x”.

Seringkali saya tidak membalas email-email tersebut, karena berbagai macam alasan. Pada tulisan ini saya akan menjelaskan apa alasan-alasan tersebut, dan sekaligus berusaha menjawab pertanyaan yang sering diajukan.

Warning posting ini sangat panjang. Pastikan Anda punya waktu luang sebelum mulai membaca. Kalau Anda membaca di kantor, pastikan bos sedang tidak melihat. Mungkin saya akan terdengar seperti orang yang sombong dan mengesalkan, jadi bertabahlah dalam membacanya.

Lanjutkan membaca “Hacking dan Reverse Engineering”

Movie Point Plus+

Bioskop di Chiang Mai sini punya banyak cara promosi. Selain menerbitkan kartu prabayar yang memastikan orang akan datang untuk menghabiskan uangnya menonton, mereka juga punya sistem Movie Point Plus. Sewaktu membeli kartu prabayar senilai sekian baht, biasanya mereka memberikan hadiah berupa hadiah langsung maupun voucher popcorn, soft drink, upgrade kursi (disini ada beberapa level harga kursi), ataupun voucher belanja kosmetik atau voucher masuk ke fitness center.

Movie Point Plus ini tak lain adalah memberikan bonus tambahan setiap Anda menonton beberapa film. Mereka akan memberikan selembar kartu yang akan ditempelin sticker sesuai jumlah tiket bioskop yang Anda beli untuk ditonton. Tapi mereka punya banyak aturan juga yang mungkin membuat orang akan malas menukar poinnnya.

lamabaru

Kartu yang saya maksud seperti di bawah ini. Kami sudah punya 3 kartu, tapi kartu pertama lupa difoto udah dibuang 😛 .

Lanjutkan membaca “Movie Point Plus+”

Menembus Blocking Youtube

Youtube pernah diblok di Thailand, dan sekarang diblok di Indonesia (setidaknya oleh beberapa ISP, menurut adik saya, dari ISP tertentu masih bisa). Nah apa solusinya buat orang yang pengen nonton Youtube di negara di mana youtube dilarang?. Ada beberapa solusi, yang pertama adalah “Youtube Proxy”, search aja di Google kata-kata “youtube proxy” (tanpa tanda kutip). Anda akan menemukan beberapa situs, misalnya http://www.youtubeproxy.co.uk, Anda tinggal mengunjungi situsnya dan bisa kembali menikmati tayangan video youtube. Cara pertama ini bisa dipakai untuk browsing youtube dan melihat video youtube.

Cara berikutnya bisa dipakai jika Anda sudah tahu URL video youtube. Mungkin Anda dapat URL nya dari email, dari messenger, atau dari source halaman web yang Anda kunjungi. Jika Anda mengunjungi sebuah blog yang mengambil video youtube, Anda bisa mendapatkan URL-nya dengan melihat source halaman webnya. Anda bisa mencari google dengan kata kunci “Youtube Converter” (tanpa tanda kutip), Anda akan mendapatkan beberapa link, misalnya: http://convertyoutube.com/.

Untuk bisa browsing youtube (browsing dalam arti melihat-lihat video yang ada, agar bisa didownload dengan metode 2), Anda bisa menggunakan proxy online yang memakai protokol HTTPS. Proxy HTTPS akan sulit diblok, karena isi data terenkripsi. Contoh proxy yang memakai HTTPS adalah https://vtunnel.com/.
Lanjutkan membaca “Menembus Blocking Youtube”

Rekening Bank Aspal

Nggak nyangka, ada orang yang jual rekening bank BCA dan Mandiri aspal di Internet. Ini kan bisa dipake buat para penjahat (penipu SMS misalnya) untuk melakukan aksi tanpa terlacak. Mereka memakai e-gold, dan pembelian domain pun dilakukan dengan pintar (memakai proteksi nama pendaftar), memakai DNS portland.co.uk, dan baru dibeli baru-baru ini. Gimana ya polisi Indonesia bisa bertindak atau nggak? web hostingnya di UK.