Kebocoran Data Pengguna Tokopedia, Bukalapak, dan Bhinneka: Siapa Peduli?

Data pribadi e-commerce bobol.

JIKA Tokopedia, Bukalapak, dan Bhinneka beroperasi di Eropa dan terbukti data pengguna mereka bocor, di bawah aturan GDPR (General Data Protection Regulation), perusahaan ini bisa dikenai denda maksimal  £17,5 juta atau sekitar Rp 300 miliar rupiah atau 4% dari pendapatan tahunan. Di Indonesia? Pemerintah belum tampak melangkah untuk menginvestigasi dugaan pelanggaran ketiga e-commerce besar tersebut. Batu sandungan hanya ada di depan Tokopedia berupa gugatan senilai Rp 100 miliar yang dilayangkan Komunitas Konsumen Indonesia (KKI) kepada Menteri Komunikasi dan Informatika RI dan PT Tokopedia.

Berita mengenai kebocoran data pengguna Tokopedia, decacorn pertama Indonesia, menyeruak jagat siber pada 1 Mei lalu. Sebanyak 91 juta data yang dilaporkan sebagai data pengguna Tokopedia ditawarkan seharga US$5.000 di forum hacker. Lima hari kemudian, tepatnya 6 Mei, sebanyak 12,9 juta data pengguna Bukalapak kembali diperjualbelikan. Data ini diduga merupakan data yang bocor pada Maret 2019. Lalu pada 10 Mei 2011, sebanyak 1,2 juta data yang diduga data pengguna toko online Bhinneka diketahui bocor dan ditawarkan untuk dijual di forum pasar gelap online (dark web).

Dalam rilis resminya, Tokopedia menyatakan bahwa mereka "menemukan adanya upaya pencurian data terhadap pengguna Tokopedia." Sementara Bukalapak mengakui adanya akses tidak sah terhadap cold storage mereka (rilis Bukalapak). Sedangkan Bhinneka menyatakan masih melakukan investigasi terhadap dugaan kebocoran tersebut. Ketiga perusahaan ini juga menyatakan bahwa tidak ada data transaksi yang dibobol dan data finansial tetap aman; bahwa password akun pengguna tetap terlindungi dengan baik.

Sampel data yang ditawarkan hacker (antara lain di raidforums) menunjukkan bahwa password akun pengguna memang sudah di-hashed dengan enkripsi satu arah. Namun, data pribadi pengguna seperti tanggal lahir, alamat email, nomor telepon, bahkan alamat lengkap muncul sebagai teks telanjang, tanpa enkripsi. Ini termasuk personal identifiable information (PII). Atau menurut Pasal 1 ayat 2 Permenkominfo Nomor 20/ 2016 tentang Perlindungan Data Pribadi Dalam Sistem Elektronik, data tersebut merupakan Data Perseorangan Tertentu, yakni "setiap keterangan yang benar dan nyata yang melekat dan dapat diidentifikasi, baik langsung maupun tidak langsung, pada masing-masing individu." Data ini harus dilindungi kerahasiaannya

Kebocoran data sudah menjadi ancaman yang nyata beberapa tahun belakangan ini. RiskBased Data Breach mengeluarkan laporan pada akhir 2019 bahwa sampai kuartal ke-3  tahun lalu ada 5.183 kasus kebocoran data dan 7,9 miliar data terekspos. Ini peningkatan 33,3% dibandingkan periode yang sama di 2018. Semestinya e-commerce Indonesia bisa melakukan antisipasi untuk mencegah pembobolan dan melindungi data pribadi seandainya basis data bobol. Sayangnya, langkah antisipasi tidak dilakukan meskipun Bukalapak diketahui mengalami kebocoran data tahun lalu.

Berikut ini beberapa catatan menarik dari kasus kebocoran data beberapa e-commerce besar itu.

Hashing, Salt & Pepper
Tokopedia, Bukalapak, dan Bhinneka telah melindungi akun penggunanya dengan melakukan hashing terhadap password. Dari sampel basis data pengguna yang dibocorkan hacker, Tokopedia diduga menggunakan SHA384 sementara Bukalapak menggunakan algoritma SHA512 dan salt atau Bcrypt. Yang menarik adalah Bhinneka. Password pengguna tampak seperti teks berformat Base64 encode atau hasil enkripsi dua arah. Bukan praktik yang baik menggunakan encoding atau enkripsi dua arah terhadap password karena hasilnya bisa dibalikkan menjadi teks biasa. 

Catatan lainnya, baik Tokopedia ataupun Bhinneka tidak menggunakan salt. Ini adalah teks acak yang ditambahkan ke password pengguna sebelum di-hashed. Jika Anda memiliki password "jakarta2020", maka aplikasi akan menambahkan salt acak, seperti "x45Cgg" sehingga password menjadi "jakarta2020x45Cgg"  atau "x45Cggjakarta2020". Jika ada pengguna lain menggunakan password "jakarta2020", penambahan "salt" acak (misalnya "Tg43rd") akan menghasilkan password yang berbeda sehingga hasil hashing akan berbeda.

Salt berguna mencegah brute force dengan dictionary attack. Ini percobaan masuk ke akun pengguna dengan menebak password dengan memakai kata-kata di kamus. Untuk menyerang password dengan perubahan kata seperti "p4ssw0rd" atau kata "'w1r3l3$$" (untuk kata wireless), hacker memiliki Leetspeak Dictionary. Namun password yang di-hashed dan ditambah salt ini tidak akan gampang dibongkar dan semakin panjang password dan salt akan semakin aman.

Salt disimpan dalam basis data bersebelahan dengan password yang telah di-hashed. Jika data bocor, salt akan terlihat bersama password. Hacker biasanya memakai "rainbow table", yakni basis data miliaran password yang sudah di-hashed untuk mencari password yang cocok. "Rainbow table" umumnya berisi password pendek di bawah 8 karakter. Password dan salt yang panjang (di atas 8 karakter) akan membuat "rainbow table" kurang berguna. Hacker bisa membuat mengkombinasikan beberapa "rainbow table" untuk membongkar password unik yang panjang namun keunikan salt akan membuat password berada di luar jangkauan kombinasi tersebut. 

Jika tidak memiliki salt, ada kemungkinan Tokopedia atau Bhinneka menggunakan "pepper". Berbeda dari salt, pepper ini tidak disimpan di basis data namun ditulis di kode aplikasi (hardcoded). Jika basis data bocor, pepper tetap tidak diketahui selama aplikasi tidak dibobol. Sebagian besar kasus kebocoran data terjadi di basis data, bukan sistem aplikasi. Kelemahannya, password dengan kata yang sama akan sama hasilnya saat di-hashed karena pepper umumnya tidak unik per pengguna. Belum diketahui apakah Tokopedia dan Bhinneka menambahkan pepper atau memang tidak menganggap salt sebagai faktor penting dalam perlindungan akun.

Rekomendasi agar pengguna mengganti password sangat bermanfaat untuk mencegah hacker masuk ke akun pengguna jika ada password yang berhasil dibongkar. Ini poin yang penting mengingat hacker sekarang memiliki komputer dengan prosesor yang mampu melakukan miliaran percobaan per detik. Jika hacker berhasil melakukan dehashed password, akun yang kemungkinan bobol adalah akun pengguna yang tidak aktif atau tidak segera mengganti passwordnya.

Sayangnya, dengan password yang masih terlindungi pun data pengguna tetap laku dijual. Yang diincar hacker adalah data pribadi yang tampil telanjang, seperti nomor telepon, email, tanggal lahir, alamat, dan terutama data keuangan seperti nomor kartu kredit atau debit. Berfokus hanya kepada keamanan akun pengguna dan password, e-commerce terkesan tidak memandang kebocoran data pribadi adalah hal yang penting.

Data Pribadi yang Telanjang
​​​​​​Mengapa e-commerce membiarkan data pribadi tetap berformat plaintext, tanpa enkripsi? Praktik buruk ini akan menampilkan data pribadi yang telanjang, tanpa ada pembungkus atau pelindung, di basis data. Coba lihat dari sampel data yang bocor, tampak jelas alamat email, nomor telepon, tanggal lahir, bahkan alamat lengkap ada di sampel data yang diduga merupakan data pengguna Bhinneka. 


Data pribadi di-blur dalam gambar di atas. Ini merupakan sampel data yang di-post di raidforums.com.

Di Eropa, aturan GDPR, misalnya merekomendasikan data pribadi dienkripsi baik saat  komunikasi data ataupun saat penyimpanan. Namun enkripsi bukan kewajiban. Dari 260 halaman GDPR, kata enkripsi hanya muncul 4 kali. Semuanya bersifat rekomendasi (halaman 51, 121, 160, dan 163). Dan juga GDPR tidak menganggap data yang terenkripsi sebagai data pribadi. Artinya, jika data yang bocor adalah data yang terenkripsi sehingga tidak bisa dipakai untuk mengidentifikasi individu, pelanggaran atas kebocoran datanya tidak separah jika tanpa enkripsi (meskipun Penyelenggara Sistem Elektronik/PSE tetap harus mempertanggungjawabkan perlindungan data penggunanya).

Indonesia sebenarnya lebih "maju". Permenkominfo Nomor 20/ 2016 tentang Perlindungan Data Pribadi Dalam Sistem Elektronik, dalam Pasal 15 ayat 2, menyebutkan "Data Pribadi yang disimpan dalam Sistem Elektronik harus dalam bentuk data terenkripsi." PSE dipersilakan untuk memilih algoritma enkripsi.

Badan keamanan siber Uni Eropa (ENISA) merekomendasikan algoritma Advanced Encryption Standard (AES) sebagai metode enkripsi data pribadi. Ini merupakan metode enkripsi paling populer di dunia saat ini. National Security Agency (NSA) Amerika Serikat mentransmisi data rahasia tingkat tinggi menggunakan AES. Secara global, sekitar 50% data dienkripsi dengan AES.

Algoritma ini memiliki varian kunci enkripsi 128, 192, 256 bits. Para pakar menyatakan bahwa AES 128 dan 192 sudah cukup aman untuk melindungi data. Super komputer diperhitungkan akan membutuhkan waktu 1 miliar miliar tahun (iya miliar miliar, ada 18 nol) untuk memecahkan kunci AES 128-bit dengan serangan brute force.


Data pribadi tanpa enkripsi di sampel data yang diduga data Tokopedia.

Coba bandingkan jika data tersebut dienkripsi.

Data pribadi di sampel Tokopedia jika dienkripsi dengan AES-256-CBC.

Data terenkripsi akan muncul sebagai teks "keriting" yang tidak terbaca oleh manusia. Hacker kurang tertarik dengan data seperti ini. Akan membutuhkan waktu yang sangat lama untuk memulihkan data tersebut sehingga bisa terbaca dan digunakan (kecuali hacker mendapatkan kunci enkripsi yang disimpan di server). Data pribadi yang telanjang akan jauh lebih menjual. Email, nama, dan nomor telepon merupakan amunisi bagi hacker, phisher, spammer, scammer, phonebomber, telemarketer untuk menyerang calon korban.

Password sangat mungkin berubah (tip: pengguna disarankan mengubah password setidaknya 3 bulan sekali), apalagi setelah insiden data breach. Sebaliknya, tanggal lahir, nama lengkap, alamat lengkap, dan nomor telepon selular (yang terakhir ini masih mungkin berubah) merupakan identitas yang melekat pada pengguna. Jika bocor dan berada di tangan penjahat siber, data Anda akan beredar selamanya dan berpindah dari satu tangan ke tangan yang lain. Dijual berulang kali. Itulah kenapa sangat penting mengenkripsi data pribadi sehingga seandainya data breach terjadi, data pribadi tetap tidak terbaca.

Ada beberapa mitos mengapa perusahaan menghindari enkripsi data. Misalnya, enkripsi data akan menambah biaya, mengurangi performa aplikasi, dan tidak mudah digunakan. Soal performa basis data, ada banyak faktor yang mengurangi performa, enkripsi hanya salah satu. Enkripsi pada tingkat aplikasi akan punya pengaruh besar namun enkripsi data secara parsial di basis data tidak punya pengaruh besar. Dan juga, data pribadi bukanlah data yang sering diakses seperti halnya "id" atau "nama pengguna" (username). Memisahkan data pribadi ke dalam tabel tersendiri yang berelasi dengan tabel pengguna bisa menjadi ide yang baik.

Biaya dan kesulitan teknis yang muncul --jika ini alasan untuk menghindari enkripsi-- hanya relevan untuk bisnis e-commerce kecil. Apakah hal ini menjadi isu yang sensitif bagi perusahaan kelas decacorn, unicorn, calon unicorn yang punya pemasukan ratusan miliar hingga dua ratusan triliun rupiah setahun? 

Regulasi ala Indonesia
Permenkominfo Nomor 20/ 2016 menyebutkan data pribadi yang disimpan wajib terenkripsi. Tapi cobalah tengok bagian penegakan hukumnya di Pasal 36, hanya ada sanksi administratif dan "bukan sanksi" dalam daftarnya. 
"... dikenai sanksi administratif sesuai dengan ketentuan peraturan perundang-undangan berupa:
a. peringatan lisan;
b. peringatan tertulis;
c. penghentian sementara kegiatan; dan/atau
d. pengumuman di situs dalam jaringan (website
online).
"
Sanksi macam apa itu yang ada di poin "d"?

Kewajiban enkripsi dari Permenkominfo itu tidak dimasukkan dalam Rancangan Undang-Undang Perlindungan Data Pribadi (RUU PDP). Klausul tentang kegagalan perlindungan data pribadi atau kebocoran data hanya ada di Pasal 42 RUU tersebut. Sanksi bagi kegagalan ini diatur dalam Pasal 48.
"Sanksi administratif sebagaimana dimaksud dalam ayat (1) berupa:
a. penghentian sementara kegiatan;
b. penghapusan atau pemusnahan data pribadi;
c. ganti rugi; dan/atau
d. denda administratif."

Tidak ada perincian lebih lanjut soal sanksi tersebut, seperti berapa denda maksimalnya. Berbeda dengan sanksi lain yang secara jelas mencantumkan denda maksimal, misalnya perbuatan yang dengan sengaja memindahkan data ke luar negeri atau menjual dan membeli data pribadi atau melakukan pemrosesan Data Pribadi untuk tujuan komersial dan/atau pemrofilan tanpa persetujuan. Pelanggaran terakhir ini didenda Rp 100 miliar.  Kasus kebocoran data pengguna Tokopedia, Bukalapak, atau Bhinneka akan sulit dijerat dengan UU PDP jika kegagalan perlindungan data pribadi masih seperti rancangan saat ini. 

Lupakan dulu RUU PDP. Mungkin masih terlalu dini untuk mengulas seberapa besar RUU PDP mengatur perlindungan data pribadi mengingat RUU ini masih akan dibahas DPR. Saat ini pemerintah punya Permenkominfo Nomor 20/ 2016 dan Permenkominfo Nomor 4/2016 tentang Sistem Manajemen Pengamanan Informasi untuk mengatur e-commerce. Permenkominfo 4/2016 menekankan pentingnya Manajemen Pengamanan Informasi yang merujuk pada  standar SNI/ISO IEC 27001.  ISO / IEC 27001 adalah sertifikasi Sistem Manajemen Pengamanan Informasi standar yang dibuat untuk memastikan tingkat keamanan informasi yang tinggi dalam produk, layanan, dan proses teknologi. ISO 27001 juga merekomendasikan enkripsi sebagai alat untuk mengurangi risiko. Tingkat keamanan informasi Penyelenggara Sistem Elektronik akan dinilai berdasarkan indeks Keamanan Informasi (KAMI).

Yang menarik, pada 18 Desember 2018, Badan Siber dan Sandi Negara (BSSN), menyerahkan hasil penilaian indeks KAMI kepada 13 perusahaan PSE. Perusahaan itu telah melalui tahap penilaian yang dilakukan Asesor Indeks KAMI dengan kompetensi telah tersertifikasi Lead Auditor ISO 27001. Tokopedia, Bukalapak, dan Bhinneka termasuk perusahaan yang mendapat indeks KAMI di hari itu.

Meski mendapatkan indeks KAMI, perusahaan e-commerce belum tentu dianggap telah mumpuni dalam melindungi data pribadi penggunanya. Maklumlah, perlindungan data pribadi hanya bagian "kecil" dalam indeks KAMI. Menurut indeks KAMI di BSSN (Baca di sini), perlindungan data pribadi hanya sub-penilaian di kategori "Suplemen", salah satu dari 6 indeks yang dinilai.

Terlalu berlebihan untuk menganggap Tokopedia, Bukalapak, dan Bhinneka akan kebal dari serangan dan kebocoran data berdasarkan indeks KAMI yang diberikan pada satu setengah tahun lalu. Kemampuan perusahaan dalam mengamankan informasi harus kembali diaudit setiap tahun. Dan kenyataannya, perusahaan kelas dunia seperti Google, Yahoo, Marriot, dan Facebook saja bisa mengalami kebocoran.

Tentu ada bedanya dengan kasus Tokopedia, Bukalapak, dan Bhinneka. Google membayar denda US$7,5 juta, Yahoo membayar denda US$50 juta, Marriot membayar US$100 juta, dan Facebook membayar US$5 miliar. Apakah perusahaan itu sukarela mengaku bersalah dan membayar denda? Tentu tidak. Di Eropa dan Amerika Serikat, ada aturan yang tegas tentang perlindungan data pribadi dan sanksi bagi pelanggarnya. Ada otoritas hukum yang memastikan pelanggar mendapatkan ganjaran.

Bagaimana dengan Indonesia? Meski tampak kurang menggembirakan, gugatan KKI terhadap Pemerintah dan Tokopedia yang akan disidangkan pada 10 Juni 2020 membawa secercah harapan: masih ada yang peduli terhadap perlindungan data pribadi. Sayangnya, kepedulian itu muncul bukan dari pemerintah.[]

Redaktur Senior Cyberthreat.id