Nguy hiểm: Tấn công chuỗi cung ứng npm lây lan mã độc

Nguy hiểm: Tấn công chuỗi cung ứng npm lây lan mã độc

Ngày 8 tháng 9 năm 2025, vào khoảng 9 giờ sáng EST, hệ sinh thái npm đã phải đối mặt với một cuộc tấn công chuỗi cung ứng nghiêm trọng. Kẻ tấn công đã sử dụng các kỹ thuật kỹ thuật xã hội để chiếm đoạt tài khoản của nhà phát triển npm nổi tiếng Qix.

Sau đó, chúng đã phát hành các phiên bản độc hại cho một số gói phần mềm được sử dụng rộng rãi, đáng chú ý nhất là debug, chalk, và hàng chục thư viện phụ thuộc liên quan khác. Trong vòng hai giờ kể từ khi sự cố ban đầu xảy ra, các nhà bảo trì đã nhanh chóng xác định và thừa nhận vi phạm.

Quá trình gỡ bỏ các phiên bản gói bị nhiễm độc đã được cộng đồng và đội ngũ npm hoàn tất nhanh chóng.

Nội dung
Chi tiết về Tấn công chuỗi cung ứng npm

Phương thức tấn công và Lây nhiễm
Cơ chế hoạt động của mã độc
Phạm vi ảnh hưởng và các gói npm bị xâm nhập
Các biện pháp ứng phó và giảm thiểu rủi ro từ tấn công chuỗi cung ứng

Phát hiện và Điều tra
Khắc phục và Phòng ngừa
Đánh giá tác động và Bài học
Cập nhật tình hình và khuyến nghị an ninh mạng

Chi tiết về Tấn công chuỗi cung ứng npm

Phương thức tấn công và Lây nhiễm

Mặc dù phản ứng nhanh chóng, các gói độc hại vẫn có sẵn để tải xuống từ 9 giờ sáng đến 11 giờ sáng EST. Khoảng thời gian ngắn ngủi này tạo ra một cửa sổ nguy hiểm cho việc lây nhiễm.

Véc-tơ lây nhiễm của cuộc tấn công chuỗi cung ứng này dựa vào việc các nhà phát triển hoặc hệ thống xây dựng tự động (CI/CD) giải quyết các phiên bản gói đã bị tiêm độc. Các gói này sau đó sẽ được đóng gói vào các tài sản JavaScript phía client (front-end).

Cơ chế hoạt động của mã độc

Một khi được triển khai, bất kỳ trình duyệt nào truy cập vào một trang web chạy tài sản bị nhiễm độc sẽ vô tình thực thi một đoạn mã độc. Mã này được thiết kế để chặn các API web và ví tiền điện tử quan trọng, bao gồm fetch, XMLHttpRequest, window.ethereum.request, và các phương thức ký Solana.

Tải trọng mã độc sẽ quét các giao dịch mạng, tìm kiếm các khoản thanh toán hoặc phê duyệt tiền điện tử. Các loại tiền điện tử mục tiêu bao gồm ETH, BTC, SOL, TRX, LTC, và BCH.

Khi có cơ hội, mã độc sẽ âm thầm ghi lại địa chỉ người nhận hoặc người chi tiêu, chuyển hướng tiền hoặc phê duyệt đến các ví do kẻ tấn công kiểm soát. Toàn bộ quá trình này diễn ra trước khi người dùng thực sự ủy quyền giao dịch.

Một điểm đáng chú ý là việc sử dụng các địa chỉ giả mạo có hình thức tương tự (look-alike address substitutions) đã được tích hợp, thêm một lớp lừa đảo có thể dễ dàng qua mặt sự kiểm tra thông thường. Thông tin thêm về mã độc liên quan đến tiền điện tử có thể tham khảo tại: Cryptocurrency App Launching Backdoor.

Phạm vi ảnh hưởng và các gói npm bị xâm nhập

Cuộc tấn công này chỉ ảnh hưởng đến các tài sản phía client được phân phối cho người dùng cuối. Các ứng dụng sử dụng các gói bị nhắm mục tiêu độc quyền trong triển khai phía máy chủ (chỉ Node) có rủi ro thấp hơn nhiều.

Các mục tiêu dễ bị tổn thương nhất bao gồm các ứng dụng phi tập trung (dApps), widget quyên góp, các thành phần web3 và bất kỳ hệ thống nào tạo điều kiện cho các giao dịch tiền điện tử bằng cách tích hợp các thư viện JavaScript bị ảnh hưởng.

Phân tích ban đầu cho thấy 99% môi trường đám mây chứa ít nhất một gói dễ bị tấn công trước khi xảy ra sự việc (với debug là phổ biến nhất). Sự lây lan của mã độc diễn ra ngay lập tức: đến trưa EST, ít nhất 10% môi trường đám mây được khảo sát đã bao gồm các gói bị nhiễm độc trong tài sản xây dựng của họ.

Điều này minh họa tốc độ mà các bản cập nhật độc hại có thể làm ô nhiễm chuỗi cung ứng. Để hiểu rõ hơn về sự lây nhiễm nhanh chóng trong chuỗi cung ứng, tham khảo: Supply Chain Attack Unleashed.

JFrog báo cáo vào ngày 9 tháng 9 rằng chiến dịch này vẫn đang diễn ra, với phạm vi mở rộng sang các hệ sinh thái bổ sung như DuckDB. Các tổ chức được khuyến cáo nên coi danh sách các gói bị ảnh hưởng là đang phát triển. Các gói bao gồm:

  • chalk-template
  • supports-hyperlinks
  • color-string
  • wrap-ansi
  • duckdb
  • Và các thư viện phụ thuộc khác.

Cần phải xác thực một cách cẩn thận với các kho lưu trữ cục bộ và duy trì các danh sách chặn (blocklist) được cập nhật.

Các biện pháp ứng phó và giảm thiểu rủi ro từ tấn công chuỗi cung ứng

Phát hiện và Điều tra

Đối với các tổ chức, các hành động được khuyến nghị bao gồm:

  • Tìm kiếm trong các tệp khóa (lockfiles) như package-lock.json, pnpm-lock.yamlyarn.lock để tìm các phiên bản bị nhiễm độc.
  • Quét các gói JavaScript (JavaScript bundles) để tìm các chữ ký mã bị che giấu (obfuscated code signatures).
  • Phân tích các báo cáo người dùng và hoạt động on-chain để phát hiện các giao dịch bị chuyển hướng hoặc các bất thường.

Khắc phục và Phòng ngừa

Các bước khắc phục bao gồm:

  • Buộc làm sạch tất cả các bộ nhớ cache (force-cleaning all caches).
  • Hủy bỏ hiệu lực các tài sản CDN (invalidating CDN assets).
  • Tạm thời vô hiệu hóa các mô-đun quan trọng như widget cho phép ủng hộ (tipping widgets).
  • Thực thi các ghi đè bảo mật cho luồng ví (security overrides for wallet flows).

Việc cập nhật liên tục các danh sách chặn là cần thiết vì các gói bị ảnh hưởng mới vẫn tiếp tục xuất hiện. Việc duy trì cảnh giác cao độ là then chốt để ngăn chặn các cuộc tấn công chuỗi cung ứng tương tự trong tương lai.

Đánh giá tác động và Bài học

Mặc dù mức độ phổ biến của các gói bị xâm phạm cao, tác động tài chính hữu hình – được đo bằng số tiền điện tử đã bị chuyển hướng thành công – cho đến nay vẫn ở mức tối thiểu. Các đánh giá trong ngành mô tả chiến dịch này giống với một cuộc tấn công từ chối dịch vụ (denial-of-service attack) hơn, gây ra hàng giờ đồng hồ khắc phục khẩn cấp và trì hoãn, hơn là mang lại lợi nhuận đáng kể cho kẻ chủ mưu.

Hậu quả lớn hơn là một lời cảnh tỉnh sâu sắc cho cộng đồng phát triển JavaScript và web. Nó nhấn mạnh sự mong manh của niềm tin trong chuỗi cung ứng và sự cần thiết của các thực hành kiểm toán cảnh giác cùng với việc phát hiện mã độc tự động.

Cập nhật tình hình và khuyến nghị an ninh mạng

Wiz và các nền tảng bảo mật khác đang cung cấp các chữ ký phát hiện và cảnh báo được cập nhật. Các chuyên gia an ninh mạng được khuyến khích tham khảo các trung tâm thông tin về mối đe dọa để có hướng dẫn mới nhất và đảm bảo tất cả các bước khắc phục cũng như danh sách chặn luôn được cập nhật khi tình hình diễn biến.

Việc tăng cường các biện pháp an ninh mạng toàn diện là vô cùng quan trọng để bảo vệ hệ thống trước các mối đe dọa phức tạp.