13 April 2009

Membangun Sistem Keamanan Website

Demikian pentingnya sistem keamanan bagi server terutama jika server tersebut dihubungkan ke internet. Kejahatan di internet yang sedemikian meningkat dapat kita usahakan agar kemungkinannya menjadi sangat minim atau bahkan dicegah jika berniat “merusak” website kita.

“Ideal”nya yang dapat dilakukan adalah sbb:

A. Level Sistem Operasi dan Perangkat Keras.

Cakupan level akses ini menjangkau perangkat keras server, network, dan sistem operasi yang digunakan.

Penulis tidak akan menjelaskan secara detail tentang topik ini karena sangat luas. Anda bisa mencarinya sendiri di internet dan buku-buku yang khusus membahas tentang hal ini (Sistem Keamanan)

Untuk tingkat keamanan pada level ini diperlukan akses level administrator sistem (system administrator). Pembahasan mengenai ini sangat berkaitan erat dengan pengetahuan dan pengalaman anda dalam mengelola sistem operasi yang digunakan sehingga sangat membantu dalam hal aksi yang harus dilakukan.

Jika website anda dititipkan di suatu perusahaan jasa hosting, maka tanggung jawab untuk level ini adalah menjadi tanggung jawab dari admin sistem perusahaan jasa hosting tsb. Oleh karena itu, sebagai “developer” mambo anda wajib untuk mengetahui apakah hosting tempat website anda berada tersebut cukup terpercaya dan dapat diandalkan, terutama jika website anda memang anda nilai cukup berharga.

Kalau anda memiliki akses penuh sebagai “pemilik” dari server tersebut, dalam kata lain anda sendirilah yang menjadi “admin”nya maka sebagai tips singkat dan rangkuman dari saya mengenai topik ini adalah:

  • Backup full dan differential secara periodik dan otomatis.
  • Mengaktifkan firewall.
  • Mengaktifkan sistem loging yang baik dan efektif untuk keperluan audit dan monitoring.
  • Mengaktifkan “Intrusion Detection” atau akan lebih baik lagi jika menggunakan IPS.
  • Mengaktifkan Detektor “Malicious Code” seperti tripwire (linux) atau bikin sendiri.
  • Mengaktifkan detektor scan, SATAN, dll seperti Courtney, icmpinfo, klaxon atau bikin skrip sendiri.
  • Melakukan restriksi pada user, direktori dan file dengan akses paling terbatas (semua akses --rwx group sebaiknya dinonaktifkan dan akses untuk other sebaiknya tidak bisa melakukan write).
  • Jika anda menggunakan aplikasi server yang “bug” segera di ganti atau lakukan patching atau upgrade dengan versi yang lebih baru: (misalnya (linux) sendmail diganti dengan Qmail).
  • Tidak memperboleh kan user menggunakan program remote seperti telnet. Jika terpaksa, leih baik diganti menggunakan service yang lebih aman seperti ssh.
  • Menonaktifkan semua service yang tidak diperlukan.
    Mengaktifkan SSL jika memungkinkan.
  • Jika anda menggunakan webalizer untuk keperluan statistik web, tambahkan perintah berikut ini pada file webalizer.conf :
    • HideUser root
    • HideUser admin
    • HideUser administrator
    • HideUser webmaster
    • HideURL /admin*
      HideURL /ADMIN*
    • HideURL /Admin*
    • HideURL /cgi-*
    • Dstnya… dapat anda tambahkan sesuai dengan kebutuhan.

B. Level Akses Direktori

Proteksilah direktori yang anda penting dan bukan untuk konsumsi umum seperti direktori administrator
Silahkan baca juga artkel saya di:

C. Level Aplikasi

  • Selalu melakukan backup secara berkala (full dan differential).
  • Menghapus file-file install dan direktorinya.
  • Aktif di forum/milis tentang mambo dan melakukan patching jika diketahui ada bug.
  • Jika anda menggunakan aplikasi yang Open Source, usahakan agar tidak menggunakan variabel defaulnya. Misalnya jika menggunakan database penamaan dbase, tabel sebisa mungkin diganti.
  • Mengganti user administrator menjadi nama yang tidak menunjukkan account admin.
  • Jika menggunakan aplikasi CMS (Content Management System) yang Open Source:
    • Sebisa mungkin gantilah semua nilai ID pada tabel yang berkaitan dengan jenis user (priviledge) dan group aksesnya terutama untuk super administrator dan administrator.
    • Sebaiknya tidak menginstal yang masih versi beta termasuk komponen-komponen/modul-modulnya, kecuali anda yakin tidak ada bug yang berkaitan dengan keamanan atau anda sudah melakukan modifikasi.
    • Tidak mengaktifkan komponen/modul yang tidak diperlukan. Akan lebih baik lagi jika di uninstall dan didelete.
    • Kalau memungkinkan, mengaktifkan sistem verikasi email jika anda mengaktifkan sistem registrasi otomatis langsung.
    • Jika sistem registrasi tidak anda aktifkan sebaiknya komponen/modul ini di non-aktifkan atau bahkan dihapus.
    • Jika membuat suatu komponen, mambot ataupun modul, jangan lupa untuk menambahkan perintah yang membuat file tersebut tidka dapat diakases langsung (harus dipanggil melalui program intinya).
    • Tidak memberikan akses list user untuk keperluan umum kecuali website anda adalah website yang memberlakukan sistem registrasi cukup ketat.
    • Tambahkan perintah Disallow: /administrator/ di file robots.txt atau
      Disallow: /[nama_direktori]/, dimana [nama_direktori] adalah direktori yang tidak ingin dipublikasikan di mesin pencari. Proteksi sebaik mungki file ini karena sering digunakan “hacker jahat” sebagai salah satu bahan untuk mengetahui strutur direktori website.
    • Setelah selesai melakukan development, jangan lupa untuk melakukan restriksi (chmod) untuk semua file dan direktori dimulai dari root website anda. Untuk Linux/Unix, semua akses --rwx group sebaiknya dinonaktifkan dan akses untuk other sebaiknya tidak bisa melakukan write, kecuali direktori seperti cache yang memang diperlukan oleh server web atau direktori tempat upload file). Untuk server NT, retriksi group dan keamanan file pada property direktori root dan mengatifkan sistem audit.
    • Jika anda memfasilitasi komponen yang memperbolehkan upload file (seperti gallery, editor konten, dll), pastikan bahwa fasilitas tsb tidak dapat digunakan untuk mengupload file skrip seperti (php, cgi, pl, sh, dll). Dan kemudian sangat dianjurkan untuk menambahkan perintah:
      chmod("/somedir/somefile", 400);
      Di baris terakhir setelah proses upload file dilakukan.
    • Mengaktifkan sef dan “alias manager”.
    • Mengubah nama direktori administrator menjadi nama direktori yang tidak mencerminkan direktori admin. Nama direktori administrator dapat saja tetap anda pertahankan untuk membuat suatu “fake” atau “decoy” se-olah2 direktori tersebut adalah direktori admin. Dan untuk lebih meyakinkan, dapat anda proteksi juga direktori fake ini dengan .htaccess (lihat poin B)…. Sssttt… Mudah2an cuma dibaca ama hacker2 baik ya… hehehehe… :D
    • Pindahkan direktori administrator sedemikian hingga direktori tersebut sejajar dengan direktori website secara fisik (physical path). Jika menggunakan server “Apache”, gunakan “alias” didalam “konfigurasi server webnya.
    • Gantilah sistem default (MD5) untuk enkripsi password anda dengan enkripsi lain.

Weleh… weleh… gimana mau implementasinya ya? Banyak gitu listnya…
Sebetulnyaseh saya hanya merasa berkewajiban untuk menginformasikan artikel ini untuk kebaikan bersama, walaupun saya sendiri belum tentu melaksanakan semuanya. Minimal 70% sudah kita lakukan saja sepertinyaseh lumayanlah usaha terbaik kita.

Ternyata… Memang susah kalau mau jadi admin (hacker) ya? Mana tahaaaannnnn……. Lalu bagaimana kalau tetap bisa dirusak dan “perusak”nya gak ketahuan? Simpel aja… Bikin lagi aja, sekalian latihan membangun dan tetap senyum… Tidak perlu melakukan pembalasan, semoga Tuhan Yang Maha Adil saja yang membalas… J

Demikian tulisan ini semoga bermanfaat dan dapat terhindar dari bentuk kejahatan di dunia rimba raya… Kata bang napi juga… waspadalah… waspadalah…

Disadur dari: Pacific Internet (PInter) Indonesia

Tidak ada komentar:

Posting Komentar

Terimakasih atas komentar anda...