-
09/04/2020
-
141
-
1.944 bài viết
31 package npm của Red Hat phát tán mã độc đánh cắp thông tin xác thực
Các nhà nghiên cứu từ Aikido và JFrog vừa phát hiện chiến dịch tấn công chuỗi cung ứng mang tên "Miasma: The Spreading Blight" nhắm vào hệ sinh thái npm của Red Hat Cloud Services. Theo Aikido, cuộc tấn công đã ảnh hưởng đến 32 package và 96 phiên bản package, chủ yếu là các thư viện được duy trì dưới namespace
. Các phiên bản độc hại chứa mã độc có khả năng đánh cắp thông tin xác thực từ môi trường phát triển, hạ tầng cloud và các hệ thống CI/CD.
Mã độc được sử dụng trong chiến dịch là một biến thể mới của Mini Shai-Hulud, họ malware chuyên nhắm vào các thông tin xác thực và có liên quan với nhóm tin tặc TeamPCP.
Khác với các chiến dịch typosquatting dựa trên package giả mạo, vụ việc lần này liên quan trực tiếp đến các package chính thức của Red Hat. Dấu vết điều tra cho thấy các phiên bản chứa mã đôc được phát hành thông qua GitHub Actions OIDC token, cho thấy hạ tầng CI/CD hoặc quy trình phát hành phần mềm đã bị xâm phạm. Điều này khiến mã độc được phát tán từ chính các package hợp pháp mà nhà phát triển vẫn tin tưởng sử dụng.
Mã độc được nhúng vào preinstall script trong file package.json, cho phép tự động thực thi ngay khi người dùng chạy lệnh npm install, trước cả khi ứng dụng được cài đặt hoàn tất. Payload sử dụng nhiều lớp làm rối và giải mã nhằm né tránh các công cụ phân tích, sau đó triển khai mã độc trên hệ thống nạn nhân.
Kho lưu trữ bị nhiễm Miasma trên GitHub
Sau khi kích hoạt, payload độc hại tiến hành rà soát môi trường phát triển, hạ tầng cloud và các hệ thống CI/CD để thu thập thông tin xác thực. Mục tiêu bao gồm GitHub token, GitHub Actions OIDC token, khóa truy cập AWS, thông tin xác thực Azure, tài khoản dịch vụ GCP, Kubernetes token, Vault token, SSH key, Docker credential, npm token, PyPI token cùng các tệp cấu hình chứa dữ liệu nhạy cảm như .env.
Điều khiến chiến dịch này trở nên đặc biệt nguy hiểm là mã độc không chỉ thu thập credential lưu trong các tệp cấu hình hay trên ổ đĩa. Khi nạn nhân sở hữu quyền truy cập phù hợp, nó sẽ chủ động truy vấn các kho lưu trữ thông tin bí mật như AWS Secrets Manager, SSM Parameter Store, Azure Key Vault và GCP Secret Manager để thu thập thêm khóa truy cập, token và các thông tin xác thực quan trọng. Trên các GitHub Actions runner, mã độc thậm chí có khả năng đọc trực tiếp thông tin bí mật từ bộ nhớ của các tiến trình đang chạy, giúp vượt qua cơ chế che giấu dữ liệu nhạy cảm trong log của nền tảng.
Để tránh bị phát hiện, mã độc sử dụng nhiều kỹ thuật che giấu hoạt động sau khi thu thập dữ liệu. Thay vì gửi thông tin đánh cắp tới các máy chủ điều khiển dễ bị nhận diện, nó ngụy trang lưu lượng dưới dạng các kết nối tới địa chỉ api.anthropic.com/v1/api. Mặc dù đây không phải endpoint hợp lệ của Anthropic, tên miền này vẫn đủ "hợp pháp" để hòa lẫn với lưu lượng thông thường tại các tổ chức đang sử dụng công cụ AI, khiến việc phát hiện trở nên khó khăn hơn.
Chiến dịch còn sử dụng GitHub như một kênh lưu trữ và trung chuyển dữ liệu đánh cắp. Thành phần độc hại này tự động tạo các repository công khai dưới tài khoản của nạn nhân với mô tả "Miasma: The Spreading Blight", sau đó tải lên các tệp JSON chứa credential đã thu thập được. Cách tiếp cận này giúp kẻ tấn công tận dụng hạ tầng hợp pháp, giảm sự phụ thuộc vào máy chủ điều khiển riêng và khiến hoạt động đánh cắp dữ liệu khó bị phân biệt với các thao tác GitHub thông thường.
Không dừng lại ở việc đánh cắp dữ liệu, mã độc còn được thiết kế để bám trụ lâu dài trong môi trường phát triển. Trên Linux và macOS, nó triển khai các tiến trình kitty-monitor và gh-token-monitor nhằm duy trì quyền truy cập, theo dõi trạng thái của các token đã thu thập và nhận chỉ thị từ hạ tầng điều khiển của kẻ tấn công. Mã độccũng mở rộng phạm vi kiểm soát sang các công cụ phát triển phổ biến bằng cách chèn hook vào VS Code cùng nhiều nền tảng hỗ trợ lập trình bằng AI như Claude, Gemini, Codex, GitHub Copilot, Kiro và Opencode. Nhờ đó, payload có thể được tái thực thi mỗi khi lập trình viên mở dự án hoặc khởi chạy các công cụ này, biến môi trường làm việc hằng ngày thành điểm bám trụ lâu dài cho cuộc tấn công.
Đáng chú ý nhất, mã độc được trang bị thành phần gh-token-monitor hoạt động như một cơ chế "dead-man switch". Tiến trình này liên tục theo dõi các GitHub token đã đánh cắp và có thể kích hoạt lệnh xóa dữ liệu trong thư mục người dùng nếu phát hiện token bị thu hồi trước khi mã độc và các cơ chế duy trì trên hệ thống được loại bỏ hoàn toàn.
Trước nguy cơ bị khai thác, các chuyên gia khuyến nghị tổ chức đã cài đặt các package từ ngày 1/6/2026 cần khẩn trương thực hiện các biện pháp sau:
Điều khiến chiến dịch này trở nên đặc biệt nguy hiểm là mã độc không chỉ thu thập credential lưu trong các tệp cấu hình hay trên ổ đĩa. Khi nạn nhân sở hữu quyền truy cập phù hợp, nó sẽ chủ động truy vấn các kho lưu trữ thông tin bí mật như AWS Secrets Manager, SSM Parameter Store, Azure Key Vault và GCP Secret Manager để thu thập thêm khóa truy cập, token và các thông tin xác thực quan trọng. Trên các GitHub Actions runner, mã độc thậm chí có khả năng đọc trực tiếp thông tin bí mật từ bộ nhớ của các tiến trình đang chạy, giúp vượt qua cơ chế che giấu dữ liệu nhạy cảm trong log của nền tảng.
Để tránh bị phát hiện, mã độc sử dụng nhiều kỹ thuật che giấu hoạt động sau khi thu thập dữ liệu. Thay vì gửi thông tin đánh cắp tới các máy chủ điều khiển dễ bị nhận diện, nó ngụy trang lưu lượng dưới dạng các kết nối tới địa chỉ api.anthropic.com/v1/api. Mặc dù đây không phải endpoint hợp lệ của Anthropic, tên miền này vẫn đủ "hợp pháp" để hòa lẫn với lưu lượng thông thường tại các tổ chức đang sử dụng công cụ AI, khiến việc phát hiện trở nên khó khăn hơn.
Chiến dịch còn sử dụng GitHub như một kênh lưu trữ và trung chuyển dữ liệu đánh cắp. Thành phần độc hại này tự động tạo các repository công khai dưới tài khoản của nạn nhân với mô tả "Miasma: The Spreading Blight", sau đó tải lên các tệp JSON chứa credential đã thu thập được. Cách tiếp cận này giúp kẻ tấn công tận dụng hạ tầng hợp pháp, giảm sự phụ thuộc vào máy chủ điều khiển riêng và khiến hoạt động đánh cắp dữ liệu khó bị phân biệt với các thao tác GitHub thông thường.
Không dừng lại ở việc đánh cắp dữ liệu, mã độc còn được thiết kế để bám trụ lâu dài trong môi trường phát triển. Trên Linux và macOS, nó triển khai các tiến trình kitty-monitor và gh-token-monitor nhằm duy trì quyền truy cập, theo dõi trạng thái của các token đã thu thập và nhận chỉ thị từ hạ tầng điều khiển của kẻ tấn công. Mã độccũng mở rộng phạm vi kiểm soát sang các công cụ phát triển phổ biến bằng cách chèn hook vào VS Code cùng nhiều nền tảng hỗ trợ lập trình bằng AI như Claude, Gemini, Codex, GitHub Copilot, Kiro và Opencode. Nhờ đó, payload có thể được tái thực thi mỗi khi lập trình viên mở dự án hoặc khởi chạy các công cụ này, biến môi trường làm việc hằng ngày thành điểm bám trụ lâu dài cho cuộc tấn công.
Đáng chú ý nhất, mã độc được trang bị thành phần gh-token-monitor hoạt động như một cơ chế "dead-man switch". Tiến trình này liên tục theo dõi các GitHub token đã đánh cắp và có thể kích hoạt lệnh xóa dữ liệu trong thư mục người dùng nếu phát hiện token bị thu hồi trước khi mã độc và các cơ chế duy trì trên hệ thống được loại bỏ hoàn toàn.
Trước nguy cơ bị khai thác, các chuyên gia khuyến nghị tổ chức đã cài đặt các package từ ngày 1/6/2026 cần khẩn trương thực hiện các biện pháp sau:
- Gỡ bỏ toàn bộ package bị ảnh hưởng bằng npm uninstall và tạo lại lockfile từ nguồn metadata đáng tin cậy.
- Tạm thời sử dụng npm ci --ignore-scripts trong các pipeline CI/CD để ngăn chặn việc thực thi các preinstall script độc hại.
- Kiểm tra và xóa các cơ chế persistence như kitty-monitor và gh-token-monitor trước khi tiến hành thu hồi hoặc xoay vòng credential.
- Rà soát các tệp cấu hình như .claude/settings.json, .vscode/tasks.json và ~/.config/index.js để phát hiện, loại bỏ các hook hoặc mã độc bị chèn trái phép.
- Xoay vòng và cấp mới toàn bộ GitHub token, npm token, khóa truy cập cloud, SSH key và các bí mật khác sau khi xác nhận hệ thống đã được làm sạch hoàn toàn.
Chỉnh sửa lần cuối: