
Các nhà nghiên cứu Cris Staicu và Kiran Raj của Endor Labs cho biết: “Các gói này đã được phát hành một cách có hệ thống trong một thời gian dài, làm tràn ngập (flood) registry npm bằng các gói rác (junk) tồn tại trong gần hai năm”.
Theo nhà nghiên cứu bảo mật Paul McCarty của SourceCodeRED, người đầu tiên phát hiện ra hoạt động này, chiến dịch phối hợp giữa các hãng bảo mật cho đến nay đã công bố tới 67.579 gói giả mạo. Mục tiêu cuối cùng của các gói này khá bất thường, nó được thiết kế để làm ngập registry npm bằng các gói ngẫu nhiên thay vì tập trung vào việc đánh cắp dữ liệu hoặc các hành vi độc hại khác. Đáng chú ý, các gói giả mạo này ngụy trang thành các dự án Next.js.
“Điều khiến mối đe dọa này đặc biệt đáng lo ngại là những kẻ tấn công đã phát triển worm NPM, thay vì một cuộc tấn công đơn lẻ”, McCarty chia sẻ. Một số dấu hiệu cho thấy nỗ lực duy trì bao gồm các mẫu đặt tên nhất quán và thực tế là các gói phát hành từ một mạng lưới nhỏ gồm hơn một chục tài khoản npm.
Worm này nằm trong một tệp JavaScript duy nhất (ví dụ: auto.js hoặc publishScript.js) trong mỗi gói, ở trạng thái không hoạt động cho đến khi người dùng chạy thủ công tập lệnh bằng lệnh như “node auto.js”. Nhìn chung, nó không tự động thực thi trong quá trình cài đặt hoặc như một phần của hook “postinstall”.
Henrik Plate, người đứng đầu bộ phận nghiên cứu bảo mật tại Endor Labs, cho biết không rõ tại sao lại có người chạy JavaScript theo cách thủ công, nhưng sự tồn tại của hơn 43.000 gói cho thấy có nhiều nạn nhân đã thực thi tập lệnh - có thể do vô tình, vì tò mò hoặc chính những kẻ tấn công đã chạy nó để làm tràn ngập registry.
Raj cho biết thêm: “Code được biên dịch có khả năng cho thấy dấu hiệu của tấn công kỹ nghệ xã hội, các kịch bản có thể bao gồm: bài đăng trên blog giả mạo, hoặc mục README hướng dẫn người dùng chạy node auto.js để hoàn tất thiết lập, hay liên quan đến sự cố bản build và các tập lệnh CI/CD với ký tự đại diện như node *.js thực thi tất cả các tệp JavaScript”.
Ông nhấn mạnh, thiết kế "không hoạt động" của payload nhằm mục đích tránh bị phát hiện tự động, thông qua yêu cầu thực hiện thủ công thay vì “chạy tự động”, giúp kẻ tấn công giảm nguy cơ bị các giải pháp bảo mật và hệ thống kiểm tra an ninh phát hiện.
Việc thực thi thủ công khiến tập lệnh khởi tạo một loạt hành động trong vòng lặp vô hạn , bao gồm xóa < “private”: true > khỏi tệp “package.json”. Thiết lập này thường được sử dụng để ngăn chặn việc vô tình xuất bản các kho lưu trữ riêng tư. Sau đó, tập lệnh tạo một tên gói ngẫu nhiên bằng từ điển nội bộ và gán cho nó một số phiên bản ngẫu nhiên nhằm bypass tính năng phát hiện phiên bản trùng lặp của npm.
Ở giai đoạn cuối, gói thư rác tải lên npm bằng lệnh “npm publish”. Toàn bộ quá trình lặp lại theo vòng lặp vô tận. McCarty cho rằng, điều này làm tràn ngập registry npm và tạo ra rủi ro chuỗi cung ứng nếu các nhà phát triển vô tình cài đặt các gói độc hại này.
Theo Endor Labs, chiến dịch là một phần của cuộc tấn công được các công ty an ninh mạng Phylum (hiện là một phần của Veracode) và Sonatype phát hiện vào tháng 4/2024, liên quan đến việc phát hành hàng nghìn gói spam để triển khai chiến dịch khai thác tiền điện tử tự động quy mô lớn bằng cách lạm dụng giao thức Tea.
