Menguji keamanan website
Terus bagaimana caranya agar website menjadi "aman?". Jawabnya ya tentu saja kita harus menguji dan mencari di mana letak celah keamanan website yang mungkin bisa dilewati bahkan oleh seorang script kiddies.
Filosofi pengujiannya adalah bahwa kode-kode html dirender / diterjemahkan sedemikian rupa oleh browser dan hasil terjemahannya ditampilkan di komputer. Meskipun hampir semua jenis browser menerjemahkan dengan kelakuan yang seragam terhadap kode-kode html yang dibacanya tapi tidak 100% sama, kadang tampilan sebuah website sedikit berbeda ketika ditampilkan pada browser yang lain. "Kelakuan yang aneh" dari browser dalam menerjemahkan kode-kode html inilah yang dimanfaatkan orang untuk "mengambil alih" sebuah website.
Untuk website yang bersifat statis atau tidak memanfaatkan unsur database dalam tampilannya, maka jika terjadi "pengambilalihan" webite kemungkinan kesalahannya adalah terletak pada lemahnya pengadmnistrasian user dalam sistem jaringan atau data username dan password "dicuri" dengan menggunakan program lain, misalnya program Keylogger (program yang memungkinkan untuk merekam setiap ketukan keyboard). atau "keteledoran" si pemilik password tidak melakukan Log Out atau Sign Out atau Keluar. Sering saya dengar bahwa seorang pemilik akun Friendster atau mail yahoo atau y!m tidak bisa login lagi. Hal ini dimungkinkan terjadi, karena si empunya layanan website akan memberikan tanda jejak pada komputer yang sedang digunakan untuk mengetahui apakah si pemiliki akun sedangkan Login atau tidak. Tanda jejak ini akan tetap ada selama si pemilik akun belum melakukan Log Out, Sign Out atau Keluar. Meskipun aplikasi browser telah dimatikan tanda jejak tersebut tetap ada selama komputer belum dimatikan secara fisik (tombol power dimatikan). Bahkan ada yang mengatur agar tanda jejak tersebut tetap ada walaupun komputer telah dimatikan secara fisik. Tanda jejak baru akan terhapus setelah si pemiliki akun telah melakukan Log Out, Sign Out atau Keluar. Perilaku teledor ini sering dilakukan oleh para pemula / newbie. Mereka berpikir bahwa dengan menutup aplikasi browser maka semua data username dan password akan terhapus juga.
Untuk website yang mengandalkan database dalam menampilkan informasinya (istilah kerennya menggunakan Content Management System / CMS) maka ada beberapa hal yang harus diteliti :
- Data yang boleh dimasukkan melalui Form, baik itu typenya, ukuran panjangnya dan cara penulisan variabel dalam kodingnya. Jika data yang dimasukkan dalam form tidak dibatasi / difilter maka form ini memberikan celah / lubang yang besar untuk meletakkan kode eksplotasi atau kode pengambilalihan, salah satu cara yang memanfaatkan celah ini adalah SQL Injection. SQL Injection akan menuliskan beberapa inputan data yang jika diproses akan menghasilkan ARGUMENT DATABASE yang dibenarkan. Dengan berbekal ARGUMENT DATABASE yang dibenarkan seseorang bisa memperoleh atau login sebagai administrator database.
- Jenis-jenis kode html yang boleh dituliskan. Jika semua kode html bisa dan boleh dimasukkan maka ini akan menciptakan celah keamanan berikutnya, karena semua kode html yang diijinkan (termasuk kode scripting client-side : mis. javascript) akan dirender oleh browser. Salah satu cara yang memanfaatkan celah ini adalah XSS attacking. XSS attack akan menuliskan sejumlah kode CSS yang jika dirender oleh browser akan menjalankan kode scripting client-side. Kode scripting ini akan mengirimkan tanda jejak yang digunakan ketika kita login sebagai administrator ke sebuah halaman pemroses data ( scripting server-side : mis. php). Selanjutnya di halaman pemroses data akan dihasilkan username dan password yang bisa digunakan untuk login. Salah satu contoh pemanfaatan celah ini adalah "Mendapatkan Username dan password akun Friendster orang lain" dengan menggunakan kode CSS yang dibenarkan.
- Otomatisasi pengisian data form. Form yang bisa diisi langsung secara otomatis oleh sebuah program tanpa campur tangan manusia maka form ini bisa diserang oleh SPAMBOT. Spambot akan mengisikan data yang sejenis berkali-kali dalam waktu yang singkat, karena form yang dibuat memungkinkan untuk diisi dan disubmit secara otomatis. Salah satu contoh penyerangan oleh SPAMBOT ini adalah pengisian data sampah di halaman buku tamu website yang menggunakan auracms versi 1 ke bawah. Silahkan dicek dengan mengetikan keywords inurl:/?pilih=gb di Google.
Untuk menangani hal ini bisa digunakan program yang berfungsi untuk menghasilkan variabel random dalam form tsb. sehingga dibutuhkan campur tangan manusia (harus diketikkan secara manual) untuk memasukkan variabel random tsb. Teknologi penghasil variabel random tsb dikenal dengan CAPTCHA


|