Kenali Apa Itu CSRF dan Bagaimana Cara Mencegahnya
Kamu mungkin pernah mendengar istilah ‘CSRF’ dalam konteks keamanan web, tetapi apakah kamu tahu apa itu dan mengapa itu perlu diwaspadai? Cross-Site Request Forgery atau CSRF adalah salah satu jenis serangan keamanan web yang berpotensi merusak.
Dalam artikel ini, kamu akan diajak untuk memahami apa itu CSRF, cara kerja CSRF, jenis CSRF yang ada, melihat contoh CSFR yang nyata, dan yang tak kalah penting, bagaimana cara mencegah CSRF. Jadi, mari kita mulai dengan pemahaman mendalam tentang serangan ini dan langkah-langkah untuk mencegahnya.
Apa Itu CSRF
Pengertian CSRF
CSRF Adalah
Cara Mencegah CSRF adalah singkatan dari “Cross-Site Request Forgery,” yang dalam bahasa Indonesia sering diterjemahkan sebagai “Pengintaian Permintaan Lintas Situs.” Ini adalah jenis serangan keamanan web yang bertujuan untuk memanipulasi tindakan yang diambil oleh pengguna yang sudah terautentikasi pada suatu situs web tanpa sepengetahuan mereka.
Serangan ini memanfaatkan bahwa pengguna sudah terotentikasi dalam sesi aktif di situs web tertentu, dan dengan demikian, situs web percaya bahwa permintaan yang datang dari pengguna itu sendiri adalah sah.
Misalkan Kamu adalah pengguna yang sudah masuk ke akun emailmu. Di sampingnya, Kamu juga membuka tab lain dan masuk ke suatu situs web, misalnya, situs jejaring sosial. Situs web jejaring sosial ini memiliki celah keamanan CSRF.
Ketika Kamu membuka halaman tersebut, terdapat skrip jahat yang secara otomatis membuat permintaan (request) ke akun emailmu tanpa sepengetahuanmu. Permintaan ini bisa berupa mengirim email atau mengubah kata sandi. Jika Kamu terautentikasi di akun emailmu, permintaan tersebut akan dianggap sah oleh akun emailmu, dan tindakan tersebut akan dilaksanakan tanpa seizinmu.
Kesalahan umumnya adalah jika situs web yang rentan tidak melakukan verifikasi yang memadai untuk memastikan bahwa permintaan tersebut benar-benar berasal dari pengguna yang sah atau jika situs web tidak menggunakan mekanisme token untuk mencegah serangan ini.
Baca juga: Mengenal XSS Attack: Ancaman Keamanan yang Perlu Diwaspadai
Mengapa Perlu Diwaspadai?
Penting untuk memahami mengapa serangan ini adalah ancaman serius bagi keamanan web. Berikut adalah beberapa alasan mengapa kamu perlu waspada terhadap serangan ini:
- Pengguna Terotentikasi: Serangan ini memanfaatkan sesi aktif pengguna yang sudah terotentikasi, sehingga situs web percaya bahwa permintaan berasal dari pengguna yang sah.
- Potensi Dampak Besar: Dampak dari serangan ini bisa sangat merusak, seperti mengubah kata sandi, mengirim email palsu, atau menghapus data penting pengguna.
- Kemungkinan Penyebaran Luas: Serangan ini dapat disamarkan dengan baik dan mengecoh pengguna serta pemilik situs web. Jika serangan berhasil, efeknya dapat menyebar luas tanpa sepengetahuan pengguna.
- Cara Serangan Tersembunyi: Serangan ini dapat disembunyikan dalam berbagai cara, misalnya dengan menyisipkan kode jahat dalam gambar atau tautan.
- Rentan Terhadap Skrip Jahat: Serangan ini dapat dilakukan oleh pihak yang jahat dengan skrip yang dirancang khusus, sehingga sangat sulit dideteksi.
Jenis CSRF Adalah
Serangan ini memiliki beberapa variasi yang dapat memengaruhi situs web dan pengguna dengan cara berbeda. Di bagian ini, kita akan mengidentifikasi dan menjelaskan beberapa jenis CSRF yang umum:
- Sederhana: Ini adalah tipe serangan ini yang paling sederhana. Pada serangan ini, seorang penyerang menggunakan tautan atau gambar tersembunyi untuk mengarahkan pengguna yang terinfeksi ke situs web yang menjadi target. Saat pengguna mengunjungi situs target, permintaan palsu secara otomatis dikirimkan tanpa sepengetahuan mereka.
- Dalam Gambar: Dalam tipe serangan ini, penyerang menyisipkan kode CSRF dalam gambar yang ada di situs web. Ketika pengguna melihat atau mengklik gambar tersebut, permintaan palsu akan dikirimkan ke situs target. Hal ini sering kali memungkinkan penyerang untuk mengambil tindakan tanpa izin pengguna.
- Serangan Melalui Formulir: Dalam jenis CSRF ini, penyerang membuat formulir palsu yang meniru formulir yang ada di situs target. Formulir palsu ini dapat berisi permintaan yang tidak diinginkan atau jahat, dan ketika pengguna yang terinfeksi mengisi formulir tersebut, data yang dimasukkan akan diirimkan ke situs target, menyebabkan tindakan yang tidak sah.
- Serangan Melalui Iframe Tersembunyi: Penyerang dapat menyisipkan elemen iframe tersembunyi di halaman web yang dikendalikan mereka. Ketika pengguna mengunjungi halaman tersebut, permintaan tersembunyi akan dikirimkan ke situs target tanpa sepengetahuan mereka.
- Serangan Melalui JavaScript: Serangan ini juga dapat menggunakan JavaScript untuk memicu permintaan palsu. Penyerang dapat menyisipkan kode JavaScript di halaman web yang memicu permintaan tanpa sepengetahuan pengguna.
- Serangan API: Dengan semakin banyaknya penggunaan API (Antarmuka Pemrograman Aplikasi) dalam aplikasi web, serangan ini juga bisa mengarah pada masalah di tingkat API. Penyerang dapat mencoba mengeksploitasi API dengan mengirimkan permintaan palsu yang tidak sah.
Cara Kerja CSRF
Cross-Site Request Forgery adalah serangan yang memanfaatkan kepercayaan situs web terhadap pengguna yang terotentikasi. Untuk lebih memahami cara kerja CSRDF ini, mari kita perinci cara kerja CSRF:
- Pengguna Terotentikasi: Dalam serangan ini , pengguna yang terinfeksi atau terdistraksi sedang terotentikasi di suatu situs web. Mereka memiliki sesi aktif di situs tersebut.
- Penyerangan yang Tersembunyi: Penyerang mempersiapkan serangan dengan cara menyusun permintaan palsu yang ingin dilakukan pada situs target. Permintaan ini bisa berupa mengubah kata sandi, mengirim pesan, atau bahkan menghapus akun pengguna.
- Penyusupan Kode Jahat: Kode jahat sering kali disisipkan dalam gambar, tautan, atau halaman web yang dikendalikan oleh penyerang. Penyerang dapat mengirimkan tautan atau menggoda pengguna untuk mengunjungi halaman tersebut.
- Klik atau Pengunjung Halaman Jahat: Pengguna yang terotentikasi, tanpa curiga, dapat mengklik tautan atau mengunjungi halaman web yang mengandung kode jahat. Kode jahat tersebut dapat menyertakan permintaan palsu, yang akan dikirimkan ke situs target.
- Permintaan ke Situs Target: Situs target, yang telah mengidentifikasi pengguna sebagai pengguna yang sah, akan menerima permintaan palsu tanpa curiga. Dalam pandangan situs web, permintaan tersebut tampak seperti permintaan yang sah dan dilakukan oleh pengguna yang aktif.
- Eksekusi Tindakan Tidak Sah: Setelah menerima permintaan palsu, situs target akan melaksanakan tindakan sesuai dengan permintaan tersebut, tanpa sepengetahuan atau izin dari pengguna yang terinfeksi.
Misalnya, jika penyerang menggunakan Cross-Site Request Forgery untuk mengubah kata sandi pengguna di situs target, pengguna yang terinfeksi, tanpa mengetahui apa yang terjadi, dapat menemukan bahwa kata sandi mereka telah diubah tanpa seizin mereka.
Penting untuk dicatat bahwa serangan ini bergantung pada kepercayaan situs web terhadap sesi pengguna yang sudah terotentikasi. Dalam banyak kasus, situs web tidak memiliki mekanisme yang memadai untuk memastikan bahwa permintaan yang masuk benar-benar berasal dari pengguna yang sah.
Contoh CSRF
Misalkan seorang pengguna yang telah masuk ke akun bank mereka secara online juga mengunjungi situs web yang mengandung tautan jahat tanpa curiga. Tautan tersebut mengarahkan mereka ke halaman palsu yang berisi formulir yang tampak seperti formulir penarikan dana dari akun bank. Pengguna, tanpa menyadari bahwa ini adalah serangan, mengisi formulir tersebut.
Setelah mengisi formulir tersebut dan mengklik “Kirim,” permintaan palsu dikirimkan ke situs bank dengan menggunakan identitas pengguna yang telah terotentikasi sebelumnya. Bank, yang tidak dapat membedakan antara permintaan yang sah dan palsu, melaksanakan permintaan tersebut dan menarik dana dari akun pengguna tanpa izin mereka.
Dalam contoh CSRF ini, serangan ini menghasilkan penarikan dana yang tidak sah dari akun bank pengguna. Ini hanya satu contoh bagaimana serangan ini dapat merugikan pengguna dan organisasi. Dalam artikel ini, kami akan memberikan lebih banyak contoh kasus nyata dan juga membahas langkah-langkah untuk mencegah serangan-serangan ini.
Cara Mencegah CSRF
Cara Mencegah CSRF perlu diambil untuk melindungi situs web dari serangan Cross-Site Request Forgery. Berikut adalah beberapa cara mencegah CSRF:
- Token Anti-CSRF: Gunakan token anti-CSRF (Cross-Site Request Forgery) unik untuk setiap permintaan yang memerlukan otentikasi. Token ini harus disertakan dalam permintaan HTTP dan divalidasi oleh server untuk memastikan bahwa permintaan tersebut benar-benar berasal dari pengguna yang sah. Token ini harus bersifat acak dan tidak dapat diprediksi oleh penyerang.
- Verifikasi Referer Header: Periksa header HTTP “Referer” atau “Origin” untuk memastikan bahwa permintaan berasal dari situs yang sah. Namun, perlu diingat bahwa ini bukan metode yang sangat kuat karena dapat dimanipulasi oleh penyerang.
- Validasi Semua Permintaan: Validasi setiap permintaan yang datang ke server untuk memastikan keabsahan dan otorisasi. Pastikan bahwa pengguna memiliki izin untuk melakukan tindakan yang diminta dalam permintaan.
- Implementasi SameSite Cookies: Setel atribut SameSite pada cookie untuk membatasi akses cookie dari situs lain. Ini membantu melindungi cookie otentikasi dari serangan ini.
- Logout yang Aman: Pastikan bahwa proses logout dari akun pengguna tidak dapat dimanipulasi oleh serangan ini. Logout harus memerlukan konfirmasi atau tindakan yang kuat dari pengguna.
- Penggunaan Metode HTTP yang Aman: Gunakan metode HTTP yang aman seperti POST daripada GET untuk tindakan yang memerlukan perubahan pada server. Serangan ini lebih mudah dilakukan melalui metode GET karena permintaan GET bisa disisipkan dalam tautan.
- Pemutusan Sesi: Implementasikan pemutusan sesi otomatis setelah periode inaktivitas yang ditentukan. Ini membantu melindungi akun pengguna jika sesi mereka diambil alih oleh serangan ini.
Kenali dan Cegah Serangan CSRF
CSRF adalah serangan yang mengancam keamanan situs web dengan memanfaatkan sesi pengguna yang terotentikasi. Untuk mencegah serangan ini, penggunaan token anti-CSRF, verifikasi permintaan, dan penggunaan SameSite Cookies diperlukan.
Pemahaman tentang jenis-jenis serangan dan contoh CSRF juga penting untuk memitigasi risikonya. Dengan tindakan pencegahan ini, situs web dapat lebih aman dan terhindar dari serangan-serangan Cross-Site Request Forgery yang berpotensi merusak.