5
5/13/2018 CSRF-slidepdf.com http://slidepdf.com/reader/full/csrf5571ff1949795991699ca41f 1/5 Tugas Keamanan Jaringan “ Artikel Tentang Cross-site Request Forgery (CSRF) Oleh: AZWAR HARIYANTO 090401073 JURUSAN TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER UNIVERSITAS MUHAMMADIYAH RIAU PEKANBARU 2011

CSRF

Embed Size (px)

Citation preview

Page 1: CSRF

5/13/2018 CSRF - slidepdf.com

http://slidepdf.com/reader/full/csrf5571ff1949795991699ca41f 1/5

Tugas

Keamanan Jaringan

“ Artikel Tentang Cross-site Request Forgery (CSRF) “

Oleh:

AZWAR HARIYANTO

090401073

JURUSAN TEKNIK INFORMATIKA 

FAKULTAS ILMU KOMPUTER 

UNIVERSITAS MUHAMMADIYAH RIAU

PEKANBARU

2011

Page 2: CSRF

5/13/2018 CSRF - slidepdf.com

http://slidepdf.com/reader/full/csrf5571ff1949795991699ca41f 2/5

Cross-site Request Forgery (CSRF).

1. Definisi CSRF

CSRF (sea surf) adalah serangan/exploitasi terhadap situs web dengan memanfaatkan

 pengguna yang sudah terautentikasi. CSRF mengexploitasi tingkat kepercayaan situsweb terhadap pengguna dan menganggap setiap perintah adalah sah untuk dijalankan.

Karena sifat inilah sangat sulit untuk menentukan sebuah aksi adalah murni dari

 pengguna atau karena kelemahan CSRF di situs. Ketika kita membuka sebuah situs,

 browser secara otomatis akan mengirim request atau permintaan kepada web-browser.

Begitu pula ketika browser menemukan kode HTML yang meminta file agar 

didownload ke browser. Kode HTML <img>, <object>, <link> dan <script> yang

mencantumkan sebuah link ke objek yang akan di-request otomatis oleh browser ke

web browser. Contohnya adalah<img src=”http://www.example.com/gambar.jpg”

alt=”gambar” /> yang bila dimasukkan ke dalam source HTML, maka otomatis web-

 browser akan mengirimkan request untuk gambar tersebut. Bila kode tersebut diubah

menjadi <img src=”http://www.example.com/logout.php” />, browser tetap akan

menganggap bahwa terdapat gambar atau image yang harus didownload sehingga

 browser pun mengirim request kepada web-server untuk halaman itu. Pada akhirnya

seolah-olah user melakukan logout dari situs tersebut. Sebuah contoh lagi, bila

terdapat situs bank www.bank-abc.com dan terdapat suatu halaman situs dengankode<img src=”http://www.bank-abc.com/transfer.php?

dari=Alice&jumlah=50000000&untuk= Malory” />. Ketika Alice membuka

halaman tersebut dan kebetulan Alice sedang login atau memilki sesi di www.bank-

abc.com, maka transfer uang akan dilakukan ke rekening Malory tanpa diketahui oleh

Alice. Hanya saja saat ini tidak banyak bank yang menerapkan transfer uang melalui

metode GET seperti di atas karena cukup berbahaya.

2. Pemanfaatan dan Kemungkinan Serangan.

 Pemanfaatan CSRF bervariasi tergantung tingkat pengetahuan si penyerang akan

situs rentan dan kehendaknya. Beberapa kemungkinannya sebagai berikut:

1. Mengganti password e-mail korban, informasi akun atau melakukan logout

2. Korban “membeli” barang dari situs belanja kesayangannya.

3. Korban melakukan transaksi keuangan tanpa disadari

4. Korban melakukan voting terhadap polling situs web tertentu dengan pilihan yang

sudah diatur si penyerang5. korban melakukan posting terus menerus di forum atau situs web interaktif ( DoS )

Page 3: CSRF

5/13/2018 CSRF - slidepdf.com

http://slidepdf.com/reader/full/csrf5571ff1949795991699ca41f 3/5

Kemungkinan serangan juga tidak hanya memanfaatkan web browser tetapi bisa juga

melalui dokumen Word, animasi Flash, RSS/Atom, aplikasi yang berkemampuan XML

atau media lain yang berkemampuan scripting dan internet-ready. Sebagai contoh

ketika korban memeriksa e-mail dengan browser dan secara bersamaan browsing situs

lain dengan animasi Flash (yang disisipi perintah menghapus daftar kontak) di

dalamnya. Korban secara tidak sadar saat itu juga telah menghapus semua daftar kontak 

e-mailnya.

1. Pencegahan Sisi Client

Cara-cara praktis yang menurut saya dapat sedikit banyak mencegah dampak dari

celah keamanan ini adalah sebagai berikut:

1. Jangan lupa melakukan log out setelah usai menggunakan layanan di Internet.

2. Akseslah hanya web-web yang terpecaya3. Gunakan perambah (browser) yang berbeda untuk mengakses layanan yang anda

 percayai (web mail dan semacamnya) dan untuk keperluan menjelajah Internetatau menggunakan mode yang lebih save ex incognito

4. Untuk sisi Pengembang

Untuk pengembang hal-haly yang bisa dilakukan adalah :

• Menambahkan form konfirmasi ketika melakukan action yang kritikal• Memberikan “Key” tertentu pada web kita

Perhatikan Contoh berikut:

123456789101112131

41

<?session_start();#jika form di submit if (isset($_POST['submit'])){  if ($_SESSION['csrfToken'] == $_POST['csrfToken'])  {  echo 'form Amana';  }  else  {

echo "form Palsu";s  } }else{ 

$token = md5(date("Y/m/d h:i:j").uniqid(rand(), TRUE)); 

Page 4: CSRF

5/13/2018 CSRF - slidepdf.com

http://slidepdf.com/reader/full/csrf5571ff1949795991699ca41f 4/5

51617

18192021222

32425262728

2930313233

$_SESSION['csrfToken'] = $token; 

$form = '<form method="POST" action="">Account: <input type="text" name="account" /><br />

Amount: <input type="text" name="amount" /><br /><input type="hidden" name="csrfToken" value="' . $token . '" /><input type="submit" value="Send Money" name="submit" />

 </form>';

 echo $form;

}

Perhatikan pada baris 6 dan 28, di situlah kita meng implementasikan key tadi. Jadi semua

action yang kita terima harus berasal dari website yang valid.

Page 5: CSRF

5/13/2018 CSRF - slidepdf.com

http://slidepdf.com/reader/full/csrf5571ff1949795991699ca41f 5/5

Daftar Pustaka :

1. http://hantuceria.wordpress.com/2008/07/13/cross-site-request-forgery-csrf/ 

2. http://www.koder.web.id/tutorial-php/mencegah-cross-site-request-forgery-csrf-di-php/comment-page-1/#comment-957