Một MU-plugin lạ trong WordPress không mặc nhiên là malware. Must-use plugins được WordPress nạp theo cơ chế riêng và thường không được bật/tắt giống plugin thông thường, nên chúng dễ gây nhầm lẫn khi quản trị viên lần đầu kiểm tra. Cần xác minh nguồn gốc, mục đích, file thực tế và behavior trước khi kết luận.
MU-plugin nằm ở đâu và được nạp thế nào?
Theo WordPress, must-use plugins thường nằm trong wp-content/mu-plugins và được tự động kích hoạt. Chúng không xuất hiện trong cùng lifecycle quản trị như plugin thường. Tài liệu chính thức: WordPress — Must-use plugins.
So sánh plugin thường và MU-plugin
| Đặc điểm | Plugin thường | MU-plugin |
|---|---|---|
| Vị trí phổ biến | wp-content/plugins |
wp-content/mu-plugins |
| Activation | Bật/tắt qua plugin lifecycle | Tự động nạp |
| Owner thường gặp | Site admin, agency, vendor | Hosting, agency, platform code, custom infrastructure |
| Incident relevance | Có thể bị lạm dụng | Có thể bị lạm dụng cho persistence vì tự nạp |
Inventory MU-plugin trước khi sửa
WP-CLI có thể liệt kê plugin và trạng thái để hỗ trợ inventory:
wp plugin list --status=must-use
Output chỉ là inventory, chưa phải malware verdict. Với từng file, ghi path, mtime, hash, owner và source package/repo nếu có.
Owner map mẫu
| File | Owner | Mục đích | Source | State |
|---|---|---|---|---|
| platform-loader.php | Hosting | Platform integration | Hosting docs/package | APPROVED |
| unknown-loader.php | Không xác định | Chưa rõ | Không có baseline | INVESTIGATE |
Đây là cấu trúc minh họa, không phải IOC thực tế.
Workflow xác minh MU-plugin
- Xác định file và path trong
mu-plugins. - Đối chiếu với hosting, agency, repository hoặc deployment manifest.
- Ghi hash, mtime và timeline xuất hiện.
- Static review behavior; không chạy file nghi vấn trên production để thử.
- Kiểm tra file có load/include thành phần khác hay tạo account/cron/config ngoài dự kiến không.
- Đối chiếu với incident timeline và các IOC khác.
Khi nào mức độ nghi ngờ tăng?
- Không có owner hoặc source hợp lệ.
- File xuất hiện đúng incident window.
- MU-plugin tái tạo payload hoặc account.
- Behavior không khớp chức năng được khai báo.
- Đi cùng Admin lạ, redirect, file change hoặc recurrence.
Nếu có nhiều dấu hiệu như vậy, mở rộng sang persistence WordPress malware.
Safe-removal gate
- Chưa xác minh owner.
- Không có snapshot/rollback.
- MU-plugin có thể là dependency của hosting/platform.
- Không hiểu loader chain hoặc file được include.
- Chưa lưu evidence cần thiết cho incident timeline.
Xóa nhầm MU-plugin hợp lệ có thể làm hỏng chức năng nền của website; ngược lại, xóa file độc hại mà bỏ source tạo lại nó có thể chỉ làm triệu chứng biến mất tạm thời.
Nếu file chứa PHP đáng ngờ
Áp dụng integrity + static behavior + log correlation như workflow phát hiện PHP backdoor WordPress. Không kết luận chỉ từ tên file hoặc code khó đọc.
Nguồn kỹ thuật tham khảo
Kết luận
MU-plugin lạ là finding cần xác minh, không phải bằng chứng malware tự thân. Path, owner, source, hash, behavior và timeline mới là cơ sở phân biệt thành phần nền hợp lệ với persistence độc hại.
