Session hijacking (pembajakan sesi) adalah teknik serangan siber di mana pelaku mendapatkan akses ilegal ke token sesi atau ID sesi pengguna yang sah untuk menyamar sebagai korban di dalam sebuah aplikasi web. Ketika sesi berhasil dibajak, penyerang dapat mengakses akun korban tanpa harus mengetahui kata sandi (password) asli mereka, karena sistem menganggap permintaan tersebut berasal dari pemilik sah yang telah melakukan otentikasi.
Dalam arsitektur web modern, protokol HTTP bersifat stateless, yang berarti server tidak mengingat status koneksi dari permintaan sebelumnya. Untuk mengatasi hal ini, aplikasi menggunakan mekanisme pengelolaan sesi berbasis cookie atau token (seperti JSON Web Token / JWT) setelah pengguna berhasil login. Token inilah yang menjadi target utama dalam serangan pembajakan sesi.
Mekanisme & Cara Kerja Session Hijacking
Serangan pembajakan sesi umumnya berfokus pada cara penyerang memperoleh, mencuri, atau memprediksi ID sesi yang aktif. Berikut adalah metode utama yang sering digunakan dalam celah keamanan aplikasi web:
- Session Sniffing: Penyerang menggunakan alat penyadap jaringan (packet analyzer) seperti Wireshark untuk menangkap lalu lintas data yang tidak terenkripsi (HTTP biasa tanpa SSL/TLS) antara browser korban dan server web.
- Cross-Site Scripting (XSS): Penyerang menyuntikkan skrip berbahaya (biasanya JavaScript) ke dalam halaman web yang rentan untuk membaca nilai
document.cookiedan mengirimkannya ke server eksternal milik penyerang. - Session Fixation: Penyerang memaksa korban menggunakan ID sesi yang sudah ditentukan sebelumnya oleh penyerang. Setelah korban login dengan ID tersebut, penyerang dapat langsung masuk menggunakan ID sesi yang sama.
- Man-in-the-Middle (MitM): Penyerang memposisikan diri di tengah jalur komunikasi antara korban dan server, memungkinkan mereka mencegat atau memodifikasi token sesi secara langsung.
Matriks Perbandingan Metode Serangan Sesi
| Metode Serangan | Vektor Utama | Tingkat Risiko | Mitigasi Utama |
|---|---|---|---|
| Session Sniffing | Jaringan tidak aman (HTTP) | Tinggi | Wajib menggunakan HTTPS secara penuh |
| Cross-Site Scripting (XSS) | Input tidak disanitasi di browser | Kritis | Implementasi flag HttpOnly pada Cookie & sanitasi input |
| Session Fixation | Celah logika manajemen sesi | Sedang | Regenerasi ID sesi otomatis saat proses login berhasil |
| Man-in-the-Middle (MitM) | Penyadapan jalur komunikasi | Tinggi | HSTS (HTTP Strict Transport Security) & Certificate Pinning |
Langkah Teknis Pencegahan & Mitigasi
Pengembang aplikasi web dan administrator sistem harus menerapkan standar keamanan berlapis untuk meminimalkan risiko pembajakan sesi:
- Gunakan HTTPS Secara Menyeluruh: Enkripsi semua lalu lintas data antara klien dan server untuk mencegah penyadapan paket jaringan (sniffing).
- Terapkan Flag HttpOnly dan Secure pada Cookie: Flag
HttpOnlymencegah skrip sisi klien (seperti JavaScript) mengakses cookie, sementara flagSecurememastikan cookie hanya dikirim melalui jalur HTTPS. - Regenerasi ID Sesi: Selalu buat ID sesi baru (session fixation defense) setiap kali pengguna melakukan proses otentikasi (login) atau mengubah hak istimewa akun.
- Batasi Masa Berlaku Sesi (Session Timeout): Terapkan batas waktu kedaluwarsa sesi secara otomatis setelah periode tidak aktif tertentu atau batasan absolut durasi login.