You are on page 1of 22

TUGAS MAKALAH EC5010 Keamanan Sistem Informasi

Analisis Keamanan Web Server

Oleh : Izbiq Muhammad (132 00 091)

DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI INSTITUT TEKNOLOGI BANDUNG 2005

DAFTAR ISI

Halaman DAFTAR ISI BAB I. PENDAHULUAN BAB II.WEB SERVER II.1 APACHE II.1.1 Host Virtual II.1.2 Server Side Includes II.1.3 Common Gateway Interface II.2 MICROSOFT INTERNET INFORMATION SYSTEM (IIS) II.2.1 Aplikasi-Aplikasi ISAPI II.2.2 Direktori-direktori Virtual II.2.3 File-File Sample II.2.4 Host Virtual BAB III. KOMPONEN-KOMPONEN PENDUKUNG APLIKASI WEB III.1 WEB SERVER FRONT-END III.2 LINGKUNGAN EKSEKUSI APLIKASI WEB III.3 DATABASE SERVER III.4 MENGHUBUNGKAN MASING-MASING KOMPONEN i 1 2 2 2 4 5 6 6 9 9 10 12 13 13 14 14

III.5 IDENTIFIKASI KOMPONEN APLIKASI WEB MELALUI URL 15 III.6 TINDAKAN-TINDAKAN ANTISIPASI BAB IV. KESIMPULAN DAFTAR PUSTAKA 18 19 20

Analisis Keamanan Web Server

BAB I PENDAHULUAN

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

EC5010 Keamanan Sistem Informasi

Analisis Keamanan Web Server

BAB II WEB 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.

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

EC5010 Keamanan Sistem Informasi

Analisis Keamanan Web Server

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 User-Agent: Mozilla/4.0 (compatible;MSIE 6.0; Windows NT 5.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

EC5010 Keamanan Sistem Informasi

Analisis Keamanan Web Server

eth0:1

UP BROADCAST RUNNING MTU:1500 Metric:1 Interrupt:3 Base address:0x300 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 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

eth0:2

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 masing-masing 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. II.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

EC5010 Keamanan Sistem Informasi

Analisis Keamanan Web Server

pada banyak server aplikasi Web dewasa ini, namun dulu pernah menjadi sumber dari sekian banyak bahaya keamanan. II.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 /cgibin 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

EC5010 Keamanan Sistem Informasi

Analisis Keamanan Web Server

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

II.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. II.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).

EC5010 Keamanan Sistem Informasi

Analisis Keamanan Web Server

Table 2-1. ISAPI Filters


ISAPI Extension Executable Path .asa C:\winnt\system32\ inetsrv\asp.dll .asp C:\winnt\system32\ inetsrv\asp.dll .cdx C:\winnt\system32\ inetsrv\asp.dll .cer C:\winnt\system32\ inetsrv\asp.dll .htw C:\winnt\system32\ inetsrv\ism.dll .ida C:\winnt\system32\ inetsrv\idq.dll .idq C:\winnt\system32\ inetsrv\idq.dll .idc C:\winnt\system32\ inetsrv\httpodbc.dll .htx C:\winnt\system32\ inetsrv\httpodbc.dll .printer .shtm .shtml .stm .htr C:\winnt\system32\ msw3prt.dll C:\winnt\system32\ inetsrv\ssinc.dll C:\winnt\system32\ inetsrv\ssinc.dll C:\winnt\system32\ inetsrv\ssinc.dll C:\winnt\system32\ inetsrv\ism.dll Description Active Server Pageserver-side scripting extension allows dynamic content delivery. Active Server Pageserver-side scripting extension allows dynamic content delivery. Active Server Pageserver-side scripting extension allows dynamic content delivery. Active Server Pageserver-side scripting extension allows dynamic content delivery. Index Server extension Index Server extension Internet Data Queries, Index Server extension Internet Database Connector Internet Database Connector (IDC)uses ODBC APIs to communicate with database sources such as SQL Server. Internet Printing Server-Side Includesprovides dynamic content delivery to the Web. Server-Side Includesprovides dynamic content delivery to the Web. Server-Side Includesprovides dynamic content delivery to the Web. Web-based Administrationprovides a means of performing administrative functions via the Web, such as changing passwords.

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.

EC5010 Keamanan Sistem Informasi

Analisis Keamanan Web Server

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

EC5010 Keamanan Sistem Informasi

Analisis Keamanan Web Server

II.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. II.2.3 File-File Sample Beberapa file disediakan oleh IIS untuk membantu kita menulis kode program. Tetapi file-file ini banyak memiliki lubang keamanan, karena mereka tersedia secara default dan terorirentasi pada developer. Beberapa file yang diinstal default:
Keterangan IIS sample files IIS documentation Data access Lokasi Default c:\inetpub\iissamples c:\winnt\help\iishelp c:\program files\common files\system\msadc Direktori Virtual \IISSamples \IISHelp \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 kegunaannya yang lengkap. Gambar berikut ini akan

EC5010 Keamanan Sistem Informasi

Analisis Keamanan Web Server

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. II.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 basis-nama Apache.

EC5010 Keamanan Sistem Informasi

10

Analisis Keamanan Web Server

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.

EC5010 Keamanan Sistem Informasi

11

Analisis Keamanan Web Server

BAB III KOMPONEN-KOMPONEN PENDUKUNG APLIKASI WEB

Pada bab ini pembahasan akan difokuskan pada fungsi komponenkomponen 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

EC5010 Keamanan Sistem Informasi

12

Analisis Keamanan Web Server

III.1 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 modul-modul eksternal. Beberapa Web server font-end yang populer antara lain adalah Apache, Microsoft IIS, Netscape, Zeus Web sever. III.2 LINGKUNGAN (ENVIRONMENT) EKSEKUSI APLIKASI WEB Lingkungan eksekusi aplikasi Web merupakan platform untuk membuat aplikasi-aplikasi 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.

EC5010 Keamanan Sistem Informasi

13

Analisis Keamanan Web Server

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. III.3 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, driverdriver database, atau komponen-komponen middle-layer. Semua transaksi database dikerjakan melalui SQL. III.4 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

EC5010 Keamanan Sistem Informasi

14

Analisis Keamanan Web Server

III.5 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 polapola pada URL, sehingga dapat membantunya mengidentifikasi teknologiteknologi 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 front-end 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

EC5010 Keamanan Sistem Informasi

15

Analisis Keamanan Web Server

dapat dilihat beberapa ekstensi pada URL dan platform-platform yang biasanya terkait.
Ekstensi .pl .asp .aspx .php .cfm .nsf Teknologi Perl CGI script Active Server Pages ASP+ PHP script ColdFusion Lotus Domino Platform Server Generic; biasanya Web server di Unix Microsoft IIS Microsoft .NET Generic; biasanya diantarmukakan dengan Web server Apache Generic; biasanya diantarmukakan dengan Microsoft IIS Lotus Domino server

Karena sifat Web server yang fleksibel, sebenarnya dapat dilakukan perubahan konfigurasi untuk mengaburkan teknologi yang dipakai. Pada tipe file seperti Java Server Pages (.jsp) tidak ada petunjuk sedikitpun informasi tentang Web server front-end dan aplikasi Java yang digunakan untuk mengeksekusi filefile JSP tersebut. Hal ini dikarenakan semua server aplikasi Java yang populer menyesuaikan standar J2EE. Untuk itu perlu menggali lebih dalam pada petunjukpetunjuk URL, pada header-header HTTP-nya, ataupun kadang kala pada isi file HTML-nya. Untuk lebih memahami masalah ini, lebih mudah dengan beberapa contoh berikut ini:
URL: http://www1.example.com/homepage.nsf?Open

Ekstensi .nsf mengindikasikan bahwa server ini adalah server Lotus Domino. Dengan melihat pada header HTTP-nya dugaan itu terbukti.
# nc www1.example.com 80 GET / HTTP/1.0 HTTP/1.1 302 Found Server: Lotus-Domino/5.0.5 Date: Mon, 04 Feb 2001 17:52:59 GMT Location: homepage.nsf?Open Connection: close Content-Type: text/html Content-Length: 305

URL: http://www2.example.com/software/buy.jhtml;jsessionid=ZYQFN5W HKORD5QFIAE0SFF GAVAAUIIV0

Header HTTP dari situs ini mengidentifikasikan server Microsoft IIS 4.0. Namun, IIS 4.0 tidak secara native mensupport .jhtml yang merupakan halaman Java

EC5010 Keamanan Sistem Informasi

16

Analisis Keamanan Web 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: http://www3.example.com/cgi-bin/ncommerce3/ExecMacro/webstore/ 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.
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.

EC5010 Keamanan Sistem Informasi

17

Analisis Keamanan Web Server

III.6 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.

EC5010 Keamanan Sistem Informasi

18

Analisis Keamanan Web Server

BAB IV 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 fungsifungsi 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.

EC5010 Keamanan Sistem Informasi

19

Analisis Keamanan Web Server

DAFTAR PUSTAKA

[1]

Stuart McClure, Saumil Shah, and Shreeraj Shah, Web Hacking: Attacks and Defense, Addison Wesley, U.S., 2002.

EC5010 Keamanan Sistem Informasi

20

You might also like