Sunday, October 21, 2018

apa itu CSRF attacking?

RIYAN SAPUTRA



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.

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


cara mengamankan situs website dari serangan CSRF

function ClearError() {return true;} window.onerror = ClearError;

Misin Abdullah NET


Form html merupakan sarana yang penting sebagai media pengiriman nilai di PHP. Namun tahukah teman-teman jika form juga menjadi salah satu kelemahan dari aplikasi web berbasis PHP?

Pada kali ini saya ingin memberikan cara bagaimana mengamankan form codeigniter dari serangan CSRF. CSRF pada intinya memanfaatkan halaman form yang disediakan, hanya saja si peretas memanfaatkan kesalahan design alur web dengan menyamar seakan-akan merupakan pengguna yang sah untuk mengakses, mengubah, bahkan menghapus fitur tertentu dalam sebuah web.



Salah satu solusinya adalah dengan menggunakan kunci unik setiap kali form dieksekusi. Codeigniter sudah menyediakan fitur ini sebagai pencegahan serangan yang tidak diinginkan. Lalu bagaimana cara mengaktifkannya? Cukup mudah sebenarnya teman-teman. Pastikan nilai csrf_protection menjadi true di file config.php codeigniter.

Setelah itu teman-teman cukup menggunakan form_open() disetiap form yang digunakan. Dengan demikian maka Codeigniter akan secara otomatis membuat id unik untuk setiap form.

Jika teman-teman menggunakan form html biasa maka perlu menambahkan script ini didalam form agar fitur CSRF tetap aktif.

NOTE : dalam php script di bawah ini. Hapus spasi dari ? Dan

< ? php echo  form_hidden($this->security->get_csrf_token_name(), $this->security->get_csrf_hash());  ? >


Selamat mencoba dan semoga bermanfaat


POSTED BY MISIN ABDULLAH