Mengenal Serangan CSRF dan Memperbaikinnya

0
64

Mungkin kita sudah pernah dengar apa itu CSRF (Cross Site Request Forgery) adalah sebuah serangan pada website yang dieksekusi atas wewenang korban, tanpa dikehendakinya. Celah keamanan CSRF (baca “sea-surf) telah dikenal sejak 1990-an dalam beberapa kasus eksploitasi, dan tetap mengancam sampai saat ini, seiring dengan semakin banayk berbagai website dengan teknologi dan fiturnya masing-masing. CSRF merupakan pemalsuan request yang berasal dari site yang berbeda, tetapi dari sisi client tidak mengubah alamat IP karena memang dieksekusi oleh korban. Serangan CSRF dapat ditunjukkan seperti serangan pada diagram dibawah.

Penyerang mengirimkan link atau halaman berisi request tersembunyi pada pengguna (korban), yang dieksekusi oleh penggunan tersebut ke website target. Dalam menyusun serangan, penyusun akan mempelajari terlebih dahulu kelemahan-kelemahan website target yang dapat dimanfaatkan dengan teknik CSRF.
Website yang menyimpan cookies sehingga mengizinkan pengguna untuk datang kembali tanpa mengetikkan username dan password, akan menarik perhatian menyerang untuk lebih mengekplorasi fitur-fitur yang terdapat pada website setelah login.
Berhati-hatilah karena walaupun anda membuat website yan cukup strict dalam masalah login, website tersebut belum tentu aman 100% dari serangan CSRF. Bagaimana jika website tersebut memiliki fitur message/mailbox seperti yang dimiliki berbagai website jejaring sosial dan webmail. E-mail atau message berbahaya dikirimkan langsung ke mailbox anda.
Penyerang juga akan mempelajari apakah website melakukan pengecekan header atau token berisi id unik. jika pengamanan ini tidak dilakukan dan hanya berdasarkan session/cookies saat login, maka serangan CSRF dapat dilakukan tanpa masalah berarti.
Eksplorasi berikutnya adalah melihat fitur apa saja yang disediakan website, mungkin berbentuk form atau button/link yan dapat di submit. Penyerang akan melihat fungsinya, aksi-aksi sensitif seperti delete account, change password, mengubah preferensi, dan sebagainya, akan menarik perhatian penyerang untuk dimanfaatkan bagi kepentingan penyerang.
Jika terdapat parameter yang berpotensi digunakan dalam serangan CSRF, maka penyerang akan menentukan nilai parameter dalam penyerangannya. Jika terdapat hidden input berisi token rahasia, penyerang akan berusaha menemukan algoritma dan menemukan isi field tersebut. Setelah serangan siap dilancarkan, penyerang akan berusaha menarik korbannya dengan link atau halaman yang mengandung requestter sembunyi.
Semakin website anda dikenal, semakin berpotensi dieksplorasi oleh siapapun. Hanya dengan memahami pemikiran dan usaha yang mungkin dilakukan penyerang, maka perancangan aplikasi web dapat diarahkan pada tindak pengamanan yang tepat.
Pada halnya serangan dengan menggunakan CSRF ini sebanding dengan serangan Sql Injection, tentu ini akan berisiko fatal terhadap website yang memilik kelemahan CSRF ini.

Cara Memperbaiki Celah Keamanan CSRF

Celah keamanan ini terletak di sisi aplikasi yang berjalan di server. Dan dengan demikian tidak dapat sepenuhnya ditanggulangi di sisi client. Walaupun demikian, ada baiknya pengguna meminimalkan dampak akibat celah keamanan ini. Cara-cara praktis yang menurut saya dapat sedikit banyak mencegah dampak dari celah keamanan ini adalah sebagai berikut:

 Jangan lupa melakukan log out setelah usai menggunakan layanan di Internet.
 Gunakan perambah (browser) yang berbeda untuk mengakses layanan yang anda percayai (web mail dan semacamnya) dan untuk keperluan menjelajah Internet.
 Mematikan fungsi third party cookies. (sebenarnya saya tidak tahu persis apakah ini akan berfungsi atau tidak)

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.