Notes Topics Projects Statistik Now About
Field Note #96

WordPress Security Audit Checklist Before Migration

Checklist praktis untuk memeriksa keamanan WordPress sebelum migrasi server.

WordPress Security Audit Checklist Before Migration

Sebelum memigrasikan WordPress ke server baru, saya selalu memeriksa apakah situs benar-benar bersih dari indikator kompromi. Di shared hosting, audit tidak bisa menjangkau semua lapisan infrastruktur, jadi fokus utama ada pada core WordPress, file, plugin, theme, database, dan konfigurasi dasar.

Pendekatan audit ini erat kaitannya dengan Root Cause Analysis — membedakan antara artefak kompromi yang terlihat dan akar penyebab yang mendasarinya. Konsep SMART (Storage) juga relevan untuk memahami bahwa alat audit memiliki batasan: tidak semua yang lolos pemeriksaan berarti aman.

1. Identitas Website

  • Verifikasi domain yang diaudit
  • Cek siteurl dan home
  • Catat versi WordPress
  • Catat versi PHP
  • Catat jenis web server
  • Catat penyedia hosting

2. Integritas WordPress Core

  • Jalankan verifikasi checksum WordPress
  • Identifikasi file core yang berubah
  • Backup file mencurigakan sebelum tindakan
  • Restore core resmi jika perlu
  • Verifikasi ulang checksum sampai valid

3. File Asing dan Indikator Malware

  • Cari file PHP asing di root
  • Cari file tersembunyi seperti .pid, .htpasswd, .bak, .old
  • Cari file dengan nama acak
  • Periksa indikasi web shell
  • Periksa indikasi SEO spam
  • Periksa indikator Adminer atau file manager ilegal

4. Signature Kode Mencurigakan

  • base64_decode(
  • eval(
  • assert(
  • gzinflate(
  • shell_exec(
  • system(
  • exec(
  • passthru(
  • create_function(
  • preg_replace('/e')

5. Upload Folder

  • Cari file PHP di wp-content/uploads
  • Pastikan file yang ada memang milik plugin resmi
  • Tidak ada web shell di upload folder
  • Tidak ada file executable asing

6. Plugin

  • Daftar semua plugin aktif dan nonaktif
  • Cek plugin asing
  • Cek plugin tanpa header WordPress
  • Cek plugin yang tidak muncul di wp plugin list
  • Periksa versi plugin
  • Periksa apakah ada CVE atau plugin yang sudah abandoned

7. Theme

  • Audit functions.php
  • Audit header.php
  • Audit footer.php
  • Audit index.php
  • Audit 404.php
  • Cari redirect tersembunyi atau injection kode

8. Database

  • Cek wp_options
  • Cek wp_posts
  • Cek wp_users
  • Cek wp_usermeta
  • Cari kata kunci seperti casino, bonus, viagra, iframe, script, hidden link

9. Administrator

  • Cek daftar admin
  • Pastikan tidak ada akun asing
  • Validasi email admin
  • Rencanakan rotasi password setelah audit

10. Cron dan Konfigurasi

  • Cek cron WordPress
  • Cek cron plugin
  • Audit wp-config.php
  • Audit .htaccess
  • Periksa permission file dan folder
  • Pastikan tidak ada permission 777

11. IOC dan Baseline

  • Simpan nama file
  • Simpan lokasi file
  • Simpan hash SHA256
  • Simpan ukuran file
  • Simpan waktu modifikasi
  • Buat baseline setelah pembersihan

12. Keputusan

Gunakan tiga status ini:

PASS — tidak ditemukan indikator kompromi pada ruang lingkup audit

PASS WITH CONDITIONS — bersih, tetapi masih ada keterbatasan verifikasi

FAIL — masih ada artefak kompromi, core belum valid, atau evidence belum cukup

Catatan

Di shared hosting, beberapa hal tidak bisa diverifikasi penuh, seperti log server, ownership file, proses sistem, dan konfigurasi OS. Itu harus ditulis sebagai not verifiable, bukan otomatis dianggap aman.

Audit yang baik bukan hanya mencari malware. Audit yang baik membantu kita mengambil keputusan migrasi dengan tingkat keyakinan yang jelas.

Untuk contoh investigasi keamanan yang lebih mendalam, lihat Deface Bukan Awal Serangan yang membahas konsep dormant shell dalam audit forensik. Prinsip Observation Before Interpretation juga menjadi fondasi dalam menjalankan audit secara sistematis.

Recommended Learning Path

↓ WordPress Security Audit Checklist Before Migration (Current)