Nội dung bài viết
Ngày 05/11/2026, nhóm nghiên cứu XLab (thuộc QiAnXin) công bố một loại mã độc nhắm vào CWP (Control Web Panel), panel quản trị hosting miễn phí trước đây có tên CentOS Web Panel. Kẻ tấn công thay file chạy cwpsrv, tức máy chủ web phục vụ chính giao diện CWP, bằng một bản đã cài cửa hậu (backdoor).
CWP được nhiều người dùng trên VPS giá rẻ vì miễn phí và có giao diện giống cPanel. Theo bài báo, hơn 340.000 máy CWP đang mở ra Internet trong tháng qua. Nếu bạn quản trị VPS chạy CWP, hãy kiểm tra ngay theo hướng dẫn bên dưới.
Tóm tắt nhanh
| Mục | Chi tiết |
|---|---|
| Thành phần bị nhắm tới | File cwpsrv của CWP, các bản 1.15.10 và 1.24.0 |
| Loại sự cố | Mã độc cài cửa hậu, không phải lỗ hổng có mã CVE |
| Cách bị cài | Một script giả làm trình cập nhật thay file cwpsrv gốc. Chưa rõ kẻ tấn công vào máy chủ bằng cách nào để chạy script này |
| Mức độ nguy hiểm | Cao: kẻ tấn công điều khiển máy chủ từ xa, việc này khó bị phát hiện qua log |
| Phát hiện bởi | XLab (QiAnXin) |
| Phần mềm diệt virus | Khi được tải lên VirusTotal, file độc không bị phần mềm nào phát hiện |
Cửa hậu hoạt động thế nào?
Bản cwpsrv bị sửa vẫn chạy giao diện CWP bình thường, nên quản trị viên khó nhận ra có gì khác. Cửa hậu nằm im cho tới khi nhận một request có header HTTP đặc biệt tên X-Ngx-Integrity-Data, đi kèm hai header X-Ngx-Integrity-Time và X-Ngx-Integrity-Sig.
Một số điểm đáng chú ý:
- Lệnh được mã hóa (AES-256) và ký số (RSA). Chỉ người có khóa riêng của kẻ tấn công mới ra lệnh được. Người khác quét thấy cũng không dùng lại được.
- Request chỉ có hiệu lực trong khoảng 5 phút quanh thời điểm gửi, để chống phát lại.
- Cửa hậu xóa chính request kích hoạt khỏi access log và dọn các dấu vết khác. Vì vậy xem log truy cập không đủ để biết máy có bị dính hay không.
Tên header và tên socket đều có chữ "Ngx", bắt chước tên của Nginx để trông giống thành phần hợp lệ khi quản trị viên lướt qua.
XLab tìm thấy file độc (tên cwpsrv.suspeito) trong cùng một kho mẫu với Ebury, một mã độc chuyên đánh cắp tài khoản SSH trên máy chủ Linux. Tuy vậy, chưa có kết luận hai mã độc này do cùng một nhóm phát tán.
Cách kiểm tra máy chủ CWP
Đăng nhập SSH bằng quyền root và kiểm tra 3 dấu hiệu sau.
1. Socket lạ ngx_http_integrity_helper:
ss -xlp | grep ngx_http_integrity_helper
find / -name "*ngx_http_integrity_helper*" 2>/dev/null
2. Chuỗi X-Ngx-Integrity nằm trong file chạy cwpsrv:
for f in $(find / -type f -name "cwpsrv*" 2>/dev/null); do
grep -l "X-Ngx-Integrity" "$f"
done
Lệnh in ra tên file nào thì file đó đã bị thay bằng bản có cửa hậu.
3. Tiến trình phụ đáng ngờ của cwpsrv:
ps -ef --forest | grep -i cwpsrv
So sánh với một máy CWP sạch (nếu có) để nhận ra tiến trình lạ chạy dưới cwpsrv.
Kết quả:
- Không thấy cả 3 dấu hiệu: máy nhiều khả năng chưa bị cài bản
cwpsrvnày. Vẫn nên nâng cấp CWP lên bản mới nhất. - Thấy bất kỳ dấu hiệu nào: coi như máy chủ đã bị chiếm, làm theo phần dưới.
Nếu máy chủ đã bị cài cửa hậu
- Thay file
cwpsrvbằng bản gốc và nâng cấp CWP lên bản mới nhất. - Đổi toàn bộ mật khẩu: tài khoản root, tài khoản quản trị CWP, tài khoản hosting của từng website, mật khẩu database, tài khoản FTP và email trên máy.
- Thay khóa SSH và xem lại file
~/.ssh/authorized_keyscủa root và các user, xóa khóa lạ. Bước này quan trọng vì mã độc được tìm thấy cùng Ebury, loại chuyên trộm tài khoản SSH. - Tìm mã độc khác: kiểm tra cron job, dịch vụ systemd lạ, và các file
.phpmới xuất hiện trong thư mục website (webshell). - Nếu không chắc đã dọn sạch, cách an toàn nhất là dựng máy chủ mới, rồi chuyển dữ liệu website từ bản sao lưu trước thời điểm bị nhiễm sang.
Kẻ tấn công đã có quyền chạy lệnh trên máy chủ thì có thể đã đọc file wp-config.php hay .env của các website trên đó. Vì vậy, nên đổi cả khóa API và secret mà các website đang dùng (cổng thanh toán, dịch vụ gửi mail, lưu trữ đám mây).
Giảm rủi ro cho máy chủ dùng panel hosting
Panel hosting như CWP, cPanel, aaPanel hay CyberPanel nắm quyền root trên máy chủ, nên bị chiếm panel là mất toàn bộ máy. Một vài việc nên làm thường xuyên:
- Không mở cổng quản trị panel ra Internet. Giới hạn theo IP bằng tường lửa, hoặc chỉ truy cập qua VPN hay SSH tunnel. Với CWP, đó là cổng 2030, 2031 (trang quản trị) và 2082, 2083 (trang người dùng).
- Chỉ cập nhật panel từ kênh chính thức. Không chạy script "cập nhật" hay "tối ưu" tải từ diễn đàn hoặc gửi qua tin nhắn.
- Tắt đăng nhập SSH bằng mật khẩu, chỉ dùng khóa SSH.
- Sao lưu ra ngoài máy chủ để có thể dựng lại khi cần.
Cũng nên nhớ rằng CWP là dự án nhỏ, nhịp cập nhật chậm hơn các panel thương mại. Đây không phải lần đầu CWP bị nhắm tới: đầu năm 2023, lỗ hổng CVE-2022-44877 trong CWP từng bị khai thác hàng loạt. Nếu đang chọn panel cho máy chủ mới, hãy cân nhắc yếu tố này.
Nguồn tham khảo: BleepingComputer, nghiên cứu của XLab (QiAnXin).