Mengenal Serangan CSRF dan Cara Memperbaikinya - Knowledge Hunter

Gudang Informasi dalam Segala Hal

Mengenal Serangan CSRF dan Cara Memperbaikinya

Mengenal Serangan CSRF dan Cara Memperbaikinya
Mungkin kita sudah pernah dengan 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 menjamurnya 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.

Mengenal Serangan CSRF dan Cara Memperbaikinya
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 bagi 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. pada artikel berikutnya saya akan memberikan contoh pada sebuah website yang memiliki kelemahan ini dan bagaimana cara melakukan serangan CSRF terhadap suatu website. Dan saya juga akan memberikan path atau perbaikan pada kelemahan tersebut. masih banyak serangan terhadap sebuah web dari teknik ini CSRF termasuk kedalam kategori yang berbahaya. beberapa pantau saya terhadap sejumlah website terdapat celah keamanan CSRF ini dan beberapa website instansi pemerintahan, tinjauan saya dapat dari situs http://www.zone-h.org/ , http://www.exploit-db.com/ dan beberapa Group di Facebook.

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)


Solusi untuk pembuat program di sisi server

Banyak pihak yang menyarankan untuk membatasi masa berlaku cookie sampai misalnya 5 atau 10 menit. Solusi yang mudah, tetapi juga sangat mengganggu dan tidak sepenuhnya menutup celah keamanan ini.

Satu-satunya cara yang efektif adalah membuat URL untuk melakukan fungsi penting sulit ditebak oleh orang lain. Sebagai contoh URL untuk menghapus tulisan di blog ini di atas dapat dimodifikasi menjadi misalnya http://target.com/wp-admin/post.php?action=delete&post=1&x=15eb0de86bb6edff65bb3c3786c21b08824eb5ed.

Variabel ‘x’ tersebut adalah hasil fungsi SHA1 dengan ‘adonan’ berupa nomor tulisan (variabel ‘post’) dan sebuah variabel rahasia yang hanya diketahui oleh aplikasi di server tersebut. Jika variabel ‘x’ tersebut tidak ada atau berbeda daripada yang seharusnya, maka aplikasi akan menolak untuk melakukan penghapusan. Karena orang lain tidak mengetahui isi variabel rahasia tersebut, maka ia tidak dapat dengan mudah menebak URL tersebut.

Solusi lain yang bersifat ‘sapu jagat’ adalah dengan menggunakan wildcard hostname. Wildcard hostname memungkinkan kita membuat sembarang hostname yang merujuk ke IP yang sama. Sebagai contoh, URL tersebut di atas dapat kita modifikasi menjadi misalnya http://h437429741748977.priyadi.net/wp-admin/post.php?action=delete&post=1. Di sini ‘h437429741748977′ merupakan nomor acak yang dibuat pada saat pengguna melakukan login. Karena nomor tersebut acak dan cookie kita buat hanya berlaku pada domain acak tersebut, maka orang lain akan kesulitan untuk menebak URL yang tepat.

Tetapi cara yang paling tepat untuk membuat URL sulit untuk ditebak tentunya tergantung dari masing-masing aplikasi.

Tag : Hacking
1 Komentar untuk "Mengenal Serangan CSRF dan Cara Memperbaikinya"

woho mantap bang :D tapi lebih enak attack dari pada bertahan :v

Back To Top