Tấn công chuỗi cung ứng phần mềm Mini Shai-Hulud nguy hiểm

Tấn công chuỗi cung ứng phần mềm Mini Shai-Hulud nguy hiểm

Mini Shai-Hulud là một chiến dịch tấn công chuỗi cung ứng phần mềm nhắm vào hệ sinh thái gói @antv npm, nơi chứa các thư viện trực quan hóa dữ liệu được dùng rộng rãi trong ứng dụng và dashboard. Đây là một cảnh báo CVE theo nghĩa thực tế vận hành, dù nội dung không gắn với mã CVE cụ thể, vì tác động của nó nằm ở việc xâm nhập vào quy trình CI/CD và đánh cắp thông tin xác thực.

Tấn công chuỗi cung ứng qua gói npm @antv

Chiến dịch được thực hiện âm thầm, có chủ đích và lan rộng xuống các dự án phụ thuộc. Tác nhân đe dọa trước tiên chiếm được tài khoản duy trì thuộc tổ chức @antv, sau đó phát hành các phiên bản độc hại của những gói phổ biến.

Từ đó, mã độc lan tiếp sang các thư viện phụ thuộc như echarts-for-react, vốn có hơn 1 triệu lượt tải mỗi tuần. Chỉ một gói bị đầu độc đã có thể lan vào hàng nghìn pipeline phát triển chỉ trong thời gian ngắn.

Hành vi của payload JavaScript

Microsoft đã ghi nhận và phân tích chiến dịch này. Theo báo cáo của hãng, payload là một tệp JavaScript bị làm rối dung lượng khoảng 499 KB, tự thực thi ngay khi nhà phát triển chạy npm install. Báo cáo gốc có thể xem tại: Microsoft Security Blog.

Mục tiêu chính của payload là đánh cắp thông tin xác thực từ môi trường GitHub Actions và các dịch vụ đám mây liên quan. Mã độc không cần thao tác bổ sung từ phía nạn nhân; cơ chế preinstall hook đủ để kích hoạt trong quá trình cài đặt gói.

Hai lớp làm rối mã

Payload sử dụng hai lớp làm rối để né phân tích tĩnh:

  • 1.732 chuỗi Base64 được xáo trộn trong một mảng xoay vòng.
  • Một cơ chế giải mã tùy biến dựa trên PBKDF2SHA-256, chỉ giải mã chuỗi quan trọng khi chạy thực tế.

Mã độc cũng có điều kiện môi trường, tự thoát nếu không chạy trong GitHub Actions Linux environment. Điều này giúp nó né nhiều kịch bản kiểm thử thông thường và giảm khả năng bị phát hiện sớm.

Cách tấn công chuỗi cung ứng lan truyền

Chuỗi xâm nhập diễn ra theo trình tự rõ ràng: chiếm tài khoản maintainer, đăng tải phiên bản gói độc hại, rồi để payload tự kích hoạt trong npm install. Vì phần lớn dự án JavaScript phụ thuộc sâu vào hệ sinh thái npm, phạm vi ảnh hưởng của tấn công chuỗi cung ứng phần mềm tăng rất nhanh.

GitHub sau đó đã gỡ 640 gói độc hại và vô hiệu hóa hơn 61.000 npm token có quyền ghi. Cảnh báo từ Dependabot và npm audit cũng được phát hành để hỗ trợ kiểm tra ảnh hưởng.

Hành vi thu thập và exfiltration

Khi hoạt động, payload tìm kiếm bí mật trên 6 nền tảng, bao gồm:

  • Amazon Web Services
  • HashiCorp Vault
  • Kubernetes
  • npm
  • 1Password

Nó còn đọc trực tiếp process memory từ runner của GitHub Actions, qua đó bỏ qua cơ chế che giấu bí mật tiêu chuẩn. Đây là điểm khiến rủi ro bảo mật tăng mạnh trong các pipeline tự động hóa.

Dữ liệu bị trích xuất theo hai kênh:

  • Kênh chính: kết nối HTTPS mã hóa đến một domain command-and-control qua port 443.
  • Kênh dự phòng: sử dụng GitHub Git Data API để tạo commit trong repository nạn nhân trên nhánh không được bảo vệ.

Phạm vi đánh cắp thông tin xác thực

Chiến dịch này cho thấy một nguy cơ bảo mật đáng kể vì nó nhắm vào nhiều lớp hạ tầng cùng lúc. Các kỹ thuật thu thập bí mật được mô tả khá cụ thể trong báo cáo:

  • Với AWS, payload truy vấn Instance Metadata Service và gọi SecretsManager trên mọi region.
  • Với HashiCorp Vault, nó tìm kiếm hơn 12 token paths.
  • Với Kubernetes, nó đọc service account tokens và liệt kê secret trong các namespace.
  • Với 1Password, nó cố gắng vượt cơ chế two-factor authentication để trích xuất master password.

Cơ chế duy trì truy cập và che giấu

Sau khi có chỗ đứng, payload tiếp tục tạo điều kiện cho việc duy trì truy cập. Nó cài Bun runtime để thực thi payload giai đoạn hai, chèn quy tắc passwordless sudo qua bind mount và sửa cấu hình DNS bằng cách chỉnh tệp hosts.

Chiến dịch còn cố gắng làm giả tính hợp lệ của gói bằng cách tạo software supply chain provenance attestations qua Sigstore. Mục tiêu là khiến gói độc hại trông giống như thành phần hợp lệ trong chuỗi cung ứng.

IoC và dấu hiệu nhận biết

Dữ liệu gốc có phần IoC được nhắc đến nhưng không liệt kê cụ thể địa chỉ hay domain. Vì vậy, các dấu hiệu nhận biết chính trong ngữ cảnh này gồm:

  • Gói @antv hoặc dependency liên quan bị cập nhật bất thường.
  • npm install kích hoạt hành vi ngoài mong đợi do preinstall hook.
  • Tài khoản GitHub xuất hiện repository công khai mới không rõ nguồn gốc trong thời gian bị ảnh hưởng.
  • npm token có quyền ghi bị thu hồi hoặc bất thường trong audit.

Khi cần phân tích sâu, các chỉ số được defang nên chỉ được re-fang trong môi trường threat intelligence hoặc SIEM kiểm soát chặt.

Biện pháp kiểm tra và giảm thiểu

Khuyến nghị từ báo cáo tập trung vào việc rà soát dependency tree và giảm rủi ro từ quy trình cài đặt gói. Đây là hướng xử lý phù hợp đối với tấn công chuỗi cung ứng phần mềm kiểu này.

npm install --ignore-scripts

Lệnh trên giúp ngăn script lifecycle tự chạy trong quá trình cài đặt. Bên cạnh đó, cần thực hiện các bước sau:

  • Pin phiên bản đã xác minh là an toàn.
  • Rà soát toàn bộ dependency tree để tìm gói @antv bị ảnh hưởng.
  • Rotate mọi credential có nguy cơ đã lộ.
  • Kiểm tra các tài khoản GitHub có repository công khai phát sinh bất thường trong cửa sổ phơi nhiễm.

Nếu hệ thống dùng GitHub Actions, cần kiểm tra runner logs, token scope, và các workflow có khả năng bị lạm dụng để đánh cắp dữ liệu hoặc tạo commit trái phép. Việc giám sát này đặc biệt quan trọng vì payload đã trực tiếp khai thác môi trường CI/CD.

Điểm kỹ thuật cần lưu ý trong điều tra

Payload có khả năng phát hiện môi trường chạy, làm rối mã, và tránh thực thi khi không ở đúng ngữ cảnh. Điều đó khiến phân tích sandbox tiêu chuẩn dễ bỏ sót. Với các hệ thống phụ thuộc npm, cập nhật bản vá không đủ nếu chưa kiểm tra lại toàn bộ artifact, token, và workflow.

Trong thực tế vận hành, các đội an ninh mạng nên ưu tiên đối chiếu phiên bản gói, thời điểm publish, và dấu hiệu commit bất thường trong repository. Những thông tin này thường hữu ích hơn việc chỉ nhìn vào hash file riêng lẻ, vì chiến dịch đã tận dụng chính quy trình phát hành hợp lệ để mở rộng ảnh hưởng.