Cảnh báo nghiêm trọng: Mã độc FireWood Linux chiếm quyền điều khiển

Nhóm nghiên cứu của Intezer đã công bố phát hiện về một biến thể mới của mã độc FireWood, một backdoor tinh vi được thiết kế cho hệ điều hành Linux với khả năng phát hiện cực thấp. Mã độc FireWood, ban đầu được các nhà nghiên cứu của ESET xác định, hoạt động như một trojan truy cập từ xa (RAT).
Biến thể mới nhất này duy trì các chức năng cốt lõi đã biết, nhưng tích hợp những cải tiến đáng kể về mặt triển khai và cấu hình. Những thay đổi này nhằm mục đích nâng cao khả năng lẩn tránh và hiệu quả hoạt động tổng thể của mã độc mà không làm thay đổi giao thức truyền thông cơ bản.
Tổng Quan Về Mã Độc FireWood và Đặc Điểm Kỹ Thuật
Mã độc FireWood thuộc về dòng mã độc “Project Wood”, có lịch sử hoạt động từ năm 2005. Nó được liên kết với các chiến dịch gián điệp phức tạp, điển hình là Operation TooHash. Mặc dù có những mối liên hệ ở mức độ tin cậy thấp đến nhóm tác nhân đe dọa dai dẳng (APT) Gelsemium, được cho là có liên quan đến Trung Quốc, nhưng những sự trùng lặp này có thể chỉ là do việc sử dụng chung các công cụ trong số nhiều nhóm tấn công.
Cơ Chế Hoạt Động và Mục Tiêu Chính của Backdoor
Điểm nổi bật của mã độc FireWood là khả năng triển khai các module rootkit ở cấp độ kernel, chẳng hạn như usbdev.ko. Điều này cho phép nó ẩn mình sâu trong hệ thống và duy trì sự hiện diện khó bị phát hiện.
Để đảm bảo liên lạc bí mật với các máy chủ điều khiển và kiểm soát (C2), mã độc FireWood sử dụng mã hóa dựa trên thuật toán TEA (Tiny Encryption Algorithm). Phương pháp mã hóa này giúp che giấu dữ liệu trao đổi giữa mã độc và máy chủ C2, làm phức tạp quá trình phân tích lưu lượng mạng của các nhà nghiên cứu bảo mật.
Thông thường, mã độc FireWood được cài đặt thông qua các web shell trên các máy tính để bàn Linux đã bị xâm nhập mạng. Một khi đã thiết lập được chỗ đứng, nó cung cấp cho kẻ tấn công quyền thực thi các lệnh tùy ý trên hệ thống mục tiêu. Điều này cho phép kẻ tấn công tiến hành thu thập và đánh cắp dữ liệu nhạy cảm, bao gồm chi tiết cấu hình hệ thống và thông tin xác thực quan trọng.
Mục tiêu cuối cùng của mã độc là duy trì sự hiện diện lâu dài trên các hệ thống bị xâm nhập để phục vụ các hoạt động gián điệp hoặc khai thác dữ liệu liên tục. Điều này thể hiện khả năng chiếm quyền điều khiển sâu rộng của nó.
Phân Tích Chi Tiết Biến Thể Mới của Mã Độc Linux FireWood
Trong biến thể cập nhật của mã độc FireWood, các thay đổi đáng kể đã được thực hiện để tinh giản chuỗi khởi động và tăng cường các chiến thuật né tránh. Khác với phiên bản cũ yêu cầu kiểm tra quyền rõ ràng thông qua CUser::IsSuc() ngay từ đầu quá trình thực thi, bản dựng mới này loại bỏ bước kiểm tra ban đầu này.
Việc xác thực quyền root hoặc kernel được trì hoãn cho đến sau khi tiến trình đã được daemon hóa (chạy nền) và Process ID (PID) của nó được lưu trữ. Điều này giúp mã độc khởi động nhanh hơn và tránh một số cơ chế phát hiện sớm.
Tối Ưu Hóa Quy Trình Khởi Động
Sự thay đổi này đạt được bằng cách chia chức năng SavePidAndCheckKernel() trước đây thành các bước riêng biệt và có mục đích rõ ràng hơn. Cụ thể, biến thể mới thực hiện một lệnh gọi ban đầu là SavePid(pid) để lưu PID của tiến trình.
Sau đó, nó gọi CModuleControl::AutoLoad() để tải các module cần thiết và CheckLkmLoad() để kiểm tra việc tải module kernel. Sự phân tách các bước này không chỉ làm rõ quy trình khởi tạo mà còn củng cố khả năng ẩn mình của mã độc dựa trên các module kernel.
// Minh họa cấu trúc khởi động (đơn giản hóa)
// Phiên bản cũ:
// int SavePidAndCheckKernel() {
// if (CUser::IsSuc()) {
// SavePid(getpid());
// // Thực hiện kiểm tra và tải kernel module
// }
// }
// Phiên bản mới của mã độc FireWood:
// void InitialExecution() {
// SavePid(getpid());
// // Trì hoãn việc xác thực kernel, chạy nền trước
// CModuleControl::AutoLoad(); // Tải các module tự động
// CheckLkmLoad(); // Kiểm tra tải kernel module
// }
Thay Đổi Trong Hành Vi Giao Tiếp Mạng
Các hành vi mạng của mã độc FireWood cũng đã được đơn giản hóa đáng kể. Phiên bản trước đây sử dụng cơ chế “beaconing” nhiều giai đoạn với độ trễ ngẫu nhiên và khoảng thời gian có thể cấu hình (ví dụ: số ngày giữa các beacon và delayTime) để né tránh phát hiện.
Trong biến thể mới, cơ chế này được thay thế bằng một vòng lặp while (true) đơn giản và trực tiếp hơn. Sau một độ trễ khởi động được cấu hình, mã độc sẽ liên tục gọi hàm ConnectToSvr() để thiết lập kết nối với máy chủ C2.
Nếu kết nối không thành công, mã độc sẽ tạm dừng trong một khoảng thời gian ngắn trước khi thử lại. Sự thay đổi này cho thấy sự ưu tiên cao hơn đối với việc thiết lập kết nối C2 một cách đáng tin cậy hơn là việc làm phức tạp quá trình liên lạc để né tránh.
Cải Tiến Khả Năng Thu Thập Thông Tin Hệ Thống
Việc thu thập thông tin hệ thống bởi mã độc FireWood cũng có một cải tiến nhỏ. Để tăng cường khả năng phát hiện hệ điều hành, biến thể mới thêm một cơ chế dự phòng.
Nếu tệp /etc/issue (thường chứa thông tin về hệ điều hành) không khả dụng, mã độc sẽ chuyển sang sử dụng /etc/issue.net. Tuy nhiên, quy trình phân tích và trích xuất thông tin từ các tệp này vẫn được giữ nguyên như phiên bản cũ.
Chi Tiết Cấu Hình Đường Dẫn Duy Trì Truy Cập (Persistence)
Cấu hình đường dẫn tệp để duy trì sự hiện diện trên hệ thống là một trong những điểm khác biệt đáng chú ý nhất giữa các phiên bản của mã độc FireWood.
- Đối với người dùng có quyền root, biến thể mới sử dụng các đường dẫn sau để duy trì truy cập:
- /etc/udev/rules.d/90-persistent-net.rules
- /etc/modprobe.d/usbdev.conf
- Đối với người dùng không phải root, các đường dẫn được thiết lập là:
- $HOME/.kde4/share/config/kdeglobals
- $HOME/.kde4/share/config/kde.conf
Sự lựa chọn các đường dẫn này khác biệt rõ rệt so với biến thể cũ. Biến thể cũ sử dụng /etc/udev/rules.d/70-persistent-net.rules và /etc/modprobe.d/usb-storage.conf cho người dùng root, và tệp $HOME/.bashrc cho người dùng không phải root. Sự thay đổi này có thể nhằm mục đích lẩn tránh các cơ chế phát hiện dựa trên dấu hiệu cũ.
Phát Triển Trong Xử Lý Lệnh và Chức Năng Mới
Biến thể mới của mã độc FireWood đã tinh chỉnh việc xử lý lệnh. Các ID lệnh lỗi thời, không còn phù hợp với hành vi mạng được đơn giản hóa của biến thể mới, đã bị loại bỏ. Chúng bao gồm 0x111, 0x113, 0x114 (liên quan đến điều chỉnh khoảng thời gian beacon) và 0x201 (dùng để đọc tệp).
Theo báo cáo phân tích từ Intezer, chức năng ẩn tiến trình (process-hiding) đã được chuyển từ ID lệnh 0x112 sang 0x202. Đồng thời, chức năng HideModule đã bị loại bỏ hoàn toàn. Một chức năng mới đáng chú ý là SetAutoKillEl (ID 0x160), giới thiệu khả năng tự động tiêu diệt (auto-kill) có thể bật hoặc tắt, cung cấp thêm tùy chọn kiểm soát cho kẻ tấn công.
Các Lệnh Chưa Được Tài Liệu và Khả Năng Exfiltration
Biến thể mới của mã độc FireWood vẫn giữ lại một số lệnh chưa được tài liệu chi tiết. Các lệnh này bao gồm 0x109, được sử dụng để thay đổi cấu hình kết nối của mã độc. Lệnh 0x192 dùng để thực thi các tệp được tải trực tiếp từ máy chủ C2 thông qua hàm CFileControl::FileUp và các lệnh gọi hệ thống, khác biệt so với lệnh 0x185 trước đây.
Một lệnh quan trọng khác là 0x195, được sử dụng chuyên biệt để đánh cắp (exfiltrate) các tệp có các phần mở rộng cụ thể như .v2, .k2, .W2 và drive.C2. Điều này cho thấy sự tập trung vào việc thu thập các loại dữ liệu cụ thể.
Điểm Chung Với Phiên Bản Cũ
Mặc dù có nhiều cải tiến, biến thể mới vẫn kế thừa một số đặc điểm từ các bản dựng trước đó, bao gồm các lỗi chính tả nhất quán. Ví dụ, các từ như “Destroy” trong tên phương thức và “Get Memory Faile” trong thông báo lỗi vẫn còn hiện diện, cho thấy sự tái sử dụng mã nguồn và liên kết chặt chẽ về mặt phát triển giữa các phiên bản của mã độc FireWood.
Chỉ Số Lây Nhiễm (IOCs) và Khuyến Nghị An Toàn
Do những thách thức trong quá trình thu thập và phân tích, tình trạng chi tiết của module kernel của biến thể mới vẫn chưa được xác nhận hoàn toàn. Tuy nhiên, những sửa đổi được ghi nhận cho thấy rằng việc phát triển mã độc FireWood đang hướng tới sự dễ bảo trì và khả năng thích ứng cao trong các kịch bản gián điệp phức tạp.
Mặc dù báo cáo công khai không cung cấp danh sách cụ thể các chỉ số lây nhiễm (IOCs) như hàm băm (hash) của tệp hoặc địa chỉ IP của máy chủ C2, nhưng các đường dẫn tệp mà mã độc FireWood sử dụng để duy trì sự hiện diện trên hệ thống là những chỉ số quan trọng cần được theo dõi chặt chẽ trên bất kỳ hệ thống Linux nào có dấu hiệu bị xâm nhập mạng.
Các đường dẫn IOCs đáng chú ý bao gồm:
- Đối với người dùng root:
- /etc/udev/rules.d/90-persistent-net.rules
- /etc/modprobe.d/usbdev.conf
- Đối với người dùng không phải root:
- $HOME/.kde4/share/config/kdeglobals
- $HOME/.kde4/share/config/kde.conf
Các quản trị viên hệ thống và chuyên gia an ninh mạng nên thường xuyên kiểm tra các đường dẫn này để phát hiện sớm các dấu hiệu bất thường. Việc này là một phần quan trọng của chiến lược phòng thủ chống lại các mối đe dọa dai dẳng như mã độc FireWood.
Nguồn Tham Khảo
Để tìm hiểu chi tiết hơn về phân tích kỹ thuật chuyên sâu của biến thể mới của mã độc FireWood, độc giả có thể tham khảo báo cáo gốc được công bố bởi Intezer: Intezer Threat Bulletin: FireWood Backdoor.









