Cron là cơ chế chạy công việc theo lịch. Trong WordPress có WP-Cron; hosting hoặc hệ điều hành còn có system cron. Kẻ tấn công có thể lợi dụng tác vụ nền để gọi URL, tải mã, tạo lại tệp hoặc thêm tài khoản, khiến website tái nhiễm sau mỗi lần làm sạch.
WP-Cron khác system cron thế nào?
WP-Cron là hàng đợi lịch được WordPress kiểm tra khi có lượt tải trang hoặc khi được system cron gọi. System cron do máy chủ quản lý và có thể chạy shell/PHP độc lập. Điều tra phải xem cả hai; danh sách trong plugin quản lý cron không đại diện toàn bộ máy chủ.
Liệt kê sự kiện WP-Cron
wp cron event list --fields=hook,next_run,recurrence --format=tableGhi lại hook, lịch chạy và recurrence. Hook lạ chưa chắc độc hại; plugin hợp lệ thường tạo tên riêng. Cần tìm callback đăng ký hook trong code, xác định plugin sở hữu và xem nó làm gì. Một hook không còn callback có thể chỉ là dữ liệu sót sau khi plugin bị gỡ.
Dấu hiệu cần ưu tiên
- Hook mới xuất hiện cùng thời điểm nhiễm hoặc tái tạo tệp.
- Chu kỳ rất ngắn không phù hợp chức năng website.
- Callback gọi URL lạ, ghi tệp, tạo user hoặc thực thi chuỗi động.
- System cron chạy PHP trong uploads, tmp hoặc thư mục ẩn.
- Tác vụ thuộc plugin không còn tồn tại hoặc package không rõ nguồn.
Không chạy thử tác vụ nghi vấn trên production
Lệnh `wp cron event run` sẽ thực thi callback. Chỉ dùng khi đã xác minh an toàn hoặc trong bản sao cách ly. Trước khi unschedule/delete, lưu cấu hình và bằng chứng; xóa nhầm cron thanh toán, email hoặc backup có thể gây lỗi nghiệp vụ.
Đối chiếu cron với timeline tệp
Nếu một file quay lại lúc 10:05, 10:10 và 10:15, so sánh với lịch cron năm phút. Đồng thời kiểm tra access log vì WP-Cron có thể được kích hoạt qua request. Không kết luận chỉ từ nhịp thời gian; cần tìm callback và hành vi thực tế.
Xử lý cron độc hại đúng thứ tự
- Chụp snapshot danh sách WP-Cron và system cron.
- Xác định file/plugin/callback sở hữu tác vụ.
- Khoanh vùng hoặc tắt website nếu tác vụ đang gây hại.
- Vô hiệu hóa tác vụ trong môi trường kiểm soát.
- Loại bỏ mã tạo cron và vá đường xâm nhập.
- Theo dõi xem hook hoặc file có được tạo lại không.
WordPress core và plugin hợp lệ dùng cron cho cập nhật, bài hẹn giờ, email và công việc nền. Cần xử lý có chọn lọc theo owner và bằng chứng.
Nguồn tham khảo chính thức
WordPress mô tả cơ chế trong Cron Plugin Handbook và cung cấp lệnh quản lý tại wp cron event.
Mã độc dùng lịch chạy để sống lại sau mỗi lần dọn
WP-Cron, system cron và queue của plugin đều có thể tải payload, tạo user hoặc chèn lại file. Đội ngũ xóa webshell buổi chiều nhưng sáng hôm sau thấy nó trở lại vì tác vụ nền chưa được kiểm tra.
Phân biệt job hợp lệ với persistence
Ghi hook, schedule, callback, nguồn plugin và thời điểm tạo. Job có tên vô nghĩa, callback trỏ tới file lạ, chạy dày bất thường hoặc xuất hiện ngoài lịch deploy cần ưu tiên. Nhưng không xóa mọi cron không nhận ra vì có thể làm hỏng đơn hàng, email và backup.
Điều tra cả nơi kích hoạt cron
WP-Cron có thể được gọi bởi traffic hoặc cron hệ thống; hosting cũng có scheduler riêng. Rà crontab của từng user, control panel, systemd timer và webhook ngoài. Sau khi gỡ, theo dõi outbound connection và file change để xác nhận payload không còn được tải lại.
Persistence bị loại khi job, nguồn tạo job và credential cho phép tạo lại đều đã được xử lý.
Cron hợp lệ cũng có thể bị lợi dụng
Attacker có thể sửa callback của job sẵn có hoặc payload mà job tải về, vì vậy tên hook quen thuộc chưa đủ an toàn. Kiểm tra code thực thi, argument, outbound destination và lịch sử thay đổi.
Giám sát sau khi gỡ
Theo dõi ít nhất qua nhiều chu kỳ dài nhất của scheduler. Một job chạy mỗi ngày hoặc mỗi tuần sẽ không lộ trong vài giờ kiểm thử. Ghi lại lần chạy dự kiến và xác nhận không có file/user mới xuất hiện.
Cụm điều tra mã độc WordPress
Đi từ dấu vết kỹ thuật đến kết luận có thể kiểm chứng.
Câu hỏi thường gặp
Hook cron lạ có chắc là mã độc không?
Không. Plugin hợp lệ tạo hook riêng; cần tìm callback và plugin sở hữu.
Có nên chạy thử cron nghi vấn?
Không trên production. Chỉ chạy trong môi trường cách ly sau khi hiểu callback.
Xóa toàn bộ WP-Cron có an toàn không?
Không. Core và plugin dùng cron cho nhiều tác vụ quan trọng; cần xử lý chọn lọc.
Cần điều tra website theo dữ liệu thực tế?
WebAnToan có thể rà log, file, database, cron và tài khoản để xác định phạm vi cùng thứ tự xử lý.



