Wartakita.id NETIZEN – Celah keamanan (bug) yang ada di aplikasi Go-Jek diyakini sudah ada sejak sejak lama. Bahkan, untuk menemukan lubang tersebut dan mengeksploitasinya pun disebut Yohanes Nugroho dalam blognya mudah sekali.
Bug tersebut bisa dieksploitasi untuk kepentingan mengubah pulsa driver Go-Jek manapun. Selain pulsa (jumlah pendapatan driver), info-info lain juga bisa diubah. Untungnya bug update ini sudah diperbaiki di URL yang baru, walau kita tetap bisa melihat info ini.
Selain itu, pengeksploitasi juga bisa melihat data pribadi driver. “Lucu kan kalau kita naik Go-Jek, terus bilang: Mas, anaknya Mak Amah kan? Titip salam dari emak. ID driver bisa dengan mudah didapatkan dari history order user. Seharusnya info yang bisa diakses user dibatasi,” kata Yohanes.
Termasuk untuk mengganti nomor ponsel, email, dan nama user lain, tanpa perlu tahu passwordnya. Bug ini masih ada dan disebut Yohanes sangat parah. Sebab, kita bisa mengambil alih akun orang lain.
“Di bulan Agustus, Go-Jek mulai memiliki daftar restoran, berupa nama, lokasi, jam buka, dan sebagainya. Data-data ini pun tadinya gampang sekali diubah. Sekarang kita tetap bisa melihat data-data tesebut,” lanjutnya.
Memang, dari sekian banyak lubang yang ada muncul di aplikasinya, Go-Jek dikatakan Yohanes sudah melakukan perbaikan. Hanya saja, belum semua bug tertutup. Iniah yang disesalkan, lantaran laporan kepada Go-Jek sudah dilakukan sejak beberapa bulan lalu, yakni sejak Agustus 2015.
“Sampai hari ini sebagian bug masih ada. Bug mengubah data sepertinya sudah diperbaiki, tapi bug yang berhubungan dengan privasi masih ada. Misalnya untuk melihat info seseorang berdasarkan customer id-nya,” ujar Yohanes kepada detikINET, Senin (11/1/2015).
Apa Penyakitnya?
Yohanes menjelaskan, hal pertama yang merugikan pihak Go-Jek adalah masalah sistem referral. Sistemnya cukup sederhana: user B bisa memasukkan user ID user A sebagai pihak referrer. User B akan mendapatkan 50 ribu, dan user A akan mendapatkan 50 ribu juga ketika B naik Go-Jek pertama kali. API request yang dikirimkan sangat sederhana. Tidak ada verifikasi bahwa user B sudah login, dan bahwa user B yang memasukkan user A.
Masalahnya adalah: ID user yang dihasilkan berurut, user baru akan memiliki ID yang tidak jauh dari user lama. Dengan membuat skrip, kita bisa meng-assign semua user baru, supaya referalnya adalah kita.
“Sekitar sebulan atau dua bulan setelah saya laporkan ini, mulai ada orang yang memanfaatkan bug ini. Mereka menawarkan isi pulsa Go-Jek dengan harga miring. Setelah kejadian ini, Gojek mendisable account yang nilai pulsanya di atas sejuta,” ungkap Yohanes.
Berikut faktor-faktor yang membuat eksploitasi aplikasi Go-Jek ini gampang:
- Go-Jek tidak melakukan obfuscation terhadap APK Android, jadi mudah dilihat apa saja yang dilakukan di sisi client.
- Server sangat baik hati, tidak ada rate limiting untuk berbagai request. Bahkan ada fitur ‘paging’, misalnya bisa minta satu halaman berisi 100 info driver Go-Jek, lalu kita bisa minta halaman berikutnya.
- Men-download puluhan ribu driver Go-Jek bisa dilakukan sangat cepat.
- Penamaan API endpoint sangat konsisten (bagus), jadi mudah ditebak, misalnya jika ada findByCustomerId, maka kemungkinan ada findByEmail atau findByName.
“Perbaikan untuk berbagai bug tersebut sudah jelas. Pertama harus ada session management. Ketika login, server akan menghasilkan session yang random. Setiap kali request sesuatu, server perlu mengecek session yang aktif. Dari session tersebut, server bisa membatasi akses,” Yohanes menandaskan.