Apa Itu CSRF, Cara Kerja, dan Cara Mencegahnya

Pada kesempatan kali ini, akan diulas mengenai apa itu CSRF, cara kerja CSRF, jenis CSRF, serta cara mencegahnya. Makanya, jangan beranjak dulu dari layarmu sebelum kalian pantengin sampai kelar tentang Apa Itu CSRF, Cara Kerja, dan Cara Mencegahnya

Apa Itu CSRF?

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 website tanpa sepengetahuan mereka.

Serangan ini memanfaatkan kondisi pengguna yang sudah terotentikasi dalam sesi aktif di website tertentu. Dengan demikian, website percaya bahwa permintaan yang datang dari pengguna itu sendiri adalah sah.

Kesalahan pada umumnya adalah jika website yang rentan tidak melakukan verifikasi yang memadai untuk memastikan bahwa permintaan tersebut benar-benar berasal dari pengguna yang sah atau jika website tidak menggunakan mekanisme token untuk mencegah serangan ini.

Alasan Perlu Diwaspadai

Berikut ini beberapa alasan mengapa perlu waspada terhadap serangan ini: 

  • Pengguna Terotentikasi: Serangan ini memanfaatkan sesi aktif pengguna yang sudah terotentikasi sehingga website percaya bahwa permintaan berasal dari pengguna yang sah.
  • Potensi Dampak Besar: Dampak dari serangan ini bisa sangat merusak, seperti mengubah password, mengirim email palsu, atau menghapus data penting pengguna.
  • Kemungkinan Penyebaran Luas: Serangan ini dapat disamarkan dengan baik dan mengecoh pengguna serta pemilik website. 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 

Di bagian ini, kita akan mengidentifikasi dan menjelaskan beberapa jenis CSRF yang umum:

  1. Sederhana: Ini adalah tipe serangan paling sederhana. Pada serangan ini, seorang penyerang menggunakan tautan atau gambar tersembunyi untuk mengarahkan pengguna yang terinfeksi ke website yang menjadi target. Saat pengguna mengunjungi situs target, permintaan palsu secara otomatis dikirimkan tanpa sepengetahuan mereka.
  2. Dalam Gambar: Dalam tipe serangan ini, penyerang menyisipkan kode CSRF dalam gambar yang ada di website. 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.
  3. 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. Ketika pengguna yang terinfeksi mengisi formulir tersebut, data yang dimasukkan akan diirimkan ke situs target sehingga menyebabkan tindakan yang tidak sah.
  4. 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.
  5. 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.
  6. 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

Agar kalian lebih memahami cara kerja CSRDF ini, yuk kita perinci cara kerja CSRF:

  1. Pengguna Terotentikasi: Dalam serangan ini , pengguna yang terinfeksi atau terdistraksi sedang terotentikasi di suatu website. Mereka memiliki sesi aktif di situs tersebut.
  2. Penyerangan yang Tersembunyi: Penyerang mempersiapkan serangan dengan cara menyusun permintaan palsu yang ingin dilakukan pada situs target. Permintaan ini bisa berupa mengubah password, mengirim pesan, bahkan menghapus akun pengguna.
  3. Penyusupan Kode Jahat: Kode jahat sering disisipkan dalam gambar, tautan, atau halaman web yang dikendalikan oleh penyerang. Penyerang dapat mengirimkan tautan atau menggoda pengguna untuk mengunjungi halaman tersebut.
  4. 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.
  5. Permintaan ke Situs Target: Situs target yang telah mengidentifikasi pengguna sebagai pengguna yang sah, akan menerima permintaan palsu tanpa curiga. Dalam pandangan website, permintaan tersebut tampak seperti permintaan yang sah dan dilakukan oleh pengguna yang aktif.
  6. 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.

Penting untuk dicatat bahwa serangan ini bergantung pada kepercayaan website terhadap sesi pengguna yang sudah terotentikasi. Dalam banyak kasus, website tidak memiliki mekanisme yang memadai untuk memastikan bahwa permintaan yang masuk benar-benar berasal dari pengguna yang sah.

Cara Mencegah CSRF

Berikut ini beberapa cara untuk mencegah CSRF:

  1. Token Anti-CSRF: Gunakan token anti-CSRF (Cross-Site Request Forgery) unik untuk setiap permintaan yang butuh 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.
  2. 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.
  3. 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.
  4. Implementasi SameSite Cookies: Setel atribut SameSite pada cookie untuk membatasi akses cookie dari situs lain. Hal ini membantu melindungi cookie otentikasi dari serangan ini.
  5. Logout yang Aman: Pastikan bahwa proses logout dari akun pengguna tidak dapat dimanipulasi oleh serangan ini. Logout harus butuh konfirmasi atau tindakan yang kuat dari pengguna.
  6. 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.
  7. Pemutusan Sesi: Implementasikan pemutusan sesi otomatis setelah periode inaktivitas yang ditentukan. Hal ini membantu melindungi akun pengguna jika sesi mereka diambil alih oleh serangan ini.

Yuk Cegah Serangan CSRF dengan Mengenalinya!

Setelah kita ketahui bersama tentang apa itu CSRF maka diketahui juga bahwa untuk mencegah serangan ini bisa melakukan penggunaan token anti-CSRF, verifikasi permintaan, dan penggunaan SameSite Cookies. Dengan berbagai tindakan pencegahan, website dapat lebih aman dan terhindar dari serangan-serangan CSRF.

Semoga bermanfaat 🙂

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rata rata rating 5 / 5. Jumlah rate 1

Yuk Rate 5 Artikel Ini!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

Bagikan:

Leave a Comment