Hơn 46.000 gói npm giả mạo tràn ngập Registry trong cuộc tấn công thư rác

Tác giả Starlink, T.M.Một 14, 2025, 09:00:08 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Các nhà nghiên cứu an ninh mạng đang kêu gọi chú ý đến một chiến dịch thư rác quy mô lớn đã làm tràn ngập sổ đăng ký npm bằng hàng nghìn gói giả mạo kể từ đầu năm 2024 như một phần của nỗ lực có thể có động cơ tài chính.

Các nhà nghiên cứu Cris Staicu và Kiran Raj của Endor Labs cho biết trong báo cáo hôm thứ Ba: "Các gói này đã được xuất bản một cách có hệ thống trong một thời gian dài, làm tràn ngập sổ đăng ký npm bằng các gói rác tồn tại trong hệ sinh thá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 này cho đến nay đã công bố tới 46.484 gói. Mục tiêu cuối cùng khá bất thường – nó được thiết kế để làm ngập sổ đăng ký 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.

Cơ chế lan truyền sự sống của giun và việc sử dụng một lược đồ đặt tên đặc biệt dựa trên tên gọi và thuật ngữ thực phẩm của Indonesia cho các gói mới tạo ra đã khiến nó có biệt danh là IndonesianFoods. 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 đã dành thời gian để tạo ra một loại sâu NPM, thay vì một cuộc tấn công đơn lẻ", McCarty nói. "Tệ hơn nữa, những kẻ tấn công này đã dàn dựng việc này trong hơn hai năm."

Một số dấu hiệu cho thấy nỗ lực bền vững và phối hợp bao gồm các mẫu đặt tên nhất quán và thực tế là các gói được xuất bản từ một mạng lưới nhỏ gồm hơn một chục tài khoản npm.

Con sâu 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". Nói cách khác, 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 với The Hacker News rằng 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 - do vô tình hoặc vì tò mò - hoặc chính những kẻ tấn công đã chạy nó để làm tràn ngập sổ đăng ký.

Raj nói thêm: "Chúng tôi chưa tìm thấy bằng chứng về một chiến dịch kỹ thuật xã hội được phối hợp, nhưng mã được viết có khả năng tấn công kỹ thuật xã hội, các kịch bản nạn nhân có thể bao gồm: bài đăng trên blog giả mạo, hướng dẫn 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' hoặc 'sửa sự cố xây dựng', [và] các tập lệnh xây dựng đường ống CI/CD với ký tự đại diện như node *.js thực thi tất cả các tệp JavaScript".

"Thiết kế không hoạt động của phần mềm này nhằm mục đích tránh bị phát hiện tự động bằng cách 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ị máy quét 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 sẽ 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 để bỏ qua 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 được tải lên npm bằng lệnh "npm publish". Bước này được lặp lại theo vòng lặp vô hạn, khiến một gói mới được đẩy ra sau mỗi 7 đến 10 giây. Điều này tương đương với khoảng 12 gói mỗi phút, 720 gói mỗi giờ, hoặc 17.000 gói mỗi ngày.

McCarty cho biết: "Điều này làm tràn ngập sổ đăng ký NPM bằng các gói rác, lãng phí tài nguyên cơ sở hạ tầng, làm ô nhiễm kết quả tìm kiếm 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 này là một phần của cuộc tấn công đầu tiên được Phylum (hiện là một phần của Veracode) và Sonatype phát hiện vào tháng 4 năm 2024, liên quan đến việc phát hành hàng nghìn gói thư rác để tiến hành "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.

"Điều khiến chiến dịch này đặc biệt nguy hiểm là cơ chế lây lan giống như sâu máy tính của nó", các nhà nghiên cứu cho biết. "Phân tích các tệp 'package.json' cho thấy các gói thư rác này không tồn tại riêng lẻ; chúng tham chiếu lẫn nhau như các phần tử phụ thuộc, tạo ra một mạng lưới tự sao chép."

Do đó, khi người dùng cài đặt một trong các gói thư rác, npm sẽ phải tìm nạp toàn bộ cây phụ thuộc, gây căng thẳng cho băng thông sổ đăng ký vì ngày càng có nhiều phụ thuộc được tìm nạp theo cấp số nhân.

Endor Labs cho biết một số gói do kẻ tấn công kiểm soát, chẳng hạn như arts-dao và gula-dao, bao gồm tệp tea.yaml liệt kê năm tài khoản TEA khác nhau. Giao thức Tea là một khuôn khổ phi tập trung cho phép các nhà phát triển mã nguồn mở được thưởng cho những đóng góp phần mềm của họ.

Điều này có thể cho thấy các tác nhân đe dọa đang sử dụng chiến dịch này như một công cụ kiếm tiền bằng cách kiếm token TEA bằng cách thổi phồng điểm tác động một cách giả tạo. Hiện chưa rõ ai đứng sau hoạt động này, nhưng mã nguồn và các manh mối về cơ sở hạ tầng cho thấy có thể có người hoạt động ở Indonesia.

Công ty bảo mật ứng dụng cũng đã đánh dấu một biến thể thứ hai sử dụng một lược đồ đặt tên khác bao gồm các từ tiếng Anh ngẫu nhiên (ví dụ: able_crocodile-notthedevs).

Những phát hiện này cũng làm nổi bật điểm mù bảo mật trong các trình quét bảo mật, vốn được biết đến là có thể đánh dấu các gói thực thi mã độc hại trong quá trình cài đặt bằng cách theo dõi các móc vòng đời hoặc phát hiện các lệnh gọi hệ thống đáng ngờ.

"Trong trường hợp này, họ không tìm thấy gì vì không có gì để tìm tại thời điểm cài đặt", Endor Labs cho biết. "Số lượng lớn các gói tin bị đánh dấu trong chiến dịch hiện tại cho thấy các máy quét bảo mật phải phân tích những tín hiệu này trong tương lai."

Garrett Calpouzos, nhà nghiên cứu bảo mật chính tại công ty bảo mật chuỗi cung ứng phần mềm Sonatype, mô tả IndonesianFoods là một loại sâu tự xuất bản hoạt động ở quy mô lớn, làm quá tải các hệ thống dữ liệu bảo mật trong quá trình này.

Calpouzos cho biết: "Mức độ phức tạp về mặt kỹ thuật không nhất thiết phải cao hơn - điều thú vị là các gói này thậm chí không có vẻ như cố gắng xâm nhập vào máy của nhà phát triển - mà chính là mức độ tự động hóa và quy mô đang tăng lên với tốc độ đáng báo động".

"Mỗi đợt tấn công này lại biến tính chất mở của npm thành vũ khí theo những cách hơi mới mẻ. Đợt tấn công này có thể không đánh cắp thông tin đăng nhập hay chèn mã độc, nhưng nó vẫn gây áp lực lên hệ sinh thái và chứng minh việc phá vỡ chuỗi cung ứng phần mềm lớn nhất thế giới là chuyện nhỏ. Mặc dù động cơ chưa rõ ràng, nhưng hậu quả thì rất đáng chú ý."

Khi được yêu cầu bình luận, người phát ngôn của GitHub cho biết họ đã xóa các gói được đề cập khỏi npm và cam kết phát hiện, phân tích và xóa các gói và tài khoản vi phạm chính sách của mình.

Người phát ngôn cho biết thêm: "Chúng tôi đã vô hiệu hóa các gói npm độc hại theo Chính sách sử dụng được chấp nhận của GitHub, chính sách này cấm đăng nội dung trực tiếp hỗ trợ các cuộc tấn công chủ động bất hợp pháp hoặc các chiến dịch phần mềm độc hại gây ra tác hại kỹ thuật".

"Chúng tôi sử dụng các đánh giá thủ công và phát hiện quy mô lớn, sử dụng công nghệ máy học và liên tục cải tiến để giảm thiểu việc sử dụng nền tảng một cách có mục đích. Chúng tôi cũng khuyến khích khách hàng và thành viên cộng đồng báo cáo hành vi lạm dụng và thư rác."