Giải mã mạng botnet NoaBot nhắm mục tiêu khai thác tiền điện tử
Tổng quan
Một mạng botnet mới có tên là NoaBot dựa trên mã nguồn của Mirai đã phát triển trong năm 2023 thông qua tấn công từ điển đăng nhập SSH, đồng thời triển khai phần mềm độc hại khai thác tiền điện tử trên các máy chủ Linux. Điều đáng chú ý, các nhà nghiên cứu cũng nhận thấy trong chiến dịch NoaBot, các tin tặc đã sử dụng Worm P2PInfect tiên tiến hơn để khai thác các phiên bản Redis.
Điều khiến biến thể mới vượt trội so với các chiến dịch dựa trên botnet Mirai tương tự khác là nó không chứa bất kỳ thông tin nào về nhóm khai thác hoặc địa chỉ ví, do đó không thể đánh giá lợi nhuận của kế hoạch khai thác tiền điện tử bất hợp pháp.
Với Mirai, đây là một botnet được sử dụng trong các cuộc tấn công từ chối dịch vụ phân tán (DDoS) và thường nhắm mục tiêu vào các thiết bị Internet vạn vật (IoT) trên Linux. Mirai ban đầu được xác định vào năm 2016, mã nguồn của botnet này đã được công khai và đến ngày nay đã xuất hiện thêm nhiều biến thể mới.
Các nhà nghiên cứu của Akamai lần đầu tiên phát hiện ra chiến dịch NoaBot là vào đầu năm 2023. Kể từ đó, Akamai đã quan sát hai giai đoạn của phần mềm độc hại, bao gồm các hoạt động làm xáo trộn bổ sung hoặc thay đổi lệnh và kiểm soát (C2) và các nhóm tên miền khai thác (Hình 1).
Hình 1. Hoạt động của phần mềm độc hại Noabot theo thời gian
Botnet NoaBot sở hữu hầu hết các tính năng như trong phiên bản đầu tiên của Mirai (chẳng hạn như mô-đun dò quét để phát tán, mô-đun tấn công và mã lưu giữ được sử dụng để ẩn tên tiến trình mạng botnet), thế nhưng theo các nhà nghiên cứu vẫn có một số điểm khác biệt so với mã nguồn ban đầu của Mirai.
Đầu tiên và quan trọng nhất, đó là công cụ phát tán phần mềm độc hại dựa trên giao thức SSH chứ không chỉ dựa trên Telnet như Mirai. Trình quét SSH dường như được tùy chỉnh và khá đặc biệt: Sau khi kết nối được thiết lập, botnet chỉ cần gửi chuỗi “hi” và chấm dứt kết nối sau đó (Hình 2). Việc chấm dứt nhanh chóng này có thể hiểu đơn giản vì NoaBot không cần giữ kết nối mở mà chỉ để xác minh rằng nó tồn tại. Tuy nhiên, lý do tại sao sử dụng chuỗi “hi” và với mục đích như thế nào thì hiện nay vẫn là một bí ẩn.
Hình 2. Gói SSH có chuỗi “hi”. Đây không phải là gói SSH hợp lệ nên Wireshark đánh dấu nó là không đúng định dạng
Một điểm kỳ lạ khác của phần mềm độc hại là lời bài hát được nhúng. Các mẫu botnet trước đó có lời bài hát “Who's Ready for Tomorrow” của Rat Boy và IBDY (Hình 3). Theo đánh giá của các nhà nghiên cứu, điều này không có mục đích gì, các mẫu botnet về sau cũng không tồn tại những lời bài hát này.
Hình 3. Lời bài hát được nhúng dường như không phục vụ mục đích gì
Ngoài ra, NoaBot sử dụng một từ điển thông tin xác thực cho trình quét SSH của nó và bao gồm nhiều khả năng sau khi xâm phạm, chẳng hạn như cài đặt khóa ủy quyền SSH mới làm backdoor để tải xuống và thực thi các tệp nhị phân bổ sung hoặc tự lây nhiễm sang các nạn nhân mới (Hình 4).
Hình 4. Các trường hợp chuyển lệnh của NoaBot
Không giống như Mirai thường được biên dịch bằng GCC, NoaBot được phát triển bằng uClibc, điều này dường như để thay đổi cách các công cụ chống vi-rút phát hiện phần mềm độc hại, qua đó có thể vượt qua được các giải pháp bảo mật này. Trong khi các biến thể Mirai khác thường được phát hiện bằng chữ ký Mirai thì cách phát hiện NoaBot trên các trình chống vi-rút là thông qua trình quét SSH hoặc một Trojan chung (Hình 5).
Hình 5. Chỉ báo phát hiện NoaBot (trái) so với các biến thể Mirai khác (phải)
NoaBot cũng được biên dịch tĩnh và loại bỏ mọi ký hiệu. Cùng với việc là một trình biên dịch không chuẩn, điều này khiến việc dịch ngược phần mềm độc hại trở nên khó khăn hơn nhiều. Ngoài ra, các mẫu botnet mới hơn cũng bị xáo trộn chuỗi thay vì được lưu dưới dạng văn bản gốc, khiến việc trích xuất chi tiết từ tệp nhị phân hoặc điều hướng các phần của quá trình phân tích gặp trở ngại lớn.
Các nhà nghiên cứu đã phát hiện việc bổ sung các đối số dòng lệnh theo thời gian. Điều thú vị nhất là cờ (flag) “noa”, khiến botnet cài đặt một phương thức bền vững dưới dạng crontab để chạy sau khi khởi động lại. Thật trùng hợp, có vẻ như cờ này đã được sử dụng rộng rãi trong thực tế, vì một số phần mềm chống vi-rút phát hiện các mẫu botnet sử dụng tiền tố “Noa-”.
Các hoạt động sau khi xâm phạm được thể hiện trên Hình 4 cũng là một sự phát triển khác. Những điều này không có trong các mẫu trước đó mà các nhà nghiên cứu đã điều tra.
Sửa đổi công cụ khai thác tiền điện tử
Bên cạnh việc kết hợp các chiến thuật che giấu để khiến việc phân tích trở nên khó khăn, chuỗi tấn công cuối cùng dẫn đến việc triển khai một phiên bản sửa đổi của công cụ khai thác tiền điện tử XMRig.
XMRig là một chương trình khai thác tiền điện tử mã nguồn mở và được sử dụng rộng rãi, có mục đích sử dụng hợp pháp nhưng cũng phổ biến với những kẻ tấn công. Theo các nhà nghiên cứu của Akamai, những người tạo ra NoaBot cũng đã thực hiện các sửa đổi nâng cao đối với mã XMRig để ẩn và mã hóa cấu hình của nó, đặc biệt là địa chỉ IP đóng vai trò là nhóm khai thác nơi kẻ tấn công thu thập tiền điện tử được tạo ra.
Mặc dù, XMRig cũng được tự biên dịch và các tác nhân đe dọa đã thêm một số mã trước khi thực thi công cụ này để trích xuất cấu hình khai thác, thay vì cung cấp thông qua dòng lệnh hoặc lưu nó bên trong tệp nhị phân dưới dạng văn bản gốc (Hình 6).
Hình 6. Chức năng chính của công cụ khai thác tiền điện tử
Trong Hình 6, có thể thấy có một số lệnh gọi hàm khác trước lệnh gọi hàm xây dựng cấu hình XMRig. Thông thường, XMRig chứa thông tin chi tiết về nhóm khai thác mà nó kết nối, cũng như địa chỉ ví để nhận thanh toán khai thác. Bằng cách lấy địa chỉ ví và theo dõi các khoản thanh toán vào đó (thường được theo dõi bởi các nhóm công cộng), các nhà nghiên cứu có thể ước tính mức độ sinh lời của hoạt động khai thác tiền điện tử, đó là lý do Akamai lại quan tâm đến cấu hình XMRig.
Trong mã nguồn mở XMRig, kẻ tấn công có thể chọn cấu hình theo một trong hai cách, đó là thông qua dòng lệnh hoặc thông qua các biến môi trường. Trong chiến dịch NoaBot, kẻ tấn công đã không sửa đổi mã gốc XMRig và thay vào đó thêm một số phần trước hàm chính. Để tránh các đối số dòng lệnh (có thể là dấu hiệu của chỉ báo bị xâm phạm và cảnh báo các phần mềm bảo vệ), kẻ tấn công đã sử dụng công cụ khai thác thay thế dòng lệnh bằng các đối số “có ý nghĩa” hơn trước khi vượt qua quyền kiểm soát tới mã XMRig. Botnet chạy công cụ khai thác với một đối số yêu cầu in nhật ký (log) của nó.
Tuy nhiên, trước khi thay thế dòng lệnh, kẻ tấn công phải xây dựng cấu hình của công cụ khai thác. Đầu tiên, sao chép các đối số cơ bản được lưu trữ dưới dạng văn bản gốc - cờ rig-id, xác định công cụ khai thác bằng ba chữ cái ngẫu nhiên, luồng và IP Placeholder của nhóm khai thác (Hình 7).
Điều kỳ lạ là vì các cấu hình được tải thông qua các thanh ghi xmm nên công cụ IDA (công cụ kỹ thuật dịch ngược phổ biến) đã không nhận ra hai đối số được tải đầu tiên, đó là tên nhị phân và IP Placeholder của nhóm khai thác.
Hình 7. Sao chép cấu hình công cụ khai thác cơ bản
Tiếp theo là giải mã tên miền của nhóm. Tên miền được lưu trữ, mã hóa trong một số khối dữ liệu được giải mã thông qua XOR. Mặc dù XMRig có thể hoạt động với một tên miền nhưng những kẻ tấn công đã quyết định thực hiện thêm một bước nữa là triển khai chức năng phân giải DNS của riêng chúng. Họ liên lạc trực tiếp với máy chủ DNS của Google (8.8.8.8) và phân tích phản hồi của nó để phân giải tên miền thành địa chỉ IP.
Phần cuối cùng của cấu hình cũng được mã hóa theo cách tương tự và nó là mật mã để công cụ khai thác kết nối với nhóm. Nhìn chung, cấu hình tổng thể của công cụ khai thác sẽ như sau: “<miner_binary_name> -o <pool_ip> --rig-id <random_id> --threads <cpus> –pass espana*tea”.
Các nhà nghiên cứu cho rằng các tin tặc đã chọn điều hành nhóm riêng của họ thay vì nhóm công khai, do đó loại bỏ nhu cầu chỉ định ví. Tuy nhiên, trong các mẫu của phân tích, các nhà nghiên cứu nhận thấy rằng các tên miền của công cụ khai thác không phân giải được bằng DNS của Google.
Sự liên hệ đến chiến dịch P2Pinfect
Akamai cho biết, chiến dịch NoaBot và các sự cố tấn công mạng gần đây cũng có liên quan đến P2PInfect - một loại Worm tự sao chép ngang hàng được viết bằng Rust, với mục tiêu nhắm vào các bộ định tuyến và thiết bị IoT. Mặc dù, P2PInfect được phát hiện lần đầu tiên vào tháng 7/2023, nhưng Akamai đã thấy hoạt động của NoaBot kể từ tháng 01/2023, điều đó có nghĩa là botnet này xuất hiện trước P2PInfect. Một câu hỏi đặt ra là tại sao các tin tặc lại có sự dịch chuyển từ Mirai sang một dạng phần mềm độc hại khác.
Đầu tiên, mã tùy chỉnh khó dịch ngược hơn mã được sử dụng lại vì nó đã được sửa đổi. Thứ hai, những kẻ tấn công có vẻ khá am hiểu công nghệ, vì vậy có thể chúng đang cố gắng phát triển phần mềm độc hại vì một chủ ý nhất định hoặc chỉ là vì thử nghiệm (hoặc cả hai). Cuối cùng, do P2PInfect nhắm mục tiêu vào các máy chủ Redis nên đây có thể đơn giản là một trường hợp sử dụng các công cụ khác nhau cho các mục đích khác nhau.
Các nhà nghiên cứu không chắc chắn 100% nhưng có một số dấu hiệu để đưa ra giả thiết trên. Điều này dựa trên thực tế là các tác nhân đe dọa cũng đã thử nghiệm để nhúng P2PInfect thay thế cho NoaBot trong các cuộc tấn công gần đây nhắm vào máy chủ SSH, cho thấy có khả năng các nỗ lực chuyển hướng sang phần mềm độc hại tùy chỉnh. Bên cạnh đó là sự tinh vi về mặt kỹ thuật của phần mềm độc hại, cùng với các đặc điểm chung như nhúng lời bài hát nhạc pop vào tệp nhị phân của phần mềm độc hại và gửi lời chào “hi” trong khi rà quét để tìm các cổng mở.
P2PInfect có các hoạt động tương tự. Phần mềm độc hại này có vẻ giống như một công cụ phức tạp, nhưng nó sử dụng socket Unix và đặt tên là “NunzombiE” (Hình 8). Trong khi NunzombiE bị xáo trộn và giải mã trong thời gian chạy, Worm cũng có các chuỗi nhúng cho “fast_vuln_file” và “slow_vuln_file”, đây là các chuỗi hoàn toàn hợp pháp để chứa trong tệp thực thi.
Hình 8. Dấu vết của Worm P2PInfect tạo ra một socket Unix có tên NunzombiE
Akamai cho biết đã xác định được 849 địa chỉ IP của nạn nhân cho đến nay, trải rộng về mặt địa lý trên toàn thế giới, với mức độ tập trung cao được báo cáo ở Trung Quốc chiếm gần 10% tổng số vụ tấn công nhằm vào các honeypot của họ vào năm 2023.
Cách thức giảm thiểu tấn công
Phương thức di chuyển ngang của phần mềm độc hại là thông qua các cuộc tấn công từ điển (dictionary attacks) thông tin xác thực SSH cũ. Việc hạn chế quyền truy cập SSH tùy ý vào mạng của doanh nghiệp sẽ làm giảm đáng kể nguy cơ lây nhiễm.
Ngoài ra, việc sử dụng mật khẩu mạnh (không phải mật khẩu mặc định hoặc được tạo ngẫu nhiên) cũng giúp mạng của doanh nghiệp an toàn hơn vì phần mềm độc hại sử dụng danh sách cơ bản các mật khẩu có thể đoán được. Các nhà nghiên cứu của Akamai đã chia sẻ bộ thông tin xác thực được phần mềm độc hại sử dụng trong kho lưu trữ GitHub của hãng bảo mật này.
Ngọc Long
(Tổng hợp)