Cách giám sát thay đổi file WordPress bằng File Integrity Monitoring

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

File Integrity Monitoring (FIM) là quá trình theo dõi file để phát hiện việc thêm, sửa hoặc xóa ngoài trạng thái kỳ vọng. Với WordPress, đây là lớp monitoring quan trọng vì Core, plugin, theme, MU-plugin và file cấu hình đều có thể trở thành điểm persistence hoặc bị thay đổi sau khi account, plugin hay server bị compromise.

FIM không tự kết luận một file thay đổi là mã độc. Nó cung cấp signal để xác minh thay đổi có hợp lệ, nằm trong deployment window hay cần điều tra sâu hơn.

Những khu vực file nào cần được giám sát?

WordPress Core

Core có baseline tương đối rõ. WP-CLI hỗ trợ wp core verify-checksums để so sánh file cài đặt với checksum do WordPress.org cung cấp cho phiên bản tương ứng.

Plugin, theme và MU-plugin

Plugin/theme hợp lệ thay đổi khi update hoặc deploy. Monitoring cần biết version, source và maintenance window. Với plugin từ WordPress.org, WP-CLI có thể xác minh checksum khi dữ liệu khả dụng. MU-plugin cần inventory riêng vì được WordPress tự động nạp; một file mới trong wp-content/mu-plugins phải có owner và lý do rõ ràng.

Để đối chiếu component change với file change, xem giám sát plugin, theme và WordPress Core.

wp-config.php, file cấu hình và uploads

Thay đổi trong wp-config.php, web server config hoặc file liên quan secrets thường có impact cao. Ngược lại, uploads thay đổi liên tục nên không thể alert mọi file mới; cần tập trung vào file thực thi hoặc loại file lệch baseline.

Xây baseline và rule cho FIM

Baseline file nên chứa gì?

Một baseline hữu ích nên ghi nhận đường dẫn, hash/checksum khi phù hợp, owner, permission, loại file, version component và thời điểm thay đổi hợp lệ gần nhất. Có thể chia file thành ba nhóm: ổn định, thay đổi có kiểm soát và thay đổi thường xuyên.

Để xây baseline nhất quán với các signal khác, dùng Security Monitoring Baseline.

Những thay đổi đáng ưu tiên

  • File PHP mới xuất hiện ngoài deployment.
  • Core checksum không khớp.
  • Plugin/theme thay đổi nhưng không có update record.
  • MU-plugin mới xuất hiện.
  • File cấu hình hoặc .htaccess bị sửa ngoài change window.
  • File thực thi xuất hiện trong uploads.
  • File đã cleanup trước đó xuất hiện trở lại.

Severity nên tăng nếu file change đi cùng login Admin bất thường, cron mới, request lạ hoặc persistence signal. Liên kết với Admin monitoring và Persistence Monitoring giúp triage chính xác hơn.

Thiết kế rule FIM

  1. Core file thay đổi ngoài update window.
  2. PHP mới trong uploads.
  3. MU-plugin mới hoặc bị sửa.
  4. wp-config.php thay đổi.
  5. Plugin/theme file thay đổi nhưng version không đổi.
  6. Artifact đã cleanup xuất hiện lại.

Checksum, deployment và false positive

Checksum khác FIM như thế nào?

Checksum verification so sánh trạng thái hiện tại với nguồn tham chiếu đã biết; FIM theo dõi thay đổi theo thời gian. Với Core hoặc plugin có checksum chính thức, hai phương pháp bổ trợ nhau: FIM phát hiện change, checksum giúp xác minh file có lệch khỏi bản phân phối hay không.

Không nên alert mọi thay đổi file

Nếu theo dõi toàn bộ cache, session, backup hoặc uploads mà không có filter, hệ thống sẽ tạo noise lớn. Điều quan trọng là phân vùng, loại file và context thay đổi.

FIM và deployment phải phối hợp

Mỗi deployment hợp lệ nên tạo change context: thời gian, component, version và owner. Monitoring có thể giảm severity trong cửa sổ deploy nhưng vẫn phải lưu telemetry. Không nên tắt hoàn toàn FIM trong deployment.

Triage một alert thay đổi file

Đầu tiên, xác định thay đổi có nằm trong update/deploy hợp lệ hay không. Sau đó so sánh checksum nếu có nguồn tham chiếu, kiểm tra owner/permission, activity log và các signal cùng thời điểm.

Nếu file đáng ngờ, đừng vội xóa trước khi lưu evidence cần thiết. Hãy xác định scope, nguồn tạo file, account hoặc process liên quan và kiểm tra persistence trước khi cleanup. Khi cần phân loại mức ưu tiên, dùng Security Alert Triage.

FIM trong điều tra và sau cleanup

FIM đặc biệt hữu ích sau cleanup. Nếu backdoor hoặc file bất thường xuất hiện lại, đây có thể là dấu hiệu root cause chưa được xử lý hoặc persistence còn tồn tại. Bài WordPress Persistence Monitoring giúp mở rộng điều tra sang cron, MU-plugin và account.

Checklist triển khai File Integrity Monitoring

  • Khóa scope thư mục và loại file.
  • Phân vùng ổn định, thay đổi có kiểm soát và thay đổi thường xuyên.
  • Ghi nhận baseline/version.
  • Gắn deployment window với change record.
  • Ưu tiên file thực thi và file cấu hình.
  • Kiểm tra checksum khi có nguồn chính thức.
  • Test alert bằng thay đổi có kiểm soát.
  • Review false positive và exclusion định kỳ.

Kết luận

File Integrity Monitoring hiệu quả không phải là cảnh báo mọi file thay đổi, mà là phát hiện đúng những thay đổi lệch khỏi trạng thái kỳ vọng. Với WordPress, hãy tập trung vào Core, plugin/theme, MU-plugin, cấu hình và file thực thi xuất hiện ở vị trí không mong đợi, sau đó correlation với account, cron và request để tăng độ tin cậy.

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ả →