Mencari suatu kelemahan keamanan dan melakukan audit terhadap suatu website jauh lebih mudah daripada membangun sebuah sistem keamanan itu sendiri. Bagaimana tidak, ada begitu banyak di internet maupun buku-buku yang membahas aneka macam teknik hacking itu sendiri.
Belakangan ini, dunia IT underground semakin marak saja. Sering kita saksikan baik di media cetak, elektronik, dan dunia maya, begitu banyak berita yang memuat aksi-aksi penyerangan, baik dalam bentuk deface sampai dDos yang meminta banyak korban. Tidak tanggung-tanggung, bahkan web pemerintah pun, baik pusat sampai daerah juga sudah banyak yang jadi korbannya.
Setiap pengembang web, sebaiknya yang pertama kali harus dilakukan yaitu memperbaiki pengamanan terhadap web yang dibangunnya. Pengamanan harus diterapkan sejak awal karena penerapannya akan sangat sulit jika telah terjadi masalah di kemudian hari. Dalam pengamanan dikenal dengan beberapa tingkat dan tipe. Tingkat dan tipe yang diperlukan untuk aplikasi kita akan berbeda-beda bergantung bagaimana aplikasi itu bekerja, tipe dan nilai data yang disimpan, jumlah resiko yang biasa dihadapi, usaha, serta biaya yang dipakai untuk menghasilkan aplikasi yang aman. Misalnya, pengamanan yang dibutuhkan untuk web perorangan akan sangat berbeda dibanding untuk situs perusahaan atau situs e-commerce
.
Setelah sedikit mengetahui hal-hal di atas, maka sekarang kita membahas tentang strategi dasar pengamanan web. Pada dasarnya, strategi pengamanan web yang dapat kita lakukan di antaranya sebagai berikut :
1. Pemilihan Sistem Operasi (OS), Setting Server, dan Desain Aplikasi
Salah satu hal penting yang harus dicermati adalah pemilihan sistem operasi (OS). Seberapa besar pengamanan yang dibutuhkan sangat berhubungan dengan sistem operasi. Meskipun sistem operasi semisal Windows 9x bisa dijadikan sebagai server web dengan keterbatasannya melalui Personal Web Service (PWS), sistem ini tidak cukup apabila pengamanan merupakan faktor penting. Salah satu kelemahannya Windows 9x tidak dapat menyediakan NTFS yang sangat penting untuk kontrol akses. Setting konfigurasi pada server yang tidak memadai dan hanya mengandalkan default merupakan faktor utama penyebab server yang dibangun tidak terjamin keamanannya. Penentuan kebijakan dalam menerapkan sistem pengamanan ini merupakan kunci utama yang harus diperhatikan untuk diterapkan pertama kali. Ironisnya justru hal ini merupakan hal yang paling sering diabaikan.
2. Instalasi Patch
Idealnya, software yang kita pakai mestinya sudah sempurna sejak awal. Namun kenyataannya tidak pernah ada software yang benar-benar 100% bugs free. Ada saja bagian program yang rawan keamanan. Pada saat kerawanan tersebut ditemukan biasanya perusahaan pembuat software akan mengeluarkan aplikasi baru untuk memperbaiki kesalahan software terdahulu. Aplikasi inilah yang dikenal dengan nama patch. Meskipun penggunaan istilah ini sekarang juga digunakan bagi para cracker untuk membajak sebuah software resmi. Penerapan patch ini harus dilakukan pada sistem operasi, server web, add on, maupun file-file komponen lain yang terintegrasi dengan web kita. Kemalasan, ketidaktahuan, serta kesibukan admin server membuat mereka tidak konsisten menerapkan patch ini. Sangat ironis jika dibandingkan dengan kemudahan dalam instalasi patch tersebut.
3. Kontrol Akses
Penentuan siapa yang dapat mengakses server harus dilakukan dengan menggunakan kontrol akses, baik dengan autentikasi maupun otorisasi. Autentikasi adalah proses validasi identitas yang dilakukan dengan membandingkan data user yang dikirim dengan data yang terdapat dalam database. Setelah melakukan autentikasi, langkah selanjutnya yaitu melakukan otorisasi yang merupakan proses untuk menentukan apakah pengguna memiliki ijin untuk melakukan tindakan yang diminta. Ada dua tipe dasar autentikasi, yaitu berbasiskan akses direktori dan autentikasi berbasiskan form. Khusus untuk Windows ada tipe autentikasi lain yaitu autentikasi passport. Sedangkan otorisasi terbagi dua bentuk, yaitu ACL (Access Control Listi) dan hostname.
4. Audit dan Log File
Audit diperlukan untuk menunjang cara-cara pengamanan yang telah dijelaskan di atas. Proses monitoring aktivitas tertentu seperti usaha login (berhasil atau gagal), dan kemudian menuliskannya ke dalam log ini merupakan proses audit. Sebagai contoh, kita dapat menganalisa dengan mengaudit kegagalan usaha login dalam log, memungkinkan kita menentukan saat seseorang berusaha menyerang server. Untuk mengaktifkan sistem audit dan log sangat bergantung pada sistem operasi, aplikasi server yang dijalankan, database yang digunakan, dll. Pada sistem Posix (*nix: unix dan variannya (linux, FreeBSD)), log defaultnya berada di /var/log yang pengaktifannya bergantung pada aplikasi atau proses apa yang ingin diaudit. Log server web yang kita jalankan dikonfigurasikan di file konfigurasi server apache (defaultnya httpd.conf)
5. Menerapkan Kriptografi
Selanjutnya, juga perlu diketahui bagaimana proses pengiriman lewat protokol http, baik permintaan layanan maupun respon berupa teks biasa (plaintext). Kemungkinan attacker untuk melakukan tindakan kriminal dengan mencuri data sensitif seperti password, e-mail atau nomor kartu kredit sangat besar kemungkinannya. Untuk menjaga informasi semacam ini tetap aman, diperlukan enkripsi yang membuat plaintext menjadi ciphertext (teks yang tidak terbaca akibat proses enkripsi). Proses kebalikan dari enkripsi yaitu deskripsi. Ilmu yang mempelajari tentang keamanan informasi inilah yang disebut kriptografi.
Pada level sistem operasi, penerapan yang dilakukan untuk mengamankan server web adalah dengan menggunakan SSL. Secara default komunikasi SSL terjadi pada port 443 dengan prefiks https:// untuk url yang menggunakan SSL. Untuk mengaktifkan SSL pada server diperlukan sertifikat server. Pembuatan server ini dapat diajukan kepada pemegang sertifikat pihak ketiga yang sudah terkenal seperti Verisign atau bahkan bisa juga dengan membuat sendiri. Secara default konfigurasi SSL pada apache terletak pada direktori httpd di mana server apache diinstall.
Tips sederhana dalam menjaga keamanan situs web adalah
- Security Mindset
Kita mestinya setuju bahwa hal terpenting dari semua kegiatan kita di internet berputar di sekitar isu keamanan, agar tidak kebobolan. Karena semua kerja keras anda bisa sia2 jika suatu saat tiba2 situs anda lenyap akibat ulah iseng para hacker. Para pakar pun sudah mendeklarasikan bahwa tidak ada hal yang paling aman di dunia internet. Jadi, jangan anggap remeh soal keamanan website anda.
- Selalu update ke versi terbaru
Bagi pengguna content management system (CMS) terbuka (open source) seperti WordPress, Joomla dan sebagainya, sangat dianjurkan agar rajin meng-update ke versi terbaru. Pengguna WordPress, pastikan anda sudah mengupdate ke WordPress 2.8.2. Sedangkan Joomla versi terakhir adalah 1.5.14. Meskipun tidak menjadi menu harian, kalau sudah memiliki situs sendiri anda sebaiknya rajin mengunjungi situs-situs yang membahas tentang keamanan aplikasi web seperti www.milw0rm.com, www.securityfocus.com atau www.packetstormsecurity.org untuk mendapatkan informasi tentang bug terbaru.
- Kerja sama dengan webmaster profesional
Kalau anda sama sekali tidak ingin ambil resiko bekerja sendirian, anda bisa bekerja sama dengan seorang webmaster profesional atau kalau situs anda sudah menghasilkan duit, anda bisa menyewa seorang profesional dalam bidang keamanan website.
- Pelajari Cara Kerja Hacker
Luangkan waktu untuk mencari tahu beberapa metode yang biasa digunakan para hacker untuk menyerang suatu website seperti remote file inclusion (RFI), local file inclusion (LFI), SQL injection dan cross site scripting (XSS).