Nền tảng quản lý gói JavaScript phổ biến npm bị tấn công đầu độc chuỗi cung ứng, ảnh hưởng hàng loạt dự án mã nguồn mở nổi tiếng

Administrator
Nền tảng quản lý gói JavaScript phổ biến npm bị tấn công đầu độc chuỗi cung ứng, ảnh hưởng hàng loạt dự án mã nguồn mở nổi tiếng

Gần đây nền tảng quản lý gói JavaScript phổ biến toàn cầu npm đã trở thành mục tiêu của cuộc tấn công đầu độc chuỗi cung ứng mang tên “Shai-Hulud”.

npm-hacked.webp

Tin tặc đã chiếm quyền kiểm soát tài khoản của các nhà duy trì chính thức trên npm và trong thời gian ngắn đã phát tán hàng loạt gói phần mềm độc hại. Cuộc tấn công liên quan đến hơn 300 gói độc lập với hơn 600 phiên bản chứa mã độc, gây ảnh hưởng tới nhiều dự án mã nguồn mở phổ biến.

Theo thông tin được công bố, khi nhà phát triển cài đặt các gói phụ thuộc độc hại này, mã độc sẽ tự động thực thi trên máy cục bộ hoặc trong môi trường CI/CD nhằm đánh cắp các dữ liệu nhạy cảm như:
  • GitHub Token
  • npm Token
  • Khóa dịch vụ đám mây
  • SSH Private Key
  • Thông tin xác thực Kubernetes
  • Chuỗi kết nối cơ sở dữ liệu
  • Các thông tin nhạy cảm khác
Đợt đầu độc lần này có khả năng tự sao chép và lây lan theo kiểu sâu máy tính (worm) rất mạnh. Tin tặc có thể lợi dụng quyền phát hành npm đã bị đánh cắp để sửa đổi và phát hành lại các gói phần mềm khác thuộc cùng tài khoản nhà phát triển, khiến rủi ro chuỗi cung ứng tiếp tục lan rộng và mức độ nguy hiểm tăng cao.

Các dự án bị ảnh hưởng đáng chú ý bao gồm:
  • echarts-for-react
  • Thư viện lõi dòng @antvnhư:
    • @antv/g2
    • @antv/g6
    • @antv/x6
  • Hệ sinh thái TanStack với 42 gói
  • Các gói liên quan đến Mistral AI trên PyPI
  • timeago.js
  • Nhiều gói cộng đồng khác
Nhóm đối tượng chịu ảnh hưởng chủ yếu gồm:
  • Lập trình viên Front-end
  • Nhà phát triển AI hoặc Machine Learning
  • Người duy trì dự án mã nguồn mở
  • Nhân sự R&D trong doanh nghiệp
Do mã độc có khả năng phát tán kiểu sâu máy tính, nó có thể tự động phát hành lại các gói khác do nạn nhân quản lý. Điều này đồng nghĩa với việc những người dùng khác trong cùng môi trường phát triển chia sẻ hoặc sử dụng các gói do cùng một nhà phát triển phát hành cũng có nguy cơ bị lây nhiễm gián tiếp.

Theo khuyến nghị của các chuyên gia an ninh mạng, người dùng cần thực hiện các biện pháp xử lý sau:

1. Cô lập thiết bị có nguy cơ

Nếu gần đây máy tính đã cài đặt các gói npm nằm trong danh sách bị ảnh hưởng, nên tạm dừng dự án và ngắt kết nối mạng của thiết bị nghi ngờ để tránh mã độc tiếp tục liên lạc ra ngoài.

2. Kiểm tra các tệp phụ thuộc

Kiểm tra các tệp:
  • package.json
  • package-lock.json
  • pnpm-lock.yaml
  • yarn.lock
  • thư mục node_modules
Đồng thời xác minh xem có xuất hiện các script tự động như preinstall, postinstall bất thường hay không.

3. Dọn dẹp dấu vết còn sót lại

Kiểm tra:
  • Claude Code hooks
  • Cấu hình tác vụ của VS Code
  • Các tệp đáng ngờ như:
    • router_runtime.js
    • setup.mjs
Việc này nhằm tránh mã độc tiếp tục tồn tại ngay cả sau khi gỡ các gói phụ thuộc.

4. Thay đổi toàn bộ thông tin xác thực quan trọng

Cần cập nhật ngay:
  • GitHub Token
  • npm Token
  • Khóa dịch vụ đám mây
  • SSH Private Key
  • Mật khẩu cơ sở dữ liệu
  • Các khóa và token khác
Đồng thời nên thực hiện thao tác đăng xuất khỏi tất cả thiết bị trên các tài khoản liên quan.

5. Nâng cao ý thức bảo mật

Trước khi cài đặt thư viện bên thứ ba trên npm, người dùng cần lưu ý:
  • Xác minh nguồn chính thức của dự án
  • Kiểm tra lịch sử phát hành gần đây
  • Xem xét nội dung script đi kèm
  • Không cài đặt các gói phổ biến một cách mù quáng
  • Ưu tiên sử dụng các phiên bản chính thức ổn định và đã được xác minh an toàn.