User talk:Desiherlina

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.

Desiherlina, you are invited on a Wikipedia Adventure!
 The Adventure

Speedy deletion nomination of User:Desiherlina/sandbox


Hello, and welcome to Wikipedia. A tag has been placed on User:Desiherlina/sandbox requesting that it be speedily deleted from Wikipedia. This has been done under section U5 of the criteria for speedy deletion, because the page appears to consist of writings, information, discussions, or activities not closely related to Wikipedia's goals. Please note that Wikipedia is not a free web hosting service. Under the criteria for speedy deletion, such pages may be deleted at any time.

If you think this page should not be deleted for this reason, you may contest the nomination by visiting the page and clicking the button labelled "Contest this speedy deletion". This will give you the opportunity to explain why you believe the page should not be deleted. However, be aware that once a page is tagged for speedy deletion, it may be deleted without delay. Please do not remove the speedy deletion tag from the page yourself, but do not hesitate to add information in line with Wikipedia's policies and guidelines. If the page is deleted, and you wish to retrieve the deleted material for future reference or improvement, then please contact the, or if you have already done so, you can place a request here. Veracious ^(•‿•)^ 05:59, 7 June 2023 (UTC)