18 gói npm độc hại phân phối RAT đa nền tảng cho người dùng công cụ Alibaba

Các nhà nghiên cứu an ninh mạng đã phát hiện một loạt gói npm độc hại mới nhắm mục tiêu vào người dùng các công cụ phát triển của Alibaba bằng một trojan truy cập từ xa (RAT) đa nền tảng như một phần của cuộc tấn công chuỗi cung ứng phần mềm tinh vi nhắm vào môi trường nói tiếng Trung. Một trong những gói được đề cập là "lib-mtop", một gói không thuộc scope có cùng tên với gói riêng tư của Alibaba.
18 gói npm độc hại tấn công người dùng Alibaba

Các nhà nghiên cứu an ninh mạng đã phát hiện một loạt gói npm độc hại mới nhắm mục tiêu vào người dùng các công cụ phát triển của Alibaba bằng một trojan truy cập từ xa (RAT) đa nền tảng. Đây là một phần của cuộc tấn công chuỗi cung ứng phần mềm tinh vi nhắm vào các môi trường nói tiếng Trung.

Một trong những gói được đề cập là "lib-mtop", một gói không thuộc scope (unscoped) có cùng tên với một gói riêng tư của Alibaba trong scope "@ali". Mặc dù gói npm này được xuất bản lần đầu vào khoảng tháng 11 năm 2023 mà không có chức năng gì, nhưng ba phiên bản mới (v1.0.1, v1.0.2 và v1.0.3) đã được tải lên vào đầu tháng 3 và tháng 4 vừa qua.

Hiện tại vẫn chưa rõ đây là kết quả của việc chiếm đoạt tài khoản maintainer hay do nhà phát triển dự án quyết định "trở mặt". Bất kể các thay đổi độc hại được đẩy lên bằng cách nào, những thay đổi mới này bao gồm một loader được thiết kế để tải một JavaScript payload từ xa bằng lệnh curl và sau đó thực thi nó.

Cùng một tài khoản maintainer "ch4ce" (hiện đang chuyển hướng đến lỗi "không tìm thấy" trên npmjs[.]com) cũng đã xuất bản bốn gói khác: aone-kit, aone-kit-cli, aone-sandbox và local-config-parser.

"Ba gói đầu tiên là các wrapper trống có cùng tên với các gói riêng tư trong scope @ali mà chúng khai báo là một dependency trong tệp package.json," nhà nghiên cứu bảo mật của Socket, Karlo Zanki, cho biết trong một phân tích.

Gói cuối cùng, local-config-parser, triển khai một trình phân tích cú pháp tệp cấu hình JSON hợp lệ, nhưng lại chứa các dependency mà bản thân chúng trông vô hại và được xuất bản từ các tài khoản người dùng npm khác. Khi kết hợp lại, chúng đóng vai trò là kênh dẫn cho một RAT tiên tiến nhắm vào các nhà phát triển có khả năng đang làm việc tại các công ty thuộc Alibaba Group.

Cấu trúc tấn công tinh vi thông qua chuỗi cung ứng

Cụ thể, chức năng loader độc hại được chia nhỏ và nhúng vào nhiều gói khác nhau, được phân phối đến mục tiêu như một phần của cùng một cây dependency. Các gói ở lớp trên cùng (top-layer), giả mạo các gói riêng tư từ scope @ali, đóng vai trò là mồi nhử để kích hoạt quá trình cài đặt cây dependency này.

"Khi một gói như vậy được cài đặt trong môi trường có quyền truy cập vào các gói riêng tư bị giả mạo, việc giải quyết dependency (dependency resolution) vẫn hoạt động như mong đợi, nhưng đi kèm với một chút chức năng bổ sung được cung cấp thông qua các dependency phụ được cài đặt thêm," Socket giải thích.
Sơ đồ cây dependency độc hại
Sơ đồ minh họa cách thức các gói độc hại lồng ghép vào nhau

Có tới 10 gói mồi nhử lớp trên cùng được phát hiện là phụ thuộc vào "smart-config-manager", gói này hoạt động giống như một cầu nối lớp trung gian kết nối chúng với các gói độc hại chứa logic loader. Một trong những gói ở lớp dưới cùng sẽ liên hệ với một kho lưu trữ GitHub để truy xuất và lưu trữ cấu hình công cụ quy tắc (rule engine), sau đó sử dụng nó để thực thi một payload độc hại, payload này tiếp tục liên hệ với một máy chủ từ xa để tải thêm malware thứ cấp.

Điều đáng chú ý là rule engine sử dụng vm module để thực hiện giai đoạn cuối và tải payload tùy thuộc vào hệ điều hành của nạn nhân. Payload được truy xuất từ một tên miền giả mạo Alibaba ("aone-cli-next.oss-cn-beijing.aliyuncs[.]com") để ẩn mình và tránh bị phát hiện.

Các hành động phá hoại trên từng hệ điều hành:

  • Trên Windows: Nó chấm dứt ứng dụng bảo mật doanh nghiệp Alilang, VPN và ứng dụng năng suất văn phòng, sau đó thay thế mã cốt lõi của chúng bằng một phiên bản đã bị chèn trojan.
  • Trên Linux: Nó tải một binary payload vào thư mục /tmp, chạy nó như một tiến trình riêng biệt và xóa tệp khỏi đĩa sau khi đã được nạp vào bộ nhớ.
  • Trên macOS: Nó chèn một script chạy ngầm độc hại vào ~/.zshrc và thiết lập một Launch Agent chạy mỗi 10 phút.

Payload cuối cùng là một backdoor phức tạp được trang bị các khả năng thực thi lệnh toàn diện, tải lên và tải xuống tệp tùy ý, trinh sát máy chủ, dàn dựng payload và di chuyển ngang hàng (lateral movement). Nó cũng có khả năng duy trì sự hiện diện bằng cách chèn mã độc vào các ứng dụng cộng tác doanh nghiệp phổ biến như DingTalk, Wukong và Qoder.

Mục tiêu gián điệp công nghiệp

Hiện chưa rõ chính xác ai đứng sau chiến dịch này, nhưng sự hiện diện của các bình luận bằng tiếng Trung trong mã nguồn, kết hợp với việc các commit trên GitHub được đóng dấu thời gian theo múi giờ UTC+08:00, cho thấy đây có thể là tác phẩm của một tác nhân đe dọa nói tiếng Trung nhắm vào các nhà phát triển sử dụng công cụ của Alibaba Group.

"Mục tiêu của chiến dịch có vẻ là gián điệp công nghiệp," Zanki lưu ý. "Mặc dù số lượng lượt tải xuống cho các gói độc hại không quá lớn, nhưng tác động của chiến dịch rất khó đánh giá do tính chất nhắm mục tiêu và khả năng lây lan ngang hàng của payload giai đoạn cuối."

Danh sách đầy đủ các gói liên quan đến chiến dịch bao gồm:

  • lib-mtop
  • aone-kit
  • aone-kit-cli
  • aone-sandbox
  • local-config-parser
  • smart-config-manager
  • cloud-config-fetcher
  • fast-transform-pipeline
  • aone-cloud-cli
  • colder-cli
  • def-open-client
  • feedback-ai-sdk
  • flight-compare-analyzer
  • lwp-web-client
  • lzd-unified-station-sdk
  • open-worker-cli
  • test-skill-zip
  • uniapi-bridge

Người dùng đã cài đặt bất kỳ gói nào ở trên nên coi như hệ thống đã bị xâm nhập, hãy thay đổi các thông tin xác thực nhạy cảm từ một máy sạch và kiểm tra hệ thống nhà phát triển để tìm các dấu hiệu hoạt động nghi vấn.

Sự cố độc hại tương tự trên PyPI với thư viện mrmustard

Tiết lộ này diễn ra đồng thời với việc các tác nhân đe dọa không xác định đã công bố một phiên bản bị nhiễm độc của mrmustard (0.7.4), một thư viện Python về tính toán lượng tử quang học từ Xanadu. Phiên bản này chạy một info-stealer có khả năng thu thập SSH private keys, AWS credentials, cấu hình Kubernetes và gửi chúng đến máy chủ của kẻ tấn công.

Theo StepSecurity, payload sẽ chạy mỗi khi gói được import. Phân tích sâu hơn cho thấy tài khoản GitHub của maintainer chính đã bị xâm nhập để đẩy phiên bản độc hại này bằng cách thăm dò các CI runner tự lưu trữ của dự án và đánh cắp các bí mật xuất bản (publishing secrets).

Malware này "đã cài đặt ba cơ chế duy trì (persistence) riêng biệt giúp stealer tiếp tục chạy lâu sau khi gói đã bị gỡ cài đặt," SafeDep cho biết. "Việc đánh cắp thông tin xác thực nhắm vào các môi trường nghiên cứu và HPC, thu thập hàng đợi công việc SLURM và kho lưu trữ GPU bên cạnh các bí mật đám mây thông thường."