Cara Mengatasi Malware di WordPress (Menghapusnya secara Manual dan Otomatis)
Sebagai CMS (sistem manajemen konten) yang paling populer, WordPress sering menjadi target serangan para hacker. Meskipun platform ini pada dasarnya cukup aman, pemilik website tetap perlu menerapkan prosedur keamanan yang lebih ketat.
Apabila ada tanda-tanda website WordPress Anda kena hack, seperti pengalihan yang tidak sah atau konten yang berubah, penyebabnya mungkin adalah malware. Kalau tidak segera diatasi, hal ini bisa menyebabkan masalah serius, termasuk kehilangan data dan downtime.
Tenang, kami akan membantu Anda menanganinya. Di artikel ini, kami akan menjelaskan cara mengatasi malware di WordPress dalam beberapa metode. Nantinya, Anda pun bisa menerapkan langkah-langkah yang paling sesuai dengan kebutuhan Anda.
Persiapan sebelum Menghapus Malware di WordPress
Untuk mulai mengatasi malware di WordPress, pastikan Anda melakukan hal-hal di bawah ini dulu agar serangan malware tidak bertambah parah.
Batasi Akses WordPress
Apabila Anda curiga bahwa website Anda telah disusupi oleh hacker, segera batasi aksesnya agar pengunjung tidak membukanya. Kalau tidak, malware dari website Anda bisa menyebar ke perangkat pengunjung atau mengarahkan mereka ke website phishing.
Langkah ini juga memastikan bahwa hanya administrator yang bisa melakukan langkah-langkah penyelesaian masalah. Anda pun bisa melihat perubahan dengan lebih mudah kalau terjadi error.
Untuk membatasi akses WordPress, blokir semua alamat IP kecuali alamat IP komputer Anda melalui file .htaccess. Berikut langkah-langkahnya apabila Anda menggunakan Hostinger:
- Login ke hPanel dan klik Website dari menu bagian atas.
- Klik Dashboard di website yang ingin Anda perbaiki.
- Di halaman dashboard, pilih File Manager.
- Buka direktori public_html dan klik dua kali file .htaccess. Apabila Anda tidak bisa menemukannya, lihat panduan kami tentang cara menemukan file .htaccess yang hilang.
- Tambahkan baris berikut ini di bagian bawah file .htaccess. Ganti your_ip_address dengan alamat IP Anda yang sebenarnya:
order allow,deny
deny from all
allow from [your_IP_address]
- Klik ikon disk di sebelah kanan atas untuk menyimpan perubahan.
Perlu diingat bahwa Anda harus mengatur alamat IP statis di komputer Anda lebih dulu sebelum melakukan langkah-langkah di atas. Kalau tidak, Anda mungkin perlu terus-menerus mengedit file .htaccess karena nilainya akan berubah.
Backup File WordPress
Membackup file-file website bisa membantu Anda menemukan infeksi malware dengan lebih cepat. Anda bisa membandingkan data website dari sebelum dan setelah serangan untuk melihat apakah ada kode berbahaya yang ditambahkan.
Langkah-langkah backup website WordPress akan berbeda-beda tergantung pada provider hosting Anda. Bagi pelanggan Hostinger, ikuti langkah-langkah berikut ini:
- Pada menu pengelolaan website, buka File → Backup dari sidebar.
- Pilih opsi File Backup, pilih tanggal backup yang Anda inginkan, lalu klik Selanjutnya.
- Klik Unduh semua file.
- Tunggu hingga hPanel selesai menyiapkan file. Setelah siap, klik Download Backup.
- Ulangi langkah-langkah tersebut untuk opsi Database Backup.
Semua paket web hosting di Hostinger sudah menyertakan fitur backup mingguan otomatis untuk memastikan Anda selalu memiliki file cadangan website terbaru.
Namun, tidak semua web host menyediakan fitur yang sama, yang berarti Anda tidak bisa mendownload file backup website kalau belum membuatnya secara manual. Dalam hal ini, cobalah menghubungi provider hosting Anda untuk mencari tahu apakah mereka memiliki salinan file website Anda.
Cek Perubahan Terakhir di Website
Anda bisa melihat log perubahan terbaru di website Anda untuk membantu mengidentifikasi file yang terinfeksi malware.
Cara yang paling mudah adalah dengan mengecek log aktivitas website. Di Hostinger, Anda bisa melakukannya melalui hPanel dengan membuka Dashboard → Performa → Statistik → Log Akses.
Untuk analisis yang lebih mendetail, Anda juga bisa menggunakan perintah comand-line untuk melihat daftar file yang baru saja diubah. Untuk melakukannya, buat koneksi SSH ke server WordPress Anda menggunakan Terminal atau SSH client seperti PuTTY. Kemudian, jalankan perintah berikut ini:
find . -type f -name '*.file_extension' -ctime n
Ganti file_extension dengan format file yang ingin Anda periksa, seperti PHP atau JS, yang merupakan target umum serangan malware. Argumen n menentukan rentang waktu pengecekan dalam hitungan hari. Dalam contoh ini, kami akan mencari file JavaScript yang diubah tiga hari yang lalu:
find . -type f -name '*.js' -ctime -3
Ganti Password dan Kunci Akses WordPress
Penjahat cyber mungkin menggunakan malware untuk mencuri kredensial admin WordPress Anda. Apabila website Anda disusupi, segera ubah semua kata sandi di website agar serangan tidak menyebar ke area lain.
Selain itu, sebaiknya perbarui kredensial Anda di platform lain, termasuk database WordPress, panel hosting, dan FTP (File Transfer Protocol) client. Untuk meminimalkan ancaman, gunakan kata sandi yang kuat dan berbeda-beda bagi setiap akun Anda.
Manfaatkan tool pembuat kata sandi seperti 1Password Strong Password Generator untuk mempermudah prosesnya. Selain itu, simpan semua kredensial Anda di aplikasi seperti NordPass atau 1Password, yang menyediakan vault terenkripsi untuk mengamankan informasi login Anda.
Kemudian, ubah salt WordPress untuk melindungi kredensial login Anda yang baru. Anda bisa mengatur ulang salt dan semua kata sandi admin menjadi serangkaian karakter acak dengan menjalankan perintah berikut ini melalui SSH:
wp config shuffle-salts && wp user reset-password $(wp user list --role=administrator --field=ID)
Hapus Symlink
Symlink atau symbolic link merupakan link yang berfungsi untuk membuat pintasan yang mengarah ke file atau direktori tertentu. Link ini berguna untuk menyediakan beberapa pintu akses guna mempermudah manajemen website.
Namun, penjahat cyber bisa mengeksploitasi pintasan yang berhasil disusupi untuk mengakses file penting atau folder root website Anda. Untuk menghindari masalah ini, buka symlink dengan menjalankan perintah berikut melalui SSH:
find . -type l -exec unlink {} \;
Setelah itu, jangan lupa untuk membuat ulang symlink. Kalau tidak, website Anda mungkin tidak bisa berfungsi dengan benar.
Update WordPress
Versi WordPress yang sudah tidak update mungkin memiliki beberapa celah keamanan. Dengan mengupdatenya, Anda akan mendapatkan patch keamanan terbaru untuk membantu mengurangi area paparan serangan yang sudah diketahui oleh penjahat cyber.
Pastikan juga untuk mengupdate plugin dan tema WordPress karena para hacker bisa mengeksploitasinya untuk membobol website Anda. Apabila menggunakan Hostinger, Anda bisa memanfaatkan fitur deteksi serangan di hPanel untuk melihat ekstensi yang disusupi.
Selain itu, perbarui versi PHP Anda karena bahasa skrip ini rentan terhadap serangan, seperti SQL injection dan cross-scripting. Anda juga bisa melakukannya di hPanel melalui Website → Dashboard → Tingkat Lanjut → Konfigurasi PHP.
Kemudian, sebaiknya aktifkan fitur update otomatis di hPanel untuk memastikan website, plugin, dan tema WordPress Anda selalu menggunakan patch keamanan terbaru langsung saat tersedia.
Untuk mengaktifkannya, buka menu Website di bagian atas, lalu Dashboard → WordPress → Keamanan.
Tips Ahli
Plugin dan tema yang sudah tidak update memiliki risiko keamanan tinggi karena tidak menerima patch untuk mengatasi masalah keamanan terbaru. Selalu cek kapan terakhir kali ekstensi Anda diperbarui. Kalau tidak ada informasi baru di catatan update selama 6 bulan terakhir, sebaiknya uninstall plugin atau tema Anda lalu cari gantinya yang masih rutin diupdate.
Atur Ulang Izin File dan Folder
Izin file yang diubah bisa membocorkan data sensitif ke publik, yang mungkin dieksploitasi oleh hacker untuk menyerang website Anda. Jadi, cobalah mengatur ulang hak akses di website Anda agar pihak yang tidak berwenang tidak bisa mengubah data penting apa pun.
Anda bisa melakukannya menggunakan FTP client seperti FileZilla atau File Manager hPanel. Kemudian, atur izin file ke nilai 644 dan izin folder ke nilai 755. Untuk mempelajari arti nilai-nilai ini, lihat tutorial kami lainnya tentang perintah chmod.
Ada cara yang lebih mudah bagi pelanggan Hostinger, yaitu dengan menggunakan hPanel. Untuk melakukannya, buka menu Website di bagian atas, lalu klik Dashboard → Tingkat Lanjut → Perbaiki Kepemilikan File. Centang kotak konfirmasinya, lalu klik Jalankan.
Scan Komputer terhadap Malware
Malware di WordPress juga bisa menyerang komputer Anda kalau Anda mengakses website yang terinfeksi atau mendownload file-filenya. Sebelum menghapusnya, sebaiknya cek dulu apakah sistem Anda juga tertular malware.
Dengan demikian, Anda akan mencegah malware menyebar kembali ke website Anda. Untuk membersihkan komputer dari malware, Anda bisa menggunakan software antivirus seperti Bitdefender dan Norton.
Cara Mengatasi Malware di WordPress secara Manual
Apabila sudah terbiasa menangani hal-hal teknis, Anda bisa mencoba mengatasi malware di website WordPress secara manual. Meskipun langkah-langkahnya mungkin cukup rumit untuk pemula, metode ini bisa diterapkan di berbagai web host.
1. Instal Ulang File Inti WordPress
Pertama, Anda bisa mencoba menginstal ulang file-file inti CMS ini untuk mengatasi malware di WordPress. Apabila masih bisa mengakses dashboard admin, lakukan langkah ini melalui menu Updates (Pembaruan) di sidebar, lalu klik tombol Re-install version … (Instal ulang versi …)
Kalau tidak bisa membuka dashboard, coba instal ulang WordPress menggunakan FTP client atau File Manager di hPanel. Berikut cara melakukannya menggunakan File Manager Hostinger:
- Temukan File Manager di dashboard atau di sidebar hPanel Anda.
- Buka public_html dan cari folder wp-content. Klik kanan item tersebut, lalu klik Download.
- Kembali ke menu pengelolaan website hPanel, kemudian klik WordPress di sidebar.
- Scroll ke bawah ke bagian Pemasangan Situs dan klik Install.
- Kembali ke File Manager, buka folder public_html.
- Seret dan letakkan folder wp-content yang tadi sudah Anda download ke File Manager.
Cara lainnya, Anda bisa menginstal ulang file inti WordPress menggunakan WP-CLI. Tapi sebelumnya, buka File Manager dan akses direktori root public_html dulu.
Ganti nama folder wp-admin dan wp-include dengan mengklik kanan folder tersebut lalu memilih Ubah nama. Dengan demikian, WP-CLI akan dipaksa mendownload file baru, yang akan lebih baik karena folder-folder sebelumnya mungkin sudah disusupi.
Setelah selesai, buat koneksi ke website Anda melalui SSH dan jalankan perintah berikut ini. Ganti 6.6 dengan versi WordPress pilihan Anda:
wp core download --version=6.6 --skip-content --force
2. Bandingkan Instalan WordPress yang Terinfeksi dan Bersih
Sekarang, Anda sudah punya file WordPress yang masih bersih dan yang terinfeksi. Mari bandingkan keduanya untuk melihat file mana yang mengandung kode berbahaya sehingga bisa dihapus dari instalan WordPress Anda.
Untuk mengidentifikasi malware secara manual, Anda bisa menggunakan fitur split window di FTP client. Namun, prosesnya mungkin memerlukan ketelitian tinggi karena WordPress memiliki banyak sekali file, terutama kalau website Anda cukup kompleks.
Nah, agar lebih mudah, Anda bisa menggunakan perintah untuk menemukan perbedaan dalam kode website. Untuk melakukannya, letakkan file WordPress yang bersih dan yang terinfeksi ke dalam dua folder di server Anda. Kemudian, jalankan perintah berikut ini melalui SSH:
diff -r wordpress-clean/ wordpress-infected/ -x wp-content
Anda juga bisa menjalankan checksum melalui WP-CLI untuk memverifikasi integritas file website. Proses ini akan membandingkan blok data inti WordPress Anda dengan blok data asli untuk mengidentifikasi perubahan yang tidak sah. Berikut perintahnya:
wp core verify-checksums
Kemudian, Anda bisa menjalankan checksum pada plugin. Namun, langkah ini biasanya memicu error karena perintah yang digunakan hanya berfungsi untuk ekstensi WordPress resmi:
wp plugin verify-checksum
Perlu diketahui bahwa sedikit penyesuaian saja pada file Anda bisa menyebabkan error checksum. Jadi, sebelum menjalankan perintah di atas, pastikan Anda memiliki salinan baru file inti WordPress Anda.
3. Hapus File PHP dari Folder Upload
Penjahat cyber sering mengeksploitasi file PHP untuk menyuntikkan kode berbahaya ke website WordPress. Dengan menghapus file-file tersebut dari folder Uploads, Anda bisa menutup celah serangan bagi para hacker untuk mengurangi risiko serangan lebih lanjut.
Untuk melakukannya, buka folder instalan WordPress Anda menggunakan FTP client atau File Manager Hostinger. Kemudian, buka public_html → Uploads, lalu hapus semua file yang ada.
Di File Manager, Anda bisa menghapus file secara massal dengan mengklik ikon tanda centang di kanan atas, memilih file yang akan dihapus, lalu memilih tindakan yang dimaksud.
Anda juga bisa menghapus semua file PHP dalam folder Uploads menggunakan perintah yang dijalankan di SSH:
cd public_html/uploads/ && rm *.php
Namun, sebaiknya periksa isi folder Uploads dulu karena perintah ini akan menghapus semua file di dalamnya, yang mungkin akan turut menghapus file penting. Anda bisa menggunakan perintah berikut untuk menampilkan daftar item PHP dengan cepat:
find . -name ".php"
4. Cari Backdoor yang Tersembunyi dalam File
Untuk membuat backdoor, penjahat cyber sering kali menyuntikkan kode berbahaya ke dalam file PHP pada instalan WordPress, tema, dan plugin Anda. Sayangnya, Anda tidak bisa menghapus item-item ini begitu saja karena sangat penting untuk fungsi website.
Skrip target untuk backdoor tersembunyi juga bervariasi, tapi yang paling umum adalah wp-config.php dan functions.php. Untuk membuat celah serangan, hacker biasanya menyisipkan fungsi-fungsi PHP seperti base64, exec, move_uploaded_file, dan str_rot13.
Untuk mengidentifikasi file PHP yang berpotensi disusupi, periksa apakah fungsi-fungsi PHP tersebut ada di website Anda. Berikut perintahnya:
find . -type f -name '*.php' | xargs egrep -i "(mail|fsockopen|pfsockopen|stream\_socket\_client|exec|system|passthru|eval|base64_decode) *("
Hapus semua skrip tambahan dalam file yang disusupi. Sebagai contoh, Anda bisa membuat website staging WordPress baru untuk melihat kode aslinya.
Selain itu, kami menyarankan agar Anda memeriksa file gambar dan iframe, karena hacker mungkin menyertakan backdoor saat menguploadnya ke website Anda. Gunakan perintah berikut untuk melakukannya:
find wp-content/uploads -type f -iname '*.jpg' | xargs grep -i php
find . -type f -name '*.php'| grep -i '<iframe'
Penting! Beberapa tema dan plugin menggunakan fungsi PHP ini agar bisa berjalan dengan benar. Periksa ekstensi lagi setelah membersihkannya untuk memastikan Anda tidak menghapus fungsi-fungsi penting.
5. Periksa File Database SQL
Selain file inti, bersihkan malware di database WordPress Anda dengan menghapus skrip yang mencurigakan. Ada dua metode untuk melakukannya: menggunakan perintah WP-CLI atau mengecek file backup secara manual.
Untuk mencari skrip berbahaya dalam database SQL, buat koneksi ke server website Anda melalui SSH dan jalankan perintah berikut:
wp db search "<script"
Perintah ini akan menampilkan semua entri dengan tag <script dari database SQL Anda. Jangan hapus entri yang mencurigakan dulu karena Anda perlu menggunakannya untuk memeriksa postingan yang berpotensi disusupi di langkah berikutnya.
Agar prosesnya lebih efisien, Anda juga bisa mencari skrip yang berisi fungsi-fungsi JavaScript yang sering dieksploitasi oleh penjahat cyber. Dalam contoh ini, kami memeriksa eval(), atob(), dan fromCharCode():
wp db search '(<script|eval\(|atob|fromCharCode)' --regex
Untuk melakukannya secara manual, buka backup database SQL yang tadi sudah dibuat lalu cari skrip yang mencurigakan. Agar lebih mudah, Anda bisa menggunakan editor kode yang menyertakan fitur highlighter dan pencarian seperti Sublime atau Visual Studio Code.
6. Tinjau Kode setiap Halaman dan Postingan
Penjahat cyber bisa mengeksploitasi fungsi input pada postingan, halaman, dan kolom komentar website WordPress untuk menyisipkan konten berbahaya. Periksa perubahan terbaru pada bagian-bagian tersebut untuk melihat apakah ada aktivitas yang mencurigakan.
Untuk meninjau revisi postingan atau halaman, buka dashboard WordPress dan edit konten yang ingin Anda periksa. Buka Settings (Pengaturan) di sidebar, klik ikon titik tiga, lalu pilih Revision (Revisi). Apabila Anda tidak bisa menemukan opsi ini, artinya tidak ada perubahan apa pun sejak waktu publikasi.
Sementara itu, konten berbahaya mungkin hanya bisa dilihat menggunakan editor kode. Untuk memeriksanya, klik ikon titik tiga dan pilih Code Editor (Editor Kode).
Untuk komentar, cek historinya melalui Dashboard → Comments (Komentar). Hapus entri yang tidak diinginkan dengan mengklik Trash (Tong Sampah) di bawah komentar yang mencurigakan.
Sekarang, periksa skrip dari langkah sebelumnya untuk mencari tahu area website Anda yang disusupi. Langkah ini sangat penting karena perubahan pada postingan, halaman, atau komentar akan menambahkan entri baru pada tabel database Anda.
Untuk melakukannya, buka backup database menggunakan editor teks dan hapus skrip yang mencurigakan secara manual dari entri.
7. Cek Daftar Pengguna dan Hak Aksesnya
Setelah Anda menghapus malware dan kode yang berpotensi berbahaya dari WordPress, mari periksa apakah ada akun yang tidak diinginkan di website Anda. Penjahat cyber sering kali membuat akun admin baru untuk memodifikasi website Anda atau mengakses data penting dari bagian dalam.
Untuk melakukannya, buka dashboard WordPress Anda dan buka Users (Pengguna) → All Users (Semua Pengguna) dari dasboard. Teliti apakah ada akun admin baru yang mencurigakan dalam daftar pengguna Anda.
Apabila Anda menemukannya, hapus akun tersebut dengan mencentang kotak di samping namanya lalu memilih Delete (Hapus) dari menu Bulk actions (Tindakan massal).
Selain itu, tinjau peran akun lainnya untuk memastikan hanya pengguna yang sah yang diizinkan untuk mengakses file penting. Ubah perannya dengan mencentang kotak di samping nama mereka, lalu pilih peran baru dari menu Change the role to… (Ubah peran menjadi…).
Anda juga bisa menggunakan WP-CLI untuk mengecek pengguna secara lebih mendetail. Sebagai contoh, jalankan perintah berikut ini untuk mencantumkan semua akun yang diurutkan berdasarkan tanggal pembuatannya:
wp user list --field=ID,user_login,user_registered --orderby=user_registered --order=ASC --format=table
8. Hapus Website dari Daftar Blokir URL
Untuk melindungi pengunjung, Google akan secara otomatis menandai website Anda kalau terkena hack atau terinfeksi malware. Setelah membersihkan software berbahaya, jangan lupa untuk menghapus URL website Anda dari daftar blokir Google.
Anda bisa melakukannya melalui dashboard admin Google Search Console. Buka tab Security & Manual Actions dan klik tab Security issues. Pilih I have fixed these issues → Request a review untuk meminta Google mengindeks ulang website WordPress Anda.
Perlu diketahui bahwa proses ini mungkin memakan waktu hingga beberapa hari. Sebaiknya lakukan langkah ini segera, karena makin lama Google memblokir website Anda, peringkat SEO dan reputasi website Anda mungkin akan terus turun.
Cara Menghapus Malware di WordPress secara Otomatis
Ada solusi yang lebih mudah untuk mengatasi malware di WordPress, yaitu dengan menggunakan plugin malware scanner seperti WordFence. Dengan plugin ini, Anda bisa mengidentifikasi area-area yang disusupi di website Anda lalu membersihkannya dengan cepat.
Namun, hacker mungkin membatasi akses Anda ke dashboard admin WordPress sehingga Anda tidak bisa menginstal dan menggunakan tool ini. Kalau situasinya demikian, gunakan metode lain atau mintalah bantuan ke web host Anda.
Apabila menggunakan managed WordPress hosting dari Hostinger, Anda bisa menggunakan fitur deteksi malware melalui hPanel kalau dashboard admin Anda tidak bisa diakses. Untuk melakukannya, buka Website pada menu bagian atas, lalu Dashboard → Keamanan → Pendeteksi Malware.
Dari menu ini, Anda bisa melihat ringkasan pemindaian terbaru, termasuk jumlah malware yang ditemukan, dihapus, dan dibersihkan. Apabila tidak ada serangan apa pun, Anda akan melihat pesan yang menunjukkan bahwa website Anda aman.
Perlu diperhatikan bahwa tool ini akan memindai dan menghapus malware secara otomatis dari website WordPress sehingga Anda tidak perlu membersihkannya secara manual.
Menggunakan Layanan WordPress Profesional
Apabila Anda mengalami kesulitan saat menghapus malware dari website Anda, pertimbangkan untuk menggunakan jasa dari layanan profesional. Anda juga bisa menggunakan layanan tersebut untuk menangani masalah yang rumit.
Layanan profesional bisa membantu menghapus malware di website Anda dengan benar untuk memastikan tidak ada skrip berbahaya atau backdoor yang tersisa. Dengan menggunakan jasa ahli, Anda juga tidak perlu takut akan menghapus file-file yang penting untuk fungsi website.
Ada beberapa agensi yang menyediakan jasa ini. Namun, kalau budget Anda terbatas, cobalah mencari freelancer di platform seperti Upwork dan Fiverr.
Saat mencari layanan freelance, buat deskripsi pekerjaan yang jelas untuk menemukan kandidat yang cocok dengan lebih cepat. Setelah ada yang mendaftar, tinjau portofolionya untuk mencari tahu apakah skill yang dikuasainya cocok untuk situasi Anda.
Jangan lupa untuk mengecek ulasan freelancer tersebut guna mencari tahu apakah mereka bisa menyelesaikan pekerjaannya dengan cepat karena infeksi malware memerlukan tindakan segera. Kalau perlu, Anda juga bisa meminta rekomendasi freelancer dari developer lain atau teman Anda.
Kesimpulan
Infeksi malware adalah serangan cyber yang umum terjadi pada website WordPress dan bisa mengakibatkan kerusakan serius. Namun, Anda bisa mengatasinya dengan cepat menggunakan tool dan metode yang tepat.
Sebelum membersihkan malware di website Anda, batasi akses website dulu dan download semua backup yang tersedia untuk menghindari kerusakan lebih lanjut. Kemudian, instal ulang software inti WordPress melalui hPanel atau gunakan WP-CLI melalui SSH.
Setelah itu, hapus skrip berbahaya pada file PHP, database SQL, dan postingan Anda. Setelah malware berhasil diatasi dari WordPress, hapus pengguna admin yang mencurigakan dan minta Google untuk menghapus flag pada website Anda melalui Search Console.
Anda juga bisa menghapus malware dari WordPress menggunakan plugin seperti Wordfence atau deteksi malware bawaan Hostinger di hPanel. Apabila tidak yakin untuk melakukan langkah-langkahnya sendiri, Anda bisa menggunakan jasa agensi atau freelancer profesional.