Rabu, 04 Juli 2012

MANUSIA SAIN DAN TEKNOLOGI;
    Manusia dan teknologi sangat erat kaitanya teknologi adalah karya dari manusia melalui penerapan akal dan pengetahuan ,teknologi sangat berperan dalam kehidupan manusia karena perkembanganya bisa mempengaruhi kebudayaan manusia.

KESIMPULAN MANUSIA DAN LINGKUNGAN:
        Menurut saya manusia dan lingkungan sangat erat kaitanya karena merupakan suatu kesatuan ruang dengan semua benda dan mahluk hidup termasuk manusia dan mahluk hidup lain di dalamnya.
       Unsur-unsur yang mempengaruhi erusakan lingkungan terdiri dari alam dan manusia .oleh karena itu peran dan kesadaran dari setiap insan manusia sangat di perlukan untuk menjaga dan melestarikan lingkunganya.
MANUSIA SAIN DAN TEKNOLOGI;
    Manusia dan teknologi sangat erat kaitanya teknologi adalah karya dari manusia melalui penerapan akal dan pengetahuan ,teknologi sangat berperan dalam kehidupan manusia karena perkembanganya bisa mempengaruhi kebudayaan manusia.

KESIMPULAN MANUSIA DAN LINGKUNGAN:
        Menurut saya manusia dan lingkungan sangat erat kaitanya karena merupakan suatu kesatuan ruang dengan semua benda dan mahluk hidup termasuk manusia dan mahluk hidup lain di dalamnya.
       Unsur-unsur yang mempengaruhi erusakan lingkungan terdiri dari alam dan manusia .oleh karena itu peran dan kesadaran dari setiap insan manusia sangat di perlukan untuk menjaga dan melestarikan lingkunganya.

Rabu, 27 Juni 2012

TUGAS PUTUSAN HAKIM YG SALAH

Pencuri Nasi

22 April 2012 · by warm · in sesuatu
Kompas edisi minggu ini, di halaman 17, ada berita berjudul “Gara-gara Mencuri Nasi, Ujian Nasional di Tahanan”. Berita serupa bisa dibaca di antarajatim.
Berita pendek di atas, membuat saya sedih sekaligus bingung.  Sampai segitu teganyakah pemilik warung, yang nasinya dicuri oleh siswa asal Purwosari, Bojonegoro itu, sampai tidak mau mencabut aduannya pada polisi.  Selain tukang warung, ada juga warga lain yang mengaku kehilangan ayam aduannya yang dicuri Tf, siswa tersebut untuk kemudian disembelih dan dimakan, bukan untuk dijual.
Poin utama yang seharusnya diperhatikan oleh tukang warung dan pemilik ayam itu, adalah sepertinya tertuduh terpaksa mencuri karena mereka miskin.  Saya tak habis pikir, terlebih itu polisi juga hanya bisa berkata “Kami melaksanakan proses hukum bergantung pengaduan masyarakat“.  Kalau masalahnya adalah cuma nasi dan ayam yang dicuri, tidak adakah yang terniat untuk urunan gitu, membebaskannya.
Hal-hal berkenaan dengan hukum yang sepele bin ajaib ini gini yang membuat saya gemes segemes-gemesnya.  Apalagi sudah tahu dari keluarga tak mampu, padahal kan tinggal diikhlaskan saja, beres.  Seandainya saja itu tukang nasi dan pemilik ayam membaca postingan ini, silakan deh tagih ke saya kerugian yang ditimbulkan anak itu supaya bebas.
Judul berita itu sendiri, seakan mengingatkan saya pada saat sekolah dulu, saya juga pernah mencuri nasi, dari ibu kos saya.  bedanya, saya tidak diadukan beliau ke polisi, malah mempersilakan untuk mengambil sisa-sisa nasi yang ada di panci, tak perlu diam-diam mengambilnya saat lapar.
Masa-masa yang sebenarnya tidak begitu susah, tapi saya yang sering merasa malu tak pada tempatnya, hingga untuk meminta sedikit nasi saja malu.  Memang pada suatu waktu tak bisa mengatur uang makan saat kos.  Hingga akhirnya budget yang tersisa hanya cukup untuk memasak sebungkus mi goreng pada malam hari, setelah siangnya pernah cuma makan kue doang, sementara paginya mbuh lupa. yang berujung diam-diam mengambil sisa-sisa nasi di panci ibu kos, dan kemudian akhirnya ketahuan.
Jangan tanya bagaimana malunya saya.  Semoga ibu kos saya dulu itu, dilimpahkan rejeki berlimpah oleh-Nya.
Kembali pada kasus di atas, kenapa tidak bertindak seperti ibu kos saya itu, malah kemudian memberikan nasinya pada saya, membantu, bukannya malah mengadukannya kepada pihak yang seharusnya berwajib membantunya, bukan menahannya.

TGS ISBD CONTOH KASUS TAK BERMORAL

TGS ISBD TENTANG KASUS TAK BERMORAL

Pembakaran Kantor Dinas tak Bermoral
WAMENA—Terbakarnya bagunan yang merupakan kntor bagi tiga dinas di Pemerintahan Jayawijaya, Kamis (4/8) lalu, dinilai sebagai sebuah tindakan yang tak bermoral. Hal itu diungkapkan Anggota DPRD Jayawijaya Yance Tenouye,SH, karena indikasi yang muncul bahwa ada unsur kesengajaan.
Dikatakan, hal itu karena tiga dinas tersebut memiliki peran strategis sebagai pelayan masyarakat. “Sebagaimana Dinas Sosial dan Kependudukan memiliki fungsi tugas yang erat sekali dengan masyarakat, sedangkan Dinas Pekerjaan Umum memiliki tugas yang berat, dimana sementara ini pemerintah memfokuskan pembangunan pada pekerjaan fisik di Kabupaten Jayawijaya,” ujarnya. 
Dikatakan juga, bahwa kejadian tersebut adalah skenario yang diperankan oleh pihak-pihak yang tidak bertanggung jawab. “Ini sebuah skenario yang dibuat oleh pihak tertentu yang ingin mengacaukan Daerah Jayawijaya,” ungkapnya.
Menurutnya, awal kejadian bermula di Kantor Kejaksaan Negeri Wamena. Karena rencana aksi tersebut telah diketahui, tidak lama kemudian kebakaran terjadi pada kantor tiga dinas tersebut. “Dari kronologis ini telah jelas ada skenario dibalik smua ini,” pungkasnya.
Terkait penanganan kasus kebakaran bangunan ke tiga dinas oleh Kepolisian Jayawijaya, Ia menilai kepolisian menangani kasus tersebut dengan  “setengah hati”. “Saya berharap Kapolres Jayawijaya berani mengungkap otak di balik kebakaran tersebut. Sehingga masyarakat jangan bertanya-tanya. Dan tidak mudah terpancing terhadap isu-isu yang  tidak benar. Sehingga masyarakat tetap tenang,”  harapnya. (cr-25/aj/lo1)

Senin, 28 Mei 2012




Karya tulis sebagai salah satu syarat
untuk kelengkapan nilai Mata Kuliah Sistem Keamanan Lanjut



SETYORINI
NIM : 23203018
Program Studi Teknik Elektro





EVOLUSI CROSS SITE SCRIPTING (XSS) : OVERVIEW

Penggunaan cookie dalam aplikasi web dinamis telah banyak dijumpai, diantaranya untuk menyimpan asosiasi unik dari account pengguna. Selain Yahoo, Nestcape, beberapa situs perdagangan eletronik juga menggunakan cookie untuk menempatkan identitas unik pengguna bagi keperluan autentifikasi maupun autorisasi - pada situs yang menggunakan skenario log on, biasanya digunakan dua token autentifikasi, yaitu nama pengguna dan kata sandi (password), kedua token ini kemudian disimpan dalam cookie untuk memudahkan identifikasi atas banyaknya pengguna, juga untuk keperluan pelakuan batas sesi koneksi ke situs tersebut.
Mungkin penggunaan teknik Cross Site Scripting (XSS), merupakan teknik yang banyak digunakan bagi keperluan mendapatkan cookie ini. Begitu cookie didapatkan, si penyerang ini akan dapat memuat nilai cookie curian tersebut, lalu mengarahkan browsernya ke situs aplikasi yang menggunakan cookie tersebut, dan mengakses account korban, tanpa perlu menghabiskan waktu untuk memecahkan sandi dan enkripsi atas kombinasi pengguna dan kata sandi. Memang ada beberapa teknik lain seperti teknik DNS poisoning cache, memanfaatkan kelemahan browser di klien dan rekayasa sosial untuk mengelabui pengguna agar menginstal trojan horse, hanya teknik tersebut kurang begitu popular dibandingkan dengan XSS.
Tulisan ini akan membahas tentang Cross Site Scripting meliputi pengertian dari XSS, anatomi serangan XSS, dan metode serangan XSS, dan beberapa saran yang berhubungan dengan pengamanan atas serangan XSS ini.

EVOLUSI CROSS SITE SCRIPTING (XSS) : OVERVIEW



Setyorini
NIM : 23203018

Institut Teknologi Bandung



Dosen yang bersangkutan





Budi Rahardjo
(...............................)






1.1         Latar Belakang

Banyak aplikasi-aplikasi berbasis web sekarang ini yang menggunakan cookies pada hal yang berkaitan dengan account unik milik seorang pengguna. Beberapa aplikasi e-mail berbasis web popular seperti :Hotmail, Yahoo dan Nescape termasuk di dalamnya, dimana sekitar 250 juta orang di dunia menggunakan aplikasi tersebut melalui Internet. Pada sisi lain seperti situs-situs perdagangan, perbankan dan pelelangan, cookies digunakan untuk keperluan autentifkasi dan otorisasi.

Pada sebuah skenario log in aplikasi berbasis web yang umum, dua token autentifikasi dpertukarkan : username & password yang tersimpan dalam sebuah cookies yang kemudian digunakan sebagai token autentifikasi. Mudah dipahami dalam hal ini jika sebuah sesi user sangat rawan terhadap serangan jika seseorang dapat menangkap cookies yang dipakai.

Skema popular dalam hal pencurian cookies pada jaringan Internet menjadi bagian dalam kerawanan serangan XSS (Cross-Site Scripting). Sekali cookie didapatkan, penyerang aktif dapat mencuri isi dalam cookie, mengarahkan browser pada aplikasi-aplikasi berbasis web (e-mail) dan dapat mengakses account tanpa perlu menghabiskan waktu untuk melakukan cracking untuk mencari kombinasi username & password yang cocok. Hal ini membawa implikasi yang buruk tergantung dengan aplikasi yang sedang dibuka :penyerang dapat membaca surat-surat korbannya, mengakses account di bank dan menulis check untuk melakukan pembayaran secara online atau membeli barang menggunakan cached retail credit information pada situs seperti : Amazon & eBay. Untuk dapat melakukan hal ini, seorang penyerang harus mendapatkan sesi pengguna yang masih dalam kondisi aktif. Untuk itu seorang penyerang yang potensial akan memerlukan lubang otorisasi akses pada XSS dan  CGI pada web server

1.2         Rumusan Masalah

Berdasarkan paparan di atas diperlukan suatu setidaknya pengetahuan umum mengenai kemungkinan penyerangan dengan melakukan pencurian cookies di Internet, metode-metode yang digunakan, deteksi kerawanan sistem dan pencegahan dari serangan.

1.3         Tujuan

Tujuan dari karya tulis ini adalah memberikan penjelasan mengenai pengertian XSS, anatomi serangan, metode-metode yang mungkin, cara untuk mencari titik rawan dalam suatu aplikasi dan cara untuk mencegah adanya serangan.

1.4         Batasan Masalah

Karya tulis ini memberikan gambaran terhadap hal-hal umum yang terjadi bukan kasus-per kasus.

1.5         Metodologi

Metodologi yang digunakan adalah :
Studi literatur, sebagai acuan dalam membuat gambaran sngkat mengenai serangan XSS. Bahan literatur yang diperlukan berupa sumber dari Internet





2.1         Keamanan Sistem

2.1.1        Serangan terhadap Keamanan Sistem

Dunia internet saat ini mengenal banyak jenis serangan yang dilakukan dan sering merugikan. Jenis-jenis serangan terjadi selama ini dapat dikategorikan dalam empat kategori berdasarkan kriteria target serangan yaitu :
      Interruption: serangan atas ketersediaan informasi. Penyerang mengganggu dengan melakukan penghentian aliran informasi kepada klien.
      Interception: serangan atas confidentiality. Mengakses informasi yang bukan menjadi haknya adalah tujuan dari serangan ini. Informasi dapat digunakan untuk hal-hal yang merugikan pihak lain.
      Modification: serangan atas integrasi suatu informasi. Mengakses informasi dan dapat juga mengubah  isi informasi menjadi sasaran serangan ini.
      Fabrication: serangan terhadap proses autentifikasi. Membangkitkan objek palsu yang dikenal sebagai bagian dari sistem merupakan tujuan dari serangan jenis.

Gambar II.1 Jenis-jenis serangan
Dari sisi motif tindakan, serangan yang terjadi dapat  dikategorikan berdasarkan jenis tindakan yang dilakukan, dapat dikelompokkan sebagai berikut :
-          Ancaman Pasif
Serangan yang dilakukan lebih bersifat mengamati perilaku sasaran, pada tahap ini penyerang berusaha mengenali setiap bagian sasaran. Tindakan yang dilakukan antara lain :
o   Melepaskan serangkaian pesan ke target untuk mengetahui respon target, dan mendapatkan informasi awal tentang target. Deteksi port merupakan salah satu contohnya.
o   Analisa traffik, dilakukan untuk mengetahui pola trafik data pada target.

-          Ancaman aktif
Serangan yang dilakukan telah ditujukan untuk berdampak langsung pada target. Beberapa tindakan serangan yang banyak dikenal merugikan merupakan contoh dari tindakan ini. Berikut beberapa diantaranya :
o   Masquerade, penyerangan dikenali sebagai bagian dari alias identitas yang berwenang.
o   Reply
o   Modifikasi isi pesan (Mengubah pesan layanan yang diberikan oleh sistem)
o   Denial of service(Menghilangkan kemampuan sistem untuk memberikan layanan)

2.1.2        Mekanisme Keamanan

Mekanisme Keamanan adalah mekanisme yang dirancang untuk mendeteksi, mencegah atau menanggulangi suatu serangan. Tujuan dari mekanisme ini adalah untuk melindungi sistem atas tiga aspek yaitu confidentiality, integrity, availiability. Mekanisme keamanan ini antara lain adalah :
  • enkripsi data, dilakukan untuk mencegah data dari pembacaan oleh pihak yang tidak berwenang. Dalam enkripsi data, data diacak dengan mekanisme tertentu dan disusun kembali untuk dapat diakses dengan kunci tertentu.
  • Pengendalian akses, dilakukan untuk membagi tingkat kewenangan dalam aksesbilitas sistem, penggunaan mekanisme log in merupakan salah satu contoh.
  • Deteksi penyusupan, dilakukan dengan memberikan kepandaian pada sistem untuk mengenali pola-pola serangan kepada sistem.
  • Pemulihan gangguan (disaster recovery), dilakukan dengan memberikan kemungkinan pada sistem untuk tetap dapat beroperasi dan melakukan layanan penting yang menjadi fungsi sistem setelah terjadi serangan pada sistem.

2.2         Protokol di web

XSS merupakan serangan yang memanfaatkan kemampuan protocol di web, untuk itu perlu pengenalan terhadap protokol yang digunakan pada aplikasi web. Aplikasi-aplikasi berbasis web, umumnya menggunakan protokol : HTTP (Hyper Text Transfer Protocol ) atau  HTTPS (HTTP over Socket Secure Layer), dengan common port  yang biasa dipakai adalah port no 80 (HTTP)  dan 443 (HTTPS ).

2.2.1        HTTP

Setiap browser web dan server harus berkomunikasi melalui protokol ini,. Ada tiga versi protocol HTTP ini, dimana ketiganya memiliki kesamaan struktur dasar. HTTP merupakan protocol yang berkerja dengan metode request dan respon, yang dapat digambarkan di bawah ini.

Gambar II.2 Metode Request & Respon HTTP

Untuk lebih mengenal lebih mendalam, terdapat beberapa metode yang dapat dilakukan sebagai request dalam protocol HTTP. Metode tersebut antara lain ; connect, delete, get, head, option, post, put, dan trace. Metode di atas difasilitasi oleh protocol HTTP 1.1. Untuk lebih jelas dapat dilihat dalam table berikut 

Tabel II.1 Metode Request dalam  HTTP /1.1

Metode
Penjelasan
CONNECT
Fasilitas baru dalam  HTTP/1.1
Digunakan pada proxy untuk dapat berganti secara dinamis ke mode tunnel.
DELETE
Fasilitas baru dalam   HTTP/1.1
Permintaan pada server asal untuk menghapus sumber yang dinyatakan sebelumnya. Biasanya metode ini tidak tersedia pada server baru. Tetapi jika tersedia akan memberikan respon 200 OK, jika respon yang diterima 202, berarti permintaan telah diterima namun belum dieksekusi, jika respon yang dterima 204, artinya bahwa sumber yang dimaksud tidak ditemukan..
GET
Menerima informasi yang diminta dari berkas sistem, jika yang diterima merupakan berkas HTML statis, maka akan langsung ditampilkan pada browser web, Bila merupakan berkas HTML dinamis seperti ASP atau PHP, server akan mengeksekusi perintah, dan mengirimkan keluaran dari perintah tersebut pada browser yang meminta.
HEAD
HEAD mirip seperti metode GET, dengan satu perbedaan yaitu tidak merespon dengan data yang diminta tetapi dalam informasi meta seperti kode respon server,  atau tanggal, ini juga dapat digunakan untuk mengetahui sebuah server web menggunakan perangkat lunak web apa.
OPTIONS
Permintaan infomasi tentang opsi komunikasi tersedia pada sumber daya yang diminta. Jika digunakan tanda “*”, sumber daya dianggap sifatnya umum dan karena itu respon hanya diberikan bagi metode yang umum. Sebagai contoh penggunaan “*” hanya memungkinkan empat metode dari opsi komunikasi yaitu GET, HEAD, OPTONS, dan TRACE.:

OPTIONS * HTTP/1.1
Host: www.example.com
HTTP/1.1 200 OK
Date: Mon, 15 Apr 2002 00:08:32 GMT
Server: WebSTAR/4.2 (Unix) mod_ssl/2.8.6 OpenSSL/0.9.6c
Content-Length: 0
Allow: GET, HEAD, OPTIONS, TRACE
 
Berikut contoh yang tidak menggunakn tanda “*” : 
 
OPTIONS / HTTP/1.1
Host: www.example.com
HTTP/1.1 200 OK
Date: Mon, 15 Apr 2002 00:07:17 GMT
Server: WebSTAR/4.2 (Unix) mod_ssl/2.8.6 OpenSSL/0.9.6c
Content-Length: 0
Allow: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS,
PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK,
UNLOCK, TRACE
Metode-metode ini dapat cukup berguna kadang kala bagi para hacker untuk mengetahui satu persatu fungsionalitas pada sebuah situs web.
POST
Metode post meminta server untuk menerima informasi yang disertakan dan beraksi berdasarkan hal tersebut. Metode POST biasanya banyak digunakan ketika CGI ataupun  server side scripting dilakukan. Dalam metode POST ini juga, sebuah header sah yang berisikan besar panjang data (Content-length) dibutuhkan pada tiap permintaan POST.
PUT
Permintaan yang disertakan dalam payload disimpan dalam sumber tambahan. Contohnya, Dalam baris berikut, rangkaian perintah ini akan membuat sebuah berkas yang dikenal sebagai EXAMPLE dan meletakkan payload dari permintaan dalam berkas tersebut.
PUT /EXAMPLE HTTP/1.1
Host: 192.168.0.5
Content-Length: 5
Hello there
TRACE
Mengirimkan sebuah permintaan untuk pesan balikkembali (loopback). Meski pesan dikirimkan ke server yang dituju, proxy kadang kala merespon balik. Karakteristk ini memungkinkan penyerang untuk mengetahui perihal proxy yang terhubung ke server tujuan.

2.2.1.1       Respon HTTP

Sebuah permintaan HTTP dari sebuah klien ditangani oleh server dan direspon  oleh server tersebut. Untuk merespon, server akan mengirimkan kembali serangkaian komponen pesan yang dapat dikategorikan sebagai berikut :
  • Kode respon— Angka yang bertalian pada sebuah tipe asosiasi respon .
  • Lokasi  awal (Header fields)—informasi tambahan tentang respon.
  • Data—Isi dari respon.
Melalui tiga komponen tersebut, sebuah browser klien daat memahami respon dari server dan berinteraksi dengan server tersebut.




3.1         Serangan pada aplikasi web

Web server mengirimkan konten dinamis ke klien melalui internet sebagai bagian komponen terintegrasi dari layanan online suatu organisasi. Kemampuan untuk menyediakan kontent serta memberikan respon kepada setiap permintaan individu merepresentasikan keberhasilan fungsional dari suatu situs.  Namun demikian pembangunan kode aplikasi dan sistem pemrosesan data yang buruk, menimbulkan kerawanan terhadap serangan yang berpusat pada metode dibangkitkannya konten dari situs tersebut dan diintepretasikan oleh browser pada sisi klien. Penyerang dapat menyisipkan konten berbasis HTML di dalam web request. Penyerang juga dapat menyisipkan script respon kontent tanpa perlu tahu situs pengunjungnya. 

3.1.1        Code Insertion

Jenis serangan ini bergantung pada fungsionalitas browser klien. Dalam HTML untuk membedakan displayable text dari intepreted markup language, dapat digunakan karakter-karakter tertentu untuk mendefinisikan elemen dalam HTML.
Sebagian besar browser memiliki kemampuan standar dalam menterjemahkan script yang menempel dalam konten HTML, sehingga jika seorang penyerang berhasil memasukkan isi script, maka script tersebut akan dapat dieksekusi oleh klien.  Kebanyakkan script yang digunakan adalah script yang dapat diterjemahkan oleh klien, seperti <SCRIPT>, <OBJECT>, <APPLET>, atau <EMBED>.
Tabel berikut ini memberikan catatan penting mengenai element script yang mungkin digunakan dan dapat diterjemahkan oleh web browser :
Tabel III.1 HTML Tag
HTML Tag
Keterangan
<SCRIPT>
Menambahan script yang digunakan dalam dokumen.
Atributnya:
  • type = Menyatakan bahasa program yang digunakan dalam script. Atribut ini dibutuhkan dalam spesifikasi HTML 4.0 dan diganti oleh atribut “language”.
  • language = Mengidentifikasi bahasa progam dari script, seperti JavaScript or VBScript.
  • src = menyatakan URL diluar file yang digunakan dalam script untuk dijalankan bersama dokumen. (hanya pada netxcape).
Didukung oleh: Netscape, IE 3+, HTML 4, Opera 3+
<OBJECT>
Digunakan untuk menempelkan obyek pada dokumen. Tag ini biasanya berisi informasi bagi kendali AcriveX  dalam IE untuk menampilkan obyek tersebut. Atributnya:
  • classid = class identifier milik obyek.
  • codebase = penanda URL dari basis code obyek.
  • codetype = Menetepakan tipe media seperti audio, text, atau imej.
  • data = Menyatakan URL dari data  yang digunakan obyek.
  • name = Menyatakan nama obyek yang diacu oleh script.
  • standby = Menyatakan pesan yang ditampilkan ketika obyek ditampilkan.
  • type = Menyatakan tipe media dari data.
  •  usemap = Menyatakan imagemap URL yang digunakan obyek.

<APPLET>
Digunakan untuk menyertakan Java Applet pada dokumen.
Atributnya:
  • code = Menyatakan nama class dari code yang akan dieksekusi.
  • codebase = Menyatakan URL dimana code ditemu-kembali.
  • name = Pengenal applet yang dijadikan rujukan .

<EMBED>
Digunakan untuk menempelkan obyek yang membutuhkan plug-in agar dapat ditampilkan dalam browser.
Atributnya:
  • hidden = Menyatakan status penyembunyian player plug-in. .
  • name = Menyatakan pengenal obyek.
  • pluginspage = Menyatakan URL halaman bagi instalasi plug-in.
  • src = Menyatakan URL sumber yang ditempelkan.
  • code = Menyatakan code yang digunakan untuk mengeksekusi.
  • codebase = Menyatakan basis URL untuk aplikasi.
  • pluginurl = Menyatakan sumber bagi installer plug in.
  • type = Menyatakan tipe MIME yang dibutuhkan oleh plug-in.

<FORM>
Menyatakan awal dan akhir sebuah bentuk formulir.
Atributnya antara lain  action, enctype, method, target.


3.1.2        Cross Site Scripting

Kerawanan terhadap serangan  XSS disebabkan oleh buruknya mekanisme validasi input user sebelum diserahkan kepada sistem klien. Cross-Site mengacu pada daerah aman dimana user menyimpan data ( seperti cookies, atribut konten dinamis, dsb) yang berhubungan dengan situs web.

Dalam Cross Site Scripting, aplikasi web target diinfeksi dengan menambahkan link baru yang tidak disadari oleh pengembang aplikasi. Dalam link baru tersebut, terdapat rangkaian script program yang digunakan untuk mengakses informasi yang berkaitan dengan web tersebut.

Semua serangan XSS tidak akan mengambil  akses root ataupun system dalam server web, serangan ini hanya berusaha mendapatkan informasi yang berkaitan dengan aplikasi web yang digunakan.

Sebagai contoh sederhana dari XSS, dapat digambarkan adanya sebuah buku tamu tempat banyak orang dapat berdiskusi tentang tanggapan mereka terhadap sebuah situs. Pada situs tertentu juga menyediakan akses penggunaan tag HTML. Dengan HTML, sebuah script bahasa program dan browser yang merupakan interpreter untuk scrip tersebut, komentar pada buku tamu dapat disisipi script program tentang apapun, tanpa disadari oleh pengguna lainnya.

XSS hadir karena  pembangunan sebuah situs web yang kurang baik. Keindahan desain dan isi dari situs web mengabaikan faktor keamanan dari situs tersebut. Validasi atas broken link atau input yang diberikan oleh user, seperti pada buku tamu di atas menjadi hal yang paling sering dilupakan, dan memberikan kesempatan adanya penyisipkan kode curang dari sang penyerang.

Jadi secara singkat dapat dijelaskan proses penyerangan XSS sebagai berikut :
1)      Penyerang melakukan investigasi pada situs-situs dimana diperlukan hak akses tertentu, dan mencuri hak akses suatu user melalui cookies atau ID sessions.
2)      Penyerang menemukan titik rawan pada halaman suatu situs.
3)      Penyerang menciptakan link khusus ke suatu situs dan menempelkannya dalam suatu email HTML yang dikirimkan ke korban potensial.
4)      Link khusus tersebut juga berisi kode yang didesain khusus untuk mengirimkan salinan cookie korban ke penyerang
5)      Tanpa sepengtahuan korban, penyerang mendapatkan informasi (cookie) milik pengunjung situs target.
6)      Dengan memanfaatkan informasi tersebut, penyerang mengeksploitasi situs target.


3.2          Anatomi serangan XSS


Sebuah serangan cross site scripting dilakukan dengan menyediakan alamat khusus yang dikemas oleh penyerang untuk calon korbannya. Dalam konteks XSS, penyerang mengundang korbannya untuk mengeksekusi alamat URL yang diberikan dan membiarkan korban mengikuti link tersebut dengan menjalankan script yang sebelumnya beraksi di komputer klien untuk mendapatkan informasi yang diinginkannya.

Terdapat tiga hal yang berkait dan dapat disusun sebagai sebuah anatomi serangan XSS yaitu penemuan, serangan, dan eksploitasi.

3.2.1        Penemuan Titik Rawan Aplikasi

Serangan XSS berdampak pada ketidaksempurnaan aplikasi berbasis web dan bermuasal pada validasi masukan pengguna (user) yang tidak begitu baik. Hal ini dapat memungkinkan penyerang menyisipkan kode HTML tambahan dimana mereka dapat mengendalikan eksekusi pada halaman tersebut dibawah izin yang diberikan oleh situs itu sendiri.  Sebuah contoh sederhana dari halaman yang dapat digunakan untuk cross site scripting  seperti dibawah ini :

<?php echo "Hello, {$HTTP_GET_VARS['name']}!"; ?>

Sekali halaman tersebut dapat terakses, variabel tersebut dikirim melalui metode GET langsung menuju halaman yang dituju. Dimana masukan tidak ditandai sebagai variabel masukan, pengguna dapat memasukkan beberapa karakter yang diinterpretasikan sebagai perintah meta karakter, cukup mirip dengan injeksi SQL.

Dengan memasukkan HTML metacharacter memungkinkan keluaran yang tidak diinginkan: Dimana masukan tidak divalidasi terlebih dahulu sebelum keluaran dikirimkan ke browser klien. Hal di atas memberikan pengguna untuk mengendalikan HTML dengan menyisipkan script ke halaman tersebut. 

Beberapa titik dimana biasanya XSS terjadi adalah pada halaman konfirmasi (seperti mesin pencari dimana memberikan keluaran dari masukan pengguna dalam aktvitas pencarian) dan halaman kesalahan (error page) yang membantu pengguna dengan mengisi bagian form untuk memperbaiki kesalahan.

3.2.2        Serangan

Sekali masukan rawan teridentifikasi pada metode HTTP - yang bergantung pada fasilitas protokol HTTP, maka aktivitas serangan dapat dilakukan baik dengan metode GET, POST dan metode lainnya.

Penyisipan dengan metode GET merupakan cara termudah juga sering dijumpai. Karena pengguna cukup banyak mengerti akan adanya pengarahan ulang (redirection) atau adanya pemanggilan alamat lain yang tampak pada tabulasi alamat (address bar). Metode cukup dilihat pada URI dan biasanya tercatat di server HTTP.  Contoh serangan dengan metode ini dapat dilihat seperti berikut:

v  http://www.microsoft.com/education/?ID=MCTN&target=http://www.microsoft.com/education/?ID=MCTN&target="><script>alert(document.cookie)</script>
v  http://hotwired.lycos.com/webmonkey/00/18/index3a_page2.html?tw=<script>alert(‘Test’);</script>
v  http://www.shopnbc.com/listing.asp?qu=<script>alert(document.cookie)</script>&frompage=4&page=1&ct=VVTV&mh=0&sh=0&RN=1
v  http://www.oracle.co.jp/mts_sem_owa/MTS_SEM/im_search_exe?search_text=%22%3E%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript%3E

Karena karakter dari XSS, penyerang tidak dapat secara langsung memanfaatkan kerawanan untuk keuntungan sendiri. Korban mesti melihat kode yang disisipkan agar dapat dieksekusi. Dan begitu korban melihat kode tersebut,  dan mengeksekusi, informasi tentang si korban dapat diketahui oleh si penyerang.

Dibanding serangan dengan metode GET, dengan metode POST sedikit lebih rumit, dimana variabel POST dikirim secara mandiri dari permintaan URI, sehingga butuh halaman transisi untuk memaksa korban mengeksekusi permintaan POST (POST request) yang berisi kode XSS.

Baru-baru ini metode serangan XSS telah menggunakan metode TRACE, serangan ini memanfatkan activeX, dimana informasi tentang user dikirimkan melalui TRACE request melalui browser klien, informasi ini juga dapat diubah ke dalam bentuk XML, sehingga klien dan situs web tersebut tidak menyadarinya. Metode ini mampu melewati keamanan HTTP Only.

3.2.3        Eksploitasi

Setelah melakukan serangan,  penyerang dapat melakukan eksploitasi atas situs web yang menjadi target. Umumnya dilakukan dengan membajak sesi koneksi dari korban dan melakukan aksi seperti layaknya si korban mengakses situs web target. Kerugian yang muncul dapat merugikan situs web itu sendiri ataupun korban. Setelah eksploitasi ini, sesi serangan XSS dapat dikatakan telah sempurna.


4.1         Metode Serangan

Serangan XSS dapat dikategorikan dua cara, secara manual dan otomasi, jika secara manual dapat diilustrasikan dibawah ini :
Gambar IV.1 Serangan XSS dengan cara manual

  1. Pengguna aplikasi web mengakses aplikasi web yang menjadi target serangan.
  2. Penyerang menyebarkan serangan XSS dengan memanfaatkan e-mail ataupun web.
  3. Pengguna aplikasi web memakan umpan serangan XSS.
  4. Informasi dari pengguna diinjeksi ke server lain untuk diolah.
  5. Penyerang membajak sesi koneksi pengguna ke aplikasi web dan mengekploitasi aplikasi web

Mekanisme di atas merupakan metode serangan tradisional, saat ini serangan XSS telah diotomatisasi dan dintegrasikan dengan aplikasi serangan web .Dan jika serangan telah diotomasi, dapat diilustrasikan berikut :

Gambar IV.2 Serangan XSS dengan Otomatisasi

Metode serangan mengalami perubahan sesuai dengan perubahan pada protokol HTTP.  Saat HTTP 1.0 banyak digunakan, serangan banyak dilakukan dengan memanfaatkan metode GET dan POST, dan ketika mulai digunakan protokol HTTP 1.1, metode serangan mulai dilakukan dengan memanfaatkan metode GET, POST dan TRACE.

Dari jenis bahasa pemrograman yang sering digunakan untuk melakukan serangan juga mengalami pergeseran, di awal populernya serangan XSS, banyak digunakan bahasa script JAVAscript,  kemudian mulai berkembang dengan memanfaatkan PERL dan ASP, saat ini banyak dilakukan dengan memanfaatkan PHP.  Akan tetapi serangan XSS tidak terbatas hanya dengan bahasa di atas, juga dapat menggunakan bahasa pemrograman apapun yang mendukung aplikasi dinamis pada situs web, termasuk FLASH script. 

4.1.1        Get Method


Serangan XSS dengan memanfaatkan fasilitas GET  di protokol HTTP, merupakan metode yang paling sering dilakukan. Dalam penggunaannya, metode ini digunakan untuk dua hal, yaitu : Menangkat URL dan menangkap cookies.
Umumnya kesalahan yang terjadi disebabkan oleh tidak dilakukannya validasi pada masukan dari pengguna di web.

4.1.2        Post Method


Metode ini memerlukan tingkatan keahlian lebih lanjut, karena variabel POST dikirimkan terpisah dari URL website target, karenanya penyerangan secara langsung menjadi tidak mungkin. Untuk itu dibutuhkan halaman antara yang akan memaksa browser di klien untuk melakukan permintaan POST ke server target. Umumnya kesalahan yang terjadi disebabkan oleh tidak bersihnya aplikasi browser web klien yang tidak memperhatikan HTML tag yang disisipkan dalam browser tersebut.

4.1.3        Flash attack


Seiring dengan semakin banyaknya kehadiran web dinamis, yang memungkinkan pengguna berinteraksi dengan sistem. Salah satunya kemudahan yang diberikan pada pengguna untuk memanfaatkan aplikasi flash disisipkan pada sistem.

Di sisi lain kehadiran XSS telah mulai diantisipasi sehingga keamanan dengan menapis HTML mark up ataupun code yang memungkinkan XSS terjadi. Akan tetapi, dengan memanfaatkan aplikasi flash, dimana pada beberapa server yang digunakan komunitas, dimungkinkan untuk mengupload aplikasi flash ini dan menyimpan sementara di server tersebut.

Kondisi ini memicu variansi lain dalam menerapkan XSS dengan memanfaatkan kemudahan dalam aplikasi flash. Diketahui bahwa dalam aplikasi flash juga dikenal scripting. Dengan memanfaatkan active scripting pada aplikasi flash, XSS dapat disisipkan pada bagian signature dari aplikasi tersebut, script contohnya sebagai berikut :
<embed src="http://exploitsite.com/download/example.swf" pluginspage=”http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash” type="application/x-shockwave-flash" width="0" height="0" > </embed>


Dimana scipt diatas akan diinterpretasikan oleh flash player sebagai :

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width=200 height=200> <paramname=movie value=http://exploitsite.comt/download/example.swf> <param name=play value=true> <param name=loop value=true> <param name=quality value=high> <embed src=http://exploitsite.com/download/example.swf width=200 height=200 play=true loop=true quality=high> </embed> </object>

Tentu saja setiap kali ada yang mengakses halaman dimana aplikasi flash yang telah disisipi tadi akan mengalami kerawanan XSS. Untuk mengatasi kerawanan tersebut, pihak macromedia telah memberikan plug in tambahan untuk melakukan validasi aplikasi flash.

4.2          Deteksi & Pencegahan serangan


4.2.1        Deteksi kerawanan

Mendeteksi apakah suatu aplikasi rawan terhadap adanya penyisipan kode adalah persoalan yang tidak sulit. Deteksi ini dapat dilakukan untuk menemukan titik rawan serangan pada aplikasi yang akan di-upload ke server.  Kuncinya terletak pada analisis terhadap konten HTML dinamis pada sisi klien.  Untuk bisa mendeteksi titik rawan tersebut, dibuat suatu skenario melalui proses-proses berikut ini  :
1.)    Untuk setiap field input yang terlihat ( yang mungkin terletak dalam suatu form HTML atau direpresentasikan dalam URL sebagai variabel), gunakan format script berikut ini :
<script>alert('CSS Vulnerable')</script>
<img csstest=javascript:alert('CSS Vulnerable')>
&{alert('CSS Vulnerable')};
2.)    Jika cek script di atas menyebabkan HTML menampilkan halaman yang tidak benar, komponen aplikasi masih dalam kondisi rawan.
3.)    Untuk setiap variabel yang terlihat, kirim atau ganti string berikut ini :
'';!--"<CSS_Check>=&{()} (Note that the string begins with two single-quotes)
pada halaman hasil, cari string  “<CSS_Check>“. Jika anda menemukan  “<CSS_Check>“, masih ada kemungkinan komponen aplikasi dalam kondisi rawan. Namun demikian, jika kata CSS_Check tidak lagi diapit dengan %ltCSS_Check%gt, berarti sudah tidak rawan lagi.  Jika input ditanmpilkan pada sembarang posisi dalam suatu dokumen, input akan dapat digunakan untuk mengalihkan aliran eksekusi ke penyerang.
4.)    Setelah mendapatkan lokasi word CSS_Check, verifikasi apakah (jika ada) karakter lain yang ditambahkan atau difilter dari string asal  '';!--"<CSS_Check>= &{()}”. Berdasarkan karakter yang terfilter, komponen aplikasi masih dikatakan rawan.
5.)    Melihat lebih detail hasil kode HTML, identikasikan string khusus yang diperlukan oleh penyerang untuk memisahkan tag HTML atau urutan kode. Jika ditemukan karakter yang dimaksud, tanpa mengaktifkan filter, diamati respon terhadap test string seperti pada point 3), sehingga dapat dikatakan komponen aplikasi yang ada masih dalam kondisi rawan.
6.)    Mengulangi proses-proses di atas untuk semua field-field yang tidak dapat diedit secara normal di sisi klien. Server Proxy memberikan fasilitas untuk editing request HTTP setelah request tersebut meninggalkan aplikasi pada klien sebelum akhirnya dikirim ke aplikasi server.
7.)    Pada banyak kasus, data akan dikirimkan melalui HTTP GET request. Melalui suatu investigasi, perlu juga dicari kerawanan pada komponen aplikasi yang memerlukan perintah HTTP POST untuk mengirim data.

4.2.2        Pencegahan terhadap serangan

4.2.2.1       Solusi untuk User

Untuk user solusi termudah adalah mematikan semua bahasa script yang ada pada komputernya. Tentu saja hal ini juga menyebabkan beberapa fungsionalitas pada site yang sedang dikunjungi menjadi tidak berjalan. Alternatif lain adalah berhati-hati dalam mengunjungi suatu situs, terutama pada source URL nya.

4.2.2.2       Solusi untuk Developer atau suatu Organisasi

Sebab tidak ada dua aplikasi yang identik, pengembang aplikasi perlu menyelaraskan antisipasi pengamanannya sebagaimana ditetapkan oleh kebutuhan bisnis. Kunci dalam mencegah aplikasi yang rawan terhadap injeksi kode dan serangan tipikal CSS ialah dengan memastikan bahwa halaman yang membangkitkan konten secara dinamis tidak mengandung tag yang tidak diinginkan.

Sumber-sumber yang umumnya dijadikan titik masuk antara lain :
  • Query string
  • URL’s dan bagian universal locator
  • Data yang dikirimkan
  • Cookies
  • Data persisten yang dipasok oleh user dan ditemu-kembali saat waktu setelahnya.

Solusi untuk pencegahan adanya serangan ini secara garis besar dapat disediakan pada sisi klien dan pada sisi server
Antisipasi atas interaksi dengan sisi klien, solusi yang ditawarkan dapat berupa :
a.                   Filtering
Menapis masukan dari klien browser dengan mewaspadai karakter-karakter khusus. Karakter-karakter khusus yang harus diwaspadai (menurut CERT) :