Peretas menggunakan berbagai metode untuk membobol kata sandi, dan salah satunya adalah serangan rainbow table. Dalam kasus tertentu, metode ini bisa lebih cepat daripada serangan kamus atau credential stuffing.
Dalam artikel ini, akan dijelaskan cara kerja serangan rainbow table dan dibahas cara-cara untuk mencegahnya.
Definisi serangan rainbow table
Serangan rainbow table adalah serangan kriptografi yang digunakan peretas untuk menerobos sistem dengan mencari tahu kata sandi dari hash-nya, yang bertindak sebagai sidik jari digital. Fungsi hash memetakan setiap kata sandi dengan string karakter yang sesuai.
Berbeda dengan serangan brute-force yang mencoba setiap kemungkinan kata sandi satu per satu, serangan rainbow table tidak memerlukan tebakan setelah tabel tersebut dikomputasikan sebelumnya. Tabel yang dikomputasikan sebelumnya ini (dikenal sebagai rainbow table karena tampilannya jika diberi kode warna) pada dasarnya adalah basis data besar berisi pasangan nilai hash yang tertaut ke padanan teks biasa mereka.
Cara kerja serangan kata sandi rainbow table
1. Membuat daftar kata sandi
Saat membuat rainbow table, peretas sering kali menargetkan kata sandi yang paling mungkin dan umum digunakan dengan pola sederhana (misalnya, 123456, password, atau qwerty), kata kamus, atau dump kata sandi yang diperoleh dari pembobolan data.
2. Memilih fungsi hash dan mengonversi kata sandi
Serangan rainbow table bekerja dengan baik pada fungsi hash kriptografi yang lebih sederhana dan lebih cepat seperti MD-5, SHA-1, LM Hash, atau NTLM Hash karena tidak menggunakan fitur keamanan seperti salting (menambahkan data acak ke setiap kata sandi sebelum proses hash) atau key stretching (melakukan hash pada kata sandi secara berulang).
| Kata sandi yang di-hash dengan MD-5 | Kata sandi teks biasa |
| 482c811da5d5b4bc6d497ffa98491e38 | password123 |
Setiap kata sandi teks biasa diproses melalui fungsi hash untuk menghasilkan hash yang sesuai, yang memiliki string karakter unik dengan ukuran tetap seperti pada contoh di atas. Setelah semua kata sandi di-hash, peretas dapat menggunakannya untuk membuat rainbow table.
3. Membuat rainbow table untuk mengungkap kata sandi
Rainbow table dapat dianalogikan sebagai lembar Excel yang besar, dengan sandi ter-hash di kolom pertama dan kata sandi teks biasa di kolom kedua. Jika hash yang dibobol ada di tabel ini, itu berarti kata sandi yang dibobol adalah sel di sebelahnya.
Contoh serangan rainbow table
Berikut adalah dua contoh hipotetis untuk mengilustrasikan bagaimana serangan rainbow table dapat terjadi:
- Peretas mengidentifikasi situs media sosial yang menggunakan algoritma hashing usang tanpa salting apa pun. Dengan mengeksploitasi kelemahan injeksi SQL, penyerang mengekstrak nilai hash dari kata sandi pengguna dari basis data situs web tersebut. Kemudian, mereka menggunakan rainbow table yang dikomputasikan sebelumnya untuk mengonversi ribuan hash ini kembali menjadi kata sandi teks biasa dengan cepat, sehingga mengompromikan akun pengguna.
- Selama monitoring jaringan rutin, peretas menemukan bahwa situs web e-commerce mengirimkan hash kata sandi secara tidak aman di antara server-servernya dan menggunakan alat sniffing jaringan untuk menangkap data ini. Karena kini memiliki akses ke hash kata sandi tersebut, peretas menggunakan serangan rainbow table untuk memecahkan kode kata sandi pelanggan, sehingga memperoleh akses ke akun belanja dan informasi pribadi mereka.
Pembobolan data serangan rainbow table
Serangan rainbow table telah digunakan di dunia nyata untuk mencuri jutaan rincian masuk.
Sebagai contoh, peretasan LinkedIn tahun 2012(jendela baru) oleh penjahat siber Rusia mengakibatkan pencurian hampir 6,5 juta kata sandi akun pengguna, yang menyebabkan pembobolan data yang signifikan. Setelah penemuan awal, LinkedIn menemukan tambahan 100 juta alamat email dan kata sandi yang dikompromikan pada tahun 2016 terkait dengan insiden yang sama. Kata sandi yang dicuri tersebut kurang terlindungi, tidak memiliki langkah keamanan tambahan seperti salting, sehingga lebih mudah bagi penyerang untuk mendekripsi menggunakan rainbow table standar
Cara mencegah serangan rainbow table
Pilih platform dengan fungsi hash yang kuat
Fungsi hash yang aman seperti bcrypt(jendela baru) atau Argon2(jendela baru) menggunakan salting(jendela baru) untuk menambahkan data acak ke kata sandi sebelum membuat hash-nya. Tanpa salt, hash kata sandi tidak akan muncul di rainbow table, sehingga serangan akan gagal.
Untuk mengetahui fungsi hash apa yang digunakan layanan atau aplikasi tertentu untuk menyimpan kata sandi, periksa kebijakan privasi(jendela baru), bagian FAQ, halaman dukungan, sertifikasi atau audit keamanan (jika ada), dokumentasi teknis, atau sumber daya pengembang(jendela baru). Pencarian internet sederhana bisa dilakukan, atau hubungi dukungan pelanggan untuk bertanya.
Jika mengelola situs web atau basis data sendiri, pastikan pengaturan keamanan tetap diperbarui dengan menggunakan plugin atau modul yang menerapkan algoritma hashing yang kuat.
Gunakan kata sandi yang rumit
Alih-alih menggunakan kata sandi yang mudah ditebak, pilihlah kata sandi yang aman yang terdiri dari setidaknya 12 karakter, yang berisi huruf besar dan kecil, angka, serta simbol. Contoh kata sandi yang kuat adalah ?GmmM1Z[c5:F atau beht=ty]P:)Gf^c?p?+7. Kecil kemungkinan penyerang siber menargetkan kata sandi serumit itu menggunakan serangan rainbow table.
Aktifkan autentikasi multifaktor
Autentikasi multifaktor (MFA) seperti autentikasi dua faktor (2FA) menambahkan setidaknya satu bentuk autentikasi lagi pada permintaan kata sandi, seperti kode pada autentikator 2FA. Jika penyerang berhasil menemukan kata sandi setelah serangan rainbow table, mereka tidak akan bisa melewati langkah autentikasi berikutnya.
Selain itu, jika menerima permintaan verifikasi tambahan yang tidak diduga, itu adalah tanda jelas bahwa seseorang sedang mencoba masuk ke akun. Tindakan cepat dapat diambil dengan mengubah kata sandi.
Gunakan alamat email alias
Alamat email alias(jendela baru) dapat melindungi dari pembobolan data yang dapat menyebabkan serangan rainbow table karena tidak terhubung ke alamat email utama. Sebagai contoh, alamat email utama tetap dapat digunakan untuk pesan penting dan keuangan, sementara alias email dicadangkan untuk aktivitas yang kurang aman, seperti mendaftar ke layanan yang tidak tepercaya. Jika alamat email alias diretas, alias tersebut cukup dinonaktifkannya.
Pantau internet untuk pembobolan data
Dengan terus mendapatkan informasi tentang pembobolan terbaru, dapat ditentukan apakah ada layanan yang digunakan telah dikompromikan dan apakah data telah bocor. Hal ini memungkinkan pengambilan langkah proaktif, seperti segera mengubah kata sandi, untuk mencegah peretas menggunakan data yang berpotensi terekspos untuk mendapatkan akses tidak sah ke akun.
Bagaimana Proton Pass dapat membantu
Proton Pass dapat melindungi dari serangan rainbow table dengan menghasilkan kata sandi yang kuat(jendela baru) dan mengelolanya di satu tempat. Aplikasi ini juga mendukung autentikator TOTP (kata sandi sekali pakai berbasis waktu) untuk token 2FA. Selain itu, aplikasi ini menawarkan alias hide-my-email untuk mencegah alamat email utama terekspos secara daring.
Semua pelanggan Proton Pass dapat menggunakan Pass Monitor(jendela baru) untuk memantau kesehatan semua kata sandi dan Monitoring Dark Web untuk melacak berbagai sumber pembobolan data. Model keamanan kami menggunakan algoritma hashing bcrypt yang aman, yang menambahkan salt ke kata sandi sebelum proses hash dilakukan untuk menghentikan serangan rainbow table. Selain itu, program keamanan canggih bernama Proton Sentinel dijalankan untuk mendeteksi dan mencegah serangan pengambilalihan akun.
Mulailah mengamankan akun dari serangan rainbow table dengan mendaftar akun Proton Pass gratis hari ini.






