Gần 800 gói npm độc hại phân phối RAT và Infostealer đa nền tảng

Một cụm gần 800 gói phần mềm độc hại đã được phát hành trên kho lưu trữ npm như một phần của chiến dịch mới nhằm phân phối mã độc đa nền tảng nhắm vào các hệ thống Windows, Mac và Linux. Các gói này dường như sử dụng các tên gói AI slop squatted hoặc typo-squatting được tạo ngẫu nhiên, nhưng tất cả chúng đều phân phối các mã độc RAT và infostealer mạnh mẽ - nhà nghiên cứu Paul McCarty của OpenSourceMalware cho biết.
npm malicious packages

Một cụm gần 800 gói phần mềm độc hại đã được phát hành trên kho lưu trữ npm như một phần của chiến dịch mới được thiết kế để phân phối mã độc đa nền tảng nhắm vào các hệ thống Windows, Mac và Linux.

"Các gói này dường như sử dụng các tên gói AI slop squatted hoặc typo-squatting được tạo ngẫu nhiên, nhưng tất cả chúng đều phân phối các mã độc RAT và infostealer mạnh mẽ," nhà nghiên cứu Paul McCarty của OpenSourceMalware cho biết.

Không giống như các cuộc tấn công chuỗi cung ứng phần mềm hướng tới npm khác thường sử dụng các lifecycle hooks như preinstall hoặc postinstall để kích hoạt thực thi mã độc, các gói mới được xác định đi kèm với một tệp README hướng dẫn các nhà phát triển tải chúng bằng lệnh require(), một hàm tích hợp sẵn để nhập các module, tệp cục bộ và các gói bên thứ ba.

Cơ chế hoạt động của WEL1DROPPER

Cuộc tấn công dẫn đến việc thực thi một trình tải xuống (downloader) có tên là WEL1DROPPER. Khi được thực thi, nó sẽ xác định hệ điều hành máy chủ và kiến trúc bộ xử lý, sau đó tải xuống một payload tương thích từ một trong ba máy chủ Cloudflare Workers. Danh sách ba tên miền Cloudflare Workers được liệt kê dưới đây:

  • oob-worker.cf103-070.workers[.]dev
  • oob-worker.cf102-baf.workers[.]dev
  • oob-worker.cf99-9b3.workers[.]dev

Nếu việc tải xuống dựa trên HTTPS thất bại, mã độc sẽ chuyển sang một tên miền dành riêng cho nền tảng và sử dụng các bản ghi DNS TXT để lấy giai đoạn tiếp theo từ tên miền "wel1[.]ru". Các tên miền payload cho từng hệ điều hành và kiến trúc CPU như sau:

  • Linux x64 - sdk.dl.wel1[.]ru
  • Linux ARM64 - ext.dl.wel1[.]ru
  • macOS - pkg.dl.wel1[.]ru
  • Windows - net.dl.wel1[.]ru

"Đầu tiên, gói yêu cầu một bản ghi TXT từ c.<domain>," McCarty giải thích. "Nó phân tích phản hồi dưới dạng số lượng các phân đoạn payload, chấp nhận giá trị từ 1 đến 2.000. Sau đó, nó yêu cầu các bản ghi TXT được đánh số. Các chuỗi trả về được nối lại với nhau và giải mã Base64 thành một bộ đệm nhị phân."

Trong giai đoạn cuối cùng, payload được ghi vào một thư mục tạm thời và được thực thi bằng "/bin/sh" trên Linux và macOS, hoặc "cmd.exe" trên Windows.

Chiến dịch Flooding Dropper và khả năng can thiệp hệ thống

Sonatype, đơn vị cũng đang theo dõi chiến dịch này dưới cái tên Flooding Dropper, cho biết giai đoạn cuối cùng được khởi chạy dưới dạng một tiến trình tách biệt (detached process). Phiên bản Windows thực hiện các bước để vá Event Tracing for Windows (ETW) và Antimalware Scan Interface (AMSI) nhằm can thiệp vào hoạt động giám sát, kiểm tra môi trường sandbox và máy ảo, thiết lập sự kiên định thông qua Registry Run key và một scheduled task, sau đó tải xuống một payload đã mã hóa ("/pkg/update_win.exe") và khởi chạy nó.

Chuỗi nhiễm mã độc trên macOS cũng tương tự, thực hiện các hành động giống hệt để tìm kiếm trình gỡ lỗi (debugger) và các dấu vết phân tích trước khi lấy một payload tương thích ("/pkg/beacon_mac.bin") từ máy chủ từ xa. Nếu thất bại, nó sử dụng phương thức phân phối DNS TXT đã đề cập, thiết lập sự kiên định bằng LaunchAgent và sau đó bắt đầu thực thi trong một tiến trình tách biệt.

Ngược lại, mẫu trên Linux là một tệp nhị phân ELF được nén bằng UPX-packed, được cấu hình để tải xuống các payload phụ trợ từ URL Cloudflare Worker, cuối cùng dẫn đến việc triển khai Sliver, một khung điều khiển và kiểm soát (C2) mã nguồn mở.

Các gói này cũng được tìm thấy chứa một tệp có tên "lib/telemetry.js" triển khai một SDK đo lường từ xa trông có vẻ hợp lý nhưng thực chất cũng chứa logic trình tải xuống tương tự.

"Điểm nhập của gói không nhập tệp này và nó không chứa thêm hạ tầng mã hóa cứng nào khác," OpenSourceMalware cho biết. "Việc triển khai đo lường quá mức này dường như nhằm mục đích tạo ra nhiễu và làm cho hành vi độc hại trông giống như chức năng phân tích hoặc cấu hình gốc trong quá trình xem xét nhanh."

Sự hiện diện của các tên miền như "tcsbank[.]ru" và "cloudpayments[.]ru" trong payload của macOS cho thấy chiến dịch này có thể đang nhắm mục tiêu vào các tổ chức tài chính và thanh toán di động của Nga.

Chiến dịch này cũng bị nghi ngờ là một bước tiến hóa của chiến dịch dependency confusion có tên mã là Moika được quan sát vào đầu tháng 4 năm nay, với hơn 250 gói được đăng tải lên npm để đánh cắp thông tin môi trường và phân phối payload giai đoạn hai cho từng hệ điều hành cụ thể.

Các mối đe dọa khác trên npm và PyPI

Diễn biến này xảy ra khi Palo Alto Networks Unit 42 ghi nhận nhiều chiến dịch nhắm mục tiêu vào npm và kho lưu trữ Python Package Index (PyPI):

  • Một nhóm gồm 10 gói npm tải xuống một trình đánh cắp tiền điện tử đã được làm xáo trộn (obfuscated) và một RAT từ máy chủ bên ngoài.
  • Một bộ các gói độc hại trên npm và PyPI đại diện cho nhiều tác nhân đe dọa khác nhau có khả năng đánh cắp thông tin xác thực đám mây, phân phối các trình thả mã độc C2 dựa trên blockchain EtherHiding, đánh cắp khóa ví tiền điện tử Solana qua Telegram, đánh cắp bí mật từ tệp .env, thực thi mã từ xa qua kỹ thuật lừa đảo CAPTCHA giả mạo, đánh cắp token Discord và thông tin xác thực CI/CD của GitHub Actions.

Từ gói phần mềm đến tiện ích mở rộng Chrome

Các tác nhân đe dọa cũng đã được quan sát thấy sử dụng các tiện ích mở rộng Google Chrome được tiếp thị dưới dạng trình giả lập trò chơi, trình quản lý mật khẩu, công cụ năng suất, trình kiểm tra CSS và trình chuyển đổi markdown để biến trình duyệt web thành một proxy thu thập dữ liệu web. Các lệnh thu thập thông tin được nhận từ xa thông qua kết nối WebSocket kiên định.

"Các tiện ích mở rộng này nhúng một SDK chia sẻ băng thông web thương mại giống hệt nhau, kết nối trình duyệt của người dùng với mạng proxy dân cư của bên thứ ba để thực hiện các hoạt động thu thập dữ liệu web," Unit 42 cho biết.

Công ty an ninh mạng lưu ý rằng một số tiện ích mở rộng này tiết lộ hành vi này trong phần mô tả trên Chrome Web Store và trong chính sách bảo mật trên trang web SaaS của họ. Sau khi được cài đặt, SDK của bên thứ ba sẽ nhắc người dùng đồng ý tham gia dịch vụ.

"Mặc dù các tính năng proxy và thu thập dữ liệu vẫn ở trạng thái không hoạt động nếu người dùng từ chối, một số tiện ích mở rộng lại trình bày việc đồng ý này là cần thiết để dịch vụ không bị gián đoạn," Unit 42 cho biết. "Một ví dụ đáng chú ý là InstaSkip, tiện ích mở rộng có nhúng SDK này."