Các chuyên gia nghiên cứu mối đe dọa nâng cao vừa phát hiện SLEEPWALKER, một loại rootkit/backdoor cực kỳ tinh vi chạy trong không gian nhân Linux (Kernel-space). Mã độc không mở bất kỳ cổng mạng nào, hoàn toàn tàng hình trước các lệnh kiểm tra netstat hay ss, và chỉ thức tỉnh khi nhận được một gói tin mạng chứa chữ ký mã hóa đặc biệt.
Bảng Thuộc Tính Kỹ Thuật:
| Tên Mã Độc | SLEEPWALKER (Linux.Kernel.Sleepwalker) |
| Vị Trí Cư Trú | Linux Kernel Module (LKM) / Netfilter Hook |
| Cơ Chế Kích Hoạt | Single Raw TCP/UDP Packet with Magic HMAC |
| Kiến Trúc Thực Thi | Custom Stack-Based Bytecode Virtual Machine |
1. Cơ Chế Tàng Hình Bằng Netfilter Hook
SLEEPWALKER được cài đặt dưới dạng một mô-đun nhân Linux tùy chỉnh. Nó đăng ký một hook trực tiếp tại tầng tiền định tuyến của Netfilter (NF_INET_PRE_ROUTING). Bằng cách chặn gói tin ở tầng thấp nhất của giao thức mạng, mã độc kiểm tra toàn bộ dữ liệu đi vào trước khi hệ điều hành hoặc tường lửa iptables/nftables kịp xử lý:
// Cấu trúc chặn gói tin mạng trong SLEEPWALKER Kernel Hook
static unsigned int sleepwalker_rx_hook(void *priv, struct sk_buff *skb, const struct nf_hook_state *state) {
struct iphdr *iph;
if (!skb) return NF_ACCEPT;
iph = ip_hdr(skb);
if (iph->protocol == IPPROTO_TCP) {
struct tcphdr *tcph = tcp_hdr(skb);
// Kiểm tra Magic Sequence và HMAC trong TCP Options / Payload
if (verify_sleepwalker_magic(skb, tcph)) {
// Đánh cắp gói tin, không chuyển tiếp cho ứng dụng phía trên
schedule_vm_execution(skb);
return NF_STOLEN;
}
}
return NF_ACCEPT;
}2. Máy Ảo Bytecode Tùy Chỉnh (Custom In-Kernel VM)
Điểm độc đáo nhất của SLEEPWALKER là thay vì chứa sẵn các chuỗi lệnh shell nguy hiểm dễ bị nhận diện bởi các giải pháp an ninh, gói tin kích hoạt mang theo một đoạn mã nhị phân (bytecode). Nhân Linux sẽ chạy một máy ảo ngăn xếp thu nhỏ để thông dịch đoạn bytecode này:
- Thực thi lệnh shell ẩn: Tạo tiến trình người dùng ngầm mà không để lại vết log trong
/var/log/auth.log. - Tải payload thứ cấp trực tiếp vào RAM: Không tạo file tạm thời trên ổ cứng (Fileless execution), chống lại tính năng quét file tĩnh của Antivirus.
- Chỉnh sửa quyền tiến trình: Nâng cấp tiến trình người dùng bình thường lên
uid=0,gid=0(Root privileges) bằng cách can thiệp trực tiếp vào cấu trúcstruct credtrong nhân.
3. Phương Pháp Phát Hiện & Gỡ Bỏ
- Kiểm tra danh sách mô-đun nhân ẩn: Sử dụng công cụ
unhide-linuxhoặcvolatilitytrên bản chụp bộ nhớ RAM để so sánh danh sách LKM thực tế với danh sách được trả về bởi lệnhlsmod. - Kiểm tra tính toàn vẹn của bảng Netfilter: Rà soát các địa chỉ con trỏ hàm đã đăng ký trong
nf_hooksđể phát hiện những địa chỉ trỏ ra ngoài phạm vi bộ nhớ của các mô-đun hợp lệ. - Khởi động an toàn (Secure Boot): Bật tính năng ký số bắt buộc cho Kernel Module (Module Signature Verification) để ngăn chặn việc tải các LKM không rõ nguồn gốc.