Anda di halaman 1dari 4

JURNAL TEKNIK POMITS Vol. 2, No.

1, (2013) ISSN: 2337-3539 (2301-9271 Print) 1

Rancang Bangun Add-ons Deteksi Cross Site


Scripting (XSS) pada Peramban Mozilla Firefox
Yustiana Tri Wahyuni, Ary Mahzaruddin Shiddiqi
Teknik Informatika, Teknologi Informasi, Institut Teknologi Sepuluh Nopember (ITS)
Jl. Arief Rahman Hakim, Surabaya 60111 Indonesia
e-mail: ary.shiddiqi@cs.its.ac.id.com

AbstrakSaat ini penggunaan aplikasi web dinamis selalu XSS adalah suatu teknik yang memanfaatkan situs web
mengalami peningkatan. Hal tersebut terjadi karena untuk menampilkan malicious code yang kemudian dieksekusi
penggunaannya dapat memudahkan segala kebutuhan pengguna pada peramban pengguna. Menurut data dari White Hat
baik dalam menyediakan maupun manipulasi sumber daya dari
Security, XSS [3] merupakan celah serangan yang paling
server. Berkembangnya fitur-fitur yang didukung oleh peramban
juga menciptakan suatu interaksi yang lebih beranekaragam banyak ditemukan. Pada tahun 2012, sebanyak 47% dari total
dalam layanan berbasis web. Di Indonesia sendiri, pengguna serangan merupakan celah serangan XSS. Oleh karena itu
Mozilla Firefox mencapai 300 juta orang. Namun, penggunaan diperlukan suatu mekanisme perlindungan untuk mendeteksi
aplikasi web dinamis juga meningkatkan ancaman eksploitasi XSS pada peramban pengguna sehingga pengguna dapat
web, salah satunya adalah Cross Site Scripting (XSS). XSS terhindar dari ancaman XSS.
merupakan jenis serangan injeksi code yang memanfaatkan celah
Makalah ini membahas rancang bangun add-ons deteksi
suatu situs web di mana seolah-olah serangan berasal dari situs
tersebut. Untuk itu diperlukan suatu mekanisme perlindungan XSS pada peramban Mozilla Firefox. Sistem dibuat dalam
pengguna terhadap XSS pada peramban Mozilla Firefox. Sistem bentuk add-ons untuk meningkatkan kemampuan yang dimiliki
dapat mendeteksi XSS secara adaptif tanpa perlu menyimpan oleh Mozilla Firefox. Aplikasi ini akan memberikan notifikasi
daftar situs yang terinfeksi XSS terlebih dahulu. Sistem kepada pengguna apabila pengguna mengakses halaman yang
diimplementasikan dalam bentuk add-ons untuk meningkatkan terinfeksi XSS.
kemampuan Mozilla Firefox. Pada aplikasi deteksi XSS ini,
digunakan metode Naive Bayes sebagai klasifikator dan 10-fold
Cross Validation sebagai metode evaluasi model. Di mana, dari II. TINJAUAN PUSTAKA
hasil uji coba terhadap sistem, diperoleh tingkat akurasi sebesar
89%. A. Cross Site Scripting (XSS)
Kata kunci Keamanan Jaringan, Mozilla Firefox, XSS Cross Site Scripting (XSS) adalah adalah suatu teknik
penyerangan yang memaksa suatu situs web untuk
menampilkan malicious code yang kemudian dieksekusi pada
I. PENDAHULUAN peramban pengguna. Penyerangan XSS dapat dilakukan
dengan cara memasukkan kode JavaScript, HTML atau
W ORLD wide web atau yang lebih dikenal dengan www
merupakan suatu ruang informasi yang digunakan untuk
menyediakan data dan informasi yang dapat digunakan
menggunakan pihak ketiga sebagai sumber ke suatu situs di
mana serangan seolah-olah datang dari situs tersebut seperti
bersama. Pada awalnya hanya terdapat web statis yang digambarkan pada Gambar 1. XSS dapat diklasifikasikan
digunakan untuk memberikan informasi berupa teks dan grafis. menjadi tiga jenis yaitu Persistent, Reflective, dan DOM based
Akan tetapi dengan semakin berkembangnya jaman, situs web [2].
yang ada menjadi semakin profesional dan dinamis. Layanan 1. Persistent XSS
Celah Persistent XSS muncul ketika sebuah program web
online yang sering digunakan seperti jejaring sosial, e-
commerce, blog dan forum juga menggunakan aplikasi server menyimpan input pengguna dalam suatu basis data,
dinamis dalam berinteraksi dengan pengguna. Pengguna di mana data yang tersimpan tersebut diakses oleh
menggunakan aplikasi web untuk berkomunikasi dengan program dan dapat dilihat oleh pengguna yang berbeda.
pengguna lain via instant messaging, membuat spreadsheets, 2. Reflective XSS
presentasi, mengirim e-mail, membaca berita dan lain Pada Reflective XSS, celah muncul ketika server
sebagainya. Berkembangnya peramban yang ada juga membuka suatu halaman web yang parameter HTTP
memudahkan penggunaan internet yang ada, salah satunya request-nya terinjeksi malicious code.
Mozilla Firefox. Dari 450 juta pengguna peramban Mozilla 3. DOM based XSS
Firefox, 65% merupakan penduduk Indonesia [1]. Akan tetapi Celah DOM based XSS muncul ketika terdapat script
seiring dengan perkembangan layanan-layanan web, ancaman yang merujuk pada input pengguna yang diperoleh dari
terhadap terjadi eksploitasi seperti pencurian data pribadi juga struktur DOM (Document Object Model) tanpa validasi
ikut meningkat.
JURNAL TEKNIK POMITS Vol. 2, No. 1, (2013) ISSN: 2337-3539 (2301-9271 Print) 2

yang tepat sehingga script berbahaya dapat disisipkan ke 1. Bagi dataset menjadi 10 bagian dengan ukuran yang
dalam DOM tersebut pada sisi pengguna. sama.
Trusted
User
Use
r Attackers Trusted
Trusted
Deteksi XSS
Server Server
Server Pengecekan Hasil Deteksi

User
Request halaman web
1: User visits the Mengakses halaman web legitimate Url halaman web Respon halaman web
attackers Web site Mengakses halaman web XSS
Hasil deteksi

Notifikasi XSS
Server XSS
Web Server
2: User clicks on a malicious link and an HTTP request
containing JavaScript code is sent to the trusted server

3: The trusted server returns an error message User


containing the name of the resource Gambar 2. Arsitektur Sistem

4: The JavaScript code is executed and the user 2. Lakukan training dataset pertama terhadap sembilan
cookie associated with the trusted server is sent
to the attackers server
dataset lainnya.
3. Ulangi training dataset sebanyak 10 kali dan hitung
rata-rata akurasinya.

Gambar 1. Skenario Penyerangan XSS


III. DESAIN SISTEM
B. Metode Naive Bayes A. Deskripsi Umum
Naive Bayes merupakan suatu metode pengklasifikasian Sebagaimana yang telah diuraikan pada bab sebelumnya,
menggunakan probabilitas dan statistik yang dikemukakan maka pada artikel ini akan didesain sebuah add-ons pada
oleh Thomas Bayes, yakni memprediksi kemungkinan atau peramban Mozilla Firefox yang berfungsi untuk mendeteksi
peluang di masa depan berdasarkan pengalaman yang ada di serangan Cross Site Scripting (XSS). Add-ons ini berjalan
masa sebelumnya di mana kondisi antar atribut saling bebas. pada peramban MozillaFirefox versi 19 dan sesudahnya.
Karena diasumsikan sebagai atribut yang bebas, maka hanya Dari add-ons inilah data halaman web yang diakses
varians dari suatu attribut dalam kelas yang dibutuhkan untuk pengguna diambil kemudian dikirim ke server untuk dilakukan
menentukan klasifikasi, bukan keseluruhan dari varians. Untuk pendeteksian terhadap serangan XSS. Ketika halaman web
mengklasifikasikan suatu sampel x, Klasifikator Bayes yang diakses oleh pengguna tidak terdeteksi XSS maka add-
menghitung peluang posteriori dari tiap kelas pada xdan ons tidak akan melakukan tindakan apapun, sebaliknya apabila
memberi nilai x kelas dengan nilai peluang posteriori halaman yang diakses terdeteksi XSS maka add-ons akan
terbesar. Persamaan Naive Bayes, digambarkan pada (1). mengeluarkan notifikasi berupa peringatan atas bahaya XSS.
Pengguna dapat memilih untuk tetap mengakses halaman web
(1 ,, |)
C 1 , , = p (1 ,, )
(1) atau meninggalkan halaman web.
B. Arsitektur Sistem
Dimana : Rancangan arsitektur dari sistem yang dibuat
digambarkan dalam diagram Gambar 2. Aplikasi bekerja pada
- F menunjukkan feature. saat user mengakses suatu halaman web. Add-ons pada
- C menunjukkan class. peramban Mozilla akan mengambil data url halaman yang
- P menunjukkan probabilitas. akan diakses oleh user kemudian mengirimnya ke server.
Kemudian server mengirimkan request untuk meminta konten
C. Cross Validation halaman web dari url yang didapatkan sebelumnya dari add-
Cross Validation adalah teknik validasi model untuk menilai ons. Setelah mendapatkan konten halaman web dari web server
hasil analisis terhadap generalisasi dataset. Cross Validation kemudian server XSS melakukan decoding terlebih dahulu
digunakan untuk memprediksi serta memperkirakan akurasi terhadap url. Kemudian server XSS melakukan ekstraksi
model terhadap praktek. Pengujian Cross Validation sangat feature url dan konten halaman web. Hasil dari proses
penting dilakukan terutama dalam mempertahankan hasil ekstraksi digunakan untuk proses klasifikasi XSS, di mana
pengujian hipotesis yang menggunakan data terutama apabila proses klasifikasi XSS pada sistem ini menggunakan metode
sampel data merupakan data yang berbahaya, mahal atau sulit Naive Bayes. Setelah proses klasifikasi selesai, server XSS
didapatkan. mengirimkan hasil klasifikasi kepada add-ons. Apabila
Dalam pengujian tugas akhir ini, digunakan metode halaman web yang diakses user merupakan halaman yang
evaluasi Cross Validation tipe 10-fold atau yang biasa disebut aman, maka add-ons tidak akan melakukan tindakan apapun.
10-fold Cross Validation. Metode 10-fold Cross Validation Sebaliknya, apabila halaman yang diakses oleh user terindikasi
dapat dijabarkan sebagai berikut: XSS, maka add-ons akan memberikan notifikasi bahaya XSS.
JURNAL TEKNIK POMITS Vol. 2, No. 1, (2013) ISSN: 2337-3539 (2301-9271 Print) 3

C. Feature url dan konten halaman web sehingga menghasilkan


Pada sistem terdapat proses ekstraksi feature, pada vektor feature, di mana vektor feature ini akan digunakan
bagian ini akan dijelaskan mengenai beberapa feature yang untuk proses klasifikasi.
digunakan oleh penulis dalam perancangan aplikasi. Tabel 2. Perbandingan Hasil Klasifikasi XSS
Tabel 1. Perhitungan Akurasi
Naive Bayes K-Nearest Neighbor
Klasifikasi Akurasi 89% 88%
Kondisi
Recall 80% 77%
XSS Normal
Ketelitian 97% 98%
XSS TP FN
3. Proses Klasifikasi
Normal FP TN Pada proses ini, sistem melakukan klasifikasi halaman
web untuk menentukan apakah web termasuk kategori
1) Panjang Url XSS atau tidak, berdasarkan hasil vektor feature. Dataset
Panjang Url merupakan jumlah karakter dalam suatu XSS telah disiapkan sebelumnya sebagai data training
url. Feature ini biasa digunakan untuk mengklasifikasi dalam melakukan klasifikasi XSS.
malicious Url dalam serangan phising [4].
2) Obfuscated Code
IV. UJI COBA DAN IMPLEMENTASI
Obfuscated Code merupakan suatu karakter yang
disamarkan menggunakan metode encoding. Beberapa A. Database
metode encoding yang biasa digunakan antara lain:
Unicode, HexaDecimal, Octal, dan Base64. Feature Untuk mengklasifikasi suatu halaman web dibutuhkan suatu
ini biasa digunakan dalam serangan XSS meskipun data training sebagai sampel yang meliputi sampel positif dan
juga ditemukan dalam halaman web biasa [4]. negatif. Sampel positif berfungsi sebagai contoh data yang
3) Jumlah Domain terserang XSS dan sampel negatif sebagai contoh data yang
Jumlah Domain merupakan jumlah domain yang tidak terserang XSS. Sebagai sampel positif digunakan 100
diitemukan url. Feature ini biasa ditemukan dalam data halaman web dari XSSed database [6]. Sedangkan 100
serangan redirect, sehingga pengguna mengakses data sampel negatif didapatkan dari ClueWeb09 database [7].
halaman lain yang merupakan milik penyerang [5]. B. Uji Coba Fungsionalitas
4) Karakter Duplikat Tahap uji coba fungsionalitas bertujuan untuk mengetahui
Feature ini merujuk pada karakter spesial yang kemampuan sistem menjalankan kebutuhan dasar. Uji coba ini
ditemukan pada pembuka dan penutup dari tags [4],
meliputi kemampuan sistem untuk mendeteksi halaman web
seperti << , , dan >>. Feature ini sering ditemukan
dengan kategori normal dan mendeteksi halaman web dengan
pada serangan yang ingin mengantisipasi filter anti-
kategori XSS.
XSS.
5) Tags Dari hasil uji coba, sistem mampu memberikan hasil
Feature ini merupakan pengecekan keberadaan tags pendeteksian dengan baik untuk kategori web normal maupun
yang potensial terhadap eksekusi JavaScript seperti: kategori web XSS. Hal ini berarti sistem sudah mampu
<script>, <iframe>, onclick, alert(), fromCharCode() berjalan dengan baik dan berhasil menjalankan fungsi-fungsi
dan lain sebagainya [4]. dasarnya.
6) Kata Kunci C. Uji Coba Performa
Feature ini merujuk pada kata kunci yang sering Uji coba performa dijalankan untuk mengetahui kehandalan
ditemukan pada halaman redirect yang menyebarkan sistem dalam mendeteksi XSS.
malware dan situs phising [5].
D. Perancangan Alur Sistem 1) Uji Coba Akurasi
Pada sistem terdapat beberapa tahap pemrosesan. Untuk mengetahui tingkat akurasi dari aplikasi maka
Dimulai dari proses decoding url, ekstraksi fitur hingga proses diperlukan perhitungan akurasi yang meliputi True Positive,
True Negative, False Positive dan False Negative seperti yang
klasifikasi XSS.
ditunjukkan pada Tabel 1.
1. Proses Decoding Url
1. True Positive (TP)
Pada tahap ini, url dari halaman yang akan dideteksi,
Jumlah kasus halaman web yang terserang XSS dan
diperiksa terlebih dahulu apakah memiliki obfuscated
hasil tes menyatakan terserang XSS.
code atau tidak. Apabila ditemukan obfuscated code di
dalam url, server XSS akan melakukan decoding terlebih 2. False Positive (FP)
Jumlah kasus pasien yang tidak terserang XSS, tetapi
dahulu sebelum melakukan proses ekstraksi.
2. Proses Ekstraksi Feature hasil tes menyatakan terserang XSS.
Pada proses ekstraksi feature, server XSS mengekstrak 3. True Negative (TN)
JURNAL TEKNIK POMITS Vol. 2, No. 1, (2013) ISSN: 2337-3539 (2301-9271 Print) 4

Jumlah kasus halaman web tidak terserang XSS dan 3. Peningkatan akurasi dengan penambahan data training.
hasil tes menyatakan tidak terserang XSS.
4. False Negative (FN)
Jumlah kasus pasien yang terserang XSS, tetapi hasil UCAPAN TERIMA KASIH
tes menyatakan tidak terserang XSS. Penulis Y.T.W mengucapkan terima kasih kepada Tuhan
Dalam pengujian ini digunakan 10-fold cross Yang Maha Esa, kedua orangtua dan keluarga penulis, dosen
validation sebagai metode evaluasi dan menggunakan metode pembimbing, seluruh dosen Teknik Informatika ITS, kerabat
klasifikasi Naive Bayes dan K-Nearest Neighbor sebagai dekat, serta berbagai pihak yang telah membantu penulis
pembanding. Untuk pengujian metode K-Nearest Neighbor dalam menyelesaikan penelitian ini.
digunakan alat bantu Weka.
Tabel 2 menggambarkan perbandingan hasil klasifikasi
DAFTAR PUSTAKA
antara metode Naive Bayes dan K-Nearest Neighbor, di mana
metode Naive Bayes lebih unggul dalam perhitungan akurasi [1] "Browsers in Indonesia". StatCounter Global Stats. StatCounter.
Retrieved August 24, 2012.
dan recall. Selain itu dapat dilihat pula bahwa metode Naive [2] G. e. S. Z Waserman, "Static Detection of Cross-Site Scripting
Bayes memberikan hasil akurasi yang baik yaitu sebesar 89%. Vulnerabilities Investigation," in 30th International Conference of
Software Engineering, 2008.
2) Uji Coba Kecepatan [3] White Hat Security. White Hat Security. [Online].
https://www.whitehatsec.com/ [Diakses 1 Juli 2013].
Uji coba kecepatan diperlukan untuk mengetahui [4] A. E., Souto, A. E., Santos, Eulanda M., Feitosa, Eduardo Nunan,
kecepatan proses deteksi dari aplikasi. Perhitungan waktu "Automatic Classification of Cross Site Scripting in Web Pages Using
dimulai sejak add-ons Mozilla mengirim data url halaman web Document-based and URL-based Features," IEEE, 2012.
sampai dengan menerima hasil deteksi XSS halaman web dari [5] J., Hansen R., Petkov, D.P., Rager, A. e Fogie, S. Grossman, Cross Site
Scripting Attack: XSS Exploit and Defense. Burlington, MA, EUA:
server. Pengujian dilakukan dengan mengambil 5 data url Syngress Publishing Inc, 2007.
normal dan 5 data url yang terindikasi XSS. Hasil uji coba [6] XSS Database Archive. XSS Database Archive. [Online].
menunjukkan selisih response time antara peramban yang http://xssed.com/ [Diakses 1 Juli 2013].
menggunakan add-ons pendeteksi XSS dan tidak, rata-rata [7] The Lemur Project. [Online]. http://lemurproject.org/clueweb09/
[Diakses 1 Juli 2013].
sebesar 712,4 ms.

V. KESIMPULAN DAN SARAN

A. Kesimpulan
Dari hasil pengamatan selama perancangan, implementasi,
dan pengujian perangkat lunak, dapat diambil kesimpulan
sebagai berikut:
1. Sistem telah diimplementasikan dan dapat berjalan
dengan baik dalam mendeteksi XSS dalam suatu
halaman web.
2. Sistem deteksi XSS yang dibuat sudah mampu
mendeteksi XSS dengan tipe Reflektif dengan tingkat
akurasi dan ketelitian sebesar 89% dan 97%.
3. Aplikasi ini mampu memberikan notifikasi XSS ketika
pengguna mengakses halaman yang termasuk kategori
XSS.
4. Kecepatan proses deteksi tidak berpengaruh besar
terhadap response time, yakni selisihnya hanya sebesar
712,4 ms.
B. Saran
Berikut merupakan beberapa saran untuk pengembangan
sistem di masa yang akan datang, berdasar pada hasil
perancangan, implementasi, dan pengujian yang telah
dilakukan:
1. Pengembangan aplikasi pendeteksi XSS untuk tipe
Persistent dan DOM.
2. Peningkatan kecepatan proses deteksi dengan
mengimplementasikan thread untuk proses ekstraksi
sehingga proses ekstraksi dapat dilakukan secara
paralel.

Anda mungkin juga menyukai