File PHP thay đổi bất thường trên WordPress: Điều tra trước khi kết luận Malware

File Integrity Monitoring WordPress với dashboard phát hiện thay đổi file bất thường

Một file PHP thay đổi checksum, timestamp hoặc nội dung không tự động đồng nghĩa website đã bị malware. Trong WordPress, file có thể thay đổi do core/plugin/theme update, hotfix của developer, deployment automation hoặc corruption. Triage tốt phải xác định ai thay đổi, thay đổi khi nào, có change record không và file đó khác baseline ở điểm nào trước khi nâng finding thành security incident.

WordPress WP-CLI hỗ trợ wp core verify-checksums để so sánh core với checksum chính thức; WordPress Developer Blog cũng lưu ý checksum mismatch có thể do corruption hoặc dùng sai version/locale, và plugin premium/custom có thể không có checksum trên WordPress.org. Vì vậy file-integrity alert là signal cần điều tra, không phải verdict. Nguồn: WordPress — wp core verify-checksums, WordPress Developer Blog — Website security checks và WordPress — wp plugin verify-checksums.

Bối cảnh: một file PHP đổi bất thường ngoài maintenance window

Giả sử monitoring phát hiện một file PHP trong plugin hoặc theme thay đổi lúc 03:17 UTC. Không có deployment được ghi nhận trong maintenance window, checksum hiện tại khác baseline, nhưng website vẫn hoạt động bình thường và chưa có IOC rõ ràng.

Những signal cần thu thập ngay

  • Path, owner, permission, size, mtime/ctime và hash trước/sau.
  • Package/version hiện tại của core, plugin hoặc theme chứa file.
  • Deployment/update log quanh thời điểm file đổi.
  • Process/user/account nào có quyền ghi vào path.
  • Web access, admin activity, SSH/SFTP hoặc control-panel log liên quan.
  • Nội dung diff có obfuscation, eval/base64, external domain, credential access hoặc file-write behavior hay không.

Bước 1: xác minh đây có phải thay đổi hợp lệ không

Trước tiên cần map file về component owner và phiên bản. Nếu file thuộc WordPress core, wp core verify-checksums có thể so sánh với checksum chính thức của đúng version/locale. Với plugin WordPress.org, wp plugin verify-checksums hỗ trợ kiểm tra tương tự.

Tuy nhiên checksum không bao phủ mọi trường hợp. Plugin custom hoặc premium có thể không có checksum công khai; hotfix hợp lệ cũng tạo mismatch. Vì vậy cần đối chiếu với package từ nguồn tin cậy, Git commit/deployment artifact hoặc bản backup gần nhất.

Tham chiếu File Integrity WordPress và giám sát plugin, theme và WordPress Core thay đổi bất thường để xây baseline trước khi triage.

Bước 2: đọc diff để phân biệt update với tampering

Minh họa so sánh file PHP WordPress với baseline và dấu hiệu backdoor

Dấu hiệu nghiêng về legitimate change

  • File khớp package chính thức của version vừa deploy.
  • Timestamp trùng deployment/update window đã được phê duyệt.
  • Diff phù hợp changelog hoặc commit được xác minh.
  • Không có code obfuscated, external loader hoặc privilege escalation mới.

Dấu hiệu cần nâng confidence security finding

  • Code bị chèn ngoài function/class structure bình thường.
  • Có obfuscation, dynamic execution, remote fetch hoặc command execution.
  • File được sửa ngoài deployment window bởi account/process không có owner.
  • Xuất hiện thêm file lạ ở cùng directory hoặc writable path.
  • Access/auth log cho thấy activity bất thường ngay trước thời điểm file đổi.

Bước 3: tìm process hoặc account đã tạo thay đổi

File diff cho biết cái gì thay đổi, nhưng root cause cần biết ai hoặc process nào đã ghi file. Cần correlate filesystem metadata với deployment agent, web/PHP process, SSH/SFTP account, control panel, WordPress admin action và scheduled task.

Nếu không có log đủ để attribution chính xác, finding nên ghi giới hạn evidence thay vì suy diễn attacker path. Ví dụ: “unauthorized PHP modification confirmed; write origin not attributable with available logs”.

Khi nào có thể xác nhận file PHP bị tamper trái phép?

Checksum mismatch đơn lẻ chưa đủ. Confidence mạnh hơn khi nhiều lớp evidence khớp nhau.

  • File không khớp trusted package/baseline.
  • Không có deployment/change record hợp lệ.
  • Diff chứa behavior không thuộc chức năng dự kiến.
  • Writer/process/account không được authorize hoặc không giải thích được.
  • Có related IOC như file lạ, login bất thường, outbound request hoặc persistence.

Containment và remediation

Trước khi overwrite file, nên lưu bản sao hiện tại, hash và metadata nếu incident cần RCA. Sau đó remediation phụ thuộc scope: một file core/plugin bị sửa có thể được thay bằng bản trusted, nhưng nếu có dấu hiệu compromise rộng hơn thì cần mở rộng sang account, persistence, credential và entry point.

  • Quarantine hoặc preserve file đáng ngờ trước khi replace.
  • Reinstall core/plugin/theme từ trusted source nếu integrity không còn đủ confidence.
  • Review writable permissions và account/process có quyền ghi.
  • Patch/remove vulnerability hoặc credential issue nếu xác định được entry point.
  • Scan/review các file lân cận và persistence mechanism liên quan.

Nếu evidence cho thấy backdoor, tham chiếu case phát hiện Backdoor bằng File Integrity Monitoring để mở rộng scope điều tra.

Validation sau remediation

GateĐiều kiện PASS
Trusted comparisonFile khớp package/baseline được xác minh
Unexpected filesKhông còn file lạ đã biết trong path liên quan
PermissionsChỉ process/account cần thiết có quyền ghi
DeploymentChange path có owner và audit trail rõ
MonitoringKhông tái xuất hiện modification ngoài window
Business flowWebsite/plugin/theme vẫn hoạt động bình thường

Bài học vận hành

  • File-integrity alert là signal, không phải kết luận malware.
  • Checksum phải so với đúng version/locale/package.
  • Custom/premium plugin cần trusted baseline riêng nếu không có checksum công khai.
  • Diff nên được correlation với deployment, account và process evidence.
  • Không overwrite file đáng ngờ trước khi preserve evidence nếu cần RCA.
  • Closure chỉ nên xảy ra khi integrity và write path đều được xác minh.

Nguồn tham khảo

◇
Cần hỗ trợ kiểm tra và xử lý website?Đội ngũ SecureWebOps sẵn sàng hỗ trợ theo phạm vi phù hợp.
Liên hệ ngay →
Đoàn Trình Dục
Về tác giả Đoàn Trình Dục TD Digital · Website Operations & Security

Đoàn Trình Dục là tác giả nội dung trên SecureWebOps. Các bài viết tập trung vào bảo mật WordPress, giám sát an ninh website, malware/backdoor, hardening, backup/recovery và Incident Response theo hướng thực hành, có bước kiểm tra, bằng chứng, validation và rollback khi phù hợp.

Xem hồ sơ tác giả →