23/09/2026 · VietTechies · Biên tập

Theo công ty bảo mật chuỗi cung ứng phần mềm Checkmarx, một gói npm độc hại có tên indexed-btree đã giấu trình tải trong logic ứng dụng thông thường thay vì dùng các tập lệnh preinstall hoặc postinstall. Gói này cùng kho GitHub liên quan hiện đã bị gỡ khỏi hệ thống tải xuống, nhưng vụ việc cho thấy kẻ tấn công đang thích nghi với các biện pháp bảo vệ cài đặt mới.
Mã thời gian chạy thay cho móc cài đặt
Gói này được cho là đã giả danh sorted-btree, một tiện ích B-tree và lập chỉ mục hợp pháp. Mã độc được đặt trong phương thức BTree.prototype.set(), từ đó kích hoạt tệp sharedLoad.min.js chứa tải trọng giai đoạn đầu đã bị làm rối. Thiết kế này cho phép mã độc thực thi khi thư viện được sử dụng như bình thường, thay vì phải tự động thực thi ngay khi phần phụ thuộc được cài đặt.
Chiến dịch xuất hiện sau khi npm phiên bản 12 đưa vào thay đổi bảo mật nhằm ngăn tự động thực thi các tập lệnh vòng đời. Những móc này vẫn hữu ích cho các tác vụ xây dựng và thiết lập hợp pháp, nhưng cũng thường bị khai thác để phát tán mã độc qua gói phần mềm. Vì vậy, việc chặn chúng chỉ xử lý một đường thực thi, không ngăn được hành vi lạm dụng thời gian chạy bên trong phần phụ thuộc.
Tải trọng nhiều giai đoạn được che giấu
Checkmarx cho biết mã độc thu thập thông tin nhận diện máy bị ảnh hưởng rồi gửi thông tin thu được đến một kênh Slack và bot Telegram được hard-code trong mã. Sau đó, nó dùng kỹ thuật EtherHiding để lấy dữ liệu mã hóa của giai đoạn tiếp theo từ một smart contract trên mạng thử nghiệm Sepolia, ghép thành tải trọng giai đoạn hai rồi xóa các thành phần độc hại cùng cơ chế kích hoạt để che giấu hoạt động.
Theo báo cáo, gói này được tải lên lần đầu vào ngày 18 tháng 6 năm 2026 dưới tài khoản npm charlessadler25 và đạt hàng triệu lượt tải trong thời gian ngắn. Hoạt động này cũng có thể đã tạo ra khoảng 230.933,57 euro, tương đương 109 ETH, cho kẻ vận hành; đây là con số ước tính, chưa phải doanh thu được xác nhận.
Kho mã liên quan bị xâm nhập
Trong một diễn biến riêng, Socket cho biết đã gỡ mã độc khỏi phiên bản dev-main của gói Packagist visanduma/nova-two-factor, vốn có hơn 700.000 lượt tải cộng dồn. Socket liên hệ hoạt động này với chiến dịch PolinRider và cho biết các tài khoản nhà phát triển bị xâm nhập đã được dùng để cài nội dung độc hại vào các kho mã, với cơ chế kích hoạt thông qua những thao tác thường ngày như sao chép kho mã hoặc mở mã trong IDE.
Các kỹ thuật được báo cáo gồm viết lại lịch sử Git, giấu tải trọng trong tệp cấu hình hoặc tệp phông chữ, cài tác vụ tự chạy độc hại trong VS Code và phân phối theo từng giai đoạn qua hạ tầng blockchain. Socket cho biết biến thể mới nhất còn chèn JavaScript đã bị làm rối vào index.php và gọi mã này thông qua shell_exec() của PHP, qua đó điều chỉnh đường thực thi theo dự án bị xâm nhập.
Hệ quả đối với việc kiểm tra phần phụ thuộc
Các vụ việc cho thấy nhà phát triển không thể xem việc hạn chế tập lệnh vòng đời hoặc quét ở thời điểm cài đặt là biện pháp bảo vệ hoàn chỉnh. Các công ty bảo mật khuyến nghị bổ sung phân tích hành vi thời gian chạy và các cơ chế kiểm soát để kiểm tra phần phụ thuộc trước khi cài đặt, trong lúc thực thi và sau khi triển khai.
Ảnh minh họa do AI tạo.
Nguồn: Malicious npm Package indexed-btree Hid Its Loader in Runtime Code Before Removal
