Jakarta, CNN Indonesia -- Yohanes Nugroho, programmer Indonesia yang bermukim di Thailand, membeberkan celah berbahaya di sistem aplikasi Gojek. Tak sekedar memperingatkan, di dalam blognya dia juga memberi saran kepada layanan ojek online ini.
Bug di aplikasi Gojek sejatinya sudah ditemukan cukup lama, yakni sekitar Agustus 2015. Namun Yohanes Nugroho baru mau mempublikasikan temuannya dengan beberapa alasan.
Berawal dari iseng kecurigaan Yohannes ketika mulai melihat bahwa aplikasi ini tidak menggunakan session management untuk menandai bahwa yang melakukan request adalah user yang sudah login.
ADVERTISEMENT
SCROLL TO CONTINUE WITH CONTENT
"Maka saya mulai curiga bahwa data akan bocor," katanya melalui postingan blog miliknya.
Dan apa yang ditakutkan benar, celah di aplikasi ini akan mudah sekali mengeksplotasi akun pengguna dan driver Gojek, mulai mengetahui informasi pribadi, history pemakaian hingga memanipuasi kredit Gojek.
Menurut Yohanes, pihak Gojek sempat mengganti sistemnya dari URL yang ada ke /v2/. OAuth juga ditambahkan. Namun sayang, hal tersebut belum 100 persen menyelesaikan masalah.
"Ternyata ketika saya coba lagi sebelum posting artikel ini, sebagian besar bug yang ada ternyata belum diperbaiki. Token OAuth disimpan, tapi tidak dipergunakan di semua request berikutnya,"
Dia melanjuttkan, secara teknis bug ini mudah sekali ditemukan, mudah dieksploitasi. Agak sulit diperbaiki karena ketika server diupdate, semua client harus diupdate sekaligus.
"Gojek sudah banyak mengubah URL ke versi 2 dan 3, Saya hanya akan menggunakan URL versi 1, supaya nggak semua orang berusaha menghack Gojek dengan URL yang saya berikan," katanya.
Untungnya bug update ini sudah diperbaiki di URL yang baru, walau kita tetap bisa melihat info ini.
Apa yang Dirugikan Pihak Gojek?Hal pertama yang merugikan pihak gojek adalah masalah sistem referral. Sistemnya cukup sederhana: user B bisa memasukkan user ID user A sebagai pihak referrer.
Sementara
user B akan mendapatkan Rp50 ribu, dan
user A akan mendapatkan 50 ribu juga ketika B naik gojek pertama kali. API request yang dikirimkan sangat sederhana:
"Tidak ada verifikasi bahwa user B sudah login, dan bahwa user B yang memasukkan user A," tulisnya lagi.
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.
Saran untuk GojekDia pun memberikan saran agar dan ke depannya Gojek bisa segera menutup bug seperti ini. Mungkin bisa juga jadi pelajaran buat startup lainnya.
"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," tulisnya.
Kepada konsumen atau pelanggan agar tetap berhati-hati men-share info pada sebuah apikasi.
(tyo/eno)