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

Công nghệ22 tháng 9, 2026·4 phút đọc

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.

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

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 NPMMã 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 SecurityWeekBiể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 SecurityWeekLogo 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.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗