Phần mềm độc hại NKAbuse: Mối đe dọa mới với công nghệ Blockchain

08:54 | 12/01/2024

Trung tuần tháng 12, các nhà nghiên cứu của hãng bảo mật Kaspersky phát hiện một mối đe dọa đa nền tảng mới có tên là NKAbuse. Phần mềm độc hại này được viết bằng ngôn ngữ Golang, sử dụng công nghệ NKN (New Kind of Network) để trao đổi dữ liệu giữa các thiết bị mạng ngang hàng, được trang bị khả năng tạo backdoor và phát động các cuộc tấn công từ chối dịch vụ phân tán (DDoS), bên cạnh đó NKAbuse cũng có đủ sự linh hoạt để tạo các tệp nhị phân tương thích với nhiều kiến trúc khác nhau.

Tổng quan

NKN là một nền tảng kết nối các mạng lưới ngang hàng (P2P) vận hành bởi một Blockchain công khai. NKN sử dụng mô hình tặng thưởng nhằm khuyến khích người dùng chia sẻ kết nối mạng và tối ưu băng thông chưa sử dụng. Blockchain NKN hoạt động dựa trên cơ chế đồng thuận Proof-of-Work (PoW).

Phân tích của Kaspersky cho thấy mục tiêu chính của NKAbuse là các máy tính để bàn Linux. Tuy nhiên, xét về khả năng lây nhiễm vào hệ thống MISP và ARM, phần mềm độc hại này cũng có thể gây ra mối đe dọa cho các thiết bị IoT.

NKAbuse thiết lập tính bền vững trên hệ thống nạn nhân thông qua chương trình tiện ích Cronjob và tự động cài đặt vào thư mục chính của máy chủ. Khả năng của phần mềm độc hại này còn có thể tạo backdoor để truy cập vào vào công cụ quản trị từ xa và cung cấp nhiều tính năng khác.

Một loại mạng mới

Như đã đề cập, NKN hoạt động như một giao thức mạng ngang hàng, ưu tiên phân cấp và quyền riêng tư. Mạng NKN hiện có hơn 60.000 nút chính thức. Nó cung cấp các thuật toán định tuyến đa dạng được thiết kế để tối ưu hóa việc truyền dữ liệu bằng cách chọn đường đi nút ngắn nhất để đến đích dự định.

Hình 1. Sơ đồ định tuyến dữ liệu NKN

Trước đây đã có trường hợp những kẻ tấn công khai thác các giao thức liên lạc mới nổi như NKN để liên kết với các máy chủ ra lệnh và kiểm soát (C2) hoặc botmaster của chúng. Mối đe dọa này sử dụng Blockchain công khai NKN để thực hiện hàng loạt các cuộc tấn công DDoS Flood và hoạt động như một backdoor bên trong các hệ thống Linux.

Phân tích của Kaspersky cho thấy: trong cuộc tấn công NKAbuse các tin tặc đã khai thác một lỗ hổng cũ liên quan đến framework ứng dụng web nguồn mở Struts 2 (CVE-2017-5638 - Apache Struts2) với mục tiêu vào một công ty tài chính.

Hình 2. Nhật ký sự kiện từ Webservice bị khai thác

Hình 2 là nhật ký (log) từ Webservice bị khai thác, nó khá giống với thông tin được tham chiếu trong bằng chứng khái niệm (POC) về lỗ hổng thực thi mã từ xa S2-048. Lỗ hổng này cho phép kẻ tấn công thực thi các lệnh trên máy chủ bằng cách chuyển lệnh trong tiêu đề được xác định là “shell” và gửi hướng dẫn tới Bash để thực thi. Sau khi lỗ hổng bị khai thác, một lệnh sẽ được thực thi trên hệ thống để tải xuống tập lệnh ban đầu.

Phần mềm độc hại đa nền tảng

NKAbuse được cài đặt trên thiết bị của nạn nhân bằng cách thực thi tập lệnh shell từ xa được tải xuống và nội dung của tập lệnh shell setup[.]sh. Quá trình thiết lập sẽ kiểm tra loại hệ điều hành và tùy vào đó, nó sẽ tải xuống payload độc hại giai đoạn thứ hai. Phần mềm độc hại được tải xuống từ cùng một máy chủ và được đặt tên là app_linux_{ARCH}, trong đó “{ARCH}” là kiến ​​trúc hệ điều hành mục tiêu. Phần mềm độc hại được lưu vào thư mục /tmp rồi được thực thi. Có 8 kiến ​​trúc được lưu trữ trên máy chủ đó và được NKAbuse hỗ trợ, bao gồm: 386; arm64; arm; amd64; mips; mipsel; mips64; mips64el. Trong bài viết này sẽ tập trung vào phiên bản AMD64 (x86-64).

Sau khi được thực thi, NKAbuse sẽ kiểm tra xem đó có phải là phiên bản duy nhất đang chạy hay không và tự động di chuyển đến một vị trí an toàn. Thư mục được này là /root/.config/StoreService/.

Ngoài ra thư mục .cache cũng sẽ được tạo bên trong đường dẫn trên cùng với một số tệp khác. Sau đó, phần mềm độc hại lấy địa chỉ IP của máy bị nhiễm bằng cách gửi yêu cầu GET tới ifconfig[.]me, tải cấu hình mặc định để kiểm tra xem nó có nằm bên trong thư mục .cache và nếu không, sẽ tải một số cài đặt được mã hóa cứng nhất định.

Hình 3. Thiết lập cấu hình mặc định

Cấu hình này sau đó được lưu vào cấu trúc bộ đệm mới, chứa các cài đặt quan trọng được sử dụng lại nhiều lần, chẳng hạn như khóa bí mật (private key) được tạo. NKAbuse sử dụng Cronjob để duy trì sự hiện diện trên máy mục tiêu sau khi khởi động lại. Để đạt được điều này, nó cần phải được thực thi quyền root. Phần mềm độc hại này kiểm tra xem ID người dùng hiện tại có phải là 0 hay không và nếu có, NKAbuse sẽ tiến hành phân tích cú pháp crontab và tự thêm nó vào mỗi lần khởi động lại.

Phương thức liên lạc mới

NKAbuse sử dụng giao thức NKN để liên lạc với botmaster nhằm mục đích nhận và gửi thông tin. Để thực hiện điều này, payload độc hại sẽ tạo một tài khoản mới và một multiclient mới, cho phép nó gửi và nhận dữ liệu từ nhiều máy khách của nạn nhân cùng lúc, tăng độ tin cậy về hoạt động liên lạc với botmaster.

Tài khoản NKN được tạo bằng các tùy chọn cấu hình mặc định và sau đó multiclient được khởi tạo bằng mã định danh, trong mẫu của phân tích của Kaspersky là chuỗi string 64 ký tự đại diện cho khóa công khai (public key) và địa chỉ từ xa được phần mềm độc hại sử dụng.

Hình 4. NKAbuse thiết lập cấu trúc máy khách NKN với sự trợ giúp của khóa công khai được mã hóa cứng

Ngay sau khi máy khách được thiết lập và sẵn sàng nhận, gửi dữ liệu, phần mềm độc hại sẽ thiết lập một trình xử lý để chấp nhận các lệnh đến do botmaster gửi. Trình xử lý này chứa khoảng 42 trường hợp, mỗi trường hợp thực hiện các hành động khác nhau tùy thuộc vào “code” được gửi và chờ thêm lệnh. NKAbuse chứa một số tập lệnh và payload thực thi các cuộc tấn công DDoS.

Điều quan trọng cần lưu ý là kiểu tấn công payload cuối cùng sẽ chuyển hướng các kiểu tấn công khác. NKAbuse làm tràn ngập lưu lượng máy chủ DNS với các yêu cầu DNS rác (bản ghi AAAA), khiến máy chủ này phải cố gắng giải quyết “{JUNK }.google.com”, trong đó {JUNK} là tên miền phụ được tạo ngẫu nhiên trong định dạng “0-9a-zA-Z”.

Backdoor có chức năng RAT

NKAbuse có nhiều tính năng để trở thành một backdoor mạnh mẽ hoặc một trojan truy cập từ xa (RAT), chứ không chỉ là một công cụ DDoS. Trên thực tế, hầu hết các lệnh của NKAbuse được sử dụng để duy trì, thực thi lệnh bổ sung hoặc thu thập thông tin.

Phầm mềm độc hại thiết lập một cấu trúc có tên là Heartbeat, cấu trúc này sẽ liên lạc định kỳ với botmaster. Heartbeat chứa một số cấu trúc khác lưu trữ thông tin về máy chủ bị nhiễm như: PID, địa chỉ IP của nạn nhân, bộ nhớ trống, cấu hình hiện tại,…

Một tính năng khác của NKAbuse là khả năng tạo ảnh chụp màn hình của máy bị nhiễm. Phầm mềm độc hại này sử dụng một dự án mã nguồn mở để xác định giới hạn hiển thị, sau đó chụp ảnh màn hình hiện tại và chuyển đổi sang định dạng ảnh PNG, sau đó gửi cho botmaster.

Hình 5. Tính năng chụp ảnh màn hình

NKAbuse cũng có thể tạo các tệp có nội dung cụ thể, xóa khỏi hệ thống tệp và tìm nạp danh sách tệp từ một đường dẫn bất kỳ. Phần mềm độc hại có thể lấy danh sách các tiến trình đang chạy trong hệ thống và thậm chí cả danh sách chi tiết các giao diện mạng (interface) có sẵn. Một tính năng phổ biến khác khiến NKAbuse trở thành một backdoor mạnh mẽ là khả năng chạy các lệnh hệ thống. Chúng được thực thi thay mặt cho người dùng hiện tại và đầu ra được gửi qua NKN tới botmaster.

Kết luận

NKAbuse được triển khai bằng ngôn ngữ lập trình Golang với mục tiêu xâm nhập trên hệ thống Linux, bao gồm các thiết bị IoT tại Colombia, Mexico và Việt Nam. Các công cụ có khả năng phát tán DDoS và là một backdoor đa nền tảng mới như NKAbuse nổi bật nhờ việc sử dụng các giao thức liên lạc ít phổ biến hơn. Phần mềm độc hại đặc biệt này dường như đã được thiết kế tỉ mỉ để tích hợp vào mạng botnet và có thể thích ứng với chức năng như backdoor trong một máy chủ cụ thể.

Việc sử dụng công nghệ Blockchain đảm bảo cả độ tin cậy và tính ẩn danh, điều này cho thấy tiềm năng của mạng botnet này sẽ mở rộng theo thời gian, dường như không có bộ điều khiển trung tâm có thể nhận dạng được. Ngoài ra, các nhà nghiên cứu đã xác nhận rằng NKAbuse không có chức năng tự lan truyền, điều đó có nghĩa là vectơ lây nhiễm ban đầu được phân phối bởi người khai thác lỗ hổng để triển khai mẫu.