Beberapa waktu yang lalu salah satu web yang saya kelola mendapatkan serangan yang tidak biasa. Kebetulan web tersebut menggunakan CMS WordPress. Jika biasanya jenis serangan umum yang seringkali diperoleh berupa SQL Injection atau sekadar deface sih bisa dengan cepat diatasi. Namun, kali ini berbeda.

Setiap kali saya membuka URL tersebut, tiba-tiba URL-nya melakukan refresh berkali-kali (loop refresh) menuju ke domain-domain yang berbeda. Ini tidak hanya terjadi saat mengakses halaman utama (homepage), tetapi ketika membuka dasbor dan halaman page/post yang lain juga demikian.

Troubleshooting pertama dilakukan dengan mengecek View Source pada browser dan saya menemukan script yang mencurigakan. Setelah diperiksa satu per satu isi dari file dan direktori web yang dimaksud, saya menemukan file-file dengan nama index.php sudah dalam keadaan disusupi kode-kode jahat berupa script Javascript.

Beberapa hari sebelumnya, saya sempat mendapatkan notifikasi dari penyedia VPS jika ada proses yang memberatkan di sisi memori, sehingga terkena suspend. Ternyata benar, setelah saya cek satu per satu, hampir semua file index.php terdeteksi diubah sesuai dengan tanggal update saat VPS tersebut terkena suspend.

Saya menyadari web tersebut terkena malware setelah coba discan menggunakan aplikasi ImmunifyAV, sejenis aplikasi pendeteksi dan penghapus malware yang menjangkiti sebuah server atau direktori web. Hasilnya cukup mencengangkan, karena ada sekitar 600-an file yang ketahuan terpengaruh oleh malware tersebut.

Hasil scanning dengan ImmunifyAV
Hasil scanning dengan ImmunifyAV

Setelah membaca beberapa referensi yang ada di internet, untuk mengatasi masalah tersebut ternyata tidak cukup hanya dengan memperbaiki satu per satu file yang terjangkit malware. Selain jumlah file-nya banyak, proses mencari file yang dimaksud juga akan memakan banyak waktu.

Solusi yang paling memungkinkan dan mudah dilakukan adalah dengan melakukan instal ulang CMS dan database-nya. Cara ini berhasil dilakukan, bersamaan dengan memindah folder media, yaitu wp-content/uploads ke direktori yang baru. Dengan catatan, folder berisi plugin pada direktori wp-content/plugins tetap tidak bisa dipulihkan dengan copy paste.

Saya sempat mencoba iseng melakukan aksi memindah folder plugins tersebut dari direktori web lama ke direktori web yang baru, tapi tetap tidak berhasil. Malware yang ada di folder plugins ikut berpindah. Ya, setelah dicek memang malware tersebut sudah menyebar dan menembus file-file yang terletak di dalam folder plugins.

Terima kasih untuk artikel dari blog Servernesia ini yang saya temukan dari hasil Googling untuk menemukan titik terang masalah ini.