Rabu, 16 Juli 2014

XSS (CROSS SITE SCRIPTING)




Pengertian XSS (CROSS SITE SCRIPTING)

Cross site scripting adalah kelemahan keamanan yang terjadi pada penggunaan teknologi dynamic page. Cross site scripting dapat diartikan sebagai kelemahan yang terjadi akibat ketidakmampuan server dalam memvalidasi input yang diberikan oleh pengguna. Algoritma, yang digunakan untuk pembuatan halaman yang diinginkan, tidak mampu melakukan penyaringan terhadap masukkan tersebut. Hal ini memungkinkan halaman yang dihasilkan menyertakan perintah yang sebenarnya tidak diperbolehkan.

Cross site scripting merupakan kelemahan yang populer untuk dieksploitasi.
Namun sayangnya, banyak penyedia layanan yang tidak mengakui kelemahan
tersebut dan melakukan perubahan pada sistem yang mereka gunakan. Citra penyedia
layanan merupakan harga yang dipertaruhkan ketika mereka mengakui kelemahan
tersebut. Sayangnya dengan tindakan ini konsumen atau pengguna menjadi pihak
yang dirugikan.

Cara Kerja Cross Site Scripting
 
Cross site scripting bekerja bak penipu dengan kedok yang mampu mengelabui orang yang tidak waspada. Elemen penting dari keberhasilan cross site scripting adalah social engineering yang baik dari si penipu. Social engineering merupakan elemen terpenting yang menentukan keberhasilan penipuan yang akan dilakukan. Cross site scripting memampukan seseorang yang tidak bertanggungjawab melakukan penyalahgunaan informasi penting.

Sebelum sampai pada proses penyalahgunaan tersebut, penyerang mengambil langkah-langkah dengan mengikuti pola tertentu. Langkah pertama, penyerang melakukakan pengamatan untuk mencari web-web yang memiliki kelemahan cross site scripting.

Langkah kedua, sang penyerang mencari tahu apakah web tersebut menerbitkan informasi yang dapat digunakan untuk melakukan pencurian infomasi lebih lanjut. Informasi tersebut biasanya berupa cookie. Langkah kedua ini tidak selalu dijalankan. 

Langkah ketiga, sang penyerang membujuk korban untuk mengikuti sebuah link yang mengandung kode, ditujukan untuk mendapatkan informasi yang telah disebutkan sebelumnya. Kemampuan social engineering dari sang penyerang diuji disini. Setelah mendapatkan informasi tersebut, sang penyerang melakukan langkah terakhir, pencurian maupun pengubahan informasi vital.


Untuk Antisipasi

Pencegahan Cross site scripting sebenarnya merupakan bagian dari proses perancangan sistem yang akan diluncurkan oleh penyedia data. Jika sistem tersebut menggunakan teknologi dynamic web page, berbagai pertimbangan perlu dilakukan.

1. Teknologi Static Web Pages

Cara terbaik dan efektif untuk menghindari terjadinya Cross site scripting adalah menghindari penggunaan teknologi dynamic web page. Halaman yang statis tentu saja memberikan kontrol yang lebih di sisi server dibandingkan dengan halaman web yang dinamis. Halaman web yang dihasilkan secara statis akan memberikan kelakukan yang lebih pasti dibandingkan halaman web yang dihasilkan secara dinamis. Konsekuensi yang ditanggung adalah penyedia layanan harus merelakan sifat interaktif yang mungkin diinginkan.

2. Metode POST

Metode POST adalah metode pengirimana data di mana variabel yang dikirimkan tidak disertakan pada link yang digunakan. Metode POST menyembunyikan variabel yang dikirimkan dari pengguna. Metode ini menjamin kode tidak dapat diinjeksikan melalui link yang telah didesain oleh penyerang. Link merupakan satu satunya cara yang dapat digunakan oleh penyerang untuk mengeksploitasi cross site scripting. Oleh karena itu, metode ini ampuh untuk mengatasi cross site scripting. Kekurangan metode ini, pengguna tidak dapat menyimpan link favorit untuk mempermudah navigasi

3. Pengkodean Karakter Spesial pada Link

Untuk men-non aktifkan kode script yang diinjeksikan, kita perlu membuat aplikasi yang mampu mengkodekan karakter tersebut, sehingga karakter tersebut tidak dapat dimengerti oleh browser yang digunakan. Proses pengkodean juga harus mencakup HTML escape code (%hexnumber).
Pemfilteran ini biasanya dilakukan dengan menghilangkan karakter karakter spesial yang penting dalam pengkodean dan juga karakter karakter ekuivalen yang dikodekan. Pengkodean yang biasa digunakan adalah HTML escape
encoding. Tabel di bawah ini menunjukkan karakter tersebut dengan ekuivalen karakter yang telah dikodekan.

Table 9 HTML Escape Encoding

Char
Code
Char
Code
;
%3b
{
%7b
/
%2f
}
%7d
?
%3f
|
%7c
:
%3a
\
%5c
@
40%
^
%5e
=
%3d
~
%7e
&
26%
[
%5b
%3c
]
%5d
%3e
`
60%
22%
%
25%
#
23%
27%

4. Hilangkan kemampuan Scripting

Cross site scripting disebabkan keberhasilan penyerang menginjeksi kode pada halaman web yang dihasilkan. Jika kode yang diinjeksikan tersebut tidak dapat diinterpretasikan, halaman web dapat ditampilkan dengan aman. Kekurangan metode ini tentu saja kegagalan fungsi-fungsi yang ditulis dengan mengunakan script untuk bekerja.

5. HTTP-Only Cookie 

Metode ini membatasi akses yang dapat dilakukan terhadap cookie. Dengan menggunakan HTTP-only cookie, browser pengguna masih dapat menerima cookie yang dikirimkan oleh penyedia layanan. Namun cookie tidak dapat diakses melalui script yang dieksekusi pada browser pengguna. Jadi script yang diinjeksikan kepada browser pengguna tidak akan dapat melakukan transfer cookie yang ada. Metode ini tersedia pada browser Internet Explorer 6 Service Pack 1. Untuk menggunakan metode, pada kepala HTTP response tambahkan atribut HttpOnly.

6. Ikuti Link Utama

Metode ini ditujukan bagi pengguna layanan yang menggunakan halaman web dinamis. Kebiasaan yang baik utuk mengikuti link yang berasal dari link utama yang disediakan oleh penyedia layanan. Link–link selain daripada link utama sebaiknya dihindari.

Tidak ada komentar:

Posting Komentar