Phát hiện Rootkit trên Linux: Công cụ và Kỹ thuật
10 phút đọc - 16 tháng 5, 2026

Cách phát hiện và ngăn chặn các rootkit trên Linux bằng cách sử dụng chkrootkit, rkhunter, Auditd, AIDE và giám sát hành vi trên các máy chủ của bạn.
Phát hiện Rootkit trên Linux: Công cụ và Kỹ thuật cho Bảo mật Máy chủ
Rootkit cung cấp cho kẻ tấn công quyền truy cập ẩn và liên tục vào hệ thống Linux. Chúng thao túng các hoạt động của kernel, ẩn các tệp và quy trình, đồng thời né tránh các công cụ bảo mật tiêu chuẩn. Một số rootkit đã tồn tại mà không bị phát hiện trong nhiều năm. Việc phát hiện chúng đòi hỏi một phương pháp tiếp cận nhiều lớp, vì không có công cụ nào có thể phát hiện tất cả mọi thứ.
Bài viết này đề cập đến các loại rootkit Linux chính, cách quét chúng và các kỹ thuật giám sát nâng cao giúp phát hiện những gì các trình quét cơ bản bỏ sót.
Các loại rootkit trên Linux
Rootkit hoạt động ở các cấp độ đặc quyền khác nhau, và càng ở sâu thì càng khó phát hiện.
Rootkits chế độ người dùng chạy ở cấp độ ứng dụng (Ring 3). Chúng chiếm quyền điều khiển liên kết động bằng cách sử dụng LD_PRELOAD để chèn các thư viện độc hại chặn các hàm thư viện C tiêu chuẩn như readdir hoặc fopen, ẩn các tệp và quy trình khỏi các công cụ ở chế độ người dùng.
Rootkits chế độ nhân chạy ở Ring 0 bằng cách tải dưới dạng Các mô-đun nhân có thể tải (LKMs). Chúng chặn các cuộc gọi hệ thống, thao túng bộ nhớ nhân và ẩn sự hiện diện của chính mình. Vì chúng gắn liền với các phiên bản nhân cụ thể, một rootkit được cấu hình sai có thể gây ra lỗi nhân (kernel panic), điều này lại vô tình lộ ra sự tồn tại của nó.
rootkit dựa trên eBPF khai thác hệ thống con Extended Berkeley Packet Filter để chạy trong không gian nhân mà không cần tải mô-đun truyền thống. Chúng gắn vào các điểm móc lệnh hệ thống, điểm theo dõi hoặc sự kiện LSM. Các trình quét LKM tiêu chuẩn sẽ không phát hiện được chúng. Boopkit là một bản chứng minh khái niệm nổi tiếng tạo ra kênh C2 bí mật bằng cách tiếp cận này.
các rootkit dựa trên io_uring là biến thể mới nhất. Chúng sử dụng giao diện I/O không đồng bộ io_uring để xử lý các thao tác theo lô, tạo ra ít sự kiện syscall có thể quan sát được hơn. RingReaper, một rootkit thử nghiệm, đã chứng minh cách thức này có thể thay thế âm thầm các lệnh như read, write và connect trong khi tránh được các công cụ EDR.
| Loại rootkit | Mức đặc quyền | Phương pháp móc nối | Độ khó phát hiện |
|---|---|---|---|
| Chế độ người dùng | Vòng 3 (Người dùng) | LD_PRELOAD, chiếm quyền thư viện | Trung bình |
| Chế độ nhân | Vòng 0 (Hạt nhân) | Bảng syscall, LKM, hooking nội tuyến | Cao |
| dựa trên eBPF | Vòng 0 (Hạt nhân) | gắn chương trình eBPF | Rất cao |
| dựa trên io_uring | Người dùng/Hạt nhân | Gộp I/O không đồng bộ | Rất cao |
Quét bằng chkrootkit và rkhunter
Hai công cụ này là nền tảng cơ bản để phát hiện rootkit trên máy chủ Linux: chkrootkit để quét nhanh và rkhunter để kiểm tra sâu hơn.
chkrootkit
chkrootkit là một tập lệnh shell kiểm tra các tệp nhị phân quan trọng của hệ thống (ls, ps, netstat, sshd, ifconfig) để tìm dấu hiệu bị can thiệp. Nó cũng phát hiện các giao diện mạng ở chế độ promiscuous và các nhật ký bị xóa. Tính đến phiên bản 0.59 (tháng 1 năm 2026), nó có thể xác định hơn 75 rootkit, sâu máy tính và LKM, bao gồm các mối đe dọa mới hơn như Linux BPFDoor, Syslogk và XZ Backdoor.
Hãy chạy công cụ này sau bất kỳ hoạt động đáng ngờ nào. Hãy chú ý đến các cảnh báo từ thành phần ifpromisc và các thông báo về các tệp lastlog hoặc wtmp bị xóa.
rkhunter
rkhunter đi xa hơn. Nó so sánh các giá trị băm SHA-1 của các tệp nhị phân hệ thống với các giá trị đã biết là an toàn, giám sát quyền truy cập tệp và các tệp ẩn, kiểm tra cấu hình khởi động, và thực hiện phân tích nhân hệ điều hành và mạng.
Cài đặt đúng cách ngay từ đầu:
# Establish a baseline after a clean install or update
rkhunter --propupd
# Update rootkit definitions
rkhunter --update
# Run a full scan (use --novl on production servers to reduce I/O)
rkhunter --check --enable all
Để quét tự động hàng ngày, hãy đặt CRON_DAILY_RUN="true" trong /etc/rkhunter.conf và sử dụng --skip-keypress và --report-warnings-only để có kết quả rõ ràng. Xem lại nhật ký tại /var/log/rkhunter.log và thêm các kết quả dương tính giả đã được xác nhận vào danh sách trắng.
Phát hiện rootkit LKM
Các rootkit LKM đặc biệt nguy hiểm vì chúng hoạt động như các tiện ích mở rộng kernel, chặn các lệnh hệ thống và ẩn các tiến trình ở cấp kernel. Các công cụ tiêu chuẩn như lsmod sẽ không phát hiện được chúng, nhưng vẫn có cách để phát hiện chúng.
So sánh kết quả của lsmod với danh sách trong /sys/module /. Kiểm tra nhật ký hệ thống để tìm các thông báo nhân hệ thống đáng ngờ:
# Look for out-of-tree module warnings
sudo dmesg | grep "loading out-of-tree module taints kernel"
# Check for module verification failures
grep "module verification failed" /var/log/syslog
# Run chkrootkit's LKM-specific check
sudo chkrootkit lkm
Ngay cả các rootkit ẩn khỏi lsmod và /proc/modules (như Diamorphine) vẫn có thể được phát hiện bằng cách kiểm tra /sys/module/diamorphine/coresize hoặc xem xét các cảnh báo trong syslog.
Phát hiện nâng cao: Giám sát hành vi và kiểm tra tính toàn vẹn
Các trình quét tĩnh có một điểm yếu cơ bản. Trong một thí nghiệm năm 2026, việc thêm một byte null duy nhất vào tệp nhị phân rootkit, một thay đổi không ảnh hưởng đến chức năng, đã làm giảm tỷ lệ phát hiện một cách đáng kể. Tỷ lệ phát hiện của Diamorphine giảm từ 33/66 xuống 8/64 chỉ bằng cách loại bỏ các bảng ký hiệu của nó. Chỉ dựa vào các chữ ký là không đủ.
Phân tích hành vi
Thay vì hỏi "tệp này có khớp với một rootkit đã biết không?", phân tích hành vi hỏi "quá trình này có đang thực hiện điều gì bất thường không?" Hãy theo dõi các tín hiệu sau:
- Sử dụng Auditd để theo dõi các lệnh gọi hệ thống
init_module()vàfinit_module(), vốn tải các mô-đun nhân hệ thống bất kể phương thức nào. - Theo dõi các lệnh gọi
kill()với các tín hiệu trên 31, điều này có thể cho thấy hoạt động giao tiếp ngầm của rootkit. - Kiểm tra
/proc/sys/kernel/taintedđể phát hiện hoạt động mô-đun kernel trái phép. - Theo dõi các tệp
.sobất thường trong/tmphoặc/dev/shm. - Theo dõi hoạt động eBPF, đặc biệt là các lệnh gọi
bpf_probe_write_user. Các công cụ như BCC có thể theo dõi các hoạt động io_uring thông qua các điểm theo dõi nhưsys_enter_io_uring_enter.
Đối với các rootkit eBPF và io_uring cụ thể, các công cụ giám sát thời gian chạy như Tetragon, Falco và Tracee có thể quan sát hoạt động trong nhân hệ điều hành theo thời gian thực.
Giám sát tính toàn vẹn tệp
AIDE (Advanced Intrusion Detection Environment) tạo ra một cơ sở dữ liệu các tệp hệ thống đáng tin cậy và kiểm tra các thay đổi. Khởi tạo bằng lệnh aide --init, sau đó lên lịch kiểm tra bằng aide --check thông qua cron. Công cụ này theo dõi tổng kiểm tra (checksum), quyền truy cập, quyền sở hữu và dấu thời gian trên các tệp nhị phân quan trọng như /bin/login và /usr/bin/sshd.
Để xác minh ở cấp độ gói, debsums (Debian/Ubuntu) hoặc rpm -Va (RHEL/CentOS) có thể xác nhận tính toàn vẹn của tệp hệ thống. Để có kết quả đáng tin cậy nhất, hãy khởi động từ phương tiện cứu hộ đáng tin cậy và kiểm tra hệ thống tệp ngoại tuyến, vì rootkit có thể can thiệp vào báo cáo của kernel đang chạy.
Cũng cần theo dõi các cơ chế duy trì. Rootkit thường sửa đổi /etc/ld.so.preload để chèn các đối tượng chia sẻ, hoặc thay đổi .bashrc và .profile. Các thay đổi hợp lệ đối với các tệp này rất hiếm, do đó các cảnh báo ở đây có tỷ lệ tín hiệu trên nhiễu cao.
Giám sát tự động với Auditd
Thêm các quy tắc này vào /etc/audit/rules.d/rootkit.rules để phát hiện theo thời gian thực các hoạt động đáng ngờ của kernel:
# Detect unauthorized kernel module loading
-a always,exit -F arch=b64 -S finit_module -S init_module
# Catch unusual high-range kill signals
-a always,exit -F arch=b64 -S kill -F a1>=32
Kết hợp các quy tắc này với các bản cập nhật tự động của rkhunter. Đặt UPDATE_MIRRORS=1 và MIRRORS_MODE=0 trong tệp cấu hình, và chạy rkhunter --propupd sau khi hệ thống được cập nhật hợp lệ để làm mới cơ sở dữ liệu.
Tăng cường bảo mật máy chủ chống lại rootkit
Phát hiện là quan trọng, nhưng phòng ngừa còn tốt hơn. Hầu hết các rootkit đều yêu cầu quyền truy cập cao để cài đặt, vì vậy việc giảm bề mặt tấn công sẽ mang lại hiệu quả thực sự.
Luôn cập nhật kernel và các gói phần mềm. Kẻ tấn công khai thác các lỗ hổng chưa được vá để nâng cao đặc quyền và triển khai các rootkit dựa trên LKM hoặc eBPF. Sau khi vá lỗi, hãy cập nhật các tiêu chuẩn phát hiện của bạn bằng rkhunter --propupd.
Áp dụng nguyên tắc đặc quyền tối thiểu. Không cấp cho người dùng hoặc quy trình quyền truy cập nhiều hơn mức cần thiết. Sử dụng SELinux hoặc AppArmor để kiểm soát truy cập bắt buộc, giúp chặn các hành động trái phép ngay cả khi quy trình bị xâm nhập.
Vô hiệu hóa việc tải mô-đun kernel sau khi khởi động. Trên các máy chủ chuyên dụng, bạn có thể ngăn chặn hoàn toàn các rootkit LKM bằng cách khóa việc tải mô-đun sau khi hệ thống khởi động. Điều này là không thể trên máy chủ chia sẻ, đó là một trong những lý do tại sao môi trường chuyên dụng hoặc VPS mang lại khả năng bảo mật mạnh mẽ hơn.
Phân đoạn mạng của bạn. Việc cô lập các phần của cơ sở hạ tầng sẽ hạn chế sự di chuyển ngang nếu một máy bị xâm nhập.
Kiểm tra thường xuyên. Các công cụ như Lynis có thể xác định các lỗi quyền và cấu hình sai trước khi kẻ tấn công khai thác chúng.
Kết luận
Rootkit được thiết kế để ẩn mình ngay trước mắt. Khi các triệu chứng xuất hiện, hệ thống có thể đã bị xâm nhập đến mức không thể phục hồi dễ dàng. Không có trình quét nào có thể phát hiện tất cả mọi thứ, và việc phát hiện dựa trên chữ ký cơ bản rất dễ bị lách luật.
Một biện pháp phòng thủ thực tế kết hợp nhiều lớp:
- Quét thường xuyên bằng chkrootkit và rkhunter để phát hiện các mối đe dọa đã biết
- Các quy tắc auditd và giám sát hành vi để phát hiện hoạt động đáng ngờ của kernel
- Giám sát tính toàn vẹn tệp bằng AIDE để phát hiện các thay đổi trái phép
- Các công cụ thời gian chạy như Tetragon hoặc Falco để phát hiện các mối đe dọa eBPF và io_uring
- Kiểm soát truy cập được tăng cường, vá lỗi và phân đoạn mạng để giảm diện tích tấn công
Tự động hóa những gì có thể, duy trì các bản cơ sở cập nhật và bắt đầu từ một bản cài đặt hệ điều hành sạch mà bạn tin tưởng.
FDC Servers cung cấp dịch vụ lưu trữ máy chủ chuyên dụng và VPS với quyền truy cập root đầy đủ và cấu hình kernel có thể tùy chỉnh. Khám phá các tùy chọn máy chủ chuyên dụng để xây dựng một môi trường Linux được tăng cường bảo mật.

Bạn đã chán ngán với việc triển khai chậm chạp hoặc giới hạn băng thông? FDC Servers cung cấp nguồn điện chuyên dụng ngay lập tức, phạm vi toàn cầu và các gói linh hoạt được thiết kế cho mọi quy mô.
Nâng cấp ngay
Danh sách kiểm tra tăng cường bảo mật máy chủ Linux
Danh sách kiểm tra từng bước để tăng cường bảo mật cho máy chủ Linux. Bao gồm SSH, tường lửa, vá lỗi, quyền truy cập tệp, SELinux/AppArmor và ghi nhật ký kiểm tra
15 phút đọc - 8 tháng 5, 2026
hướng dẫn sử dụng iperf3: Kiểm tra tốc độ mạng trên Linux & Windows
10 phút đọc - 7 tháng 5, 2026

Bạn có thắc mắc hoặc cần giải pháp tùy chỉnh?
Các tùy chọn linh hoạt
Phạm vi toàn cầu
Triển khai ngay lập tức
Các tùy chọn linh hoạt
Phạm vi toàn cầu
Triển khai ngay lập tức