Nguy hiểm: Mối đe dọa mạng từ gói npm giả mạo

Nguy hiểm: Mối đe dọa mạng từ gói npm giả mạo

Một chiến dịch mã độc mới nhắm vào các hệ thống Windows đang được phát hiện, sử dụng một gói phần mềm giả mạo trên kho lưu trữ npm. Gói độc hại này, ngụy trang dưới dạng một công cụ xây dựng CSS hợp pháp, âm thầm cài đặt một Remote Access Trojan (RAT) đầy đủ tính năng lên máy của các nhà phát triển. Sự tinh vi và khả năng gây hại của cuộc tấn công này vượt xa những gì ban đầu có thể nhận thấy, làm nổi bật những mối đe dọa mạng tiềm ẩn trong chuỗi cung ứng phần mềm.

Chiến dịch Tấn công qua NPM

Cuộc tấn công bắt đầu với một gói npm bị đánh cắp tên (typosquatting) có tên là postcss-minify-selector-parser. Gói này được thiết kế để trông giống với postcss-selector-parser, một thư viện phổ biến với hơn 150 triệu lượt tải hàng tuần. Việc sử dụng tên tương tự và các từ khóa giống nhau khiến nó trở nên khó bị phát hiện trong quá trình đánh giá phụ thuộc thông thường.

Khi một nhà phát triển cài đặt gói giả mạo, một chuỗi tấn công đa giai đoạn sẽ được kích hoạt bởi một đoạn mã được mã hóa ẩn bên trong tệp thực thi. Điều này cho thấy một sự hiểu biết sâu sắc về cách thức hoạt động của lòng tin trong các hệ sinh thái mã nguồn mở.

Khai thác Phụ thuộc Mờ

Các nhà phát triển trong các dự án có nhịp độ phát triển nhanh, những người không kiểm tra kỹ lưỡng các phụ thuộc chuyển tiếp (transitive dependencies), đặc biệt có nguy cơ trở thành nạn nhân của phương thức xâm nhập mạng này. Kẻ tấn công đã khai thác một cách có chủ đích sự tin tưởng vào các thư viện npm phổ biến để phân phối mã độc.

JFrog, một công ty an ninh mạng, đã phát hiện ra mối đe dọa này và công bố phân tích chi tiết. Cuộc điều tra cũng đã phát hiện ra hai gói liên quan khác: postcss-minify-selectoraes-decode-runner-pro, tất cả đều đến từ cùng một nhà xuất bản trên npm. Tại thời điểm báo cáo, cả ba gói này vẫn còn tồn tại và có thể truy cập được trên registry.

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

Sau khi RAT được triển khai thành công trên máy nạn nhân, nó sẽ thiết lập liên lạc với một máy chủ chỉ huy và kiểm soát (C2) thông qua giao thức HTTP. Toàn bộ lưu lượng mạng được mã hóa bằng kỹ thuật RC4/ARC4 kết hợp với MD5 checksum, gây khó khăn cho việc phát hiện ở cấp độ mạng.

RAT gửi một hồ sơ máy chủ ban đầu đến C2, sau đó chuyển sang một vòng lặp chờ đợi lệnh từ kẻ tấn công. Điều này cho phép kẻ tấn công duy trì quyền kiểm soát và ra lệnh thực thi các hành động độc hại.

Cơ chế Duy trì và Lẩn tránh

Để đảm bảo khả năng tồn tại sau khi khởi động lại hệ thống, mã độc thực hiện ghi một khóa đăng ký (registry persistence key) với tên csshost dưới khóa Windows Run. Nó cũng lưu trữ một định danh nạn nhân (UUID) và cấu hình máy chủ trong các tệp được đặt tại thư mục TEMP. Điều này đảm bảo rằng RAT sẽ tự động kết nối lại với máy chủ C2 ngay cả khi kẻ tấn công mất liên lạc tạm thời.

RAT hỗ trợ một loạt các khả năng, bao gồm thực thi lệnh shell từ xa, tải lên và tải xuống tệp, lệnh chờ ngẫu nhiên và phát hiện máy ảo. Kỹ thuật phát hiện máy ảo sử dụng các truy vấn WMI và so khớp tiền tố địa chỉ MAC để tránh bị phân tích trong môi trường sandbox. Mức độ tinh vi trong thiết kế lẩn tránh này cho thấy một tác nhân đe dọa có kế hoạch kỹ thuật bài bản và kinh nghiệm vận hành thực tế.

Mã độc cuối cùng chạy dưới dạng một ứng dụng Python được biên dịch bằng Nuitka, khiến việc phân tích trở nên khó khăn hơn đáng kể so với các mối đe dọa dựa trên tập lệnh thông thường. Một trình tải xuống PowerShell sẽ lấy một tệp ZIP từ một tên miền giả mạo, giải nén nó và sau đó thực thi một tập lệnh VBS để khởi chạy RAT.

Đánh cắp Thông tin Đăng nhập

Một trong những chức năng đáng chú ý của RAT là module chuyên biệt để đánh cắp dữ liệu đăng nhập đã lưu từ trình duyệt Google Chrome. Nó truy cập vào các tệp hồ sơ cục bộ của Chrome, bao gồm cả cơ sở dữ liệu SQLite Login Data.

Mã độc sử dụng các API giải mã của Windows để mở khóa mật khẩu đã lưu trữ. Đáng chú ý, nó cũng xử lý mã hóa liên kết ứng dụng mới hơn của Chrome, có nghĩa là ngay cả các thông tin đăng nhập được bảo vệ gần đây cũng không an toàn.

Thu thập Dữ liệu Mở rộng

Module auto.pyd còn thu thập dữ liệu từ các tiện ích mở rộng của Chrome. Kết quả được đóng gói vào một kho lưu trữ trong bộ nhớ trước khi gửi đi. Các tham chiếu đến tệp đầu ra được tìm thấy trong tệp nhị phân bao gồm chrome_logins_dump.txtgather.tar.gz, gợi ý rằng kẻ tấn công đã thiết kế RAT này cho mục đích trích xuất dữ liệu theo lô một cách có tổ chức.

Đối với các nhà phát triển lưu trữ khóa API, token hoặc thông tin đăng nhập trong trình duyệt của họ, đây là một mối đe dọa nghiêm trọng và tức thời. Việc thông tin bị lộ có thể dẫn đến các hậu quả nghiêm trọng, bao gồm truy cập trái phép vào các tài khoản và dịch vụ quan trọng.

Khuyến nghị và Chỉ số Tấn công (IoCs)

JFrog khuyến cáo tất cả người dùng đã cài đặt các gói từ cụm này cần gỡ bỏ chúng ngay lập tức và kiểm tra kỹ lưỡng cây phụ thuộc của họ để phát hiện các rủi ro chuyển tiếp. Các nhóm bảo mật nên chặn các chỉ số mạng liên quan đến chiến dịch này và quét các điểm cuối để tìm các đường dẫn tệp và tệp thực thi liên quan.

Tất cả thông tin đăng nhập được lưu trữ trong trình duyệt và các token phát triển trên các máy bị ảnh hưởng nên được coi là đã bị xâm phạm và cần được quay vòng (rotate) ngay lập tức. Việc cập nhật bản vá và duy trì các biện pháp bảo mật chủ động là rất quan trọng để giảm thiểu rủi ro từ các cuộc tấn công chuỗi cung ứng phần mềm.

Các Chỉ số Tấn công (IoCs)

  • Tên gói độc hại: postcss-minify-selector-parser, postcss-minify-selector, aes-decode-runner-pro
  • Công nghệ khai thác: Typosquatting trên kho lưu trữ npm, phân phối RAT qua các gói phát triển.
  • Cơ chế lây nhiễm: Cài đặt gói npm độc hại, thực thi mã hóa đa giai đoạn.
  • Mã độc: Windows RAT (Remote Access Trojan).
  • Cơ chế C2: Giao tiếp HTTP mã hóa (RC4/ARC4 với MD5 checksum).
  • Cơ chế duy trì: Khóa đăng ký Windows Run (csshost), lưu tệp cấu hình trong thư mục TEMP.
  • Tính năng RAT: Thực thi lệnh shell, tải lên/tải xuống tệp, phát hiện VM, đánh cắp thông tin đăng nhập Chrome.
  • Mục tiêu đánh cắp: Thông tin đăng nhập Chrome (bao gồm cả mật khẩu được mã hóa).
  • Phân tích hành vi: Lẩn tránh sandbox, thu thập dữ liệu có tổ chức (chrome_logins_dump.txt, gather.tar.gz).

Việc tăng cường các biện pháp an ninh mạng và nâng cao nhận thức về các rủi ro trong chuỗi cung ứng phần mềm là vô cùng cần thiết để bảo vệ các hệ thống khỏi các mối đe dọa ngày càng tinh vi như thế này.