Home / Blog / Lindungi web dari serangan malware 4
 396 views

Lindungi web dari serangan malware

396 views

Dalam beberapa bulan terakhir, banyak website masuk dalam blacklist google dikarenakan terjadi malware injection. Injection ini diduga dikarenakan adanya penggunaan timthumb pada template / design dari website tersebut, namun setelah saya mencoba menelusuri beberapa website client yang terkena serangan malware ini timthumb tidaklah satu-satunya celah masuk dari malware ini.

Serangan ini tidak hanya menyerang web dengan engine model CMS seperti wordpress, joomla, atau drupal, tapi juga menyerang script php apa saja yang memiliki celah untuk dilakukannya injeksi. Selain menyerang php, malware juga terkadang melakukan injeksi ke dalam .htaccess dan biasanya malware ini berupa redirect dimana apabila seseorang membuka website kita, secara otomatis dia akan di alihkan ke web lain, dan biasanya web pengalihan ini berisi kode-kode yang merugikan pengunjungnya, misalnya phishing.

Bagaimana cara mengetahui apakah website yang kita kunjungi mengandung malware atau tidak?

Download google chrome dan buka website tersebut dari google chrome.

Google Chrome memiliki fitur yang tidak dimiliki browser lain, yaitu secara langsung konek ke server google yang berisi list dari web-web yang masuk dalam blacklist, dan jika tidak termasuk blacklist, google chrome akan menganalisa kode yang berjalan di dalam web tersebut. Apabila terdapat kode-kode yang mencurigakan, secara otomatis akan mencegah pengguna untuk mengakses web tersebut.

Membedakan injected php dengan clean php.

Apabila pada php tersebut di paling atas terdapat script / code tambahan, perhatikan eval(base64_decode. Kode ini memiliki kecenderungan untuk mengambil informasi penting dari host yang kita gunakan seperti username atau password.

Untuk memperbaiki website yang terkena injeksi akan sangat makan waktu, jika Anda benar-benar punya waktu kosong, silahkan melakukan pengecekan tiap file .php yang ada. Cek header dari tiap file php, hapus bagian yang dicurigai apabila Anda menemukan sebuah kode “eval(base64_decode“.

Atau untuk cara gampangnya,

1. backup terlebih dahulu SQL Anda, backup full dari website Anda

2. ubah username dan password FTP

3. ubah username, password, dbname, dbhost

4. hapus dan install ulang engine website Anda dari script yg clean.

5. import ulang SQL-nya.

6. lakukan langkah berikut untuk mencegah / melindungi website

Untuk mencegah / melindungi website dari serangan :

1. persiapkan .htaccess untuk melindungi isi hosting


# disable directory browsing
Options All -Indexes

kode di atas akan mencegah semua direktori untuk menampilkan list konten apabila tidak terdapat index.php atau index.html di dalamnya


# protect from injection
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} base64_(en|de)code[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

kode di atas akan mencegah injeksi kedalam script


<Files .htaccess>
order deny,allow
deny from all
</Files>

kode di atas akan mencegah akses dari luar


<Files wp-config.php>
order allow,deny
deny from all
</Files>

kode di atas akan mencegah akses file bernama wp-config.php dari luar, file yang diproteksi seperti ini tidak hanya wp-config.php, tapi bisa file apa saja yang kita rasa penting.

2. lindungi .htaccess dengan chmod 0444, hal ini akan mencegah terhjadinya perubahan pada .htaccess, lakukan hal yang sama terhadap file-file yang dirasa penting, contoh : wp-config.php

3. lindungi website dari webcrawler. cara ini mencegah webcrawler dari melacak isi dari hosting kita

buat file bernama robots.txt dan isi kode seperti berikut


#
User-agent: *
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins/
Disallow: /wp-content/cache/
Disallow: /wp-content/themes/
Disallow: */trackback/
Disallow: */feed/
Disallow: /*/feed/rss/$
Disallow: /category/*

direktori yang ingin dilindungi bisa dirubah sesuai kebutuhan, contoh di atas adalah untuk melindungi direktori yang ada di dalam installasi wordpress engine.

4. cara berikut adalah untuk melindungi wordpress : gunakan plugin yang berfungsi melindungi dan membackup website dengan base engine wordpress :

BackWPup, plugin ini akan memudahkan proses backup yang terjadwal, tidak hanya SQL tapi seluruh isi dari website dan kemudian bisa kita download hasil backup tersebut.

Invisible Captcha, plugin ini mencegah adanya spam comment.

WordPress File Monitor Plus, plugin ini akan membantu kita dalam memonitor perubahan file yang terjadi di dalam hosting. Jika ada perubahan dalam file, kita bisa langsung mengetahui dan melakukan pengecekan apakah ada injeksi di dalam file tersebut.

Jika Anda menggunakan timthumb di dalam template Anda, wordpress / joomla / drupal / php lainnya, biasakan untuk selalu melakukan pengecekan update terbaru dari timthumb untuk mencegah adanya bug yang bisa dimasuki malware.

***

Apabila Anda kesulitan memperbaiki website Anda, silahkan menghubungi saya.