tugas makalah bhs indo

Upload: sandy-juerman

Post on 15-Jul-2015

90 views

Category:

Documents


3 download

TRANSCRIPT

ANALISIS KEAMANAN WEB BERBASIS HTML

Makalah

Disusun oleh : MEIKEL SANDY JUERMAN EGY CHANDRA LEGITA ROZAN WIDHI JATNIKA (15-2010-062) (15-2010-052) (15-2010-059)

JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI INSTITUT TEKNOLOGI NASIONAL BANDUNG 2011

KATA PENGANTAR

Puji syukur kami panjatkan kepada Tuhan Yang Maha Esa, karena atas berkat dan rahmatNya, kami dapat menyelesaikan makalah ini. Penulisan makalah ini dilakukan dalam rangka memenuhi salah satu syarat untuk menyelesaikan mata kuliah Bahasa Indonesia Jurusan Teknik Informatika pada Fakultas Teknologi Industri ITENAS. Kami menyadari bahwa, tanpa bantuan dan bimbingan dari berbagai pihak, saat penyusunan sampai pembuatan makalah ini, sangatlah sulit bagi kami untuk menyelesaikan makalah ini. Oleh karena itu, kami mengucapkan terima kasih kepada: (1) Antonius W. Topo Aji, selaku dosen pembimbing yang telah menyediakan waktu, tenaga, dan pikiran untuk mengarahkan saya dalam penyusunan makalah ini; (2) orang tua dan keluarga kami yang telah memberikan bantuan dukungan material dan moral; dan (3) sahabat yang telah banyak membantu kami dalam menyelesaikan makalah ini. Akhir kata, kami berharap Tuhan Yang Maha Esa berkenan membalas segala kebaikan semua pihak yang telah membantu. Semoga makalah ini membawa manfaat bagi para pembacanya.

Bandung, 26 Januari 2011 Penulis

ABSTRAK

Perkembangan teknologi saat ini kian hari kian pesat, hampir semua bidang teknologi sekarang berbasis internet. Salah satu teknologi yang saat ini kita rasakan manfaatnya adalah World Wide Web atau dikenal dengan nama web. Web kini menjadi sumber data yang terbesar dan sangat berharga untuk setiap pengguna karena didalam web kumpulan dokumendokumen saling terhubung dan dapat diakses melalui koneksi internet. Setiap individu didunia bebas menambahkan konten dalam webnya. Makin banyak informasi yang ditambahkan, makin besar ukuran web dan semakin sulit pula untuk mencari informasi yang benar-benar yang diinginkan diweb oleh karena itu dibutuhkan suatu teknologi untuk mendapatkan informasi yang benar-benar diinginkan tersebut.Berjuta-juta halaman Web dapat kita temui saat ini di Internet. Perkembangannya sangat cepat. Telah banyak perusahaan yang menampilkan diri di Internet melalui Web. Begitu juga dengan berbagai jenis Web yang lain yang kini telah menjadi bagian tak terpisahkan dari Internet. Web sedemikian populer karena mudah dibuat dan banyak menawarkan keuntungan. Banyak sekali informasi yang disediakan oleh Web-Web yang ada dan dapat diakses oleh siapa saja. Bahkan saat ini banyak pula perusahaan-perusahaan yang menyediakan transaksi melalui Web mereka. Web telah dijadikan satu bagian penting untuk promosi maupun layanan kepada pelanggan. Berkaitan dengan perkembangan ini, maka kemanan mulai menjadi masalah penting. Lebih lagi dengan kemunculan Web-Web e-commerce. Demikian juga dengan penggunaan Web oleh perusahaan-perusahaan sebagai tempat promosi dan pusat layanan mereka yang tentunya membutuhkan jaminan keamanan. Keamanan Web menjadi lebih lagi dibutuhkan dengan adanya kasus-kasus pencurian melalui Web, penipuan, perusakan, virus, worm, dan lain-lain. Karena pentingnya masalah kemanan ini maka bagi setiap orang yang ingin mengembangkan Webnya sudah selayaknya mempersiapkan diri sebaik-baiknya. Apalagi jika dalam pengembangan Web akan digunakan untuk aplikasi-aplikasi yang rentan atau kritis, maka kemanan yang baik akan menghindarkan kerugian yang mungkin didapat yang jumlahnya mungkin bisa sangat besar, baik secara material maupun non-material. Dalam makalah ini akan penulis coba uraikan secara ringkas mengenai keamanan Web server yaitu tindakan-tindakan antisipasi penerobosan oleh para orang-orang yang tidak bertanggung jawab dan aplikasi-aplikasi pendukung web yang baik utuk digunakan. Pembahasan dilihat dari sisi server terutamanya mengenai titik-titik kelemahan yang dapat dimanfaatkan oleh pihak luar. Web server yang akan dibahas adalah Apache dan IIS karena keduanya yang paling banyak digunakan saat ini.

DAFTAR ISIHalaman JUDUL................................................................................................................................... i KATA PENGANTAR........................................................................................................... ii ABSTRAK............................................................................................................................. iii DAFTAR ISI..........................................................................................................................iv BAB I. PENDAHULUAN..................................................................................................... 1 1.1 Latar Belakang Masalah...................................................................................... 1 1.2 Rumusan Masalah................................................................................................ 2 1.3 Tujuan Penelitian................................................................................................. 2 1.4 Manfaat Penelitian............................................................................................... 2 1.5 Metode Penelitian................................................................................................ 2 1.6 Sistematika Penulisan.......................................................................................... 3 BAB II. TINJAUAN PUSTAKA.......................................................................................... 4 2.1 Landasan Teori.................................................................................................... 4 2.1.1 Aplikasi............................................................................................................ 4 2.1.2 Berbasis............................................................................................................ 4 2.1.3 Web.................................................................................................................. 4 2.1.4 Php................................................................................................................... 4 BAB III. IMPLEMENTASI DAN PEMBAHASAN............................................................ 5 Web Server.................................................................................................................5 3.1 Apache................................................................................................................. 5 3.1.1 Host Virtual.......................................................................................................5 3.1.2 Server Side Includes......................................................................................... 7 3.1.3 Common Gateway Interface............................................................................. 8 3.2 Microsoft Internet Information Server (IIS)........................................................ 9 3.2.1 Aplikasi-Aplikasi ISAPI .................................................................................. 9 3.2.2 Direktori-Direktori Virtual............................................................................... 13 3.2.3 File-File Sample................................................................................................ 13 3.2.4 Host Virtual.......................................................................................................14 3.3 Web Server Front-End......................................................................................... 16 3.3.1 Lingkungan (Envronment) Eksekusi Aplikasi Web......................................... 16 3.3.2 Database Server................................................................................................ 17 3.3.3 Menghubungkan Masing-Masing Komponen.................................................. 17 3.3.4 Identifikasi Komponen Aplikasi Web Melalui URL........................................ 18 3.3.5 Tindakan-Tindakan Antisipasi.......................................................................... 20 BAB IV PENUTUP............................................................................................................... 22 DAFTAR PUSTAKA............................................................................................................ 23 BIOGRAFI PENULIS........................................................................................................... 24

BAB I PENDAHULUAN

1.1 Latar Belakang Masalah Perkembangan teknologi saat ini kian hari kian pesat, hampir semua bidang teknologi sekarang berbasis internet. Salah satu teknologi yang saat ini kita rasakan manfaatnya adalah World Wide Web atau dikenal dengan nama web. Web kini menjadi sumber data yang terbesar dan sangat berharga untuk setiap pengguna karena didalam web kumpulan dokumendokumen saling terhubung dan dapat diakses melalui koneksi internet. Setiap individu didunia bebas menambahkan konten dalam webnya. Makin banyak informasi yang ditambahkan, makin besar ukuran web dan semakin sulit pula untuk mencari informasi yang benar-benar yang diinginkan diweb oleh karena itu dibutuhkan suatu teknologi untuk mendapatkan informasi yang benar-benar diinginkan tersebut.Berjuta-juta halaman Web dapat kita temui saat ini di Internet. Perkembangannya sangat cepat. Telah banyak perusahaan yang menampilkan diri di Internet melalui Web. Begitu juga dengan berbagai jenis Web yang lain yang kini telah menjadi bagian tak terpisahkan dari Internet. Web sedemikian populer karena mudah dibuat dan banyak menawarkan keuntungan. Banyak sekali informasi yang disediakan oleh Web-Web yang ada dan dapat diakses oleh siapa saja. Bahkan saat ini banyak pula perusahaan-perusahaan yang menyediakan transaksi melalui Web mereka. Web telah dijadikan satu bagian penting untuk promosi maupun layanan kepada pelanggan. Berkaitan dengan perkembangan ini, maka kemanan mulai menjadi masalah penting. Lebih lagi dengan kemunculan Web-Web e-commerce. Demikian juga dengan penggunaan Web oleh perusahaan-perusahaan sebagai tempat promosi dan pusat layanan mereka yang tentunya membutuhkan jaminan keamanan.

1.2 Rumusan Masalah

Dari latar belakang yang dikemukakan diatas, maka yang menjadi rumusan masalah dalam penelitian ini adalah :

1. Menjaga keamanan web dari kejahatan penipuan, pencurian, pengrusakan, virus, worm, dan lain-lain.

2. Penggunaan aplikasi-aplikasi untuk web yang aman. 1.3 Tujuan Penelitian

Tujuan dari penelitian ini adalah untuk menjadikan web sebagai suatu sarana informasi, komunikasi, dan bisnis yang aman.

1.4 Manfaat Penelitian

Manfaat dari penelitian ini diharapkan : 1. Untuk memperkenalkan web kepada masyarakat sebagai sarana informasi, komunikasi, dan bisnis yang mudah dan aman.

1.5 Metode Penelitian

Dalam penelitian ini penulis menggunakan metode penelitian studi pustaka/dokumen, diantaranya meliputi : 1. Studi Literatur Studi Literatur mengenai Web Server, Microsoft Internet Information System (IIS), Komponen-komponen Pendukung Aplikasi Web, dan mempelajari keamanan situssitus web yang relevan.

2. Perancangan Perancangan konsep keamanan dan komponen aplikasi-aplikasi yang sesuai dengan kebutuhan informasi yang ada dalam domain tersebut. Setelah konsep ini terbentuk dilakukan perancangan aplikasi pencarian pada web tersebut.

3. Implementasi dan Pengujian Rancangan model keamanan diimplementasikan dengan sistem pemrograman dan berbagai virus atau sejenisnya kemudian merumuskan koleksi data penelitian kedalam bentuk format OWL aplikasi pencariannya diimplementasikan mengunakan Java Server Pages sebagai antar muka, Jena API dan SPARQL.

1.6 Sistematika Penulisan

Untuk lebih memahami isi dari penelitian ini, maka penulisan materi yang akan disampaikan disusun dengan sistematika penulisan sebagai berikut :

BAB I PENDAHULUAN Bab ini menjelaskan tentang latar belakang masalah, rumusan masalah, batasan masalah, tujuan penulisan penelitian, manfaat penulisan penelitian, metode penelitian yang digunakan, dan sistematika penelitian.

BAB II TINJAUAN PUSTAKA Bab ini menjelaskan tentang bahan referensi dalam penulisan makalah ini.

BAB III IMPLEMENTASI DAN PEMBAHASAN Bab ini membahas implementasi keamanan web berbasis HTML serta implementasi aplikasi pendukung pada web tersebut dengan menggunakan Java Server Pages sebagai bahasa yang digunakan untuk membangun antar muka dan query SPARQL sebagai alternatif solusi untuk menemukan hasil pencarian berbasis HTML.

BAB IV PENUTUP Bab ini memaparkan kesimpulan dari keseluruhan implementasi sistem yang dibuat dan saran untuk pengembangan sistem ke depan.

BAB II TINJAUAN PUSTAKA2.1 Landasan Teori 2.1.1 Aplikasi Menurut Supriyanto (2005:117) Aplikasi adalah program yang memiliki aktivitas pemrosesan perintah yang diperlukan untuk melaksanakan permintaan pengguna dengan tujuan tertentu. Sedangkan menurut Janner (2006:22) aplikasi adalah program atau sekelompok program yang dirancang untuk digunakan oleh pengguna akhir (end user). Kesimpulan dari kedua pengertian diatas bahwa aplikasi adalah program yang memiliki aktivitas pemrosesan perintah yang dirancang untuk mencapai tujuan tertentu. 2.1.5 Berbasis Berbasis adalah dasar pokok (Dwi Adi K : Kamus Praktis Lengkap Bahasa Indonesia), sedangkan menurut (Fathansyah, 1999:2) berbasis adalah markas atau gudang tempat bersarang atau berkumpul. Jadi dapat disimpulkan bahwa berbasis adalah tempat berkumpul dan bersarang suatu dasar pokok.

2.1.6 Web Web merupakan sumber daya internet yang sangat popular dan dapat digunakan untuk memperoleh informasi atau bahkan melakukan transaksi pembelian barang (Abdul Kadir, 2003 :460), sedangkan menurut (Wikipedia) Web adalah suatu ruang informasi yang dipakai oleh pengenal global yang disebut Uniform Resource Identifier (URL) untuk mengidentifikasi sumber-sumber daya yang berguna. Jadi dapat disimpulkan bahwa web adalah sumber daya internet yang digunakan untuk memperoleh suatu informasi dan bahkan melakukan transaksi pembelian barang.

2.1.7 Php Php adalah bahasa scripting yang ditempelkan (embedded) ketika digunakan dalam halaman Web (Janner, 2006:32). Sedangkan menurut (Bunafit, 2004:369) Php adalah program aplikasi yang bersifat Server Side, artinya hanya dapat berjalan pada sisi server saja dan tidak dapat berfungsi tanpa adanya sebuah server di dalamnya. Kesimpulan dari kedua pengertian di atas adalah Php merupakan bahasa scripting yang ditempelkan (embedded) dalam halaman Web dimana bersifat hanya dapat berjalan pada sisi server dan tidak dapat berfungsi tanpa adanya sebuah server di dalamnya.

BAB III IMPLEMENTASI DAN PEMBAHASANWEB SERVER Setiap kali sebuah browser berhubungan ke suatu situs Web di Internet, ia terhubung ke Web server. Server tersebut mendengarkan request pada jaringan dan menjawabnya kepada si pengirim permintaan dengan membawa data tertentu. 3.1 APACHE Apache adalah Web server paling populer di Internet. Hal ini disebabkan oleh tiga faktor, yaitu dukungan platform, fitur-fitur dan harga. Apache bekerja pada hampir semua platform yang terkenal termasuk NetBSD, UNIX, AIX, OS/2, Windows 3.x, SCO, HPUX, Novell NetWare, Macintosh, BeOS, Windows NT, Linux, VMS, AS/400, FreeBSD, Solaris, dll. Selain itu Apache selalu menawarkan fitur-fitur bervariasi sehingga memberi saran bagi para developer untuk menciptakan desain situs Web secara cepat. Akhirnya, Web server ini juga menawarkan harga jual terbaik yaitu dapat diperoleh secara gratis. Oleh karena banyaknya pengguna Apache inilah maka Apache menjadi incaran para hacker. Setiap platform dan fitur yang ditambahkan juga menghadirkan kesempatan bagi oenyerang untuk mengambil keuntungan dari kelemahan-kelemahan yang ada. 3.1.1 Host Virtual Konsep host virtual yang pada dasarnya sederhana memungkinkan sebuah komputer terhubung dengan banyak Web server pada saat yang bersamaan dan satu buah komputer yang menjalan satu Web server dapat melayani banyak halaman dari berbagai situs Web. Semua itu dapat dilakukan dengan dua buah mekanisme yaitu basis-nama dan basis-IP. Mekanisme Basis-Nama Hosting virtual berbasis-nama mengharuskan user menyediakan sebuah nama unik bagi tiap request HTTP. Nama itu secara khusus merupakan nama DNS yang merupakan record-record CNAME pada server DNS-nya. Semua record mengacu ke alamat IP yang sama. Hal ini biasa dipakai pada perusahaan hosting. Jadi, jika dibuka sebuah situs Web yang hostnya juga dipakai oleh situs lain pada sistem yang sama (biasanya pada sistem Web hosting) maka ketika Web server menerima request HTTP GET, ia akan membuka host tertentu saja (virtual) yang sesuai dengan request bukan berdasar alamat IP sistem sehingga

hanya akan menampilkan halaman web tertentu saja. Dengan demikian Web server tidak akan menampilkan seluruh situs web lain yang ada di sistem tersebut. Berikut ini contohnya. Dengan perintah berikut: http://www.us.example.com maka browser akan mengirimkan request HTTP GET, sebagai berikut: GET / HTTP/1.1 Accept: */* Accept-Language: en-us Accept-Encoding: gzip, deflate (compatible;MSIE 6.0; Windows NT 5.0) User-Agent: Mozilla/4.0 Host: www.us.example.com Connection: Keep-Alive Bagian yang ditebalkan pada request HTTP GET tersebut adalah yang akan diteruskan, sehingga Web server akan meneruskan request halaman ke host virtual yaitu www.us.example.com. Mekanisme Basis-IP Pada hosting virtual berbasis IP, server harus memiliki alamat IP yang berbeda untuk setiap situs Web. Ini mirip dengan pembuatan alias-alias IP pada sistem Unix. Pembuatan IP alias ini dapat dilakukan dengan perintah ifconfig. Sebagai contoh untuk menambahkan tiga alamat IP pada sebuah interface ethernet eth0, dapat dilakukan sebagai berikut: [root@jack /opt]# /sbin/ifconfig eth0:0 172.16.30.50 [root@jack /opt]# /sbin/ifconfig eth0:1 172.16.30.51 [root@jack /opt]# /sbin/ifconfig eth0:2 172.16.30.52 [root@jack /opt]# /sbin/ifconfig -a eth0 Link encap:Ethernet HWaddr 00:50:04:91:D5:A0 inet addr:172.16.30.2 Bcast:172.16.30.255 Mask:255.255.0.0 UP BROADCAST RUNNING MTU:1500 Metric:1 RX packets:33272 errors:20 dropped:0 overruns:20 frame:20 TX packets:22851 errors:0 dropped:0 overruns:0 carrier:0 collisions:309 txqueuelen:100 Interrupt:3 Base address:0x300 eth0:0 Link encap:Ethernet HWaddr 00:50:04:91:D5:A0

inet

addr:172.16.30.50

Bcast:172.16.30.255

Mask:255.255.0.0

UP

BROADCAST

RUNNING MTU:1500 Metric:1 Interrupt:3 Base address:0x300 eth0:1 Link encap:Ethernet HWaddr 00:50:04:91:D5:A0 inet addr:172.16.30.51 Bcast:172.16.30.255 Mask:255.255.0.0 UP BROADCAST RUNNING MTU:1500 Metric:1 Interrupt:3 Base address:0x300 eth0:2 Link encap:Ethernet HWaddr 00:50:04:91:D5:A0 inet addr:172.16.30.52 Bcast:172.16.30.255 Mask:255.255.0.0 UP BROADCAST RUNNING MTU:1500 Metric:1 Interrupt:3 Base address:0x300 Dari contoh di atas maka eth0 memiliki tiga alias baru, yaitu 172.16.30.50, 172.16.30.51, dan 172.16.30.52. Ketiganya memakai interface eth0:x. Jadi, nantinya masingmasing alamat IP ini harus memiliki nama DNS yang berbeda, tidak seperti pada hosting virtual berbasis nama. Kemudian alamat-alamat IP ini masing-masing harus dibuatkan instruksi VirtualHost dalam file httpd.conf pada Apache. Pendeteksian pada basis IP ini lebih sulit. Satu-satunya cara untuk menemukan sebuah host virtual basis IP ini adalah dengan melihat alamat MAC pada tiap alamat IP. Dengan ini akan memaksa hacker untuk mengalihkan perhatian ke LAN lokal. Masalah keamanan yang diperhatikan sebenarnya bukan pada hosting virtual ini sendiri. Implikasi keamanannya itulah yang penting yaitu jika sebuah saja virtual Web site telah disetujui maka setiap Web site pada sistem yang bersangkutan juga disetujui. 3.1.2 Server Side Includes Server Side Include (SSI) merupakan perintah-perintah yang ada dalam halam Web HTML yang menyediakan fungsi server-side. SSI serupa dengan CGI yang khusus digunakan untuk membuat dinamis halaman Web. Secara default SSI dimatikan dan hal ini baik untuk kemanan. Tapi seringnya situs Web mengaktifkannya dan memerintahkan server untuk mengerjakan semua file berekstensi .shtml dan mengendalikannya sebagai SSI. Jika SSI ini dipakai maka pastikan perintah exec cmd telah dinonaktifkan. Caranya, tentukan argumen IncludesNOEXEC dengan perintah Options pada file httpd.conf Apache. Perintah exec cmd ini berguna untuk mengeksekusi perintah yang berubah-ubah pada sistem remote. Secara khusus perintah cmd hanya berjalan pada Unix, namun Windows juga

memperbolehkannya. Fungsi ini jelas memiliki resiko keamanan yang tinggi sehingga tidak diaktifkan secara default pada banyak server aplikasi Web dewasa ini, namun dulu pernah menjadi sumber dari sekian banyak bahaya keamanan. 3.1.3 Common Gateway Interface Common Gateway Interface (CGI) adalah satu dari sekian banyak mekanisme orisinil yang dikembangkan untuk mengirim isi data yang dinamis ke Web. Apache mendukung beragam teknologi CGI diantaranya adalah ScriptAlias dan Handler. ScriptAlias Perintah-perintah ScriptAlias pada file httpd.con memberi tahu Apache bahwa direktori-direktori yang dibawanya berisi script yang harus dijalankan. Contoh perintah ScriptAlias: ScriptAlias /cgi-bin/ /opt/apache/cgi-bin Perintah itu memberi tahu Apache bahwa setiap request yang dimulai dengan /cgi-bin harus dipetakan ke direktori /opt/apache/cgi-bin. ScriptAlias dapat mengamankan Web server karena ia menentukan tempat script-script dapat dieksekusikan. Handler (pengendali) Handler adalah sebuah mekanisme yang mengendalikan beragam request pada Web berdasarkan nama file. File-file tertentu (.jsp, .asp, dll) memerlukan kendali program tertentu pula (Java, ASP, dll). Sudah sejak sebelum kemunculan Apache 1.1, Web server sudah memiliki kemampuan untuk menentukan secara tepat kendali program yang dipakai untuk seuatu file berdasarkan namanya, daripada bergantung pada default-default yang memiliki kode-kode yang sulit dipecahkan. Akibatnya developer memetakan suatu handler pada nama file yang tidak standar. Handler-handler yang bersifat built-in terdiri dari handler default yang mengendalikan isi data statis, khususnya HTML. Tetapi, tersedia juga tambahannya, yaitu mod_asis, mod_cgi, mod_imap, mod_info, mod_status, dan mod_negotiation. Selain ini bisa juga ditambahkan manual dengan perintah Action, yaitu perintah pada Web server untuk mengendalikan request tertentu dengan sebuah file CGI khusus. Misal, untuk semua file berekstensi .stu dikendalikan oleh script Perl. Perintah berikut ini dapat ditambahakan pada file httpd.conf Apache: AddHandler my-file-type .stu Action my-file-type /cgi-bin/stu.pl

3.2 MICROSOFT INTERNET INFORMATION SERVER (IIS) Pada strategi Internetnya, Microsoft telah menganggap server IIS sebagai suatu poros yang amat penting karena keyakinan bahwa perusahaan memakai sistem operasi Windows pada Web servernya, terutama sejak NT 4.0. Walau kehadirannya kurang begitu disadari, namun IIS merupakan software yang unggul. Berikut ini akan dibahas beberapa komponen keamanan dari IIS serta kelemahan-kelemahan dasarnya.

3.2.1 Aplikasi-Aplikasi ISAPI Aplikasi-aplikasi ISAPI (Internet Server Application Programming Interface) merupakan ancaman terbesar dari pada Web server IIS. ISAPI membuka kesempatan bagi para programmer Web memperluas kegunaan Web server IIS dengan membuat program mereka sendiri untuk mengolah dan mengendalikan data dan request yang sedang dikirim ke Web server. Selain itu aplikasi-aplikasi ISAPI memungkinkan developer untuk menangkap semua paket yang datang ke Web server dan mengolahnya. Hal ini berarti meningkatkan kontrol atas request dan mencegah penyerangan atas Web server. Ironisnya, justru pengolahan paket-paket tersebut membuka serangan pada Web server. Secara default IIS menginstal sejumlah besar filter ISAPI yang dapat digunakan untuk mendobrak Web server. Hal ini terjadi karena adanya hukum keseimbangan. Dengan memberikan titik-titik entri secukupnya ke Web server, penyerang membuka jalan masuk ke sana, dan filter ISAPI menyediakan titik-titik entri tersebut. Tabel 2-1 berikut ini menampilkan beberapa filter ISAPI yang terinstal secara default pada waktu instalasi Windows 2000 (IIS 5.0). Table 2-1. ISAPI Filters Executable Path ISAPI Extension .asa C:\winnt\system3 2\ inetsrv\asp.dll Active Server server-side extension dynamic delivery. .asp C:\winnt\system3 2\ inetsrv\asp.dll Active Server server-side extension Page scripting allows Page scripting allows content Description

dynamic delivery. .cdx C:\winnt\system3 2\ inetsrv\asp.dll Active Server server-side extension dynamic delivery. .cer C:\winnt\system3 2\ inetsrv\asp.dll Active Server server-side extension dynamic delivery. .htw C:\winnt\system3 2\ inetsrv\ism.dll .ida C:\winnt\system3 2\ inetsrv\idq.dll .idq C:\winnt\system3 2\ inetsrv\idq.dll .idc C:\winnt\system3 2\ inetsrv\httpodbc.d ll .htx C:\winnt\system3 2\ inetsrv\httpodbc.d ll Internet Internet Connector

content

Page scripting allows content

Page scripting allows content

Index Server extension

Index Server extension

Internet Data Queries, Index Server extension

Database

Database

Connector (IDC)uses ODBC APIs to with

communicate

database sources such as SQL Server. .printer C:\winnt\system3 2\ Internet Printing

msw3prt.dll .shtm C:\winnt\system3 2\ inetsrv\ssinc.dll Server-Side provides Includes dynamic

content delivery to the Web.

.shtml

C:\winnt\system3 2\ inetsrv\ssinc.dll

Server-Side provides

Includes dynamic

content delivery to the Web.

.stm

C:\winnt\system3 2\ inetsrv\ssinc.dll

Server-Side provides

Includes dynamic

content delivery to the Web.

.htr

C:\winnt\system3 2\ inetsrv\ism.dll

Web-based Administration provides a performing administrative functions via the Web, such as changing passwords. means of

Dengan menambah kegunaan filter ISAPI berarti juga menambahkan hadirnya lubang keamanan. Sebagai contoh, filter .ldq dan .ida, yang ternyata bertanggung jawab atas masuknya worm Nimda dan Code Red yang menyebabkan kerugian kerusakan lebih dari 100.000 dolar per 1000 perusahaan. Worm Code Red masuk karena adanya buffer overflow pada ekstendi .ida. Worm itu berhasil mengeksploitasi kelemahan Server Indeks .ida sehingga membuka kesempatan bagi penyerang untuk mengirimkan request ke Web server dan menyebabkan overflow pada DLL yang mengendalikan request, lalu mengeksekusikan perintah pada remote system. Inti serangan ini pada bagian muatan yang menguntungkan dilakukan pada request HTTP itu sendiri. Permintaan menjadi sah dan dapat diterima oleh semua firewall pada proxy yang dipakai. Akibatnya, penyerang mengeksekusi perintah pada sistem remote dan secara efektif mengendalikannya.

Penyelesaian masalah filter ini adalah dengan tetap mengikuti semua sekurity patch dari Microsoft dan menerapkan yang cocok. Tetapi, penyelesaian dapat juga dilakukan dengan cara membuang semua filter ISAPI yang tidak diperlukan melalui Internet Service Manager. Dalam melakukannya pilih Properties dari Web server yang sedang bekerja. Lalu pilih tab ISAPI filter dan buang semua filter yang mengganggu. Kemudian pilih tab Home Directory dan pilih Configuration. Gambar berikut memperlihatkan daftar pemetaan aplikasi secara default. Akhirnya buang pemetaan itu satu per satu.

Gambar 2.1 Pemetaan Aplikasi pada IIS

Sebagai catatan, harus dilakukan juga hal yang sama pada Properties Master Web, sehingga akan membuang filter-filter dan pemetaannya pada semua server yang berhubungan. Filter-filter ISAPI default yang dapat dibuang atau dinonaktifkan adalah: Sspifilt Compression Md5filt Fpexedll.dll

3.2.2 Direktori-Direktori Virtual Pada IIS ada fitur tambahan lagi yang membolehkan administrator untuk menset suatu link antara sebuah direktori di bawah root Web dan direktori lain pada harddisk atau pada sebuah remote system. Secara default ini harus dibuang. Direktori-direktori virtual yang tidak diperlukan di antaranya yaitu: Script > jika CGI atau ASP atau ISAPI dipakai maka diperlukan juga sebuah direktori khusus denjgan izin eksekusi script. Tapi ini merupakan target umum. _vti_bin > diperlukan untuk mendukung FrontPage Printers > untuk mencetak halaman Direktori-direktori di atas dan yang lainnya dapat dibuang tanpa pengaruh besar bagi sistem. Untuk membuangnya, pakai Internet Services Manager, di bagian Web sever.

3.2.3 File-File Sample Beberapa file disediakan oleh IIS untuk Lokasi Default membantu kita menulis kode program. Tetapi file-file ini banyak memiliki lubang Direktori Virtual

keamanan, karena mereka tersedia secara default dan terorirentasi pada developer. Beberapa Keterangan IIS sample files IIS documentation Data access c:\inetpub\iissamples c:\winnt\help\iishelp c:\program files\common files\system\msadc Aturan umum setiap kali instalasi seharusnya adalah membuang atau meminimalkan Access Control List (ACL) pada file dengan NTFS permissions. Membuang sekaligus direktori merupakan hal yang paling mudah, tetapi tidak realistis. Misalnya, jika ada aplikasi yang membutuhkan komponen sample tertentu, pembuangan file-file itu malah bisa menyebabkan gangguan. Jadi, alternatifnya adalah dengan membatasi akses hanya kepada yang memerlukan. Untuk menerapkan ACL secara benar, harus memperhatikan file-file apa saja yang akan dipakai. Kemudian juga permission yang diperlukan agar dapat mempertahankan \IISSamples \IISHelp \MSADC file yang diinstal default:

kegunaannya yang lengkap. Gambar berikut ini akan menunjukkan penerapan permission secara default pada direktori iissamples, Everyone, with all rights. Tentu saja bukan pilihan yang baik.

Gambar 2.2 Properti dari Direktori Sample Grup Everyone pada daftar di atas dapat dibuang, lalu masukkan accaunt IUSR dan memberi atribut read only atau juga execute sesuai kebutuhan. Dengan pemakaian ACL ini secara signifikan akan mengurangi ancaman. Sekalipun penyerang sudah dapat masuk ke dalam dan mengeksekusi file sample yang tidak digunakan, dia tidak akan bisa menggunakan program itu untuk membuat sebuah file pada direktori sehingga tidak dapat melanjutkan serangan lebih jauh lagi.

3.2.4 Host Virtual Seperti pada Apache yang telah dibahas sebelumnya, Microsoft juga menyediakan host virtual dengan IP sekunder dengan mekanisme seperti pada host virtual basis-IP Apache. Selain itu juga disediakan host virtual multiple web sites dengan mekanisme seperti basisnama Apache. Penambahan alamat-alamat IP sekunder bisa dilakukan dengan mudah pada

Properties dari koneksi internet pada bagian Advance untuk selanjutkan dibuatkan multiple Web sites pada Internet Service Manager. Service provider banyak menggunakan sistem multiple Web sites ini untuk memaksimalkan sumber-sumbernya, dan kebanyakan penyerang mengetahui hal ini. Akibatnya, fokus mereka adalah memperoleh akses pada salah satu situs yang ada sehingga dapat mempengaruhi banyak situs yang lainnya. Hal ini cukup penting untuk menjadi perhatian.

KOMPONEN-KOMPONEN PENDUKUNG APLIKASI WEBPada sub bab ini pembahasan akan difokuskan pada fungsi komponen-komponen dari sebuah aplikasi Web. Dengan memahami bagaimana aplikasi Web ini disusun akan membantu kita mengetahui lebih baik gambaran tentang keamanannya. Aplikasi Web disusun sesuai kebutuhan masing-masing pembuatnya. Tidak ada standar paling baik untuk semua jenis kebutuhan. Terlepas dari pengetahuan ini, apabila seseorang ingin membuat suatu aplikasi Web dengan kebutuhan performa yang tinggi maka sebaiknya memahami konsepnya dengan baik pula untuk dapat memanfaatkan berbagai macam teknologi aplikasi Web yang ada. Sebuah sistem aplikasi Web memiliki tiga komponen utama: Web server front-end Lingkungan (environment) eksekusi aplikasi Web Database server Berikut ini dapat dilihat layout dari sistem aplikasi Web pada umumnya.

Gambar 3.1 Gambaran sekilas suatu sistem aplikasi Web tipikal

3.3 WEB SERVER FRONT-END Pada pembahasan ini kita tidak akan bahaskan masalah Web browser dan firewall. Langsung mengenai komponen utama, yaitu Web server front-end. Bagian ini berfungsi untuk menerima request HTTP dan memberi jawaban. Server front-end biasanya dibuat untuk siap melayani request dalam jumlah besar dab mengendalikan banyak koneksi yang terjadi bersamaan. Ia harus mengefisiensikan sumber-sumbernya untuk menyediakan output yang besar dan memadai. Server-server ini biasanya hanya menangani file-file HTML statis, atau mungkin memiliki sedikit saja kemampuan scripting dinamis. Tentunya tidak cukup untuk melayani keseluruhan aplikasi Web. Agar fungsionalitasnya bagus, haruslah memenuhi kriteria berikut: Scalability dan robustness: Kapasitas Web server harus bisa dengan mudah diperluas tanpa perlu membatasi hardware server dan sistem operasi yang dipakai. Peningkatan beban jangan sampai menurunkan performa terlalu banyak. Sudah diuji-coba melawan serangan-serangan yang umum: Karena Web server front-end merupakan komponen pertama yang menjadi sasaran maka ia harus sudah lulus uji terhadap serangan-serangan dari luar yang umum dipakai orang, seperti kelemahan buffer overflow, penyisipan meta-karakter, dll. Kemampuan menangani beban besar dan koneksi yang banyak secara bersamaan. Fasilitas konfigurasi yang serbaguna. Mendukung API dan plug-in untuk pengintegrasian komponen-komponen dan modulmodul eksternal. Beberapa Web server font-end yang populer antara lain adalah Apache, Microsoft IIS, Netscape, Zeus Web sever.

3.3.1 LINGKUNGAN (ENVIRONMENT) EKSEKUSI APLIKASI WEB Lingkungan eksekusi aplikasi Web merupakan platform untuk membuat aplikasiaplikasi yang bisa menerima input dari form-form HTML atau URL dan membangkitkan output HTML secara dinamis. Secara khusus disebut sebagai server aplikasi Web, namun tidak selalu menjadi sebuah sistem tersendiri. Kadangkala server aplikasi Web ini bisa saja hanya merupakan sebuah ekstensi dari Web server front-end.

Dalam memilih komponen server aplikasi Web ini, ada beberapa hal yang perlu diperhatikan: Kecocokan untuk menjalankan tugas yang diinginkan: Biasanya terkait dengan pilihan bahasa pemrograman yang tepat. Antarmuka dengan Web server front-end: Komponen server aplikasi Web harus bisa menjadi antarmuka dan memberi alternatif metode pengintegrasian terhadap Web server front-end. Antarmuka dengan database: Harus mampu memberikan antarmuka terhadap database server terkenal seperti Oracle, DB2, SQL Server, dan MySQL.

3.3.2 DATABASE SERVER Database server dalam sebuah sistem aplikasi Web digunakan untuk menampung beragam database dan tabel yang diperlukan oleh aplikasi. Database server berkomunikasi dengan komponen sistem lain dengan API native, driver-driver database, atau komponenkomponen middle-layer. Semua transaksi database dikerjakan melalui SQL.

3.3.3 MENGHUBUNGKAN MASING-MASING KOMPONEN Beragam cara dapat kita lakukan untuk menghubungkan masing-masing komponen sistem aplikasi Web ini. Pada gambar berikut ini dapat dilihat empat contoh cara menghubungkan komponen-komponen sistem tadi.

Gambar 3.2 Menghubungkan server-server aplikasi Web

3.3.4 IDENTIFIKASI KOMPONEN APLIKASI WEB MELALUI URL Sebuah URL sebenarnya merupakan wujud dari sekumpulan fitur atau fungsi dari suatu aplikasi Web. URL juga merupakan sarana komunikasi utama antara browser dan sistem aplikasi Web. Dari sini seseorang bisa melihat pola-pola pada URL, sehingga dapat membantunya mengidentifikasi teknologi-teknologi yang bekerja pada aplikasi Web. Tentunya hal ini membutuhkan pengamatan dan pengalaman. Langkah awal untuk mengidentifikasikan teknologi yang mendukung aplikasi Web server adalah dengan memperhatikan header HTTP yang dikembalikan oleh Web server. Dalam banyak hal, header HTTP bisa secara akurat mengidentifikasikan Web server frontend yang dipakai. Misalnya, digunakan utiliti seperti Netcat dapat dilihat sebagai berikut: # nc www.example.com 80 GET / HTTP/1.0 HTTP/1.1 200 OK Date: Mon, 04 Feb 2001 19:29:37 GMT Server: Apache/1.3.19 (Unix) Set-Cookie: Apache=192.168.51.1.308631012850977729; path=/; expires=Tue, 04-Feb-02 19:29:37 GMT Last-Modified: Mon, 10 Dec 2001 04:48:34 GMT ETag: "94b5d-1ef-3c143ea2" Accept-Ranges: bytes Content-Length: 495 Connection: close Content-Type: text/html Pada contoh di atas, dapat disimpulkan bahwa server yang dipakai adalah Apache 1.3.19 yang juga mendukung SSL, mod_perl, dan PHP 4.0. Dalam contoh lain, ada juga server yang membatasi, yaitu hanya menampilkan header-header yang dibutuhkan oleh browser. Berikut ini contohnya: # nc www.example.com 80 GET / HTTP/1.0 HTTP/1.1 200 OK Date: Mon, 04 Feb 2001 19:12:35 GMT Server: Apache/1.3.12 (Unix) Connection: close

Content-Type: text/html Di contoh ini kita tidak dapat mengetahui tipe dari script aplikasi Web dari sistem bersangkutan. Perlu diteliti lagi karakter-karakter yang membedakannya untuk

mempersempit kemungkinan dan menentukan teknologi yang dipakai. Yang menjadi awal di URL adalah tipe dari sumber atau file yang diminta.Ekstensinya menentukan platform sumber yang digunakan. Berikut ini dapat dilihat beberapa ekstensi pada URL Teknologi dan platform-platform yang biasanya terkait. Ekstensi .pl Perl CGI script Generic; biasanya Web server di Unix .asp .aspx .php Active Server Pages ASP+ PHP script Microsoft IIS Microsoft .NET Generic; biasanya Platform Server

diantarmukakan dengan Apache .cfm ColdFusion Generic; biasanya Web server

diantarmukakan dengan Microsoft IIS .nsf Lotus Domino Lotus Domino server

HTML. Berarti ada sebuah server aplikasi yang menjadi jembatan bagi IIS 4.0. String ";jsessionid=xxxxx" merupakan karakteristik penandaan dari server aplikasi ATG Dynamo, yang digunakan oleh untuk menangani file Java HTML dan mengeksekusi Servlet Java. URL: home.d2w/report URL di atas adalah tipikal dari IBM Net.Data e-commerce platform. String "ncommerce3" dan "ExecMacro" adalah kuncinya. Kemudian ada "home.d2w" merupakan aplikasi makro ditulis pada bahasa script IBM Net.Data dan "report" adalah salah satu dari banyak metode yang disediakan oleh aplikasi makro. Sedangkan Web server front-end dideteksi dengan HTTP header yang ada. http://www3.example.com/cgi-bin/ncommerce3/ExecMacro/webstore/

URL:

http://www4.example.com/

category.jsp?id=21&StoreSession=PC1q

Nwwm0xqCFOWHZcYxZaZ21laYQEfOetnSjrYtrsxSC1V7b|3886513130244820/ 167838525/6/7001/7001/7002/7002/7001/-1 Contoh ini khusus. File yang direquest adalah file Java Server Pages. Server yang dipakai adalah Netscape Enterprise 4.1, teridentifikasi dari HTTP headernya. Namun, "signature" URL yang dipakai bukan dari server Netscape Enterprise. Signature URL ternyata adalah tipikal dari BEA WebLogic, yang teridentifikasi melalui session identifiers dengan bentuk: Session=xxxxxxxxxxxxxx|######/#####/#/7001/7001/7002/7002/7001/# Bagian pertama dari session identifier-nya merupakan string alfanumerik, yang diikuti dengan simbol "|" dan beberapa string numerik dipisah dengan tanda "/". Angka 7001 dan 7002 mengacu kepada HTTP and port SSL TCP, yang dipakai WebLogic secara internal untuk berkomunikasi dengan Web server front-end. Ketika WebLogic berjalan pada port selain dari 7001 dan 7002, server itu ditandai secara berbeda pada URL yang dihasilkan dari situs tersebut. Demikianlah beberapa contoh sebagai perkenalan dari identifikasi teknologi aplikasi Web server melalui URL-nya. Masih banyak lagi tentunya hal yang lebih mendalam dari itu, namun sebagai perkenalan dan memberikan gambaran kiranya cukup dari contoh-contoh di atas.

3.3.5 TINDAKAN-TINDAKAN ANTISIPASI Setelah mengetahui beberapa hal yang telah dipaparkan sebelumnya, maka perlu diperhatikan tindakan-tindakan antisipasi untuk pengelola aplikasi Web server. Bukan suatu hal yang mudah untuk dapat mencegah pihak luar atau penyerang dari mendapatkan informasi tentang teknologi yang dipakai pada sistem aplikasi Web server yang kita miliki. Setidaknya dua panduan berikut ini berdasarkan pada prinsip meminimalkan hak-hak khusus dapat diikuti, yaitu: Minimalkan Kebocoran Informasi dari Header HTTP Sebagian besar Web server dikonfigurasikan agar tidak mengembalikan header HTTP selain dari informasi yang dibutuhkan. Kemudian server aplikasi yang dipakai juga jangan sampai dimasukkan dalam header HTTP. Hindari Pengiriman Informasi Keliru Kepada Browser Ketika aplikasi Web sampai pada tahap produksi dari tahap pengembangan, maka pengendali kesalahan harus diletakkan pada tempatnya untuk mengatasi kesalahan-kesalahan yang

muncul pada saat aplikasi dipakai. Pesan-pesan kesalahan harus dicatat dalam file log pada Web server. Hanya pesan kesalahan singkat yang boleh dikembalikan kepada browser sewaktu terjadi kesalahan. Untuk membingungkan penyerang sekaligus mencegahnya, maka perubahan string identifikasi server dan ekstensi file sudah cukup baik sebagai solusi. Dengan itu sebenarnya tidak tahan lama, namun hanya menahan permainan script atau menghalangi scanner otomatis saja. Tentu saja penyerang yang sudah berpengalaman tidak akan bisa dihentikan dengan itu saja. Demikian sedikit ulasan mengenai aplikasi Web dan seluk-beluknya. Penting bagi kita untuk memahami peran masing-masing teknologi Web server agar kita dapat mengatasi berbagai kemungkinan serangan pada sistem aplikasi Web server.

BAB IV PENUTUP1. KESIMPULAN Kesimpulan yang dapat diambil dari pembahasan makalah ini antara lain sebagai berikut: Teknologi Web server merupakan inti setiap desain aplikasi Web. Tanpa memberi perhatian khusus pada keamanannya, konfigurasi defaultnya justru akan menjadi sejumlah jalan penyerangan bagi para penyerang. Konfigurasi default biasanya memberikan berbagai kemudahan dan fitur tambahan, namun tidak selalu diperlukan. Untuk itu perlu diperhatikan sekali lubang-lubang keamanannya. Web server seperti IIS dan Apache memiliki kelemahan-kelemahan, namun mereka secara memberikan keleluasaan bagi kita untuk mematikan fungsi-fungsi atau program-program di dalamnya yang tidak kita inginkan. Dalam mengembangkan aplikasi Web, sangat penting untuk dipahami bagaimana kerja masing-masing teknologi Web yang dipakai agar dapat diantisipasi kelemahan-kelemahan kemanannya.

DAFTAR PUSTAKA[1] Stuart McClure, Saumil Shah, and Shreeraj Shah, Web Hacking: Attacks and Defense, Addison Wesley, U.S., 2002.

BIOGRAFI PENULIS

Meikel Sandy Juerman. Lahir di Ujung Pandang 10 Mei 1992. Menyelesaikan SMA jurusan IPA, tahun 2010. Diterima di Jurusan Teknik Informatika Fakultas Teknologi Industri ITENAS. Pada waktu SMA pernah mengikuti lomba menulis karya ilmiah mengenai Penanggulanagn Bencana Alam dengan Teknologi Sederhana.

Egy Chandra Legita. Lahir di Sumedang 2 Juli 1991. Menyelesaikan SMA jurusan IPS, tahun 2010. Diterima di Jurusan Teknik Informatika Fakultas Teknologi Industri ITENAS.

Rozan Widhi Jatnika. Lahir di Cilegon 11 Desember 1992. Menyelesaikan SMA jurusan IPA, tahun 2010. Diterima di Jurusan Teknik Informatika Fakultas Teknologi Industri ITENAS.