Pengantar
Autentikasi merupakan salah satu komponen terpenting dalam keamanan aplikasi web. Setelah pengguna berhasil login, server akan membuat sebuah session untuk menyimpan status autentikasi sehingga pengguna tidak perlu memasukkan kredensial setiap kali berpindah halaman.
Namun, mekanisme session juga menjadi target utama para penyerang. Jika Session ID berhasil dicuri atau dimanipulasi, penyerang dapat memperoleh akses ke akun korban tanpa harus mengetahui username maupun password. Dua teknik yang sering digunakan adalah Session Fixation dan Session Hijacking.
Meskipun sama-sama menyerang sesi pengguna, kedua metode ini memiliki cara kerja, waktu serangan, dan teknik eksploitasi yang berbeda. Memahami perbedaan keduanya sangat penting bagi pengembang aplikasi, administrator sistem, maupun profesional cybersecurity agar dapat menerapkan mekanisme perlindungan yang tepat.
Apa Itu Session?
Pengertian Session
Session adalah mekanisme yang digunakan aplikasi web untuk menyimpan informasi sementara mengenai pengguna yang telah berhasil diautentikasi. Setiap session biasanya memiliki Session ID yang bersifat unik dan digunakan server untuk mengenali permintaan yang berasal dari pengguna yang sama.
Session ID umumnya disimpan dalam cookie, meskipun pada beberapa implementasi juga dapat dikirim melalui header HTTP atau parameter URL.
Menurut OWASP, Session ID harus memiliki tingkat keacakan yang tinggi dan dilindungi dengan baik karena menjadi kunci utama dalam mempertahankan sesi autentikasi pengguna (dikutip dari: https://owasp.org/www-project-cheat-sheets/cheatsheets/Session_Management_Cheat_Sheet.html).
baca juga : Linux Control Groups (cgroups): Teknologi Penting yang Mengontrol Penggunaan Resource pada Server Linux
Apa Itu Session Fixation?
Pengertian Session Fixation
Session Fixation adalah serangan di mana penyerang memaksa korban menggunakan Session ID yang telah diketahui atau dibuat sebelumnya oleh penyerang.
Setelah korban berhasil login menggunakan Session ID tersebut, penyerang dapat menggunakan Session ID yang sama untuk mengakses akun korban.
Dengan kata lain, Session Fixation terjadi sebelum proses login berlangsung.
Bagaimana Cara Kerja Session Fixation?
Secara umum, serangan Session Fixation berlangsung melalui tahapan berikut:
- Penyerang memperoleh atau membuat sebuah Session ID.
- Session ID tersebut dikirim kepada korban, misalnya melalui tautan khusus atau manipulasi cookie.
- Korban membuka aplikasi menggunakan Session ID tersebut.
- Korban melakukan login.
- Server tetap menggunakan Session ID yang sama.
- Penyerang menggunakan Session ID tersebut untuk mengakses akun korban.
Serangan ini berhasil apabila aplikasi tidak membuat Session ID baru setelah proses autentikasi.
Apa Itu Session Hijacking?
Pengertian Session Hijacking
Session Hijacking adalah serangan yang dilakukan dengan cara mencuri Session ID milik pengguna yang telah berhasil login.
Berbeda dengan Session Fixation, Session Hijacking terjadi setelah proses autentikasi berhasil dilakukan.
Penyerang tidak perlu mengetahui password korban apabila berhasil memperoleh Session ID yang masih aktif.
Bagaimana Cara Kerja Session Hijacking?
Proses Session Hijacking umumnya melibatkan langkah-langkah berikut:
- Korban berhasil login ke aplikasi.
- Session ID dibuat oleh server.
- Penyerang mencuri Session ID melalui berbagai metode.
- Penyerang mengirimkan Session ID tersebut ke server.
- Server menganggap penyerang sebagai pengguna yang sah.
Apabila Session ID masih valid, server akan memberikan akses kepada penyerang.
Perbedaan Session Fixation dan Session Hijacking
Walaupun sama-sama mengeksploitasi Session ID, kedua serangan memiliki karakteristik yang berbeda.
| Aspek | Session Fixation | Session Hijacking |
|---|---|---|
| Waktu Serangan | Sebelum login | Setelah login |
| Target | Session ID yang dipaksakan | Session ID yang dicuri |
| Cara Kerja | Korban menggunakan Session ID milik penyerang | Penyerang mengambil Session ID korban |
| Membutuhkan Pencurian Session | Tidak | Ya |
| Tingkat Kesulitan | Relatif lebih sederhana | Bergantung pada metode pencurian |
Memahami perbedaan ini membantu pengembang menentukan strategi mitigasi yang sesuai.
Bagaimana Session ID Bisa Dicuri?
Dalam Session Hijacking, terdapat beberapa teknik yang sering digunakan untuk memperoleh Session ID, antara lain:
- Cross-Site Scripting (XSS).
- Penyadapan jaringan (Packet Sniffing) pada koneksi yang tidak menggunakan HTTPS.
- Malware atau Keylogger.
- Kebocoran log aplikasi.
- Cookie yang tidak diamankan dengan baik.
Karena itu, perlindungan terhadap Session ID menjadi aspek yang sangat penting dalam keamanan aplikasi.
Dampak Session Fixation dan Session Hijacking
Apabila berhasil dilakukan, kedua serangan tersebut dapat menyebabkan:

- Pengambilalihan akun (Account Takeover).
- Akses ilegal ke data sensitif.
- Penyalahgunaan hak akses pengguna.
- Perubahan data tanpa izin.
- Pencurian informasi pribadi.
- Kerugian finansial maupun reputasi organisasi.
Dampaknya akan semakin besar apabila akun yang diambil alih memiliki hak akses administrator.
baca juga : Celah Keamanan Baru “RefluXFS” di Linux Bikin Penyerang Bisa Jadi Root
Cara Mencegah Session Fixation
Regenerasi Session ID Setelah Login
Aplikasi harus membuat Session ID baru setiap kali pengguna berhasil melakukan autentikasi.
Langkah ini merupakan perlindungan utama terhadap Session Fixation.
Jangan Menerima Session ID dari URL
Hindari penggunaan Session ID melalui parameter URL karena lebih mudah dimanipulasi maupun bocor ke pihak lain.
Hapus Session Lama
Pastikan Session ID yang digunakan sebelum login tidak lagi berlaku setelah proses autentikasi berhasil.
Cara Mencegah Session Hijacking
Gunakan HTTPS
Seluruh komunikasi antara browser dan server harus menggunakan HTTPS agar Session ID tidak dapat disadap selama proses transmisi.
Aktifkan Cookie Secure dan HttpOnly
Konfigurasikan cookie dengan atribut:
- Secure agar hanya dikirim melalui HTTPS.
- HttpOnly agar tidak dapat diakses oleh JavaScript sehingga mengurangi risiko pencurian melalui XSS.
Terapkan SameSite Cookie
Gunakan atribut SameSite untuk membantu mengurangi risiko serangan Cross-Site Request Forgery (CSRF) yang dapat memengaruhi keamanan session.
Batasi Masa Berlaku Session
Gunakan waktu kedaluwarsa (session timeout) yang sesuai agar Session ID tidak tetap aktif terlalu lama apabila pengguna meninggalkan aplikasi.
Pantau Aktivitas Login
Deteksi aktivitas yang tidak biasa, seperti perubahan alamat IP secara tiba-tiba, lokasi geografis yang berbeda, atau penggunaan perangkat baru.
Menurut OWASP Session Management Cheat Sheet, regenerasi Session ID setelah autentikasi, penggunaan cookie yang aman, serta penerapan HTTPS merupakan langkah penting untuk melindungi aplikasi dari berbagai serangan terhadap session (dikutip dari: https://owasp.org/www-project-cheat-sheets/cheatsheets/Session_Management_Cheat_Sheet.html).
Best Practice Mengamankan Session
Selain langkah-langkah di atas, organisasi juga disarankan untuk:
- Menghasilkan Session ID dengan tingkat entropi yang tinggi.
- Menyimpan Session ID hanya dalam cookie yang aman.
- Mengaktifkan Multi-Factor Authentication (MFA).
- Menggunakan mekanisme deteksi anomali login.
- Melakukan pengujian keamanan aplikasi secara berkala.
Pendekatan tersebut akan memperkuat perlindungan terhadap berbagai ancaman yang menargetkan sesi pengguna.
Mengapa Pengelolaan Session Sangat Penting?
Dalam banyak kasus, penyerang tidak berusaha mencuri password, melainkan cukup mengambil Session ID yang masih aktif. Oleh karena itu, keamanan autentikasi tidak berhenti setelah proses login berhasil.
Pengelolaan session yang baik menjadi bagian penting dari strategi keamanan aplikasi modern, terutama pada layanan perbankan, e-commerce, layanan kesehatan, maupun platform berbasis cloud yang memproses data sensitif.
baca juga : Out-Of-Memory (OOM) Killer: Mekanisme Linux yang Mencegah Sistem Crash Akibat Kehabisan Memori
Kesimpulan
Session Fixation dan Session Hijacking merupakan dua jenis serangan yang sama-sama menargetkan Session ID, tetapi memiliki mekanisme yang berbeda. Session Fixation dilakukan dengan memaksa korban menggunakan Session ID yang telah diketahui sebelum login, sedangkan Session Hijacking dilakukan dengan mencuri Session ID pengguna setelah proses autentikasi berhasil.
Untuk mengurangi risiko kedua serangan tersebut, pengembang perlu menerapkan regenerasi Session ID setelah login, menggunakan HTTPS, mengaktifkan atribut cookie seperti Secure, HttpOnly, dan SameSite, serta membatasi masa berlaku session. Dengan pengelolaan session yang aman dan mengikuti praktik secure coding, aplikasi dapat memberikan perlindungan yang lebih baik terhadap upaya pengambilalihan akun oleh pihak yang tidak berwenang.







