Các nhà nghiên cứu Zscaler ThreatLabz phát hiện 3 gói npm giả mạo Bitcoin được dùng để cài Trojan truy cập từ xa NodeCordRAT, đã đạt hơn 3.400 lượt tải trước khi bị gỡ.
Sự cố cho thấy rủi ro chuỗi cung ứng trong hệ sinh thái npm: kẻ tấn công “nhái” tên và mô tả của các thành phần Bitcoin quen thuộc để đánh lừa lập trình viên, từ đó cấy mã độc đánh cắp dữ liệu nhạy cảm và thông tin ví crypto.
- Ba gói npm độc hại (bitcoin-main-lib, bitcoin-lib-js, bip40) được ngụy trang như thư viện Bitcoin hợp pháp để phát tán NodeCordRAT.
- NodeCordRAT dùng Discord làm kênh C2 và nhắm tới dữ liệu Chrome, tệp .env, cùng dữ liệu ví MetaMask (khóa riêng/seed phrase).
- Các vụ tấn công chuỗi cung ứng tương tự đã dẫn tới thất thoát hàng triệu USD, nhấn mạnh nhu cầu kiểm soát phụ thuộc phần mềm.
Ba gói npm giả mạo Bitcoin đã phát tán NodeCordRAT
Ba gói npm độc hại được phát hiện là bitcoin-main-lib, bitcoin-lib-js và bip40, tổng cộng vượt 3.400 lượt tải trước khi bị gỡ khỏi npm registry.
Các gói này lần lượt ghi nhận 2.300, 193 và 970 lượt tải. Điểm đáng chú ý là kẻ tấn công sao chép tên gọi và chi tiết từ các thành phần Bitcoin có thật để tạo cảm giác “hợp pháp” khi nhìn lướt qua, làm tăng xác suất bị cài vào dự án.
“Các gói bitcoin-main-lib và bitcoin-lib-js thực thi script postinstall.cjs trong quá trình cài đặt, script này sẽ cài bip40, là gói chứa payload độc hại. Payload cuối cùng, được ThreatLabz đặt tên là NodeCordRAT, là một trojan truy cập từ xa (RAT) có khả năng đánh cắp dữ liệu.”
– Satyam Singh và Lakhan Parashar, Zscaler ThreatLabz
NodeCordRAT sử dụng Discord làm kênh điều khiển C2
NodeCordRAT là họ mã độc mới tận dụng máy chủ Discord để giao tiếp command-and-control, giúp kẻ tấn công điều khiển từ xa và nhận dữ liệu bị đánh cắp.
Các nhà phân tích Zscaler ThreatLabz nhận diện bộ ba gói này vào tháng 11 khi rà soát npm registry nhằm tìm các gói đáng ngờ và mẫu tải xuống bất thường. Việc dùng Discord cho C2 có thể giúp ẩn lưu lượng trong nền tảng phổ biến, gây khó khăn cho phát hiện dựa trên dấu hiệu mạng đơn giản.
NodeCordRAT được thiết kế để đánh cắp dữ liệu Chrome, .env và MetaMask
NodeCordRAT nhắm tới thông tin đăng nhập Google Chrome, khóa API trong tệp .env và dữ liệu ví MetaMask như khóa riêng và seed phrase.
Nếu các dữ liệu này bị lộ, hậu quả có thể lan rộng từ chiếm đoạt tài khoản dịch vụ đến truy cập trái phép tài sản tiền điện tử. Zscaler ThreatLabz cho biết người đăng cả ba gói sử dụng địa chỉ email: [email protected].
Chuỗi lây nhiễm bắt đầu từ bước cài đặt và chạy bip40 qua PM2
Khi lập trình viên cài bitcoin-main-lib hoặc bitcoin-lib-js, gói sẽ kích hoạt cơ chế hậu cài đặt để kéo bip40 và chạy nó ở chế độ tách rời bằng PM2.
Chuỗi tấn công được mô tả bắt đầu bằng việc nhà phát triển vô tình cài module “nhái”. Sau đó, mã độc xác định đường dẫn của gói bip40 và khởi chạy payload theo kiểu nền (detached mode) thông qua PM2, giúp tiến trình tồn tại dai dẳng hơn trong môi trường máy phát triển hoặc máy build.
Mã độc tạo định danh nạn nhân bằng UUID hệ thống
NodeCordRAT tạo định danh duy nhất theo dạng platform-uuid (ví dụ win32-c5a3f1b4) bằng cách trích xuất UUID hệ điều hành.
Trên Windows, mã độc có thể gọi lệnh như wmic csproduct get UUID để lấy UUID máy. Trên Linux, nó có thể đọc /etc/machine-id. Việc gắn định danh này giúp kẻ tấn công phân biệt máy bị nhiễm, theo dõi trạng thái và quản lý dữ liệu đánh cắp theo từng mục tiêu.
Các vụ tấn công chuỗi cung ứng liên quan đã gây thiệt hại hàng triệu USD
Nhiều sự cố gần đây cho thấy mô hình tấn công chuỗi cung ứng tương tự có thể dẫn tới thất thoát trực tiếp tài sản crypto và làm ảnh hưởng diện rộng tới người dùng.
Trust Wallet cho biết vụ trộm gần 8,5 triệu USD có liên quan đến tấn công chuỗi cung ứng trong hệ sinh thái npm bởi “Sha1-Hulud NPM”, với hơn 2.500 ví bị ảnh hưởng. Theo mô tả, mã độc được đưa vào code phía client để rút tiền khi người dùng truy cập ví.
Một ví dụ khác là Force Bridge exploit (diễn ra từ tháng 5 đến tháng 6/2025), nơi kẻ tấn công chiếm phần mềm hoặc khóa riêng mà validator node dùng để phê duyệt rút tiền cross-chain. Điều này biến node thành tác nhân độc hại có thể hợp thức hóa giao dịch gian lận.
Sự cố Force Bridge được ước tính gây thất thoát khoảng 3,6 triệu USD, gồm ETH, USDC, USDT và các token khác, đồng thời buộc bridge tạm dừng hoạt động và tiến hành audit.
Tháng 9, Shibarium Bridge exploit xảy ra khi kẻ tấn công giành quyền kiểm soát phần lớn validator power trong thời gian ngắn, qua đó ký duyệt các lệnh rút trái phép và lấy khoảng 2,8 triệu USD bằng SHIB, ETH và BONE.
Những câu hỏi thường gặp
NodeCordRAT là gì?
NodeCordRAT là một trojan truy cập từ xa (RAT) có khả năng đánh cắp dữ liệu, được phát tán qua các gói npm độc hại và dùng Discord làm kênh command-and-control.
Những gói npm nào bị phát hiện liên quan đến NodeCordRAT?
Ba gói được nêu gồm bitcoin-main-lib, bitcoin-lib-js và bip40. Chúng ngụy trang như thư viện Bitcoin để khiến lập trình viên cài nhầm.
NodeCordRAT có thể đánh cắp những dữ liệu nào?
Mã độc nhắm tới thông tin đăng nhập Google Chrome, các khóa API lưu trong tệp .env và dữ liệu ví MetaMask như khóa riêng và seed phrase.
Chuỗi lây nhiễm diễn ra như thế nào trong quá trình cài đặt?
Khi cài bitcoin-main-lib hoặc bitcoin-lib-js, script hậu cài đặt có thể cài bip40 (payload) và khởi chạy ở chế độ tách rời bằng PM2 để hoạt động nền.
Vì sao tấn công chuỗi cung ứng npm đặc biệt nguy hiểm với dự án crypto?
Vì một phụ thuộc độc hại có thể len vào code build hoặc client-side, từ đó đánh cắp khóa, seed phrase hoặc can thiệp luồng giao dịch, gây mất tiền trực tiếp cho người dùng.
