Một chiến dịch tấn công chuỗi cung ứng Mini Shai-Hulud mới với mã danh Miasma đã xâm nhập vào các gói @redhat-cloud-services nhằm đánh cắp thông tin xác thực và bí mật từ máy tính của nhà phát triển, đồng thời phát tán một sâu máy tính (worm) tự nhân bản.
"Đây thực chất là một chiến dịch Mini Shai-Hulud: nó sử dụng cùng các chiến thuật cốt lõi như thực thi tại thời điểm cài đặt, thu thập thông tin xác thực, nhắm mục tiêu vào CI/CD, lọc dữ liệu mã hóa và khả năng phát tán hạ nguồn," công ty bảo mật Socket cho biết.
Hiện tại vẫn chưa rõ danh tính chính xác của kẻ đứng sau hoạt động tấn công này. Nhóm tội phạm mạng khét tiếng TeamPCP đã công khai mã nguồn các công cụ tấn công liên quan đến sâu Shai-Hulud, tạo điều kiện cho các tác nhân đe dọa khác thực hiện các cuộc tấn công tương tự và khiến việc truy vết trở nên khó khăn hơn.
Danh sách các gói bị ảnh hưởng:
- @redhat-cloud-services/vulnerabilities-client
- @redhat-cloud-services/tsc-transform-imports
- @redhat-cloud-services/topological-inventory-client
- @redhat-cloud-services/sources-client
- @redhat-cloud-services/rule-components
- @redhat-cloud-services/remediations-client
- @redhat-cloud-services/rbac-client
Cơ chế hoạt động và đánh cắp dữ liệu
Theo phân tích từ Aikido Security, JFrog, Microsoft, OX Security, SafeDep, StepSecurity và Wiz, các gói npm chứa một preinstall hook đã bị làm xáo trộn (obfuscated). Hook này được thiết kế để thu thập các bí mật của GitHub Actions, npm tokens, thông tin xác thực đám mây, dữ liệu Kubernetes và Vault, SSH keys, thông tin xác thực Git và các tệp nhạy cảm khác.
Tương tự như các đợt tấn công Mini Shai-Hulud trước đó, phần mềm độc hại này chứa logic lọc dữ liệu mã hóa để truyền dữ liệu đến "api.anthropic[.]com:443/v1/api" và sử dụng GitHub như một cơ chế dự phòng. Điều này cho thấy kẻ tấn công vừa cố gắng đánh cắp thông tin xác thực, vừa biến chúng thành vũ khí để tiếp tục đầu độc chuỗi cung ứng phần mềm.
Socket cho biết: "Nó gửi kết quả mã hóa thông qua GitHub API. Thông báo commit có thể bao gồm: IfYouInvalidateThisTokenItWillNukeTheComputerOfTheOwner:<token>."
Một bước đáng chú ý khác là mã độc tránh thực thi trên các hệ thống sử dụng ngôn ngữ tiếng Nga, một kiểu mẫu cũng được quan sát thấy trong các chiến dịch chuỗi cung ứng GlassWorm.
SafeDep cho biết payload thực hiện trao đổi mã thông báo OIDC, đóng gói lại tarball và ký các tạo tác thông qua Sigstore. Thông tin xác thực bị đánh cắp sẽ được gửi đến các kho lưu trữ GitHub công khai do kẻ tấn công tạo ra, mỗi kho có mô tả "Miasma: The Spreading Blight".
Kỹ thuật duy trì sự hiện diện và leo thang đặc quyền
Mã độc còn thực hiện một loạt hành vi tinh vi khác nhằm chiếm quyền kiểm soát hệ thống:
- Cố gắng leo thang đặc quyền bằng cách khởi chạy một container gắn kết (bind-mount) tệp /etc/sudoers.d của máy chủ, cấp quyền sudo không cần mật khẩu cho CI runner.
- Kiểm tra các giải pháp bảo vệ điểm cuối như CrowdStrike, SentinelOne, Carbon Black và StepSecurity Harden-Runner trước khi thực hiện các hành động độc hại.
- Duy trì sự hiện diện bằng cách chèn một hook SessionStart vào Anthropic Claude Code và tệp tasks.json với thiết lập "runOn": "folderOpen" cho các dự án Microsoft Visual Studio Code để mã độc tự động chạy mỗi khi mở thư mục.
Các nhà nghiên cứu tại Wiz lưu ý rằng biến thể mới này đã bổ sung các trình thu thập dữ liệu tập trung vào danh tính đám mây cho GCP và Azure. Khác với các phiên bản trước chỉ tập trung vào việc trích xuất bí mật, biến thể này cho thấy kẻ tấn công đang gia tăng sự tập trung vào việc giành quyền truy cập trực tiếp vào môi trường đám mây.
Nguồn gốc và khuyến nghị bảo mật
Bằng chứng cho thấy việc tài khoản GitHub của một nhân viên Red Hat bị xâm nhập là "Patient zero" (nguồn lây nhiễm đầu tiên) được sử dụng để đưa payload độc hại vào các gói này. Tài khoản bị xâm nhập đã đẩy các orphan commits độc hại vào hai kho lưu trữ RedHatInsights, bỏ qua quy trình code review.
Để đảm bảo an toàn, người dùng và tổ chức được khuyến nghị:
- Cách ly các máy chủ đã cài đặt các phiên bản bị ảnh hưởng và xóa bỏ chúng ngay lập tức.
- Thay đổi (rotate) toàn bộ thông tin xác thực đã bị lộ.
- Kiểm tra các dấu hiệu hoạt động đáng ngờ trên GitHub hoặc npm.
- Kiểm tra môi trường để tìm các tệp cấu hình bị thay đổi (~/.claude/settings.json, .vscode/tasks.json, .github/workflows/codeql.yml, .github/setup.js).
- Đối với hệ thống CI/CD: Tạm dừng các luồng công việc bị ảnh hưởng, vô hiệu hóa các bản build được tạo ra trong thời gian bị phơi nhiễm.
Socket cảnh báo rằng do mã độc có cơ chế thực thi ngầm và duy trì sự hiện diện trong các công cụ dành cho nhà phát triển, việc chỉ gỡ cài đặt gói npm hoặc xóa thư mục node_modules là không đủ để làm sạch hệ thống hoàn toàn.