Nguy Hiểm: Mã Độc Miasma Tấn Công Chuỗi Cung Ứng AsyncAPI

Nguy Hiểm: Mã Độc Miasma Tấn Công Chuỗi Cung Ứng AsyncAPI

Một cuộc tấn công chuỗi cung ứng nghiêm trọng đã chèn mã độc Miasma vào các gói npm AsyncAPI đáng tin cậy. Điều này đặt các hệ thống phát triển và môi trường xây dựng tự động vào nguy cơ cao. Kẻ tấn công đã lợi dụng quy trình phát hành bị xâm phạm để công bố mã độc thông qua namespace npm hợp pháp của dự án.

Các gói bị ảnh hưởng có tổng cộng khoảng 2.9 triệu lượt tải xuống hàng tuần. Tuy nhiên, con số này không xác nhận trực tiếp số lượng hệ thống bị nhiễm.

Mối đe dọa từ Tấn công Chuỗi Cung Ứng AsyncAPI

Chiến dịch này gây lo ngại sâu sắc. Các công cụ độc hại có thể chạy bên trong máy trạm phát triển, các tác vụ tài liệu và đường ống CI/CD. Các môi trường này thường chứa thông tin xác thực nhạy cảm.

Cato Networks đã công bố một báo cáo chi tiết về sự việc này, được chia sẻ với Cyber Security News (CSN). Họ đã xác định hoạt động độc hại này thông qua hệ thống giám sát thông tin tình báo chuỗi cung ứng.

Các nhà nghiên cứu của Cato Networks đã phát hiện rằng kẻ tấn công đã sử dụng một đường dẫn phát hành phần mềm đáng tin cậy. Mục đích là để phân phối một payload Node.js liên quan đến Miasma. Chi tiết về cuộc tấn công có thể được tìm thấy tại đây.

Sự cố này cho thấy tên gói hợp lệ và quy trình xuất bản chính thức không còn đủ để thiết lập lòng tin.

Chi tiết về Phương thức Tấn công

Như đã thấy trong một sự cố GitHub Actions bị xâm phạm gần đây, kẻ tấn công có thể nhắm mục tiêu vào chính hệ thống tự động hóa. Điều này cho phép chúng có quyền truy cập vào các bí mật và các dự án phụ thuộc. Đây là một ví dụ điển hình về nguy cơ trong bảo mật npm.

Khai thác GitHub Actions

Cuộc tấn công bắt đầu bằng một cấu hình GitHub Actions dễ bị tổn thương. Cấu hình này cho phép nội dung yêu cầu kéo (pull request) không đáng tin cậy tương tác với một ngữ cảnh workflow có đặc quyền.

Điều này đã tạo ra một con đường cho kẻ tấn công để có được hoặc lạm dụng danh tính tự động hóa của AsyncAPI. Từ đó, chúng thực hiện các thay đổi trái phép vào kho lưu trữ.

Các thay đổi độc hại được đặt trong một nhánh liên quan đến quy trình phát hành của dự án. Chúng được thiết kế để trông giống như hoạt động phát triển thông thường.

Hệ thống tự động hóa xuất bản của AsyncAPI sau đó đã phát hành các gói bị thay đổi. Điều này khiến chúng xuất hiện hợp lệ vì chúng đến từ namespace npm được mong đợi.

Kỹ thuật này khác với một hoạt động typosquatting đơn giản. Trong typosquatting, tội phạm xuất bản các gói có vẻ giống nhưng từ các tài khoản không quen thuộc.

Nó cũng lặp lại các rủi ro được mô tả trong cuộc tấn công workflow của GitHub Actions khác. Việc xử lý không an toàn hoạt động yêu cầu kéo không đáng tin cậy có thể làm lộ token và thông tin xác thực đám mây. Thông tin chi tiết về các cuộc tấn công GitHub Actions.

Các Gói AsyncAPI Bị Ảnh hưởng

Các phiên bản độc hại được phát hành bao gồm:

  • @asyncapi/generator phiên bản 3.3.1
  • @asyncapi/generator-helpers phiên bản 1.1.1
  • @asyncapi/generator-components phiên bản 0.7.1
  • @asyncapi/specs các phiên bản 6.11.2-alpha.16.11.2

Các nhóm đã tự động khôi phục các dependency trong khoảng thời gian tiếp xúc có thể đã kéo mã bị ảnh hưởng vào môi trường xây dựng. Điều này nhấn mạnh nguy cơ của một tấn công chuỗi cung ứng.

Cơ chế Hoạt động của Mã độc Miasma RAT

Mã JavaScript được chèn không phụ thuộc vào các script vòng đời npm phổ biến như postinstall.

Thay vào đó, nó chạy khi một module bị ảnh hưởng được import. Điều này cho phép mã độc Miasma không hoạt động sau khi cài đặt và thực thi sau này. Việc thực thi có thể xảy ra trong quá trình xây dựng, chạy ứng dụng, tác vụ tài liệu hoặc job CI/CD.

Mã giai đoạn đầu đã khởi chạy một tiến trình Node.js tách rời và tải xuống một payload giai đoạn hai được mã hóa từ IPFS.

Các nhà nghiên cứu cho biết payload này có khả năng duy trì quyền truy cập, chạy các lệnh từ xa, xử lý tệp, tự cập nhật và giao tiếp với cơ sở hạ tầng do kẻ tấn công kiểm soát.

Cách tiếp cận này theo một mô hình rộng hơn của các cuộc tấn công npm tránh các hook cài đặt rõ ràng. Các chiến dịch trước đó liên quan đến các tệp gói binding.gyp độc hại cũng đã cố gắng vượt qua các kiểm tra chỉ tập trung vào các script gói tiêu chuẩn. Đây là một điểm đáng chú ý trong bảo mật npm.

Miasma cũng sử dụng một hợp đồng Ethereum làm nguồn dự phòng cho cấu hình command-and-control (C2). Cấu hình này bao gồm các điểm cuối thay thế, thông tin chuyển tiếp và dữ liệu khởi động.

Cấu hình được xem xét trong trường hợp này hoạt động chủ yếu như một công cụ truy cập từ xa (RAT). Do đó, các nhà nghiên cứu mô tả nó là một RAT liên quan đến Miasma. Họ không giả định rằng nó sẽ tự động lây lan trong mọi môi trường bị ảnh hưởng.

Biện pháp Khắc phục và Phát hiện

Các tổ chức nên kiểm tra các manifest, lockfile, cache và build artifact để tìm các phiên bản bị ảnh hưởng. Sau đó, cần xác định liệu chúng đã được import hay thực thi. Đây là một bước quan trọng để phòng chống các mối đe dọa mạng.

Các nhóm bảo mật cũng nên tìm kiếm payload có tên, xem xét các kết nối ra bên ngoài và nhật ký kho lưu trữ. Đồng thời, cần xoay vòng các thông tin xác thực có thể truy cập và thắt chặt các workflow có đặc quyền sử dụng pull_request_target.

Indicators of Compromise (IoCs)

Các chỉ số xâm nhập (IoCs) chi tiết cho cuộc tấn công chuỗi cung ứng này được cung cấp đầy đủ trong báo cáo nghiên cứu. Để có thông tin chi tiết về các IOCs, vui lòng tham khảo tài liệu gốc:

Lưu ý: Các địa chỉ IP và tên miền trong báo cáo có thể được làm mờ (ví dụ: [.]) để ngăn chặn việc phân giải hoặc siêu liên kết ngẫu nhiên. Chỉ nên khôi phục chúng trong các nền tảng tình báo mối đe dọa được kiểm soát như MISP, VirusTotal hoặc SIEM của bạn. Việc này giúp đảm bảo an toàn thông tin tối đa khi xử lý các dữ liệu nhạy cảm.