Proposal KSI Cross Site Scripting

15
Cara Pencegahan Cross-site Scripting Pada Website www.fortunecake.com Dengan Metode Pengkodean HTML Escape Mode Dibuat Untuk Memenuhi Tugas Besar Keamanan Sistem Informasi Dosen: Irawan Afrianto S.T., M.T. OLEH: 10111385 Verbri Lerikave Manuel 10111391 Asep Ahadiaturrohman Nuroja 10111395 Taufik HidayatSupratman 10111398 Yudha Taufik Nugraha 10111402 Wildan Abdulgani KELAS KSI-3

description

Propsal pengajuan

Transcript of Proposal KSI Cross Site Scripting

Page 1: Proposal KSI Cross Site Scripting

Cara Pencegahan Cross-site Scripting Pada Website

www.fortunecake.com Dengan Metode Pengkodean

HTML Escape Mode

Dibuat Untuk Memenuhi Tugas Besar Keamanan Sistem Informasi

Dosen: Irawan Afrianto S.T., M.T.

OLEH:

10111385 Verbri Lerikave Manuel

10111391 Asep Ahadiaturrohman Nuroja

10111395 Taufik HidayatSupratman

10111398 Yudha Taufik Nugraha

10111402 Wildan Abdulgani

KELAS KSI-3

Program Studi Teknik Informatika

Fakultas Teknik Dan Ilmu Komputer

2015

Page 2: Proposal KSI Cross Site Scripting

Daftar Isi1. Latar Belakang Masalah........................................................................................................................3

2. Identifikasi Masalah...............................................................................................................................4

3. Maksud Dan Tujuan...............................................................................................................................4

4. Batasan Masalah.....................................................................................................................................4

5. Deskripsi Sistem......................................................................................................................................4

1. Fortunecake.com.....................................................................................................................4

2. Macam – Macam Celah Keamanan Web.............................................................................5

3. Pencegahan CROSS SITE SCRIPTING...............................................................................9

Daftar Pustaka...........................................................................................................................................11

Page 3: Proposal KSI Cross Site Scripting

1. Latar Belakang Masalah

Keamanan web atau web security adalah suatu proses untuk mengamankan suatu

web. Proses ini berupa suatu mekanisme yang bekerja untuk mencegah akses dan

modifikasi oleh user yang tidak dikenal, terhadap data-data dari web yang tersimpan

secara online. Untuk suatu web application yang tidak mengimplementasikan suatu

sistem keamanan dalam sistemnya, maka sudah jelas akan meninggalkan celah besar

yang bisa dimanfaatkan oleh hacker maupun cracker untuk menembusnya. Sedangkan

untuk suatu web yang sudah memiliki sistem keamanan di dalamnya, celah ini bisa saja

muncul karena terlewatnya satu sisi keamanan dari web tersebut yang tidak diperhatikan

sebelumnya saat perancangan sistem keamanan, ataupun bisa juga dikarenakan

meningkatnya kemampuan seorang hacker ataupun cracker untuk menembus sistem

keamanan suatu web.

Dari sekian banyak ancaman yang bisa dilakukan para hacker maupun cracker

terhadap kemanan web, terdapat satu cara yang bisa dikatakan berbahaya dan paling

banyak ditemukan di website manapun termasuk website seperti google, facebook,

Amazon, Paypal, dll. Ancaman tersebut adalah Cross-site Scripting atau sering disingkat

XSS.

XSS merupakan  jenis serangan ke sebuah situs dengan cara ’menyisipkan’ kode

script (biasanya JavaScript) ke dalam sebuah situs. Hal ini hanya akan berhasil jika situs

tersebut memiliki fitur untuk menampilkan kembali isian form ke web browser, seperti

form komentar. Penanganan untuk Cross-site Scripting merupakan hal yang sangat

penting, terutama dalam pembuatan kode form dengan PHP. Karena form pada dasarnya

dapat diinput oleh siapa saja, maka kita perlu memproteksi situs dari kode-kode

berbahaya yang bisa diinput oleh user melalui form.

Melihat banyak sekali website-website yang menggunakan form pengisian entah itu

untuk komentar atau untuk hal lainnya maka ancaman terhadap Cross-site Scipting ini

pun jadi mudah untuk didapat dan ditemukan, namun susah untuk diatasi. Maka akan

dibahas  Cara Validasi Form untuk Mencegah Cross-site Scripting.

Page 4: Proposal KSI Cross Site Scripting

2. Identifikasi Masalah

Berdasarkan latar belakang masalah yang telah dipaparkan diatas, maka dapat di

identifikasi bahwa yang menjadi pokok permasalahan adalah bagaimana Cara Validasi

Form untuk Mencegah Cross-site Scripting.

3. Maksud Dan Tujuan

Maksud dari pembahasan ini adalah untuk menjelaskan cara mencegah ancaman dari

Cross-site Scripting dengan validasi form. Tujuan dari pembahasan ini adalah membuat

form tervalidasi sehingga tidak bisa terserang ancaman Cross-site Scripting.

4. Batasan Masalah

Merujuk pada paparan latar belakang masalah, agar pembahasan ini lebih terarah,

maka masalah dibatasi hanya pada hal-hal sebagai berikut:

1. Website yang akan di uji cobakan pencegahan terhadap XSS ini adalah

www.fortunecake.com

5. Deskripsi Sistem

1. Fortunecake.com

Didalam era jaman digital sekarang ini, internet dan gadget dapat membantu

mempermudah pengguna nya dalam mengakses jual-beli barang secara online, mencari ilmu

dan segala hal yang terdapat didalamnya. Pengguna dapat memesan barang dan membeli

barang tanpa perlu datang ke toko penjual dalam memilih atau mencari barang yang

diinginkan seperti contoh nya website Fortunecake.com.

Website Fortunecake.com merupakan salah satu website khusus untuk penjualan online

dibidang aneka kue. Website Fortunecake.com diciptakan untuk mempermudah pembeli

dalam memilih aneka kue dan memesan kue yang diinginkan tanpa perlu mendatangi

langsung toko penjual kue. Didalam website ini terdapat menu pilihan-pilihan aneka kue

yang diperjualkan dan user bebas memilih. Dalam pemesanan kue yang telah dipilih user

harus menjadi member terlebih dahulu untuk dapat memesan dan memilih metode

pembayarannya. Untuk menjadi member, user hanya perlu membuat akun dan mengisi

Page 5: Proposal KSI Cross Site Scripting

persyaratan yang terdapat didalam menu sign up untuk memiliki username dan password.

Setelah memiliki akun member, user dapat memesan kue yang dipilih dengan pilihan transfer

atau Cash On Delivery (COD) dalam metode pembayarannya.

2. Macam – Macam Celah Keamanan Web

Dalam sebuah website harusnya tidak memungkinkan untuk mengekploitasi web

tersebut, untuk itu diperlukan sebuah upaya dalam menganalisa celah - celah keamanan yang

ada, adapun celah –celah tersebut antara lain :

a. Unvalidated input

semua aplikasi web menampikan data dari HTTP request yang dibuat oleh user dan

menggunakan data tersebut untuk melakukan operasinya. Hacker dapat memanipulasi

bagian-bagian pada request (query string, cookle information, header) untuk membypass

mekanisme keamanan. Berikut ini tiga jenis penyerangan yang berhubungan dengan masalah

ini:

a. Cross site scripting

b. Buffer overflow

c. Injection flaws

b. Broken Access Control

Banyak aplikasi yang mengkategorikan user-usernya ke dalam role yang berbeda dan

level yang berbeda untuk berinteraksi dengan content yang dibedakan dari kategori-kategori

tersebut, salah satu contohnya, banyak aplikasi yang terdapat user role dan admin role: hanya

admin role yang dijinkan untuk mengakses halaman khusus atau melakukan action

melakukan action administration.

Masalahnya adalah beberapa aplikasi tidak efektif untuk memaksa agar otomatis ini

bekerja contohnya, beberapa program hanya menggunakan sebuah chekpoint dimana hanya

user yang terpilih yang dapat mengakses: untuk proses lebih lanjut, user harus membuktikan

dirinya menjalankan pengecekan dari chek point sebelumnya: dimana apabila user berhasil

melewati halaman login, mereka dapat bebas menjalankan operasi. Masalah lain yang

berhubungan dengan access control adalah :

Page 6: Proposal KSI Cross Site Scripting

a) Insecure Ids (Id Tidak aman) – beberapa site menggunakan id atau kunci yang

menunjukan kepada user atau fungsi. ID dapat juga ditebak, dan jika hacker dapat

mudah menebak ID dari user yang terautorisasi, maka site akan mudah diserang.

b) File permissions- kebanyakan web dan aplikasi server percaya kepada external file

yang menyimpan daftar dari user yang terotorisasi dan resources mana saja yang

dapat dan/atau tidak dapat di akses. Apabila file ini dapat di baca dari luar, maka

hacker dapat memodifikasi dengan mudah untuk menambahkan dirinya pada daftar

user yang diijinkan.

Langkah–langkah apa saja yang dapat di lakukan untuk mengatasinya? Pada contoh-

contoh tadi, kita dapat mengembangkan filter atau komponen yang dapat di jalankan pada

sensitive resources, filter atau komponen tadi dapat menjamin hanya user yang terotorisasi

dapat mengakses. Untuk melindungi dari inseure Ids yang dapat memberi acess control, pada

masalah file permission, file-file tersebut harus berada pada lokasi yang tidak dapat di akses

oleh web browser dan hanya role tertentu saja yang dapat mengaksesnya.

c. Broken Authentication dan session Management

Authentication dan session management menunjuk kepada semua aspek dari

pengaturan user authentifikasi management of active session, ini beberapa hal yang perlu di

perhatikan :

1. Password strength-Aplikasi kita harus memberikan level minimal dari keamanan

sebuah password dan mendaftar: aplikasi tidak mengijinkan password dengan

panjang 3-4 atau kata-kata simple yang dapat mudah ditebak oleh hacker.

2. Password use –Aplikasi kita harus membatasi user yang mengakses aplikasi

melakukan login kembali ke sistem pada tenggang waktu tertentu. Dengan cara ini

aplikasi dapat dilindungi dari serangan brute force dimana hacker bisa menyerang

berulang kali untuk berhasil login ke sistem, selain itu, log in yang gagal sebaiknya

dicatat sebagai informasi kepada administrator untuk mengindikasikan kemungkinan

serangan yang terjadi.

3. Password storage – password tidak boleh disimpan di dalam aplikasi. Password harus

disimpan dalam format terenkripsi dan disimpan di file lain seperti database atau file

Page 7: Proposal KSI Cross Site Scripting

password. Hal ini dapat meastikan bahwa informasi yang sensitif seperti password

tidak disebarkan ke dalam aplikasi.

Issue lain yang berhubungan: password tidak boleh dalam bentuk hardcode didalam

source code. Session ID Protection – server biasanya menggunakan session Id untuk

mengidentifikasi user yang msauk kedalam session. Akan tetapi jika session ID ini dapat

dilihat oleh seseorang pada jaringan yang sama, orang tersebut dapat menjadi seorang client.

Salah satu cara yang dapat digunakan untuk mencegah terlihat sessio ID oleh seseorang

pada suatu jaringan yang sama adalah menghubungkan komunikasi antara server dan client

pada sebuah SSL-protected channel.

d. Cross Site Scripting

Cross Site Script atau kependekannya XSS merupakan salah satu serangan injeksi code

(code injection attack). XSS dilakukan oleh penyerang dengan cara memasukan kode HTML

(HyperText Markup Language) atau client script code lainnya kesuatu situs. Serangan ini

akan seolah-olah datang dari situs tersebut akibat serangan ini antara lain penyerang dapat

mem-bypass keamanan disisi klkien, mendapat informsi sensitif, atau menyimpan aplikasi

berbahaya. Alasannya kependekan yang digunakan XSS bukan CSS karena CSS sudah

digunakan untuk cascade syle sheet. Cross site Scripting atau XSS memiliki Tipe XSS

antara lain:

1. Reflected XSS atau nonpersitent

Reflected XSS merupakan tipe XSS yang paling umum dan yang paling

mudah dilakukan oleh penyerang. Penyerang menggunakan social engineering agar

tautan dengan kode berbahaya ini diklik oleh pengguna. Dengan cara ini penyerang

bisa mendapatkan cookie pengguna yang bisa digunakan selanjutnya untuk membajak

session pengguna.

Mekanisme pertahanan menghadapi serangan ini adalah dengan melakukan

validasi input sebelum menampilkan data apapun yang di-generate oleh pengguna.

Jangan percaya apapun data yag dikirim oleh pengguna.

2. Stored XSS

Stored XSS lebih jarang ditemui dan dampak serangannya lebih besar. Sebuah

serangan stored XSS dapat berakibat pada seluruh pengguna. Stored XSS terjadi saat

Page 8: Proposal KSI Cross Site Scripting

pengguna diizinkan untuk memasukan data yang akan ditampilkan kembali.

Contohnya adalah pada message board, buku tamu, dll. Penyerang memasukkan kode

HTML atau client script code lainnnya pada posting mereka. Serangan ini lebih

menakutkan. Mekanisme pertahanannya sama dengan reflected XSS: jika pengguna

diizinkan untuk memasukkan data, lakukan validasi sebelum disimpan pada aplikasi.

e. Buffer over Flow

Kelemahan Buffer overflow adalah salah satu dari banyak kelemahan dari keamanan

komputer. Kelemahan jenis ini dapat digunakan pada remote acces atau local acces atau,

karena ini dapat memberikan si Attacker kesempatan untuk melancarkan jurus-jurus dengan

coding di komputer target.

Serangan Buffer overflow terjadi ketika si attacker emberikan input yang berlebihan

pada program yang di jalankan, sehingga program mengalami kelebihan muatan dan memory

tidak dapat mengalokasikannya. Ini memberikan kesempatan kepada Attacker untuk

menindih data pada program dan men take over kontrol porgram yang dieksekusi attacker.

Buffer over flow hasil dari kelemahan bahasa pemograman c, c++, fontran, dan assembly,

yang tidak secara otomatis melakukan pengecekan batas input ketika program dieksekusi.

Sebagai akibat dari Buffer overflow dapat menyebatkan crash pada program, atau

mempersilahkan si Attacker untuk mengesekusi perintah atau coding jahatnya untuk

menguasai sistem target, seperti tujuan mengambil alih akun root menggunakan metode

buffer overflow.

f. Injection Flows

Injection flaws,yaitu salah satu teknik hacking yang memanfaatkan celah keamanan

pada basis datanya. dan yang sering digunakan adalah SQL injection dengan memasukan

perintah-perintah SQL pada website yang lemah dalam membuat struktur basis data, akan

memudahkan bagi hacker untuk mendapatkan informasi pribadi, seperti strukur tabel basis

data, kolom-kolom yang terdapat pada tabel basis data tersebut, hingga isi record basis data

tersebut. sehingga hacker bisa mengetahui username atau id dan password admin pengelola

website tersebut.

Page 9: Proposal KSI Cross Site Scripting

Dalam hal ini fokus bahasan yang diajukan merupakan cross site scripting yang mana

akan dibahas cara pencegahanya pada point selanjutnya.

3. Pencegahan CROSS SITE SCRIPTING

Adapun cara terbaik untuk menanggulangi cross site scripting dengan cara antara lain :

metode POST, pengkodean karakter special pada link dan validasi pada inputan (textbox atau

text area) yang biasa digunakan sebagai media inputan dalam sebuah web.

1. Metode POST

Metoda POST merupakan metoda pengiriman dimana variabel yang dikirimkan

tidak disertakan pada link yang digunakan. Metoda POST menyembunyikan variabel

yang dikirimkan dari pengguna. Metode ini menjamin kode tidak dapat diinjeksikan

melalui link yang telah didesain oleh penyerang. Penggunaan metode GET dalam

prakteknya akan menghasilkan querystring pada link sehingga kita akan mudah

mengijeksikan code HTML atau JavaScript pada metode GET sedangkan untuk metode

POST variable tersebut disembunyikan contoh :

- Link dengan menggunakann metode GET

http://www.richson.com/halaman1.asp?username=me

- Link dengan menggunakan metode POST

http:// et1/helo.asp

Pada link yang menggunakan metode GET, penyerang dapat menginjeksikan

script html atau javascript sehingga link tersebut menjadi

http://www.richson.com/halaman1.asp?username=<script language =

“JavaScript”>alert(‘Hi’)</script> maka hal yang akan terjadi adalah akan muncul

sebuah pop up yang bertuliskan Hi

2. Pengkodean Special Karakter Pada Link

Untuk men-non aktifkan kode script yang diijeksikan, kita perlu membuat aplikasi yang

mampu mengkodekan karakter, sehingga karakter tersebut tidak dimengerti oleh browser

yang digunakan. Proses pengkodean juga harus mencangkup HTML escape code

Page 10: Proposal KSI Cross Site Scripting

(%hexnumber). Fungsi yang digunakan merupakan fungsi htmlspecialchars() yang

disimpan dalam link sehingga ketika menginjeksikan script html atau javascript maka

html akan merubah script yang diinputkan penyerang menjadi karakter khusus yang tidak

akan diproses oleh html. [1]

3. Validasi inputan

Validasi inputan merupakan validasi yang ampuh dilakukan dikarenakan biasaya cracker

melakukan penyerangan menggunakan media ini. Adapun penambahan fungsi yang harus

dilakukan untuk memvalidasi inputan ini yaitu dengan menggunakan fungsi

htmlspecialchars() yang mana fungsi ini mengubah karakter karakter yang memiliki

makna di HTML dan JavaScript menjadi named entity yaitu mengkonversikan karakter

khusus. Adapun fungsi lain yang biasa digunakan yaitu dengan fungsi strip_tags() yang

mana fungsi ini akan menghilangkan tag HTML atau JavaScript dari inputan user. Dalam

prakteknya penggunaan fungsi htmlspecialchars() dan strip_tags() tergantung pada alur

logika form yang dibuat misalkan untuk isian form seperti user_name, email dan alamat

akan lebih aman jika tidak diperbolehkan tag html sama sekali sehingga digunakan fungsi

strip_tags() sedangankan untuk isian komentar penggunaan beberapa tag masih

diperlukan sehingga fungsi strip_tags() yang dipakai untuk variabel komentar menjadi

$komentar = strip_tags($komentar,’<a><b><i>’) sedangkan penggunaan fungsi

htmlspecialchars() lebih ditekankan pada isian form nama. [2]

Page 11: Proposal KSI Cross Site Scripting

Daftar Pustaka

[1] R. U. Tambun, “cross site scripting,” 2004. [Online]. Available:

http://budi.insan.co.id/courses/ec5010/projects/richson-report.pdf. [Diakses 17 05 2015].

[2] Andre, “Dunia Ilmu Komputer,” [Online]. Available: http://www.duniailkom.com/tutorial-form-php-

validasi-form-untuk-mencegah-cross-site-scripting-dan-html-injection/. [Diakses 17 05

2015].