Gói NPM độc hại 'indexed-btree' đạt 2 triệu lượt tải mỗi tuần trước khi bị phát hiện
Một gói NPM mang tên indexed-btree đã tích lũy hàng triệu lượt tải bằng cách giả mạo thư viện hợp pháp sorted-btree. Kẻ tấn công giấu mã độc trong prototype JavaScript thay vì script cài đặt, sử dụng hợp đồng blockchain làm máy chủ điều khiển và đã kiếm được gần 300.000 USD.

Hệ sinh thái NPM vừa hứng chịu thêm một cuộc tấn công chuỗi cung ứng tinh vi, khi một gói độc hại tích lũy tới hàng triệu lượt tải trước khi bị phát hiện. Theo báo cáo mới nhất từ Checkmarx, chiến dịch này vẫn đang diễn ra và đã vượt qua được các lớp bảo vệ gần đây của NPM.
Mã nguồn và phát triển phần mềm trên nền tảng NPM
Chiêu trò ngụy trang tinh vi
Thay vì nhắm vào các gói siêu phổ biến để phát tán nhanh — đồng nghĩa với việc dễ bị phát hiện ngay lập tức — kẻ tấn công lại chọn cách xây dựng lòng tin bằng một kho lưu trữ GitHub trông hoàn toàn hợp pháp.
Gói độc hại mang tên indexed-btree, được thiết kế để bắt chước thư viện B-tree/indexing hợp pháp sorted-btree. Theo Checkmarx, gói này đã đạt 2 triệu lượt tải mỗi tuần trước khi bị gỡ bỏ.
Điểm đáng chú ý là kẻ tấn công đã tạo một tài khoản GitHub và thêm vào kho indexed-btree nhiều commit trông có vẻ chính danh. Đây là thủ đoạn ít gặp, bởi giới tấn công thường không bận tâm đến việc dựng repo GitHub.
"Một kho lưu trữ GitHub là thứ mà kẻ tấn công thường không buồn tạo ra. Trường hợp này đủ tinh vi để không đưa mã độc vào đó. Hơn nữa, sự hiện diện của nhiều commit càng khiến nó trông giống một kho lưu trữ hợp pháp." — Checkmarx nhận định.
Mã độc ẩn trong prototype, không dùng script cài đặt
Khác với nhiều cuộc tấn công chuỗi cung ứng trước đây, mã độc lần này không nằm trong script cài đặt (install script) — vốn là nơi các giải pháp bảo mật thường kiểm tra và phát hiện.
Thay vào đó, kẻ tấn công giấu mã độc trong hàm chính của thư viện, cụ thể là phương thức BTree.prototype.set, nhằm kích hoạt đoạn mã JavaScript chứa giai đoạn đầu tiên (first stage) của mã độc.
Khi được thực thi, mã độc sẽ:
- Thu thập thông tin hệ thống của nạn nhân và gửi về một kênh Slack và nhóm chat Telegram đã được mã hóa cứng.
- Kết nối tới một hợp đồng blockchain triển khai trên Sepolia, đóng vai trò máy chủ điều khiển và kiểm soát (C&C).
- Trích xuất và giải mã giai đoạn hai (second stage) của mã độc từ hợp đồng này.
- Xóa dấu vết để tránh bị phát hiện.
Biểu tượng an ninh mạng của SecurityWeek
Theo Checkmarx, hợp đồng thông minh của kẻ tấn công từng xuất hiện trong gói mutex-forge trước đó. Đáng lo ngại hơn, kẻ tấn công dường như đã kiếm được 109 ETH — tương đương gần 300.000 USD.
Danh sách các gói liên quan
Ngoài indexed-btree, chiến dịch chuỗi cung ứng này còn liên quan đến một loạt gói khác, với tổng cộng hơn 5 triệu lượt tải tại thời điểm bị gỡ bỏ:
- ordered-kv-index
- btree-leaderboard
- priority-slot-queue
- btree-range-store
- btree-core
- btree-time-index
- btree-lru-cache
- neighbor-key-map
- sliding-score-window
Rủi ro dai dẳng với hệ sinh thái mã nguồn mở
Checkmarx cảnh báo đây là mối đe dọa động, khó lường đối với các tổ chức, bởi hạ tầng C&C có khả năng phục hồi cao và mã độc được giấu kín ngay bên trong mã nguồn của gói.
"Chiến dịch đang diễn ra này là mối đe dọa động đối với các tổ chức, với hạ tầng C&C kiên cố và mã độc ẩn giấu bên trong mã nguồn của gói." — Checkmarx.
Sự việc một lần nữa gióng lên hồi chuông cảnh báo về rủi ro chuỗi cung ứng phần mềm. Với các nhà phát triển Việt Nam — đặc biệt là những đội ngũ làm việc với React, Node.js và các dự án JavaScript/TypeScript — việc kiểm tra kỹ nguồn gốc gói NPM trước khi đưa vào dự án là bước phòng vệ thiết yếu.
Các chuyên gia khuyến nghị:
- Ưu tiên sử dụng các gói có lượng tải lớn, lịch sử lâu dài và cộng đồng kiểm chứng.
- Kiểm tra kỹ sự khác biệt giữa các gói có tên gần giống nhau (typosquatting).
- Sử dụng công cụ quét mã độc chuỗi cung ứng (SCA) trong pipeline CI/CD.
- Theo dõi các cảnh báo từ cộng đồng bảo mật và cập nhật ngay khi có khuyến nghị gỡ bỏ.
Logo SecurityWeek
Câu chuyện về indexed-btree cho thấy kẻ tấn công ngày càng tinh vi trong việc ngụy trang và duy trì sự tồn tại lâu dài trong hệ sinh thái mã nguồn mở. Với các tổ chức tại Việt Nam đang đẩy mạnh chuyển đổi số và phát triển phần mềm nội bộ, việc siết chặt quy trình kiểm soát phụ thuộc phần mềm không còn là tùy chọn, mà đã trở thành yêu cầu bắt buộc.
Bài viết liên quan

Công nghệ
Mô hình AI hàng đầu giỏi Vật lý đến đâu? Nghiên cứu mới chỉ ra các bài kiểm tra hiện hành đang đánh giá sai
16 tháng 9, 2026

Công nghệ
Nộp đơn xin việc lẽ ra nên khó hơn. Thật đấy
25 tháng 8, 2026
Công nghệ
Type Punning trong C và C++: Cách làm đúng để tránh lỗi ngầm khi tối ưu hóa
22 tháng 9, 2026