Apa itu Pembajakan Sesi?

Diterbitkan: 2023-04-27

Pembajakan sesi adalah jenis serangan siber yang perlu diketahui oleh pemilik situs WordPress. Juga dikenal sebagai pembajakan sesi TCP, pembajakan sesi membuat penyerang terlihat seperti pengguna yang masuk dengan benar. Penyerang mengambil alih sesi pengguna dengan mendapatkan ID sesi mereka tanpa sepengetahuan atau izin pengguna yang valid. Setelah penyerang mencuri ID sesi pengguna, mereka dapat menyamar sebagai pengguna yang ditargetkan. Penyerang akan dapat melakukan semua yang dapat dilakukan oleh pengguna yang berwenang setelah pengguna yang berwenang masuk ke sistem yang sama.

Salah satu hal terburuk yang dapat dilakukan peretas dengan sesi yang dibajak adalah mendapatkan akses ke aplikasi web atau kontrol server tanpa autentikasi. Saat penyerang membajak sesi pengguna, mereka tidak perlu mengautentikasi dirinya sendiri selama sesi tersebut aktif. Aplikasi yang menghasilkan sesi mengira mereka adalah pengguna yang diautentikasi yang sesinya telah mereka bajak.

Dengan kata lain, peretas akan menikmati akses yang sama dengan pengguna yang telah dikompromikan. Karena pengguna yang sah telah mengautentikasi sesi mereka sebelum serangan terjadi, pembajakan yang berhasil memungkinkan penyerang melewati autentikasi sepenuhnya.

Dalam panduan ini, kita akan menyelami detail pembajakan sesi. Kami akan menunjukkan kepada Anda apa yang perlu Anda lakukan untuk mencegahnya terjadi di situs WordPress Anda.

Apa Sebenarnya Sesi Itu?

Sesi hanyalah serangkaian interaksi antara titik akhir komunikasi yang terjadi di seluruh koneksi HTTP tunggal.

Hypertext Transfer Protocol (HTTP) adalah dasar untuk web. Itu yang memungkinkan Anda menggunakan tautan hypertext dan memuat halaman web. HTTP juga merupakan protokol lapisan aplikasi untuk menyampaikan informasi antar perangkat di jaringan.

Karakteristik utama HTTP adalah “tanpa kewarganegaraan”. Itu artinya tidak menyimpan data apa pun tentang klien (seperti Anda dan browser Anda) yang membuka sesi dengan situs web. Setiap sesi benar-benar baru. HTTP tidak menyimpan data tentang pengguna dari sesi sebelumnya.

Menghadapi Tanpa Kewarganegaraan

Aplikasi web seperti WordPress perlu melacak keadaan antara beberapa koneksi dari pengguna yang sama dan berbeda. Itu perlu mengidentifikasi setiap sesi pengguna, setelah mereka masuk — berpotensi di lebih dari satu perangkat atau browser.

Saat pengguna masuk ke aplikasi seperti WordPress, server membuat sesi. Sesi ini akan mempertahankan "keadaan" koneksi untuk pengguna dengan menyimpan parameter yang unik untuk mereka. Sesi tetap hidup di server selama periode pengguna masuk ke aplikasi.

Sesi berakhir ketika pengguna keluar dari sistem atau setelah periode tidak ada aktivitas yang telah ditentukan sebelumnya. Saat sesi pengguna berakhir, aplikasi harus menghapus datanya dari memori server.

Pengidentifikasi Sesi

ID sesi (atau "kunci" atau "token") adalah pengidentifikasi sesi unik. Biasanya, mereka panjang, string alfanumerik acak yang dikirimkan server dan klien satu sama lain. Aplikasi otentikasi biasanya menyimpan ID sesi di URL, cookie, atau bidang tersembunyi di halaman web.

Meskipun ID sesi berguna untuk mempertahankan status dalam sistem tanpa kewarganegaraan, ID sesi juga memiliki beberapa potensi bahaya keamanan. Misalnya, jika kita memahami algoritme yang menghasilkan ID sesi untuk aplikasi web, kita dapat membuatnya sendiri. Selanjutnya, jika aplikasi web tidak menggunakan enkripsi SSL untuk mengenkripsi HTTP sebagai HTTPS, itu akan mengirimkan ID sesi dengan jelas. Di jaringan publik, siapa pun dapat menguping koneksi yang tidak terenkripsi dan mencuri ID sesi.

Seberapa Tepat Sesi Pembajakan Bekerja Dalam Praktek?

Serangan pembajakan sesi yang berhasil sangat tersembunyi. Mereka biasanya dilakukan pada jaringan yang sangat sibuk dengan banyak sesi komunikasi aktif.

Beberapa bentuk pembajakan sesi yang paling umum digunakan:

  • ID token sesi yang dapat diprediksi
  • Mengendus sesi
  • Sidejacking sesi
  • Malware man-in-the-browser
  • Pembuatan skrip lintas situs
  • Fiksasi sesi

Mari kita lihat masing-masing vektor ancaman ini satu per satu.

ID Token Sesi yang Dapat Diprediksi

Banyak server web menggunakan algoritme khusus atau pola yang telah ditentukan sebelumnya untuk menghasilkan ID sesi mereka. Semakin besar prediktabilitas keseluruhan dari token sesi unik, semakin lemah itu.

Dan semakin mudah bagi seorang hacker untuk memprediksi.

Mengendus Sesi

Sniffing sesi adalah salah satu metode paling sederhana dan dasar yang digunakan peretas untuk pembajakan sesi lapisan aplikasi.

Penyerang akan menggunakan packet sniffer, seperti Wireshark, atau proxy seperti OWASP Zed untuk menangkap lalu lintas jaringan. Jika lalu lintas ini berisi ID sesi yang tidak terenkripsi untuk koneksi antara klien dan situs web, ID tersebut dapat dicuri. Peretas dapat menggunakan ID atau token yang valid untuk mendapatkan akses tidak sah dengan cepat ke situs dan akun penggunanya.

Sidejacking Sesi

Penyerang dapat menggunakan packet sniffing untuk mencegat cookie sesi untuk pengguna saat mereka masuk ke situs. Jika halaman login tidak dienkripsi atau enkripsi lemah digunakan, penjahat dunia maya dapat dengan mudah membajak sesi pengguna dengan cara ini.

Man-In-the-Browser

Dalam serangan ini, penyerang awalnya harus menginfeksi komputer atau browser korban dengan malware.

Malware ini secara tidak terlihat dapat mengubah informasi transaksi browser dan membuat transaksi tanpa disadari oleh pengguna. Permintaan browser yang rusak diprakarsai oleh perangkat fisik korban, sehingga dianggap valid.

Pembuatan Skrip Lintas Situs

Penjahat dunia maya dapat mengeksploitasi kerentanan aplikasi atau server untuk menyuntikkan kode arbitrer ke halaman web situs. Ini akan menyebabkan browser pengunjung mengeksekusi kode tersebut saat halaman yang disusupi dimuat.

Ketika HTTP-only tidak disetel dalam cookie sesi, kunci sesi dapat dicuri melalui kode yang disuntikkan. Ini akan memberi penyerang semua yang mereka butuhkan untuk membajak sesi pengguna.

Fiksasi Sesi

Ini menggunakan ID sesi yang valid yang belum diautentikasi. Menggunakan fiksasi sesi, penyerang akan mencoba mengelabui pengguna agar mengautentikasi dengan ID khusus ini.

Setelah otentikasi terjadi, penyerang kini memiliki akses penuh ke komputer korban.

Fiksasi sesi mengeksplorasi batasan besar dalam cara aplikasi web mengelola ID sesi.

Apa yang Seorang Peretas Keluar Dari Pembajakan Sesi?

Saat peretas membajak suatu sesi, mereka dapat melakukan apa saja yang diizinkan oleh pengguna yang sah dalam sesi aktif tersebut.

Pembajakan sesi yang paling efektif — dan merusak — dapat mengakibatkan:

  • Rekening bank yang disusupi
  • Barang pembelian online yang tidak sah secara online
  • Mengidentifikasi pencurian
  • Pencurian data dari sistem internal perusahaan

Tidak baik! Sesi pembajakan sesi yang berhasil dapat menyebabkan banyak kerusakan.

Apa Beberapa Contoh Pembajakan Sesi?

Pada musim gugur 2012, dua peneliti keamanan bernama Juliano Rizzo dan Thai Duong mengumumkan CRIME, sebuah serangan yang memanfaatkan kebocoran informasi dalam rasio kompresi permintaan TLS sebagai saluran samping. Ini memungkinkan mereka untuk mendekripsi permintaan yang dibuat oleh klien ke server.

Pada gilirannya, ini memungkinkan mereka untuk mengambil cookie login pengguna dan membajak sesi tersebut, meniru identitas mereka di tujuan online bernilai tinggi seperti situs e-niaga dan bank.

Demonstrasi ini menunjukkan bagaimana seorang hacker dapat melakukan jenis serangan ini untuk memulihkan header permintaan HTTP.

CRIME bekerja untuk mendekripsi cookie HTTPS yang diatur oleh situs web untuk mengingat pengguna yang diautentikasi menggunakan kekerasan. Kode serangan memaksa browser korban untuk mengirim permintaan HTTPS yang dibuat khusus ke situs web yang ditargetkan dan menganalisis variasi panjangnya setelah dikompresi untuk menentukan nilai cookie sesi korban. Ini dimungkinkan karena SSL/TLS menggunakan algoritme kompresi yang disebut DEFLATE, yang menghilangkan string duplikat, seperti yang kita lihat di atas.

Kode serangan tidak dapat membaca cookie sesi yang disertakan dalam permintaan karena mekanisme keamanan di browser. Namun, itu dapat mengontrol jalur setiap permintaan baru dan dapat memasukkan string yang berbeda ke dalamnya dalam upaya untuk mencocokkan nilai cookie.

Nilai cookie sesi bisa sangat panjang. Mereka dibangun dari huruf besar dan kecil dan angka.

Akibatnya, kode serangan KEJAHATAN harus memulai sejumlah besar permintaan untuk mendekripsinya, yang dapat memakan waktu beberapa menit.

Pencegahan Pembajakan Sesi

Penting untuk diingat bahwa penyerang dapat mencuri dan menggunakan kembali ID sesi (atau nilai cookie lain yang sensitif) saat dikirimkan atau disimpan secara tidak aman. Meskipun perlindungan 100% bukanlah jaminan, menggunakan enkripsi adalah pertahanan utama.

Saat pengguna mengautentikasi, SSL dan cookie aman harus wajib. Dan ketika pengguna yang diautentikasi mengunjungi lebih dari satu halaman aman, mereka harus dipaksa menggunakan HTTPS.

Di luar itu, pemilik situs WordPress perlu menggunakan plugin keamanan iThemes Security Pro WordPress untuk perlindungan pembajakan sesi. Fitur Perangkat Tepercaya yang ada di dalam iThemes Security Pro akan bekerja 24 jam sehari, tujuh hari seminggu, untuk membantu menjaga keamanan situs Anda dari serangan berbahaya ini. Pelajari cara menyiapkannya untuk pengguna situs Anda.

Memahami dan Mencegah Pembajakan Sesi

Dengan informasi dalam panduan ini, Anda tahu semua yang Anda butuhkan untuk melindungi situs WordPress Anda dari pembajakan sesi:

  1. Pastikan situs Anda dienkripsi sepenuhnya menggunakan SSL dan akan memaksa pengguna untuk tetap menggunakan HTTPS.
  2. Unduh dan instal plugin iThemes Security Pro.

Dengan mengambil langkah-langkah sederhana tersebut, Anda akan melindungi situs Anda dari pembajakan sesi.