Waspadai Penggunaan Cross Site Scripting pada Short URL

Terjebak!
Ya.. pengguna Facebook sedang heboh karena terkena jebakan pemendek URL ini. Kendati belum dikategorikan berbahaya (karena tujuannya masih dianggap untuk meningkatkan traffic pada situs tersebut) namun tidak menutup kemungkinan bila metode ini juga dapat merugikan. Jebakan ini cukup menjalar dengan cepat. Jebakan yang diduga menggunakan metode Cross Site Scripting ini akan mengirimkan postingan serupa jika pengguna meng-klik link tersebut.
Tulisan status yang terinfeksi kebanyakan sama, setidaknya ada 3 kalimat berbeda
1. Ini fotoku wkt lg ML http://tinyurl.com/rahasiapribadiku
2. Jangan salahin w kalo lo bakal ngakak ngeliat ni orang :D http://tinyurl.com/sampahh
3. Hiks..hiks..hiks..barusan mampir dari http://goo.gl/ds4vc KEREN bgt swearr.. buruan...mampir

Apa itu Cross Scripting?
Teknologi web dinamis kini telah menjadi bagian yang tidak terpisahkan dari kehidupan dunia maya. Teknologi ini membawa perubahan yang signifikan dalam proses pembangunan sistem penyedia layanan dalam jaringan internet. Teknologi ini memampukan penyedia layanan untuk memberikan layanan yang lebih inovatif. Efek yang diharapkan tentu saja peningkatan dari segi ekonomi. Namun dibalik keuntungan-keuntungan tersebut, teknologi ini memiliki permasalahan dari segi keamanan. Salah satu permasalahan yang ada kini adalah crosssite scripting, atau juga dikenal sebagai XSS. Permasalahan ini tidak boleh dipandangsebelah mata. Kebocoran informasi penting dapat terjadi jika kelemahan ini tidak ditangani dengan baik.

Cross site scripting adalah salah satu kelemahan keamanan yang terjadi pada penggunaan teknologi dynamic page. Cross site scripting dapat diartikan sebagai kelemahan yang terjadi akibat ketidakmampuan server dalam memvalidasi input yangdiberikan 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.

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

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 crosssite 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.

Pencarian web site dengan kelemahan cross site scripting sebenarnya tidaklah terlalu sulit. Web site yang menghasilkan halaman web yang dinamis merupakan syarat utama yang diperlukan untuk mengeksploitasi kelemahan ini. Web dengan form input merupakan web potensial untuk dieksplotasi cross site scripting. Web yang membutuhkan user name dan password serta search engine termasuk didalamnnya.

Crosssite scripting merupakan lubang yang timbul akibat ketidakmampuan server untuk mengecek input yang diberikan pengguna. Jadi titik berat keberhasilan eksploitasi kelemahan ini terletak pada pengguna. Bagaimana membujuk pengguna untuk mengklik link yang disediakan oleh penyerang. Link ini biasa diletakkan pada e-mail, message board, dan lain lainnya. Untuk menghindari pemfilteran, penyerang perlu untuk mengkodekan link yang ia buat ke bentuk yang akan terlihat aneh bagi pengguna. Pengkodean biasanya menggunakan HTML Escape encoding yang menggunakan karakter yang telah terkodekan. Jika kode yang akan disertakan dalam link cukup panjang, pengguna akan curiga dan mengurungkan niatnya (walau sebaik apapun social engineering yang dilakukan). Untuk mengkamuflasekan link ini, penyerang menggunakan nama lain yanglebih menarik daripada langsung meletakkan link tersebut.

Dari pada meletakkan link http://trustedsite.org/page1?name=%3cscript%3esomecode%3c/script%3e, akan lebih baik membuat link dengan nama click me yang merujuk pada link yang sama. Walaupan link yang sebenarnya akan terlihat pada bagian bawah kiri dari browser,pengguna pada umumnya kurang memperhatikan kejanggalan yang ada dan langsungmengklik link tersebut.

Cara lain untuk memastikan bahwa link tersebut akan dijalankan adalah dengan menggunakan perintah onmouseover. Dengan menggunakan perintah ini, link beserta kode yang terdapat didalamnya dapat dijalankan hanya dengan cursor yang telah berada di ataslink tersebut. Dengan cara ini, persentase keberhasilan cross site scripting terjadi semakin besar.

Pencegahan XSS
Pencegahan seperti kata pepatah lebih baik daripada pengobatan. Pencegahancross site scripting sebenarnya merupakan bagian dari proses perancangan sistemyang akan diluncurkan oleh penyedia data. Jika sistem tersebut menggunakan teknologi dynamic web page, berbagai pertimbangan perlu dilakukan.

1. Teknologi Static Web Page
Cara terbaik dan efektif untuk menghindari terjadinya cross site scriptingadalah menghindari penggunaan teknologi dynamic web page. Halaman yang statis tentu saja memberikan kontrol yang lebih 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. Kelemahan metoda ini adalah penyedia layanan harus merelakansifat interaktif yang mungkin diinginkan.

2. Penggunaan Metoda POST
Metoda POST adalah metoda pengirimana data dimana variabel yang dikirimkan tidak disertakan pada link yang digunakan. Metoda POST menyembunyikan variabel yang dikirimkan dari pengguna. Metoda 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, metoda ini ampuh untuk mengatasi cross site scripting. Kekurangan metoda ini, pengguna tidak dapat menyimpan link favorit untukmempermudah navigasi.

3. Pengkodekan Karakter Special Pada Link
Untuk men-non aktifkan kode script yang diinjeksikan, kita perlu membuataplikasi yang mampu mengkodekan karakter tersebut, sehingga karakter tersebuttidak dapat dimengerti oleh browser yang digunakan. Proses pengkodean juga harusmencakup HTML escape code (%hexnumber).

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

5. HTTP-Only Cookie
Metoda 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. Metoda ini tersedia pada browser Internet Explorer 6 Service Pack 1. Untuk menggunakan metoda, pada kepala HTTP response tambahkan atribut HttpOnly.

6. Ikuti Link Utama
Metoda ini ditujukan bagi pengguna layanan yang menggunakan halamanweb dinamis. Kebiasaan yang baik utuk mengikuti link yang berasal dari link utama yang disediakan oleh penyedia layanan. Link – link selain dari pada link utama sebaiknya dihindari.



~Daftar Pustaka:
http://en.wikipedia.org/wiki/Cross-site_scripting
http://techno.okezone.com/read/2011/03/29/55/440220/kena-jebakan-short-url-facebook-ganti-password
http://msdn.microsoft.com/workshop/author/dhtml/httponly_cookies.asp
Tambun, Richson Untung. 2004. Cross Site Scripting. Institut Teknologi Bandung