Tại sao server của bạn có thể đang bị “theo dõi” ngầm?
Hãy tưởng tượng: CPU server bỗng dưng vọt lên 80-90%, băng thông mạng tiêu tốn hàng chục Mbps dù chẳng có mấy user truy cập. Bạn vội vàng gõ lệnh top hoặc htop để kiểm tra nhưng mọi thứ trông vẫn rất “sạch sẽ”. Nếu gặp tình trạng này, khả năng cao server của bạn đã dính Rootkit.
Rootkit không phá hoại kiểu “ầm ĩ” như virus. Mục tiêu tối thượng của nó là sự tàng hình. Nó có khả năng thao túng các lệnh hệ thống cơ bản như ls (liệt kê file), ps (xem tiến trình) hay netstat để che giấu chính mình. Khi đó, chính các công cụ bạn tin tưởng nhất lại đang “nói dối” bạn về tình trạng thực tế của máy chủ.
Để đối phó với những kẻ ẩn mình này, mình thường dùng bộ đôi “bài trùng” Chkrootkit và Rkhunter. Đây là hai công cụ mã nguồn mở, nhẹ nhưng cực kỳ lợi hại trong việc vạch mặt mã độc lẩn khuất sâu trong nhân hệ điều hành.
Rootkit thực sự làm gì trên hệ thống?
Ngay khi chiếm được quyền root, hacker sẽ cài Rootkit để duy trì cửa hậu (backdoor) và xóa sạch dấu vết (log cleaner). Rootkit can thiệp trực tiếp vào tầng Kernel hoặc các thư viện hệ thống (LKM – Loadable Kernel Modules). Việc phát hiện bằng mắt thường gần như là bất khả thi. Bạn cần những công cụ quét chuyên sâu để đối chiếu dữ liệu hệ thống với hàng nghìn mẫu chữ ký (signatures) mã độc đã biết.
Chkrootkit: Kiểm tra nhanh trong “một nốt nhạc”
Chkrootkit (Check Rootkit) thực chất là một bộ shell script gọn nhẹ. Nó thực hiện quét nhanh các file thực thi để tìm dấu hiệu của hơn 70 loại Rootkit phổ biến. Ưu điểm lớn nhất là tốc độ; bạn có thể biết kết quả sơ bộ chỉ sau vài giây.
Cài đặt Chkrootkit
Trên Debian hoặc Ubuntu, bạn cài đặt rất nhanh qua apt:
sudo apt update
sudo apt install chkrootkit -y
Với các dòng CentOS/RHEL, hãy bật kho EPEL trước khi cài:
sudo yum install epel-release -y
sudo yum install chkrootkit -y
Cách sử dụng thực tế
Để bắt đầu quét toàn bộ hệ thống, hãy chạy lệnh:
sudo chkrootkit
Màn hình sẽ hiện ra một loạt bài kiểm tra. Nếu mọi thứ ổn, bạn sẽ thấy dòng not infected. Ngược lại, nếu xuất hiện chữ INFECTED màu đỏ, đó là tín hiệu báo động đỏ cho server của bạn.
Mẹo nhỏ: Để không phải căng mắt nhìn hàng trăm dòng text, hãy lọc trực tiếp các cảnh báo quan trọng:
sudo chkrootkit | grep INFECTED
Rkhunter: “Thám tử” soi từng dấu vân tay hệ thống
Nếu Chkrootkit là một bài test nhanh, thì Rkhunter (Rootkit Hunter) giống như một cuộc khám nghiệm pháp y chuyên sâu. Rkhunter không chỉ tìm chữ ký mã độc mà còn băm nhỏ (hash) các file hệ thống bằng thuật toán SHA-1 để so sánh với cơ sở dữ liệu tin cậy.
Cài đặt Rkhunter
sudo apt install rkhunter -y
Thiết lập mốc an toàn ban đầu
Trước khi chạy lần đầu, bạn bắt buộc phải cập nhật dữ liệu để Rkhunter có “thước đo” chuẩn:
- Cập nhật cơ sở dữ liệu mã độc:
sudo rkhunter --update - Chụp lại trạng thái file hệ thống hiện tại:
sudo rkhunter --propupd
Bước --propupd cực kỳ quan trọng. Nó tạo ra một bản snapshot về các file hệ thống sạch. Sau này, nếu hacker âm thầm thay thế file /bin/ls bằng một bản chỉnh sửa, Rkhunter sẽ phát hiện ngay lập tức vì mã hash đã thay đổi.
Kinh nghiệm bảo mật: Khi setup server mới, mình luôn dùng trình tạo mật khẩu tại toolcraft.app/vi/tools/security/password-generator. Công cụ này chạy hoàn toàn trên trình duyệt nên rất an toàn, giúp bạn có mật khẩu đủ mạnh để chặn đứng các cuộc tấn công Brute-force ngay từ vòng ngoài.
Tiến hành quét sâu
Dùng lệnh sau để bắt đầu truy quét:
sudo rkhunter --check --sk
Tham số --sk (skip-keypress) giúp quá trình quét chạy tự động mà không bắt bạn phải nhấn Enter liên tục. Bạn có thể xem lại báo cáo chi tiết bất cứ lúc nào tại file /var/log/rkhunter.log.
Phân biệt cảnh báo nhầm (False Positives)
Rkhunter rất nhạy bén, đôi khi nó sẽ báo Warning ngay cả khi bạn vừa chạy apt upgrade. Việc cập nhật phiên bản phần mềm mới sẽ làm thay đổi mã hash của file, khiến Rkhunter nghi ngờ.
Nếu bạn chắc chắn thay đổi đó là an toàn, hãy cập nhật lại mốc so sánh mới:
sudo rkhunter --propupd
Tự động hóa bảo mật với Cronjob
Thay vì phải nhớ để gõ lệnh mỗi tuần, hãy để server tự làm việc đó vào lúc 3 giờ sáng khi mọi người đang ngủ. Bạn chỉ cần nhận email nếu có vấn đề.
Tạo file script tại /etc/cron.daily/rkhunter-scan:
#!/bin/bash
/usr/bin/rkhunter --versioncheck --nocolor --quiet
/usr/bin/rkhunter --update --nocolor --quiet
/usr/bin/rkhunter --check --cronjob --report-warnings-only | mail -s "Cảnh báo Rootkit hàng ngày - $(hostname)" [email protected]
Nhớ cấp quyền thực thi cho script: sudo chmod +x /etc/cron.daily/rkhunter-scan.
Lời kết từ kinh nghiệm thực chiến
Dù mạnh mẽ đến đâu, Rkhunter và Chkrootkit cũng chỉ là công cụ hỗ trợ. Bảo mật là một cuộc đua không hồi kết. Nếu Rootkit đã lây nhiễm ở mức sâu nhất của Kernel, nó vẫn có thể qua mặt được các trình quét này.
Lời khuyên của mình dành cho anh em:
- Phòng thủ chủ động: Luôn cài đặt các bản vá lỗi (patch) ngay khi có thể.
- Quét định kỳ: Thiết lập quét tự động hàng ngày để phát hiện sớm nhất các thay đổi lạ.
- Biết khi nào nên từ bỏ: Nếu server dính quá nhiều cảnh báo nghiêm trọng, đừng cố gắng “tẩy não” nó. Cách an toàn nhất là sao lưu dữ liệu sạch và cài lại hệ điều hành mới hoàn toàn.
Hy vọng bài viết này giúp anh em có thêm vũ khí để bảo vệ “đứa con tinh thần” của mình trước những đòn tấn công từ thế giới ngầm.

