Troubleshooting Hacking Website

Masalah

Website saya dihack/dideface orang (tampilannya diganti, file-filenya dihapus/diganti, atau diarahkan ke alamat website lain). Bagaimana ini? Server hosting tidak aman? Server hosting dihack?

Solusi

Memang aksi hacking (terutama deface) website cukup popular akhir-akhir ini. Kemungkinan website Anda akan dicoba dihack/dideface lebih besar jika website Anda popular atau menggunakan aplikasi-aplikasi terkenal yang salah satu versinya mungkin memiliki lubang keamanan, seperti Mambo/Joomla, PHPBB, dll.

Dihacknya website Anda belum tentu berarti secara keseluruhan server hosting tidak aman. Jika memang terdapat kelemahan pada server hosting, maka biasanya ini akan kami beritakan kepada klien dan kami tutup/update sesegera mungkin.

Bisa saja (dan biasanya) hanya account atau website Anda saja yang dihack/terkompromikan. Karena di server hosting sebuah account bebas menjalankan skrip apa saja, maka jika terdapat kelemahan keamanan pada skrip tersebut, bisa saja pihak ketiga memperoleh akses melaluinya.

Berikut ini beberapa langkah yang dapat Anda tempuh untuk mengatasi masalah ini:

Dari Sisi Aplikasi

  • Pastikan Anda menggunakan versi terbaru dari aplikasi web yang Anda pakai. Kunjungi website aplikasi yang Anda pakai, misalnya untuk PHPBB adalah http://www.phpbb.com , untuk Joomla adalah http://www.joomla.org . Kadang sebuah aplikasi memiliki fitur upgrade online, jika ya dapat Anda gunakan fasilitas tersebut. Jika tidak, lakukan upgrade manual sesuai instruksi yang diberikan.
  • Coba cek apakah masih ada sisa-sisa file dari penyusup yang ditaruh di website Anda. Biasanya penyusup mengupload file seperti CGI/PHP Shell. Coba cek juga apakah si penyusup membuat account administrator atau moderator pada aplikasi website Anda.
  • Jika Anda membuat program sendiri, periksa kembali keamanan program Anda. Sebaiknya banyak membaca buku-buku tentang pemrograman yang aman (secure programming), banyak membaca artikel soal keamanan pemrograman web, dan memperbanyak pengalaman seputar pemrograman.
  • PHP: php.ini, error_reporting

Dari Sisi Setting Server Hosting

  • Sebaiknya mengganti password FTP atau shell/SSH Anda, karena siapa tahu telah diketahui/dipakai orang.

Catatan: Untuk mengetahui apakah ada yang login ke SSH, caranya adalah dengan mengetikkan perintah ‘last’ dari shell Linux. Jika ada IP yang tidak dikenal (bukan dari IP Anda biasa login) maka kemungkinan ada orang lain yang login menggunakan account Anda.

  • Cobalah menjalankan skrip sebagai cgi-USER dan bukan USER, sehingga jika aplikasi website/skrip Anda diexploit, si penyusup tidak bisa begitu saja mengupload file ke document root Anda.
  • Jika Anda menggunakan PHP, pastikan setting php.ini register_globals dan allow_url_fopen off, kecuali Anda benar-benar membutuhkannya.
  • Jika Anda sama sekali tidak menggunakan skrip/aplikasi di website Anda, Anda dapat mematikan fitur skrip, untuk keamanan. Dari control panel, pilih Subdomain Manager lalu Prefs pada subdomain yang diinginkan, lalu pada pilihan “Situs ini dapat menjalankan skrip (CGI/PHP/dsb)”, pilih (x) Tidak/disable.
  • Anda juga dapat mencoba menghidupkan setting berikut ini di control panel: “Gunakan RBL” [x] Aktif. Dengan setting ini, website Anda akan dilindungi dari IP-IP yang mencurigakan, tapi ada kemungkinan sebagian pengunjung Anda tidak dapat mengakses website Anda. Anda bisa mencoba-cobanya terlebih dahulu.
  • Cobalah menghidupkan setting Log output stderr skrip ke file di Subdomain preferences control panel. Ini membuat pesan error ke stderr yang dicetak oleh skrip tidak ditampilkan ke browser melainkan dicetak ke file log (di sites/NAMASITE/syslog/script_error.YYYY-MM-DD.log). Pesan kesalahan skrip bisa saja mengandung informasi sensitif seperti password, path, dsb sehingga ada baiknya tidak usah bisa dilihat oleh semua pengunjung website.
  • Karena server hosting yang menggunakan Spanel secara default memungkinkan mengakses phpMyAdmin dan phpPgAdmin dari setiap website (via URL http://NAMAWEBSITE/webapps/phpMyAdmin atau http://NAMAWEBSITE/webapps/phpPgAdmin), maka pastikan username dan/atau dbname Anda tidak diketahui orang (mis: lewat pesan error PHP atau cara lain). Dan pastikan password database cukup kuat (mis: minimal 6-8 huruf, bukan kata/huruf yang mudah ditebak seperti “123” atau sama dengan username/dbname). Meskipun secara default koneksi remote MySQL tidak diperbolehkan saat ini dari server hosting, namun lewat aplikasi phpMyAdmin/phpPgAdmin, database Anda masih dapat diakses secara remote.

Jika Anda ingin agar phpMyAdmin dan phpPgAdmin tidak tersedia, matikan lewat control panel (menu Preferences).

Dari Sisi Database

  • Jika ada file atau database yang dihapus, upload kembali dari backup Anda atau dari backup server. Di server hosting disimpan backup harian dan histori backup selama 3 bulan. Dapat Anda akses dan ambil dari File Manager control panel, di volume Backup atau Backup History (lalu gunakan fasilitas copy paste clipboard untuk mengkopinya kembali ke website Anda, yaitu volume Data). Sebaiknya Anda memelihara backup juga secara teratur. Jika Anda mengalami kesulitan, Anda dapat meminta staf technical support kami untuk merestorekan dari backup server.
  • XXX SQL injection.

Jika masih ada masalah, silakan hubungi staf technical support kami.

Jabbar has written 29 articles