Tuesday, December 25, 2012

Keamanan, Faktor Penting yang Sering Terlupakan


Keamanan. Ya, topik inilah yang saya angkat sore ini. Kenapa tiba-tiba bicara tentang keamanan? Ini bermula dari kejadian dimana salah satu situs yang saya kelola telah di deface atau dirubah tampilannya oleh ulah orang yang tidak bertanggung jawab. Selain tampilan situs yang dirubah, akses akun administrator pun diambil alih oleh mereka. Alhasil, situs saya pun bobol dan tidak dapat saya apa-apain lagi -_-. Lenyap sudah. huuhuuu. Kalian bisa melihat tampilan website saya yang telah dideface dibawah ini.


Tapi untungnya, para cracker ini hanya menghack itu saja. Tidak sampai ke database ataupun ke file-file websitenya. Sehingga saya pun cukup mengupload ulang backup-an databasenya, dan walaaa! Website pun kembali seperti sedia kala. Tapi menurut saya ini hanya faktor keberuntungan semata, atau memang karena mereka kasian kepada saya. hehe Karna apabila mereka bisa menghack sampai password tempat saya menaruh hostingan website tersebut, maka tamatlah riwayat saya.

Saya tidak marah terhadap orang-orang yang telah menghack situs saya tersebut. Justru saya merasa bahwa mereka adalah orang-orang baik yang mencoba memberi tahu bahwa memang website saya tersebut lemah sisi keamanannya sehingga saya dapat memperbaiki dan lebih meningkatkan kualitasnya lagi.

Disini saya mengakui hal tersebut bisa terjadi memang karena kecerobohan saya semata. Saat saya membangun website tersebut, saya benar-benar mengabaikan faktor keamanan. Mulai dari penggunaan password yang kurang aman, hak akses user yang semrawut, sampai tidak adanya satupun modul peningkat keamanan yang saya install. Saya hanya memikirkan tampilan, konten, tampilan, konten, itu ituu saja tanpa sedikitpun pernah terfikir akan bahayanya ancaman dari luar sana. Ini sungguh mengerikan sekali. Dan lebih mengerikannya lagi, sebelumnya saya adalah orang yang memang 'tidak' mau tau akan hal ini.

Ketika saya pertama kali melihat situs saya berhasil dibobol oleh seseorang, pertanyaan yang pertama muncul di benak saya adalah, 'Bagaimana caranya mereka bisa menghack situs saya?'. Setelah searching-searching ke google saya menemukan beberapa jenis serangan yang dilakukan oleh para cracker untuk membobol sebuah situs. Ini diantaranya :

1) Pembajakan Password FTP


Di pertengahan 2009, maraknya satu bentuk pembajakan password FTP yang disebut juga serangan “gumblar” atau “martuz” , mempatenkan model pencurian ini menjadi salah satu cara yang paling sering digunakan untuk melakukan hacking. Cara kerja gumblar atau martuz adalah memodifikasi hasil pencarian Google sehingga setiap klik pada link yang tampil di hasil pencarian akan diredirectkan ke situs penyedia badware. Badware yang terdownload akan secara otomatis menyebarkan gumblar atau martuz ke PC korban. Untuk kemudian mencari password login FTP di PC korban dan mengirimkannya ke sebuah komputer remote. Komputer remote tersebutlah yang bertugas untuk melakukan login FTP ke website korban dan memodifikasi halamannya, termasuk menginstal kopian baru dari gumblar atau martuz sehingga bisa menggandakan sendiri. Itulah sebabnya menghapus program ini tidaklah cukup untuk membersihkan situs anda.

Serangan ini mengambil keuntungan dari sebuah fakta bahwa ada banyak PC yang miskin perlindungan di dunia. Dan personal komputer tersebut nahasnya adalah milik webmaster yang informasi login websitenya disimpan di personal komputer mereka. Karena itulah, lengkapi personal komputer anda dengan perlindungan antivirus yang memadai untuk pencegahan infeksi gumblar atau martuz di situs anda. Dan jangan sekali-kali membookmark informasi login anda.

2) Serangan Remote File Inclusion (RFI)

Sebelum kemunculan gumblar atau martuz, serangan RFI adalah satu bentuk ancaman terbesar. Prinsip kerja serangan RFI adalah menipu sebuah website yang telah berjalan untuk mengcopy kode dari website eksternal. Kode yang dicopy menyusup ke dalam script yang dieksekusi, dan menjadi bagian di dalamnya. Sehingga, setiap script tersebut dieksekusi kembali, sebaris kode tersebut juga ikut dieksekusi. Sebaris kode tersebut fungsinya adalah untuk mendownload badware ke komputer pengakses. Adapun indikasi serangan RFI adalah di akses log website anda akan tampil koding seperti ini:


Perhatikan bahwa sebaris koding di atas terkandung link eksternal ke situs lain. Link tersebut mengarah ke remote server yang menyimpan badware di dalamnya. Tujuannya adalah membuat pengunjung situs anda yang mengeksekusi sebaris koding tersebut diarahkan ke server remote untuk mendownload badware di dalamnya.

Satu alasan mengapa banyak sekali website yang rentan terhadap RFI adalah aplikasi CMS semacam Joomla, WordPress, dan lain sebagainya, seringkali sangat kompleks berisi ribuan baris kode. Beberapa baris seringkali adalah versi lama yang masih rentan terhadap serangan RFI. Ditulis sebelum ancaman RFI dikenal luas sehingga koding tidak diprogram agar kebal dari serangan RFI. Nahasnya aplikasi ini kemudian dipakai oleh milyaran website. Sehingga apabila satu saja vulnerability terhadap RFI diketahui, membuat milyaran website menjadi sasaran empuk disusupi RFI. Itulah sebabnya kita perlu mengupdate aplikasi web kita ke versi yang terbaru, yang tentunya lebih kebal terhadap RFI.

3) Serangan Local File Inclusion (LFI)

Serangan LFI hampir sama seperti RFI, bedanya mereka mencoba untuk menipu sebuah halaman web agar menampilkan konten dari file sistem server yang penting, yang seharusnya restricted dan tidak boleh diakses. Indikasi serangan LFI adalah di akses log website anda akan tampil koding seperti ini:


Perhatikan sebaris koding susupan LFI, terkandung path ke sebuah file di server anda yang ingin penyerang lihat pada halaman tampilan. Koding tersebut akan membuat sistem menampilkan konten dari file password. Walaupun password ditampilkan dalam bentuk enkripsi, tetapi sekali penyerang mendapatkannya, dengan mudah mereka bisa mendekripsinya.

Cara menanggulangi serangan LFI adalah dengan melatih kemampuan koding kita dan memperdalam pengetahuan tentang pembatasan .htaccess

4) Serangan Injeksi SQL

Pada dasarnya serangan ini sama dengan RFI dan LFI, bedanya obyek yang diserang adalah halaman web yang menggunakan Structured Query Language (SQL) untuk melakukan query dan memanipulasi database, semisal MySQL. Cara kerjanya adalah dengan menanamkan komando SQL di sebaris koding untuk menipu sistem agar membocorkan informasi rahasia. Berikut salah satu contoh dari serangan injeksi SQL yang nantinya akan muncul pada akses log website anda:


Target yang dituju bukanlah komando PHP include() seperti halnya LFI dan RFI. tetapi, targetnya adalah melakukan komando query SQL. Seperti contoh sederhana di atas, jika query basic seharusnya mengambil dan menampilkan beberapa data user untuk satu user saja, injeksi bagian baru dari string SQL “OR 1=1″ mengakibatkan sistem yang mengeksekusi kode ini akan menampilkan data untuk semua user. Hal ini karena logika biner “1=1″ selalu bernilai true, jadi setiap record di database menjadi selalu cocok, dan membuat halaman tampilan akan menampilkan apapun karena selalu bernilai true.

Kembali lagi, pengertian script yang mendalam sangatlah diperlukan untuk menanggulangi serangan ini.

5) Password Attack


Di samping gumblar, ada cara lain bagi penyerang untuk mencuri password situs anda. Yaitu dengan berulang-ulang mencoba untuk login dengan kombinasi user ID dan password yang berbeda, berharap untuk menebak manakah yang benar. “menebak” di sini adalah melalui serangan otomatis dengan memasukkan berbagai susunan huruf dan angka dalam beberapa detik. Inilah sebabnya mengapa sangatlah penting bagi kita untuk menggunakan password yang susah di crack. Yaitu password yang sangat panjang, memuat berbagai macam karakter, dan random, yang akan membuat bahkan komputer tercepatpun membutuhkan waktu lama untuk melakukan cracking password anda. Cara lain yang efektif adalah dengan mengaktifkan settingan proteksi brute force, agar melakukan blok IP tertentu jika melakukan kesalahan gagal login lebih dari 3 kali.

Naah, berdasarkan kriteria diatas sepertinya serangan yang dilakukan ke website saya adalah serangan tipe ke 5, yaitu Password Attack. Karena si penyerang hanya mengambil alih akun Administrator dari Website saya dan mengubahnya melalui halaman Admin milik CMS Drupal situs saya.

Kalau sudah tau jenis-jenis serangan yang terjadi, lalu apa? Tentunya kita perlu melakukan upaya pencegahan agar kejadian seperti ini tidak terulang kembali. Disini saya juga akan memberikan beberapa aspek yang perlu kita perdalam agar website kita tidak gampang di hack. Khususnya website yang menggunakan CMS Drupal ya.

1. Amankan file permission dan ownership kalian

Ini sangat penting, karena masalah permission dan ownership ini sangat rentan sekali. Ada satu saja file penting yang salah pemberian hak aksesnya, habislah sudah jika ada orang yang berhasil masuk kesitu. Untuk mempelajari masalah ini, kalian bisa merujuk ke link ini

2. Mengaktifkan HTTPS

HTTPS merupakan sebuah protokol yang dirasa sangat aman karena menggunakan teknologi enkripsi tingkat tinggi didalamnya. Sehingga akan sangat sulit untuk dapat menyadap informasi yang berlalulintas disitu. Klik link ini untuk memperlajari cara mengaktifkan HTTPS di CMS Drupal.

3. Menginstal berbagai modul yang berguna untuk meningkatkan keamanan

Drupal menyediakan beragam modul yang ternyata sangat berguna bagi keamanan sebuah website. Seperti modul Login Security yang dapat memblock ip secara otomatis ketika ia mencoba berulang-ulang memasukkan username dan password yang salah, modul Spam Control Modul yang dapat meminimalisir serangan dari spam-spam, dll. Klik link ini untuk melihat modul-modul berguna yang lainnya.

4. Gunakan Password kombinasi yang sulit


Password adalah salah satu komponen penting yang juga sering dilupakan. Banyak situs-situs lembaga yang bahkan masih menggunakan password 123 atau qwerty lho. Oleh karena itu gunakan password secara bijak. Seperti dengan menggunakan kombinasi huruf kapital, angka, huruf, dan spesial karakter.

5. Backup secara berkala


Backup memang terlihat sepele dan merepotkan apalagi bila ukuran file website/database kalian sangat besar. Namun kalian akan merasakan betapa besar manfaat dari melakukan backup ini ketika kalian sudah mendapatkan masalah dikemudian hari. Jadi segera backup website kalian mulai sekarang!

Yah, saya kira dengan menerapkan metode-metode diatas sekiranya kita sudah meminimalisir resiko yang ada. Pada akhirnya memang tidak ada sebuah sistem yang sempurna. Namun kita semua mesti, wajib, kudu untuk terus berusaha bukan? Masa kita kalah sih lawan penjahat-penjahat seperti ini? Ya nggak? :D

Semoga bermanfaat :)

SUMBER 1
SUMBER 2
Share:

0 komentar:

Post a Comment

Blog Archive