Tin tức bảo mật nguy hiểm về gói npm độc hại

Tin tức bảo mật nguy hiểm về gói npm độc hại

tin tức bảo mật ghi nhận một gói npm độc hại có tên js-logger-pack đã âm thầm biến Hugging Face thành mạng phân phối mã độc và backend lưu trữ dữ liệu bị đánh cắp. Chuỗi tấn công cho thấy cách tấn công supply chain có thể lợi dụng dịch vụ hợp pháp để che giấu hoạt động tải xuống, duy trì hiện diện và exfiltration.

Tin tức bảo mật về gói npm js-logger-pack

Gói này ban đầu trông như một logger vô hại, khiến nhà phát triển dễ tin rằng nó chỉ cung cấp chức năng ghi log bình thường. Phần mã độc thực sự được kích hoạt qua postinstall, chạy tự động trong lúc cài đặt và khởi tạo tiến trình nền tách biệt để lệnh npm install kết thúc bình thường.

Cách triển khai này giúp tải xuống payload diễn ra trong nền mà không gây chú ý ngay lập tức. Đây là điểm điển hình của tin tức an ninh mạng liên quan tới phần mềm nguồn mở bị cài cắm mã độc.

Chuỗi lây nhiễm và nền tảng bị lạm dụng

Ở bước tiếp theo, implant chọn một trong bốn binary độc hại từ kho công khai trên Hugging Face, cụ thể là Lordplay/system-releases. Các binary này là các container Node.js Single Executable Application (SEA) cho Windows, macOS và Linux.

Phân tích từ JFrog Security cho thấy mã JavaScript độc hại được nhúng giống nhau trong cả bốn binary. Nghĩa là không có bốn họ mã độc riêng biệt, mà là cùng một implant được bọc trong bốn container runtime khác nhau.

Tham khảo báo cáo phân tích kỹ thuật từ JFrog tại: https://research.jfrog.com/post/hugging-face-exfil/

Lỗ hổng chuỗi cung ứng và cơ chế bám trụ

Ngay sau khi được triển khai, implant thiết lập persistence bằng cơ chế gốc của từng hệ điều hành:

  • Windows: scheduled tasks và registry Run keys
  • macOS: LaunchAgent entries
  • Linux: systemd user units

Kiểu bám trụ này không dựa vào khai thác lỗ hổng hệ thống, nhưng tạo ra rủi ro bảo mật cao vì mã độc có thể tự động khởi chạy lại sau đăng nhập hoặc khởi động lại máy. Trong bối cảnh lỗ hổng CVE chưa được gắn trực tiếp, đây vẫn là một chiến dịch supply chain cần xử lý như cảnh báo CVE mức thực thi mã từ gói phụ thuộc.

Kết nối điều khiển và năng lực của implant

Implant gửi thông tin hệ thống về máy chủ command-and-control qua WebSocket tới địa chỉ 195[.]201[.]194[.]107. Kênh này cấp cho kẻ tấn công khả năng đọc và ghi file tùy ý, quét credential, ghi lại phím bấm, theo dõi clipboard và triển khai payload bổ sung.

Đây là dấu hiệu của một cuộc tấn công mạng có khả năng điều khiển từ xa, với mức độ tác động tương đương remote code execution sau khi gói độc được thực thi trong hệ thống đích.

Hugging Face bị lạm dụng làm kênh exfiltration

Điểm kỹ thuật đáng chú ý nhất là dữ liệu bị đánh cắp không được gửi về máy chủ riêng mà được đẩy vào các private dataset trên Hugging Face. Điều này biến nền tảng lưu trữ mô hình thành kênh exfiltration trực tiếp.

Khi C2 kích hoạt tác vụ upload, implant nhận Hugging Face token, username, target path và upload ID. Sau đó nó nén file hoặc thư mục mục tiêu thành gzip archive, tạo hoặc tái sử dụng private dataset và tải archive lên bằng client Hugging Face hub nhúng sẵn.

Phương thức này giảm rủi ro cho hạ tầng điều khiển vì máy chủ C2 không phải lưu content bị đánh cắp. Đồng thời, lưu lượng có thể khó phân biệt hơn do đi qua dịch vụ hợp pháp.

Chính sách xử lý phiên và thu thập thông tin

Implant còn có chức năng xóa phiên làm việc, đóng các tiến trình trình duyệt và xóa credential đã lưu. Hành vi này buộc người dùng nhập lại mật khẩu trong khi keylogger đã hoạt động, giúp thu thập thêm thông tin đăng nhập mới.

Nếu dữ liệu được nhập lại sau khi logout cưỡng bức, nó có thể bị gửi vào private dataset chỉ trong vài phút. Trong bối cảnh mối đe dọa này, dữ liệu nhạy cảm có nguy cơ bị lộ dù người dùng đã thay đổi trạng thái phiên.

IOC và dấu hiệu nhận biết

Các IOC kỹ thuật được trích xuất từ nội dung gốc gồm:

  • Package: js-logger-pack
  • Version: 1.1.27
  • Hugging Face repo: Lordplay/system-releases
  • C2 IP: 195[.]201[.]194[.]107
  • Persistence Windows: MicrosoftSystem64 scheduled task, registry Run key
  • Persistence macOS: LaunchAgent entry
  • Persistence Linux: systemd user unit

Ứng phó kỹ thuật và dọn dẹp hệ thống

Máy đã chạy js-logger-pack version 1.1.27 cần được xem là hệ thống bị xâm nhập cho tới khi hoàn tất xoay vòng toàn bộ secret và xóa hết persistence artifacts. Các bước xử lý cần tập trung vào thu hồi quyền truy cập và loại bỏ mọi dấu vết bám trụ.

Cần thay đổi ngay các secret sau:

  • AWS keys
  • SSH keys
  • npm tokens
  • Database passwords
  • API keys
  • Credentials lưu trong browser profiles

Tiếp theo, xóa các cơ chế bám trụ theo nền tảng đang sử dụng:

  • Scheduled task MicrosoftSystem64
  • Registry Run key
  • LaunchAgent entry
  • systemd unit

Lệnh CLI liên quan đến giảm rủi ro tái nhiễm

npm config set ignore-scripts true

Lệnh trên giúp vô hiệu hóa việc tự động chạy postinstall, giảm nguy cơ mã độc thực thi khi cài gói. Sau đó cần purge package và xóa npm cache để loại bỏ thành phần độc hại còn sót lại.

Trong quá trình rà soát, cần kiểm tra kỹ mọi thay đổi trong package.json, kể cả các cập nhật patch nhỏ. Đây là điểm quan trọng của cập nhật bản vá và kiểm soát chuỗi cung ứng phần mềm.

Phân tích tác động bảo mật

Vụ việc cho thấy lỗ hổng CVE không phải lúc nào cũng là điểm vào duy nhất; tin bảo mật mới nhất về supply chain có thể cho thấy một gói npm độc hại đủ để chiếm quyền điều khiển luồng triển khai. Khi nền tảng lưu trữ hợp pháp bị lợi dụng làm nơi chứa dữ liệu exfiltration, việc phát hiện xâm nhập trở nên khó hơn do lưu lượng có vẻ hợp lệ.

Để đối chiếu thêm dữ liệu kỹ thuật, có thể tra cứu thông tin liên quan trên CISA hoặc NVD khi xuất hiện mục cảnh báo tương ứng: https://nvd.nist.gov/