Upload
sang-pemimpi
View
118
Download
4
Embed Size (px)
Citation preview
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
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 )
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));
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.
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