TUGAS MAKALAH
MERANCANG DATA BASE
UNTUK CONTEN SERVER
BAB I 1
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.
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
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
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 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
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 /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
. Selain ini bisa juga ditambahkan manual dengan perintah mod_negotiation
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
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).
Table 2-1. ISAPI Filters
ISAPI Extension Executable Path Description
.asa C:\winnt\system32\ Active Server Page—server-side scripting extension inetsrv\asp.dll allows dynamic content delivery.
.asp C:\winnt\system32\ Active Server Page—server-side scripting extension inetsrv\asp.dll allows dynamic content delivery.
.cdx C:\winnt\system32\ Active Server Page—server-side scripting extension inetsrv\asp.dll allows dynamic content delivery.
.cer C:\winnt\system32\ Active Server Page—server-side scripting extension inetsrv\asp.dll allows dynamic content delivery.
.htw C:\winnt\system32\ Index Server extension inetsrv\ism.dll
.ida C:\winnt\system32\ Index Server extension inetsrv\idq.dll
.idq C:\winnt\system32\ Internet Data Queries, Index Server extension inetsrv\idq.dll
.idc C:\winnt\system32\ Internet Database Connector inetsrv\httpodbc.dll
.htx C:\winnt\system32\ Internet Database Connector (IDC)—uses ODBC APIs inetsrv\httpodbc.dll to communicate with database sources such as SQL Server.
.printer C:\winnt\system32\ Internet Printing msw3prt.dll
.shtm C:\winnt\system32\ Server-Side Includes—provides dynamic content inetsrv\ssinc.dll delivery to the Web.
.shtml C:\winnt\system32\ Server-Side Includes—provides dynamic content inetsrv\ssinc.dll delivery to the Web.
.stm C:\winnt\system32\ Server-Side Includes—provides dynamic content inetsrv\ssinc.dll delivery to the Web.
.htr C:\winnt\system32\ Web-based Administration—provides a means of inetsrv\ism.dll 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.
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.
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
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 Lokasi Default Direktori Virtual
IIS sample files c:\inetpub\iissamples \IISSamples
IIS documentation c:\winnt\help\iishelp \IISHelp
Data access c:\program files\common files\system\msadc \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 menunjukkan penerapan permission secara default pada direktori iissamples, “Everyone, with all rights”. Tentu saja bukan pilihan yang baik
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.
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.
BAB III
KOMPONEN-KOMPONEN PENDUKUNG APLIKASI WEB
Pada 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
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.
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, driver-
driver 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.
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 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 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
dapat dilihat beberapa ekstensi pada URL dan platform-platform yang biasanya
terkait.
Ekstensi Teknologi Platform Server
.pl Perl CGI script Generic; biasanya Web server di Unix
.asp Active Server Pages Microsoft IIS
.aspx ASP+ Microsoft .NET
.php PHP script Generic; biasanya diantarmukakan dengan Web server Apache
.cfm ColdFusion Generic; biasanya diantarmukakan dengan Microsoft IIS
.nsf Lotus Domino 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 file-
file JSP tersebut. Hal ini dikarenakan semua server aplikasi Java yang populer
menyesuaikan standar J2EE. Untuk itu perlu menggali lebih dalam pada petunjuk-
petunjuk 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 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.
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.
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 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.
Langganan:
Posting Komentar (Atom)
LAPORAN PRAKTEK KERJA LAPANGAN (PKL) PROGRAM KEAHLIAN FARMASI KLINIS DAN KOMUNITAS
LAPORAN PRAKTEK KERJA LAPANGAN (PKL) PROGRAM KEAHLIAN FARMASI KLINIS DAN KOMUNITAS SMK APOTEK QIRANI FARMA (Waktu Pelaksanaan: ...
-
L APORAN PRAKTIK KERJA LAPANGAN (PKL) PT DELAPAN JAYA PERKASA GARMEN Disusun sebagai laporan pelaksanaan Praktik Kerja Lapangan (P...
-
KATA PENGANTAR Puji Syukur Kami Panjatkan kepada Tuhan Yang Maha Esa atas berkat dan pertolonganNya sehingga penyusunan makalah menge...
-
Nalika jaman biyen, ana wong telu kang merguru ing padhepokan Argo Dimillah ing gunung Lawu. Kang lanang, jenenge Bayulan Giri, yen sing wad...
Tidak ada komentar:
Posting Komentar