Tấn công chuỗi cung ứng: Mã độc Sha1-Hulud cực nguy hiểm

Tấn công chuỗi cung ứng: Mã độc Sha1-Hulud cực nguy hiểm

Một làn sóng tấn công chuỗi cung ứng Sha1-Hulud quy mô lớn đã tái xuất, ảnh hưởng nghiêm trọng đến hệ sinh thái mã nguồn mở. Chiến dịch này, được kẻ tấn công gọi là “The Second Coming”, đã làm tổn hại hơn 800 gói npm và hàng chục nghìn kho lưu trữ GitHub.

Chiến dịch tấn công phức tạp này nhắm vào các dependency quan trọng từ nhiều tổ chức lớn, bao gồm AsyncAPI, Postman, PostHog, ZapierENS. Ước tính có khoảng 132 triệu lượt tải xuống hàng tháng bị ảnh hưởng bởi biến thể mã độc này.

Kỹ Thuật Khai Thác và Lẩn Tránh Phát Hiện

Sử dụng Môi trường Runtime Bun

Cuộc tấn công lợi dụng môi trường runtime Bun để vượt qua các phương pháp phát hiện truyền thống. Điều này cho phép mã độc Sha1-Hulud hoạt động bên ngoài luồng thực thi Node.js tiêu chuẩn, thường né tránh được các công cụ phân tích tĩnh.

Chuỗi tấn công, được Aikido Security quan sát lần đầu tiên, bắt đầu bằng một tệp có tên setup_bun.js. Tệp này chịu trách nhiệm cài đặt môi trường runtime Bun. Sau khi cài đặt, Bun được sử dụng để thực thi payload độc hại chính chứa trong tệp bun_environment.js.

Tham khảo chi tiết về phát hiện ban đầu tại: Aikido Security Blog

Thu thập Thông tin Xác thực và Mã thông báo (Tokens)

Khi đã hoạt động, sâu máy tính này sử dụng công cụ TruffleHog để quét môi trường bị lây nhiễm nhằm tìm kiếm các khóa API và mã thông báo (tokens). Không giống như các phiên bản trước đây sử dụng tên kho lưu trữ được mã hóa cứng, phiên bản này tạo các kho lưu trữ GitHub có tên ngẫu nhiên để lưu trữ các bí mật bị đánh cắp.

Các kho lưu trữ này có thể được nhận dạng bằng mô tả chung là “Sha1-Hulud: The Second Coming”. Các nhà nghiên cứu bảo mật đã xác định được khoảng 26.300 kho lưu trữ bị lộ.

Biến Thể Đáng Báo Động: Cơ Chế Xóa Dữ Liệu

Tính Năng Hủy Diệt Dự Phòng

Một trong những điểm đáng báo động nhất của biến thể này là tính năng hủy diệt dự phòng (destructive fail-safe). Mặc dù mục tiêu chính vẫn là đánh cắp thông tin xác thực, mã độc Sha1-Hulud còn bao gồm một cơ chế xóa dữ liệu (wiper routine) được kích hoạt nếu nó không thể thiết lập sự tồn tại lâu dài hoặc đưa dữ liệu ra ngoài.

Cơ chế này sẽ kích hoạt khi mã độc không thể thực hiện các hành động sau:

  • Xác thực thành công với GitHub.
  • Tạo một kho lưu trữ mới trên GitHub.
  • Lấy được mã thông báo GitHub (GitHub token).
  • Tìm thấy mã thông báo NPM (NPM token).

Logic Xóa Dữ Liệu

Nếu bất kỳ điều kiện nào trên thất bại, mã độc sẽ thực thi một quy trình xóa dữ liệu. Logic này cố gắng phá hủy toàn bộ thư mục gốc (home directory) của nạn nhân bằng cách xóa mọi tệp có quyền ghi thuộc sở hữu của người dùng hiện tại.

Sự thay đổi này cho thấy rằng nếu Sha1-Hulud không thể chiếm quyền điều khiển thông qua việc đánh cắp thông tin xác thực hoặc thiết lập kênh thoát dữ liệu an toàn, nó sẽ chuyển sang phá hủy dữ liệu nghiêm trọng để xóa dấu vết hoặc gây gián đoạn hoạt động.

Chỉ Số Lây Nhiễm (IOCs)

Dưới đây là các chỉ số lây nhiễm (Indicators of Compromise) được xác định từ chiến dịch này:

  • Tên tệp khởi tạo: setup_bun.js
  • Tên tệp payload chính: bun_environment.js
  • Mô tả kho lưu trữ GitHub bị đánh cắp: Sha1-Hulud: The Second Coming

Thời Điểm Chiến Dịch và Khuyến Nghị Bảo Mật

Thời Điểm Tấn Công Chiến Lược

Thời điểm của chiến dịch này dường như đã được tính toán kỹ lưỡng, diễn ra trước thời hạn npm dự kiến thu hồi các mã thông báo cổ điển vào ngày 9 tháng 12 năm 2025. Sự thỏa hiệp này đã ảnh hưởng đến các phần mềm hạ tầng quan trọng, bao gồm các phần đáng kể của hệ sinh thái AsyncAPIPostman.

Idan Dartikman, đồng sáng lập và CTO của Koi Security, đã nhấn mạnh sự leo thang trong các chiến thuật. Ông nhận định: “Làn sóng này lớn hơn, lây lan nhanh hơn và hung hãn hơn lần trước. Cũng có một thay đổi bảo mật lớn sắp tới với NPM, và rất có thể kẻ tấn công đã hành động nhanh chóng để lây nhiễm càng nhiều nạn nhân càng tốt trước thời điểm đó.”

Các Bước Phản Ứng và Phòng Ngừa

Các nhóm bảo mật được khuyến nghị hành động ngay lập tức để giảm thiểu rủi ro bảo mật. Điều quan trọng là phải kiểm tra (audit) các dependency hiện có để tìm kiếm các chỉ báo tệp cụ thể nêu trên. Ngoài ra, cần xoay vòng (rotate) tất cả các thông tin xác thực bị lộ trong môi trường CI/CD để ngăn chặn việc chiếm quyền điều khiển tiếp theo.

Việc chủ động quản lý bản vá và thường xuyên kiểm tra an ninh mạng là cần thiết để bảo vệ hệ thống khỏi các mối đe dọa chuỗi cung ứng đang phát triển mạnh mẽ.