Ada banyak jenis kerentanan keamanan yang ditemukan di situs web, salah satu yang menarik disebut “Session Fixation”. Fiksasi sesi adalah masalah di mana penyerang dapat memengaruhi pengidentifikasi sesi alias id sesi pengguna dan kemudian menggunakannya untuk mendapatkan akses ke akun mereka. Ada dua cara jenis kerentanan ini dapat bekerja, memungkinkan penyerang untuk menemukan atau mengatur id sesi pengguna lain.
Bagaimana serangan fiksasi sesi dilakukan
ID sesi pengguna sering kali merupakan bagian penting dari otentikasi ke situs web dan dalam banyak kasus merupakan satu-satunya data yang mengidentifikasi pengguna tertentu yang masuk. Masalahnya adalah jika penyerang dapat mengatur atau mempelajari id sesi pengguna lain, mereka dapat menggunakan token sesi dan kemudian dapat bertindak sebagai pengguna.
Biasanya, ini dilakukan dengan mengelabui pengguna agar mengklik jenis tautan phishing. Tautan itu sendiri sepenuhnya sah tetapi menyertakan variabel yang menetapkan id sesi tertentu. Jika pengguna kemudian masuk dengan ID sesi dan server tidak memberi mereka ID sesi baru di login, penyerang dapat dengan mudah mengatur id sesi mereka menjadi sama dan memiliki akses ke korban Akun.
Cara lain penyerang dapat menemukan id sesi korban adalah jika muncul di URL. Misalnya, jika penyerang dapat mengelabui korban agar mengirimkan tautan dan menyertakan ID sesi korban, penyerang dapat menggunakan id sesi untuk mengakses akun korban. Dalam beberapa kasus, ini dapat terjadi sepenuhnya secara tidak sengaja. Misalnya, jika pengguna menyalin URL dengan id sesi dan menempelkannya ke teman atau di forum, setiap pengguna yang mengikuti tautan akan masuk dengan akun pengguna.
Perbaikan fiksasi sesi
Ada beberapa solusi untuk masalah ini, dan seperti biasa, solusi terbaik adalah menerapkan perbaikan sebanyak mungkin sebagai bagian dari strategi pertahanan mendalam. Solusi pertama adalah mengubah id sesi pengguna saat mereka masuk. Ini mencegah penyerang agar tidak dapat memengaruhi id sesi pengguna yang masuk. Anda juga dapat mengonfigurasi server untuk hanya menerima id sesi yang telah dibuatnya dan secara eksplisit menolak setiap id sesi yang disediakan pengguna.
Situs web harus dikonfigurasi untuk tidak pernah menempatkan detail pengguna yang sensitif seperti id sesi di URL dan harus menempatkannya di parameter permintaan GET atau POST. Ini mencegah pengguna secara tidak sengaja mengkompromikan id sesi mereka sendiri. Dengan menggunakan id sesi dan token autentikasi terpisah, Anda menggandakan jumlah informasi yang perlu diperoleh penyerang dan mencegah penyerang mengakses sesi dengan id sesi yang diketahui.
Sangat penting bahwa semua id sesi yang valid untuk pengguna tidak valid ketika tombol logout diklik. Dimungkinkan untuk membuat ulang id sesi pada setiap permintaan, jika id sesi sebelumnya tidak valid, ini juga mencegah penyerang menggunakan id sesi yang diketahui. Pendekatan ini juga secara signifikan mengurangi jendela ancaman jika pengguna mengungkapkan id sesi mereka sendiri.
Dengan mengaktifkan beberapa pendekatan ini, strategi pertahanan mendalam dapat menghilangkan masalah ini sebagai risiko keamanan.