Ada berbagai macam serangan yang dapat terjadi di dunia World Wide Web.
Salah satu serangan tersebut bernama Cross-Site Request Forgery yang sering disebut juga sebagai CSRF, XSRF, atau hostile linking.
Teknik serangan yang sudah sangat tua ini diberi nama “cross-site” atau “lintas-situs” karena dalam prosesnya, penyerang memanfaatkan berbagai aplikasi website atau elemen yang berbeda sebagai medianya.
Serangan ini cukup berbahaya sebab bisa membuat Anda melakukan berbagai aktivitas online yang tidak terduga.
Sebab, penyerang mengirimkan permintaan palsu (request forgery) pada aplikasi website yang sedang Anda akses.
Untuk penjelasan lengkapnya, bisa GudPeople temukan pada ulasan berikut ini!
Apa Itu CSRF?
CSRF adalah sebuah serangan yang membuat pengguna internet tanpa sadar mengirimkan request (permintaan) kepada suatu aplikasi website melalui aplikasi website yang sedang digunakan.
Sehingga, aplikasi tersebut mengeksekusi suatu tindakan yang sebenarnya tidak dikehendaki oleh pengguna internet.
Misalnya mengganti foto profil Anda menjadi gambar bebek, menghapus akun secara permanen, atau metransfer uang ke suatu akun.
Lalu, bagaimana bisa seorang pengguna internet tanpa sadar mengirim request kepada suatu aplikasi website?
Pengguna internet bisa tanpa sadar mengirimkan request setelah mengklik exploit URL yang mengarahkan mereka ke suatu website yang mengandung malicious code (kode berbahaya).
Malicious code tersebut dirancang sedemikian rupa, sehingga tidak ada aksi lain yang harus dilakukan oleh pengguna internet agar serangan CSRF berhasil.
Nah, karena dalam peluncuran serangan ini hanya membutuhkan satu kali klik dari pengguna internet, CSRF juga disebut sebagai One-Click Attack.
Jenis-Jenis Serangan CSFR
Ada dua jenis serangan CSFR, yaitu stored CSRF dan reflected CSRF. Berikut uraiannya:
1. Stored CSRF
Stored CSRF adalah serangan dengan memanfaatkan aplikasi website yang akan diserang sebagai media pendistribusian exploit URL.
Serangan CSRF jenis ini memiliki peluang lebih besar untuk berhasil sebab pengguna internet sedang berada dalam posisi login.
Sehingga ia tergolong sebagai authentic user dimata sistem aplikasi.
Sehingga ketika CSRF dilancarkan, aplikasi website akan dengan lebih mudah menganggap request yang dikirimkan merupakan request asli dari pengguna internet.
Kelemahan dari serangan ini adalah, ia meninggalkan jejak yang lebih jelas, sehingga lebih mudah ditelusuri oleh pihak pengelola aplikasi website.
2. Reflected CSRF
Reflected CSRF adalah serangan dengan memanfaatkan sistem di luar aplikasi website target untuk mendistribusikan exploit URL.
Pendistribusian exploit URL pada CSRF jenis ini umumnya menggunakan email, konten dan kolom komentar blog, instant message, message board posting, dan lain sebagainya.
Serangan reflected CSRF memiliki resiko kegagalan yang lebih besar sebab pengguna internet kemungkinan besar sedang tidak berada di dalam sistem aplikasi website target saat serangan dilancarkan.
Walau begitu serangan ini dianggap lebih aman oleh pelaku, sebab jejaknya tidak mudah untuk dilacak dan dapat dihapus segera setelah serangan selesai dilakukan.
Cara Kerja CSRF
Secara umum, CSRF bekerja sebagai berikut:
- Pertama, seorang pengguna internet dan server akan mengkonfirmasi session ID dari suatu halaman website.
- Kemudian, penyerang akan melakukan phising alias mengirimkan pesan yang dapat meyakinkan pengguna internet untuk mengklik exploit URL yang dicantumkan.
- Exploit URL sudah di injeksi dengan perintah apapun sesuai keinginan penyerang, misalnya perintah untuk mengubah password akun.
- Password dari akun pengguna pun secara otomatis berubah, dan ketika pengguna internet tersebut logout dari akunnya, ia tidak akan bisa login kembali ke akunnya.
- Sebab penyerang sudah mengganti password Anda.
Namun, ada beberapa ketentuan agar serangan CSRF dapat berjalan dengan baik, yaitu:
- Aplikasi website harus menggunakan session cookies agar malicious request terlihat seperti authentic request.
- CSRF dapat berhasil hanya jika korban sedang aktif di dalam aplikasi website yang dijadikan target.
- Penyerang harus menemukan nilai parameter HTTP yang tepat agar tidak ditolak oleh aplikasi website yang dijadikan target.
Cara Mencegah Serangan CSRF
Serangan CSRF yang berhasil dapat menimbulkan kerusakan dan kerugian yang besar.
Maka sangat penting bagi pengelola aplikasi untuk segera melakukan perbaikan terhadap celah keamanan yang berpotensi ditembus oleh serangan CSRF.
Nah, untuk mencegah serangan CSRF, Anda perlu menerapkan mekanisme pencegahan berikut ini:
1. Secret Validation Token
Secret validation token bekerja dengan cara mengirimkan informasi tambahan pada setiap pengiriman data ke server.
Informasi tersebut berisi nilai acak yang sudah diatur parameternya oleh aplikasi web.
Nilai acak tersebut berfungsi untuk menentukan apakah permintaan tersebut berasal dari pengguna yang memiliki otoritas atau bukan.
Nilai validasi token rahasia ini cukup sulit untuk ditebak oleh pihak yang tidak memiliki akses ke akun pengguna.
Namun, nilai token pada mekanisme pencegahan ini sifatnya sama; selalu sesuai dengan nilai token yang digunakan pada proses validasi pertama.
2. Random Validation Token
Cara kerja random validation token secara umum sama dengan cara kerja secret validation token.
Yang membedakan kedua mekanisme pencegahan ini adalah sifat nilai tokennya yang lebih dinamis.
Pada mekanisme random validation token, semua pengiriman form data memiliki nilai token yang berbeda.
Dimana saat proses pengiriman data selesai, nilai token yang tersimpan pada session akan dihapus.
Sehingga ketika pengguna mengajukan permintaan pengiriman data ulang, sistem aplikasi website akan membentuk nilai token yang baru.
Contoh Serangan CSRF
Celah bagi serangan CSRF telah ditemukan di berbagai situs besar seperti Netflix, Youtube, ING Direct, dan Paypal.me.
Pada tahun 2019, Facebook harus menggelontorkan dana sebesar $25.000 untuk mencegah terjadinya serangan CSRF yang memungkinkan penyerang mengambil alih akun pengguna.
Pada tahun 2016, situs Paypal.me juga memiliki celah keamanan yang memungkinkan penyerang CSRF untuk mengganti foto profil penggunanya tanpa izin.
Celah keamanan ini ditemukan oleh Florian Courtial, seorang software engineer yang suka memanfaatkan waktu luangnya untuk mengulik kelemahan suatu website aplikasi.
Hasil dari risetnya kemudian dijadikan bahan diskusi di dalam blog pribadi Courtial.
Dalam kasus ini, Courtial langsung melaporkan temuannya kepada Paypal.me melalui HackerOne.
Atas laporannya ini, Paypal.me kemudian memberi reward pada Courtial sebesar $750.
Penutup
Kini bisa kita simpulkan bersama bahwa CSRF adalah serangan yang memanfaatkan kelemahan sisitem keamanan dan kelengahan pengguna internet.
Oleh sebab itu, sebaiknya GudPeople juga selalu berhati-hati dan lebih bijak dalam memilih tautan URL mana yang sekiranya aman untuk dikunjungi.
Sehingga, Anda tidak menjadi korban dari serangan CSRF.
Sedih sekali bukan kalau harus kehilangan akun yang telah dibangun bertahun-tahun atau sejumlah uang tunai karena mengklik exploit software di suatu tempat di internet?
Nah, bagi Anda yang memiliki website, sangat disarankan untuk memasang sertifikat SSL agar situs Anda menjadi lebih aman dari serangan siber.