Làn sóng phần mềm độc hại Shai-Hulud mới tấn công 600 gói NPM

11:04 | 22/05/2026

Ngày 19/5, các tác nhân đe dọa đã công bố hơn 600 gói phần mềm độc hại lên Node Package Manager (NPM) như một phần của chiến dịch chuỗi cung ứng Shai-Hulud mới. Hầu hết các gói bị ảnh hưởng nằm trong hệ sinh thái @antv, bao gồm các thư viện như charting, flowchart hay mapping. Tuy nhiên, các gói phổ biến nằm ngoài namespace này cũng đã bị ảnh hưởng.

Cuộc tấn công kéo dài một giờ

Tương tự như chiến dịch Shai-Hulud trước đây ảnh hưởng đến các gói TanStack và Mistral, phần mềm độc hại thu thập thông tin bí mật từ môi trường phát triển và CI/CD, sau đó đánh cắp chúng qua mạng Session P2P để gây khó khăn cho việc phát hiện và triệt phá.

Kẻ tấn công cũng sử dụng GitHub như một cơ chế đánh cắp dữ liệu dự phòng và công bố dữ liệu bị xâm phạm trong các kho lưu trữ thuộc tài khoản của nạn nhân.

Theo công ty bảo mật ứng dụng Socket, tin tặc đã phát tán 639 phiên bản độc hại trên 323 gói phần mềm khác nhau trong khoảng một giờ vào ngày 19/5, từ 01h56 UTC đến 02h56 UTC.

Cuộc tấn công bắt đầu bằng việc xâm nhập tài khoản NPM “atool”, tài khoản này chịu trách nhiệm xuất bản các gói trong namespace @antv. Một số thư viện bị ảnh hưởng bao gồm: echarts-for-react, @antv/g2, @antv/g6, @antv/x6, @antv/l7, @antv/g2plot, @antv/graphin, timeago.js, size-sensor và canvas-nest.js.

Các nhà nghiên cứu của Endor Labs nhấn mạnh rằng, một số gói (timeago.js, size-sensor và jest-canvas-mock) đã không được cập nhật chính thức trong một thời gian dài. Ví dụ, jest-canvas-mock mặc dù vẫn có 10 triệu lượt tải xuống mỗi tháng, nhưng nó đã không hoạt động trong khoảng 3 năm qua.

Socket duy trì một danh sách các thành phần gói bị ảnh hưởng bởi tất cả các cuộc tấn công Shai-Hulud, danh sách này đã tăng lên hơn 1.000 mục. Các chiến dịch Shai-Hulud bắt đầu từ tháng 9 năm ngoái và tiếp tục ảnh hưởng đến nhiều hệ sinh thái phần mềm khác nhau, chẳng hạn như NPM, PyPI và Composer, ở mức độ ít hơn.

Đăng tải lên GitHub

Shai-Hulud xâm phạm tài khoản người bảo trì hoặc publish token để đẩy các gói hợp pháp chứa mã độc, từ đó đánh cắp thông tin bí mật của nhà phát triển và hệ thống CI/CD, có thể lây lan sang các project khác bằng cách sử dụng thông tin đăng nhập bị đánh cắp.

Làn sóng tấn công mới nhất liên quan đến việc chèn một đoạn mã độc “index.js” được mã hóa phức tạp nhằm mục đích đánh cắp thông tin đăng nhập GitHub, NPM, cloud, Kubernetes, Vault, Docker, database và SSH, chủ yếu nhắm mục tiêu vào các máy trạm của nhà phát triển và môi trường CI/CD, bao gồm GitHub Actions, GitLab CI, Jenkins, Azure DevOps, CircleCI, Vercel, Netlify và các nền tảng build khác.

Dữ liệu bị đánh cắp được tuần tự hóa, nén bằng Gzip, mã hóa thông qua AES-256-GCM và được bao bọc bằng RSA-OAEP để gây khó khăn hơn cho việc kiểm tra và phân tích trên mạng. Khi có được thông tin đăng nhập GitHub, phần mềm độc hại sẽ sử dụng API của GitHub để tự động tạo các kho lưu trữ mới dưới tài khoản của nạn nhân và tải dữ liệu bị đánh cắp lên đó.

Các kho lưu trữ được công bố do cuộc tấn công này có tệp Readme chứa chuỗi ký tự “niaga og ew ereh :duluh-iahs”, thực chất là đảo ngược của “Shai-Hulud: Here We Go Again”, một cụm từ được sử dụng trong vụ rò rỉ phần mềm độc hại Shai-Hulud thời gian gần đây.

Một báo cáo từ công ty an ninh mạng Aikido Security cho biết, đã có hơn 2.700 kho lưu trữ độc hại trên GitHub trùng khớp với các dấu hiệu nhận dạng của chiến dịch này.

Các kho lưu trữ GitHub được tạo ra bởi chiến dịch Shai-Hulud

Theo các nhà nghiên cứu, kênh rò rỉ chính đến từ “filev2.getsession[.]org/file/” thông qua mạng Session P2P. “Trên đường truyền, đây là lưu lượng truy cập được mã hóa đầu cuối trên TCP/443, không thể phân biệt được với lưu lượng truy cập ứng dụng phiên hợp pháp ở lớp mạng. Không có điểm cuối C2 truyền thống nào để chặn theo tên máy chủ hoặc địa chỉ IP”, các nhà nghiên cứu của Endor Labs cho biết.

Một tính năng quan trọng mà Endor Labs phát hiện trong biến thể Shai Hulud này là khả năng tạo ra các chứng thực Sigstore hợp lệ bằng cách lạm dụng các OpenID Connect (OIDC) token từ các môi trường CI bị xâm phạm và gửi chúng đến Fulcio và Reko. Do đó, các gói NPM độc hại có thể trông như được ký hợp lệ và vượt qua các kiểm tra xác minh nguồn gốc tiêu chuẩn, mặc dù chúng chứa mã độc đánh cắp thông tin đăng nhập.

Khả năng tự lan truyền cũng được quan sát trong cuộc tấn công này. Phần mềm độc hại xác thực các NPM token bị đánh cắp, liệt kê các gói thuộc sở hữu của nạn nhân, tải xuống các tệp nén tarball, chèn payload và phát hành lại các gói bị nhiễm với số phiên bản được nâng cấp.

Do mã nguồn của Shai Hulud gần đây bị nhóm tin tặc TeamPCP rò rỉ trên GitHub và đã được sử dụng trong các cuộc tấn công, việc xác định nguồn gốc của chiến dịch Shai-Hulud mới trở nên khó khăn hơn.

Lưu trữ dữ liệu thông qua VS Code và Claude Code

Theo Socket, biến thể này về mặt kỹ thuật khác với các payload Mini Shai-Hulud trước đó nhưng có cùng đặc điểm hoạt động.

“Các payload của AntV khác với các thành phần Mini Shai-Hulud như router_init.js của TanStack và các payload router_runtime.js liên quan đến Intercom. Mẫu AntV sử dụng tệp index.js ở cấp độ root, khác điểm cuối C2 chính và payload body nhỏ hơn. Tuy nhiên, mô hình core hoạt động vẫn nhất quán”, Socket giải thích.

Công ty an ninh mạng Aikido Security xác nhận rằng, mặc dù có sự tương đồng về mô hình, nhưng vẫn có một số khác biệt. Kích thước phần mềm độc hại giờ đây nhỏ hơn, cũng như khả năng duy trì hoạt động thông qua các backdoor được cài đặt trong cấu hình VS Code và Claude Code. Các nhà nghiên cứu cảnh báo điều này có thể cho thấy kẻ tấn công đang nghĩ đến những gì sẽ xảy ra sau khi sự xâm nhập ban đầu được khắc phục.

Khuyến nghị chung dành cho các nhà phát triển đã tải xuống bất kỳ gói NPM nào bị nhiễm là nên gỡ bỏ ngay lập tức, hoặc hạ cấp xuống phiên bản an toàn đã được phát hành trước ngày 18/5, sau đó thu hồi và thay đổi tất cả các thông tin đăng nhập bị lộ (ví dụ GitHub, token đám mây và khóa SSH).

Các báo cáo về cuộc tấn công từ các công ty bảo mật ứng dụng Socket, Endor Labs, Aikido Security và Step Security bao gồm các dấu hiệu xâm phạm cùng với các khuyến nghị về phát hiện, khắc phục và giảm thiểu rủi ro mà các nhà bảo mật có thể sử dụng để bảo vệ môi trường phát triển.

Để lại bình luận