Cảnh báo khẩn cấp: Tấn công chuỗi cung ứng Shai-Hulud 2.0

Một tấn công chuỗi cung ứng đáng kể đã được phát hiện với sự xuất hiện của Shai-Hulud 2.0, một biến thể mã độc tinh vi. Kể từ ngày 24 tháng 11 năm 2025, mã độc này đã xâm nhập vào hơn 30.000 kho lưu trữ GitHub.
Biến thể mã độc này hoạt động như một loại sâu máy tính, đe dọa nghiêm trọng đến hệ sinh thái phát triển phần mềm. Mục tiêu chính của nó là trình quản lý gói NPM và đã lan rộng trên nhiều nền tảng, bao gồm Maven và OpenVSX.
Cuộc tấn công mạng này minh họa rõ ràng xu hướng các tác nhân đe dọa ngày càng nhắm mục tiêu vào các công cụ mà nhà phát triển sử dụng hàng ngày. Mục đích là để đánh cắp các thông tin xác thực quan trọng và bí mật nhạy cảm từ môi trường phát triển.
Khám phá Mã độc Shai-Hulud 2.0: Mối đe dọa trong tấn công chuỗi cung ứng phần mềm
Véc tơ lây nhiễm ban đầu và Cơ chế khai thác
Mã độc Shai-Hulud 2.0 xâm nhập vào các hệ thống thông qua các gói NPM bị làm nhiễm độc. Các véc tơ lây nhiễm chính được xác định là phiên bản 0.6.7 của gói @postman/tunnel-agent và phiên bản 6.8.3 của gói @asyncapi/specs.
Hai gói này cùng nhau chiếm hơn 60% tổng số các trường hợp lây nhiễm đã được ghi nhận. Việc lựa chọn các gói phổ biến cho thấy mức độ tính toán trong việc tối đa hóa phạm vi lây nhiễm.
Cơ chế hoạt động và Thu thập thông tin
Khi được thực thi trong giai đoạn cài đặt gói, mã độc hoạt động thông qua một script pre-install chạy tự động. Script này là một phần của quy trình cài đặt gói NPM, cho phép mã độc được kích hoạt mà không cần sự tương tác đáng kể từ người dùng.
Ngay sau khi thực thi, mã độc thiết lập cơ chế duy trì quyền truy cập (persistence) trên hệ thống bị xâm nhập. Từ đó, nó bắt đầu các hoạt động thu thập thông tin xác thực.
Khả năng tự lan truyền là một đặc điểm nổi bật của Shai-Hulud 2.0. Mã độc tìm kiếm các thông tin xác thực GitHub hiện có trong môi trường đã bị xâm nhập. Sau đó, nó sử dụng chúng để tải lên các kho lưu trữ độc hại bổ sung.
Quá trình này tạo ra một chuỗi lây nhiễm chồng chéo, mở rộng phạm vi của cuộc tấn công chuỗi cung ứng một cách nhanh chóng và hiệu quả. Mỗi hệ thống bị xâm nhập có thể trở thành điểm xuất phát cho các cuộc tấn công tiếp theo.
Tác động và Phạm vi Rò rỉ Dữ liệu
Thông tin đăng nhập GitHub và Mã thông báo NPM
Các nhà phân tích bảo mật từ Wiz.io đã ghi nhận rằng mã độc này đã đánh cắp khoảng 500 tên người dùng và mã thông báo GitHub duy nhất. Những thông tin này được trích xuất từ các tệp contents.json tìm thấy trong các kho lưu trữ bị xâm nhập. (Tham khảo thêm: Wiz.io Blog)
Ngoài thông tin đăng nhập GitHub, cuộc tấn công còn làm rò rỉ dữ liệu lên tới 400.000 bí mật được xác định thông qua quá trình quét bằng Trufflehog. Tuy nhiên, chỉ khoảng 2,5% trong số này được xác minh là hợp lệ.
Điều đáng báo động là hơn 60% số mã thông báo NPM bị rò rỉ vẫn còn hiệu lực. Điều này tạo ra một rủi ro bảo mật đáng kể cho các tấn công chuỗi cung ứng tiếp theo trong tương lai.
Cơ chế lây nhiễm dựa vào việc chèn mã độc hại vào script vòng đời pre-install. Script này được thực thi trong quá trình cài đặt gói, với nhận thức tối thiểu từ người dùng, làm tăng hiệu quả của việc lây lan và ẩn mình.
Mã độc thu thập các biến môi trường và thông tin hệ thống vào một tệp environment.json. Hành động này tạo ra một dấu vân tay chi tiết của từng hệ thống bị xâm nhập, hỗ trợ việc thu thập dữ liệu mục tiêu.
Môi trường mục tiêu và Thử nghiệm khai thác bí mật đám mây
Hầu hết các máy bị lây nhiễm là các container dựa trên Linux trong môi trường CI/CD (Continuous Integration/Continuous Delivery). GitHub Actions là nền tảng mục tiêu hàng đầu, cho thấy sự tập trung vào các quy trình phát triển tự động.
Mã độc đã cố gắng trích xuất bí mật từ các môi trường đám mây như AWS, Google Cloud và Azure. Tuy nhiên, phân tích sâu cho thấy những lỗ hổng trong việc triển khai chức năng này.
Cụ thể, việc thiếu xử lý lỗi đã ngăn chặn việc thu thập bí mật đúng cách từ nhiều nhà cung cấp đám mây cùng lúc. Lỗi kỹ thuật này đã vô tình hạn chế phạm vi đánh cắp thông tin xác thực đám mây.
Dù vậy, các bí mật cục bộ và thông tin đăng nhập phát triển vẫn bị xâm phạm hoàn toàn trên hàng nghìn tổ chức trên toàn thế giới. Điều này nhấn mạnh nguy cơ của các rò rỉ dữ liệu này.
Chỉ số Compromise (IOCs)
Để hỗ trợ việc phát hiện và giảm thiểu nguy cơ từ Shai-Hulud 2.0, dưới đây là các chỉ số thỏa hiệp (Indicators of Compromise – IOCs) quan trọng:
- Gói NPM bị nhiễm độc:
@postman/tunnel-agentphiên bản 0.6.7@asyncapi/specsphiên bản 6.8.3
- Tên tệp liên quan:
contents.json(tệp chứa thông tin đăng nhập GitHub bị đánh cắp)environment.json(tệp chứa thông tin hệ thống và biến môi trường)
- Môi trường mục tiêu:
- Container Linux trong môi trường CI/CD
- Nền tảng GitHub Actions
Hậu quả và Rủi ro Tiếp theo
Sự cố tấn công chuỗi cung ứngShai-Hulud 2.0 là một lời nhắc nhở nghiêm trọng về tầm quan trọng của việc bảo mật trong quy trình phát triển phần mềm. Việc rò rỉ dữ liệu nhạy cảm và thông tin xác thực có thể dẫn đến các cuộc tấn công leo thang, gây thiệt hại lớn.
Các tổ chức cần ưu tiên kiểm tra kỹ lưỡng các gói phần mềm, đặc biệt là các phần phụ thuộc trong quá trình xây dựng. Việc áp dụng các biện pháp bảo mật mạnh mẽ và cập nhật thường xuyên là điều cần thiết để phòng chống các mối đe dọa tương tự.









