Mini Shai-Hulud Tấn Công Trở Lại: Hơn 300 Gói Npm Bị Cài Mã Độc
Tài khoản npm `atool` bị xâm phạm, dẫn đến việc phát hành 637 phiên bản độc hại trên 317 gói trong vòng 22 phút. Malware "Mini Shai-Hulud" đánh cắp thông tin xác thực từ AWS, GitHub, Docker và sử dụng GitHub làm kênh C2, ảnh hưởng đến các thư viện phổ biến như `echarts-for-react`.

Một cuộc tấn công chuỗi cung ứng phần mềm quy mô lớn vừa được phát hiện, nhắm vào hệ sinh thái npm với tên mã "Mini Shai-Hulud". Vào ngày 19 tháng 5 năm 2026, tài khoản npm atool ([email protected]) đã bị xâm phạm, cho phép kẻ tấn công tự động phát hành 637 phiên bản độc hại lên 317 gói thư viện trong vòng chỉ 22 phút.
Tấn công chuỗi cung ứng npm
Đây được đánh giá là một trong những cuộc tấn công tinh vi nhất, không chỉ đánh cắp thông tin xác thực mà còn tận dụng các công cụ AI hiện đại và cơ chế hạ tầng đám mây để duy trì sự tồn tại.
Tác động và các gói bị ảnh hưởng
Trong số các gói bị ảnh hưởng, có nhiều thư viện JavaScript phổ biến với hàng triệu lượt tải xuống mỗi tháng, bao gồm:
size-sensor(4,2 triệu lượt/tháng)echarts-for-react(3,8 triệu lượt/tháng)@antv/scale(2,2 triệu lượt/tháng)timeago.js(1,15 triệu lượt/tháng)- Hàng trăm gói khác trong phạm vi
@antv.
Đáng lo ngại, kẻ tấn công không di chuyển thẻ latest (phiên bản mới nhất) trên hầu hết các gói. Điều này tạo ra một cảm giác an toàn giả tạo vì npm’s semver (quy trình phân giải phiên bản) vẫn sẽ tự động chọn phiên bản độc hại mới nhất phù hợp với phạm vi phiên bản (ví dụ: ^3.0.6) trong lần cài đặt tiếp theo.
Cơ chế hoạt động của Malware Mini Shai-Hulud
Mỗi phiên bản bị xâm phạm đều thêm một tập lệnh preinstall vào package.json để thực thi mã độc. Payload là một tập lệnh Bun kích thước 498KB đã bị làm rối (obfuscated), phù hợp với bộ công cụ Mini Shai-Hulud từng được sử dụng trong vụ tấn công SAP ba tuần trước đó.
Malware này hoạt động như một bộ quét thông tin xác thực toàn diện, nhắm mục tiêu đến:
- Chuỗi AWS đầy đủ (biến môi trường, tệp cấu hình, EC2 IMDS, ECS).
- Token dịch vụ Kubernetes, HashiCorp Vault.
- GitHub PATs (Personal Access Tokens), npm tokens.
- SSH keys, Docker auth, Stripe keys, Slack tokens.
Malware npm và hooks
Kênh C2 và Exfiltration qua GitHub
Điểm độc đáo của cuộc tấn công này là kẻ tấn công không sử dụng máy chủ điều khiển (C2 server) riêng. Thay vào đó, chúng sử dụng chính API của GitHub làm kênh exfiltration.
Dữ liệu bị đánh cắp được commit lên các kho lưu trữ công khai mới được tạo dưới tài khoản token bị đánh cắp. Các kho lưu trữ này có tên theo quy mô Dune (ví dụ: harkonnen-melange-742, fremen-sandworm-315) để tránh bị phát hiện. User-Agent được giả mạo thành python-requests/2.31.0 để trộn lẫn với lưu lượng truy cập hợp pháp.
Lợi dụng CI/CD và ký mã Sigstore
Trong môi trường CI, malware thực hiện trao đổi token OIDC của GitHub Actions để lấy token publish npm. Nó thậm chí ký các artifact (tệp tin tạo phẩm) thông qua Sigstore (Fulcio + Rekor) bằng cách sử dụng danh tính bị đánh cắp, tạo ra các tệp có chữ ký hợp pháp nhưng nguồn gốc bị giả mạo.
Ngoài ra, malware tiêm mã độc vào .github/workflows/codeql.yml để đổ toàn bộ bí mật (secrets) của repository ra artifact, sau đó tự xóa sạch dấu vết.
Chiếm quyền điều khiển AI Agent
Một trong những vector tấn công mới nhất là nhắm vào các tác nhân AI viết code. Malware tiêm các hook vào:
- Claude Code: Thêm
SessionStarthook trong.claude/settings.jsonđể thực thi mã mỗi khi phiên AI bắt đầu. - VS Code / Codex: Tạo task
"runOn": "folderOpen"để kích hoạt malware khi nhà phát triển mở thư mục dự án.
Chiếm quyền kiểm soát npm
Kỹ thuật "Imposter Commits" và Persistence
Để đảm bảo mã độc vẫn được thực thi ngay cả khi hook preinstall bị chặn, kẻ tấn công đã sử dụng kỹ thuật "Imposter Commits". Chúng thêm một optionalDependencies trỏ đến một commit cụ thể trong kho lưu trữ antvis/G2 của Ant Group.
Đây là các commit mồ côi (orphan commits) không thuộc nhánh nào, được tạo bởi một fork đã bị xóa. GitHub cho phép lấy nội dung của commit theo SHA mà không cần quyền ghi vào kho lưu trữ mục tiêu, biến bất kỳ repo phổ biến nào thành host chứa payload độc hại.
Malware cũng cài đặt một systemd service trên Linux hoặc LaunchAgent trên macOS tên là kitty-monitor. Đây là một backdoor C2 kiểu "dead-drop", thăm dò API tìm kiếm commit của GitHub mỗi giờ để tìm các lệnh điều khiển được ký bằng RSA-PSS.
Khuyến nghị bảo mật
Nếu bạn nghi ngờ hệ thống của mình bị ảnh hưởng, cần thực hiện các bước sau ngay lập tức:
- Kiểm tra
package-lock.jsonhoặcpnpm-lock.yamlđể tìm các phiên bản được xuất bản vào ngày 2026-05-19 bởi tài khoảnatool. - Xoay vòng (rotate) tất cả thông tin xác thực có thể truy cập được từ môi trường build: npm tokens, GitHub PATs, AWS keys, SSH keys.
- Kiểm tra các kho lưu trữ GitHub công khai bất thường được tạo dưới tài khoản của bạn.
- Rà soát các dự án Node.js cục bộ để tìm các tệp
.claude/settings.jsonhoặc.vscode/tasks.jsonbị chèn mã lạ.
Cuộc tấn công này một lần nữa nhắc nhở cộng đồng phát triển về sự lỏng lẻo trong chuỗi cung ứng phần mềm hiện đại và tầm quan trọng của việc kiểm tra nghiêm ngặt các phụ thuộc cũng như quản lý quyền truy cập CI/CD.
Bài viết liên quan

Công nghệ
Cerebras, đối tác thân thiết của OpenAI, sẵn sàng cho đợt IPO kỷ lục định giá tới 26,6 tỷ USD
04 tháng 5, 2026

AI & ML
Nguy cơ bảo mật từ "Vibe-Coding": Hàng nghìn ứng dụng AI để lộ dữ liệu nhạy cảm trên mạng
07 tháng 5, 2026

Công nghệ
Substrate (YC S24) tuyển dụng Technical Success Manager cho nền tảng AI chuyên xử lý thanh toán y tế
13 tháng 5, 2026
