Một chiến dịch supply chain mới trên npm cho thấy kẻ tấn công không còn chỉ rải mã độc đại trà để săn số lượt tải lớn. Theo The Hacker News và báo cáo kỹ thuật của Socket, 18 gói npm độc hại đã được thiết kế để giả mạo hoặc bám theo các gói nội bộ trong hệ sinh thái công cụ Alibaba, từ đó đưa một RAT đa nền tảng vào môi trường của lập trình viên nói tiếng Trung.

Chiến dịch bắt đầu từ những gói tưởng như vô hại
Trường hợp nổi bật là gói lib-mtop, một gói không có scope nhưng dùng tên giống gói riêng tư thuộc scope @ali. Gói này từng được phát hành từ tháng 11/2023 gần như không có chức năng đáng kể, trước khi ba phiên bản mới được đẩy lên trong tháng 3 và tháng 4/2026. Socket chưa kết luận đây là vụ chiếm tài khoản maintainer hay hành vi cố ý của người phát triển, nhưng thay đổi mới đã thêm loader có khả năng tải JavaScript từ xa bằng curl rồi thực thi trên máy nạn nhân.
Tài khoản maintainer ch4ce cũng liên quan đến các gói aone-kit, aone-kit-cli, aone-sandbox và local-config-parser. Ba gói đầu đóng vai trò vỏ bọc, dùng tên giống các gói private trong hệ thống @ali. Riêng local-config-parser có chức năng thật là phân tích cấu hình JSON, nhưng khi đặt trong toàn bộ cây phụ thuộc, nó trở thành một mắt xích trong chuỗi triển khai mã độc.
Cách tấn công lợi dụng niềm tin trong môi trường phát triển
Điểm nguy hiểm của chiến dịch nằm ở cách mã độc được chia nhỏ qua nhiều package. Các gói ở lớp trên chỉ làm nhiệm vụ mồi nhử, trong khi package trung gian smart-config-manager kéo theo các thành phần như cloud-config-fetcher và local-config-parser. Nhìn riêng từng gói, một số thành phần có vẻ hợp pháp hoặc ít đáng ngờ; nhưng khi cài cùng nhau, chúng dựng thành một cơ chế tải cấu hình, vượt sandbox và gọi payload tiếp theo.
Socket cho biết gói cloud-config-fetcher tải một file cấu hình từ kho GitHub do kẻ tấn công kiểm soát và lưu thành .cloud-preferences.json. Sau đó, logic đánh giá rule trong local-config-parser dùng module vm của Node.js để chạy biểu thức. Mã độc lợi dụng kỹ thuật thoát sandbox thông qua constructor của đối tượng đầu vào để lấy quyền truy cập vào process, từ đó gọi hệ thống module loader và tải payload từ hạ tầng đặt trên Alibaba Cloud nhằm hòa lẫn với lưu lượng hợp pháp.
Payload cuối có khả năng bám trụ và lan ngang
Ở giai đoạn sau, mã độc nhận diện hệ điều hành để chọn cách triển khai. Trên Windows, nó có thể chấm dứt ứng dụng bảo mật, VPN và công cụ văn phòng Alilang rồi thay thế thành phần lõi bằng phiên bản bị cấy mã. Trên Linux, payload được tải xuống /tmp, chạy tách tiến trình và xóa file khỏi đĩa sau khi nạp. Trên macOS, mã độc chèn script nền vào ~/.zshrc và thiết lập Launch Agent chạy theo chu kỳ 10 phút.
Payload cuối được mô tả là một RAT đa nền tảng có chức năng thực thi lệnh, tải lên và tải xuống file, thu thập thông tin host, staging payload, proxy TCP mã hóa và di chuyển ngang. Đáng chú ý, nó có thể cấy mã vào các công cụ cộng tác doanh nghiệp như DingTalk, Wukong và Qoder, những công cụ phổ biến hơn trong môi trường nói tiếng Trung.
Dấu hiệu cho thấy mục tiêu là gián điệp công nghiệp
Chiến dịch không nhắm vào số lượt tải lớn mà nhắm vào đúng môi trường có khả năng truy cập các gói private giả mạo. Tên gói liên quan đến Aone, hệ thống hạ tầng R&D nội bộ của Alibaba Group, càng củng cố nhận định rằng nhóm đứng sau muốn tiếp cận hệ thống phát triển phần mềm, tài liệu kỹ thuật và quy trình nội bộ hơn là phát tán mã độc ngẫu nhiên.
Socket ghi nhận mã nguồn ở các giai đoạn sau có nhiều chú thích tiếng Trung, trong khi commit GitHub dùng múi giờ UTC+08:00. Đây chưa phải bằng chứng quy kết chắc chắn, nhưng phù hợp với giả thuyết về một tác nhân nói tiếng Trung nhắm vào lập trình viên nói tiếng Trung. Nhà nghiên cứu Karlo Zanki nhận định mục tiêu của chiến dịch có vẻ là gián điệp công nghiệp, với tác động khó đo lường do đặc tính nhắm mục tiêu và khả năng lan ngang.
Những gói cần rà soát ngay
Danh sách được The Hacker News và Socket nêu 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 và uniapi-bridge.
Tổ chức từng cài một trong các gói này nên xem môi trường liên quan là có nguy cơ bị xâm nhập. Việc xử lý cần được thực hiện từ máy sạch, bao gồm thu hồi và xoay vòng token, SSH key, khóa truy cập cloud, khóa npm, bí mật CI/CD; rà soát lịch sử cài đặt package; kiểm tra file cấu hình shell, Launch Agent, tiến trình lạ, kết nối ra ngoài và dấu hiệu cấy mã trong công cụ cộng tác nội bộ.
Bài học cho quản trị chuỗi cung ứng phần mềm
Vụ việc cho thấy kiểm tra package theo từng đơn vị riêng lẻ là chưa đủ. Một gói có thể có mô tả hợp lý, chức năng thật và hành vi ban đầu tương đối sạch, nhưng khi kết hợp với các dependency khác lại tạo thành chuỗi thực thi độc hại. Doanh nghiệp cần kiểm soát chặt nguồn package, bật lockfile, dùng registry proxy có chính sách chặn, phân tách môi trường build, giám sát hành vi sau cài đặt và hạn chế quyền của máy phát triển đối với hệ thống nội bộ quan trọng.
Với các nhóm phát triển, nguyên tắc quan trọng là không xem máy lập trình viên như vùng tin cậy tuyệt đối. Khi máy dev có quyền vào mã nguồn, CI/CD, kho artifact và công cụ cộng tác, một package độc hại có thể trở thành điểm khởi đầu cho rò rỉ dữ liệu, chiếm quyền pipeline và lan sâu vào tổ chức.
VNCyberS tổng hợp từ The Hacker News và Socket















