Nguy hiểm! Tấn công chuỗi cung ứng npm: Rò rỉ dữ liệu nghiêm trọng

Một chiến dịch tấn công chuỗi cung ứng npm tinh vi đã được phát hiện, liên quan đến mười gói npm độc hại. Các gói này tự động thực thi ngay sau khi cài đặt, triển khai một hoạt động đánh cắp thông tin đăng nhập toàn diện và hiệu quả.
Chiến dịch này thể hiện một cấp độ phức tạp mới trong khai thác chuỗi cung ứng npm, kết hợp các hook thực thi tự động, nhiều lớp che giấu và cơ sở hạ tầng thu thập thông tin đăng nhập chuyên nghiệp. Đây là một mối đe dọa mạng nghiêm trọng.
Phần mềm độc hại sử dụng các kỹ thuật che giấu nâng cao, chiến thuật kỹ thuật xã hội và chức năng đa nền tảng để thu thập dữ liệu xác thực nhạy cảm từ hệ thống của các nhà phát triển trên môi trường Windows, Linux và macOS.
Cơ chế Khai thác và Lây nhiễm trong Tấn công Chuỗi Cung ứng npm
Các gói độc hại khai thác hook vòng đời postinstall của npm để thực thi mã độc ngay lập khi các nhà phát triển chạy lệnh npm install. Kẻ tấn công đã cấu hình tệp package.json để tự động kích hoạt một script có tên install.js.
Script này sau đó phát hiện hệ điều hành của nạn nhân và khởi chạy phần mềm độc hại trong một cửa sổ terminal ẩn, khiến việc phát hiện trở nên khó khăn.
- Trên hệ thống Windows, mã độc tạo ra một dấu nhắc lệnh mới.
- Trên Linux, nó cố gắng mở
gnome-terminalvới hỗ trợ dự phòng chox-terminal-emulator. - Trên macOS, nó sử dụng AppleScript để khởi chạy
Terminal.app.
Bằng cách thực thi trong các cửa sổ terminal riêng biệt và xóa nội dung ngay lập tức, phần mềm độc hại chạy ẩn danh trong quá trình cài đặt, tránh bị phát hiện bởi các nhà phát triển.
Phương pháp thực thi này đặc biệt nguy hiểm vì nó không yêu cầu tương tác bổ sung nào từ người dùng ngoài lệnh npm install ban đầu. Các nhà phát triển cài đặt một gói bị typosquatting mà không hề hay biết đã kích hoạt phần mềm độc hại, dẫn đến một cuộc tấn công mạng âm thầm.
Kỹ thuật Che giấu Đa tầng của Mã độc trong Tấn công Mạng
Phần mềm độc hại triển khai bốn lớp che giấu riêng biệt, được thiết kế để chống lại các nỗ lực phân tích tĩnh và dịch ngược, làm phức tạp quá trình điều tra tấn công chuỗi cung ứng npm.
- Lớp ngoài cùng: Toàn bộ payload được bao bọc trong một trình bao
evaltự giải mã. Trình bao này tự tái tạo và đánh giá tại thời gian chạy, ngăn chặn việc kiểm tra mã nguồn sơ bộ. - Lớp thứ hai: Sử dụng mã hóa XOR với khóa được tạo động dựa trên hàm băm của chính hàm giải mã. Điều này khiến việc giải mã tự động trở nên khó khăn nếu không thực thi mã.
- Lớp thứ ba: Chuỗi payload sau đó được mã hóa URL-encoded, tạo thêm một rào cản cho các công cụ phân tích thiếu khả năng đánh giá JavaScript đầy đủ.
- Lớp thứ tư: Mã đã giải mã sử dụng các máy trạng thái
switch-casevới số học hệ thập lục phân và bát phân. Điều này làm rối luồng chương trình, khiến việc phân tích thủ công tốn thời gian cực kỳ.
Cách tiếp cận đa lớp này thể hiện một bước tiến đáng kể trong việc che giấu mã độc npm, bảo vệ cơ sở hạ tầng và khả năng của kẻ tấn công khỏi các nhà nghiên cứu bảo mật.
Chiến dịch Đánh cắp Thông tin đăng nhập Nhiều Giai đoạn
Hoạt động đánh cắp thông tin đăng nhập diễn ra qua bốn giai đoạn riêng biệt, mỗi giai đoạn được thiết kế để tránh bị phát hiện trong khi tối đa hóa việc thu thập thông tin sau tấn công chuỗi cung ứng npm.
Giai đoạn 1: CAPTCHA Giả mạo và Thông báo Cài đặt Lừa đảo
Giai đoạn đầu tiên hiển thị một lời nhắc CAPTCHA giả mạo để thực hiện kỹ thuật xã hội. Điều này khiến các nhà phát triển tin rằng họ đang tương tác với một cơ chế bảo vệ bot hợp pháp. Các nguồn tin như Gbhackers đã cảnh báo về các mối đe dọa tương tự: Beware of Fake CAPTCHA Hidden Lummastealer.
Phần mềm độc hại đồng thời hiển thị các thông báo cài đặt giả mạo, bắt chước các phụ thuộc gói hợp pháp, hoàn chỉnh với số phiên bản và số lượng người đóng góp thực tế. Sự lừa dối này khiến phần mềm độc hại có vẻ đáng tin cậy và trì hoãn việc thực thi, làm cho mối liên hệ với npm install trở nên ít rõ ràng hơn.
Giai đoạn 2: Lấy Dấu vân tay IP
Trong giai đoạn này, phần mềm độc hại gửi địa chỉ IP của nạn nhân đến máy chủ của kẻ tấn công tại 195.133.79.43/get_current_ip để lấy dấu vân tay và định vị địa lý. Điều này tạo ra các bản ghi theo dõi nạn nhân và cho phép kẻ tấn công xác minh rằng các cài đặt phù hợp với hồ sơ mục tiêu dự kiến của họ.
Giai đoạn 3: Tải xuống và Thực thi Binary `data_extracter`
Khi nạn nhân nhập văn bản vào CAPTCHA giả mạo, giai đoạn thứ ba bắt đầu với việc tự động tải xuống và thực thi binary data_extracter. Đây là một ứng dụng Python được đóng gói bằng PyInstaller, kích thước 24MB, được tùy chỉnh cho hệ điều hành của nạn nhân.
Giai đoạn 4: Thu thập Thông tin đăng nhập Toàn diện
Giai đoạn cuối cùng liên quan đến việc thu thập thông tin đăng nhập toàn diện trên nhiều cơ chế lưu trữ. Binary này quét hệ thống tệp một cách có hệ thống để tìm các kho lưu trữ thông tin đăng nhập, trích xuất dữ liệu từ các chuỗi khóa hệ thống trên tất cả các hệ điều hành chính, thu thập cookie phiên trình duyệt và mật khẩu đã lưu, thu thập các token xác thực OAuth và JWT. Nó cũng định vị các khóa riêng SSH và các tệp cấu hình chứa thông tin đăng nhập API. Các cuộc tấn công nhằm vào token xác thực là một hình thức rò rỉ dữ liệu phổ biến, như được mô tả trong Critical Memory Leak Bug with Cloudflare Leaks Cookies and Authentication Tokens.
Dữ liệu bị đánh cắp được nén vào các kho lưu trữ ZIP và được trích xuất về cơ sở hạ tầng command-and-control (C2) của kẻ tấn công.
Chi tiết Kỹ thuật Khai thác Thông tin đăng nhập Đa Nền tảng
Binary data_extracter triển khai khả năng trích xuất thông tin đăng nhập tinh vi trên các nền tảng Windows, Linux và macOS. Đây là một điểm mạnh của chiến dịch tấn công chuỗi cung ứng npm này.
- Trên hệ thống Linux, nó truy cập thông tin đăng nhập được lưu trữ trong SecretService D-Bus API, GNOME Keyring và KWallet.
- Các mục tiêu macOS bị khai thác thông qua Keychain Services API.
- Hệ thống Windows bị thu thập thông tin từ Credential Manager thông qua CredRead và CredWrite APIs.
Cách tiếp cận đa nền tảng này đảm bảo rằng các nhà phát triển trên bất kỳ hệ điều hành nào cũng có thể bị xâm phạm thông tin đăng nhập. Mã độc đặc biệt nhắm mục tiêu vào các kho thông tin đăng nhập giá trị cao, bao gồm các chuỗi khóa hệ thống được sử dụng bởi các ứng dụng email, công cụ đồng bộ hóa lưu trữ đám mây, ứng dụng VPN và trình quản lý mật khẩu.
Việc trích xuất dữ liệu trình duyệt tập trung vào các cookie phiên (session cookies) có thể bỏ qua xác thực đa yếu tố, mật khẩu đã lưu từ trình quản lý mật khẩu trình duyệt và dữ liệu cookie jar cho việc chiếm quyền phiên. Binary bao gồm các thư viện chuyên biệt để trích xuất các token xác thực hiện đại, bao gồm token OAuth, token JWT và thông tin đăng nhập LaunchPad được sử dụng cho Ubuntu SSO và truy cập API.
Chỉ số Nhận dạng Sự thỏa hiệp (IOCs)
Các tổ chức nên kiểm tra các chỉ số sau để phát hiện sự xâm nhập hoặc liên quan đến cuộc tấn công chuỗi cung ứng npm này:
- Địa chỉ IP C2:
195.133.79.43 - Tên script độc hại:
install.js - Tên binary thu thập dữ liệu:
data_extracter - Ngày hoạt động được biết: Từ 4 tháng 7 năm 2025 trở đi.
- Số lượng tải xuống: Hơn 9,900 lượt tải xuống cộng dồn trước khi bị gỡ bỏ.
Biện pháp Giảm thiểu và Khắc phục
Các tổ chức phải ngay lập tức kiểm tra các phụ thuộc của họ đối với mười gói độc hại này và giả định rằng bất kỳ hệ thống nào đã cài đặt các gói này đều đã bị xâm phạm hoàn toàn. Đây là một mối đe dọa mạng cần được xử lý khẩn cấp.
Các nhóm bảo mật cần thực hiện các hành động sau để đối phó với cuộc tấn công mạng này:
- Thiết lập lại thông tin đăng nhập: Đặt lại tất cả thông tin đăng nhập được lưu trữ trong các chuỗi khóa hệ thống và trình quản lý mật khẩu.
- Thu hồi token: Thu hồi các token xác thực cho tất cả các dịch vụ.
- Kích hoạt MFA: Bật xác thực đa yếu tố (MFA) nếu chưa được triển khai.
- Xoay vòng khóa SSH: Xoay vòng các khóa SSH và xem xét các khóa được ủy quyền trên tất cả các hệ thống.
- Kiểm tra nhật ký truy cập: Kiểm tra nhật ký truy cập để tìm hoạt động bất thường trên các dịch vụ được kết nối.
- Kiểm tra di chuyển ngang: Kiểm tra khả năng di chuyển ngang từ các hệ thống bị xâm phạm sang cơ sở hạ tầng sản xuất.
- Xem xét lịch sử trình duyệt: Xem xét lịch sử trình duyệt để tìm dấu hiệu đánh cắp thông tin đăng nhập tiềm ẩn và rò rỉ dữ liệu.
- Giám sát truy cập trái phép: Thiết lập giám sát cho việc truy cập trái phép vào các kho lưu trữ và dịch vụ đám mây.
- Kiểm tra nhật ký VPN/tường lửa: Kiểm tra nhật ký VPN và tường lửa để tìm các kết nối đến cơ sở hạ tầng của kẻ tấn công.
- Xác định cơ chế duy trì: Xác định bất kỳ cơ chế duy trì bổ sung nào có thể đã được cài đặt.
Việc triển khai các công cụ phòng thủ chuỗi cung ứng, bao gồm tích hợp ứng dụng GitHub để quét phụ thuộc, kiểm tra CLI trong quá trình cài đặt, tiện ích mở rộng trình duyệt để cảnh báo tải xuống và bảo vệ tường lửa cấp doanh nghiệp, sẽ giảm đáng kể nguy cơ các cuộc tấn công chuỗi cung ứng npm tương tự xâm phạm môi trường phát triển.
Socket’s Threat Research Team đã khám phá ra chiến dịch mã độc này, đã hoạt động trên npm registry từ ngày 4 tháng 7 năm 2025, tích lũy hơn 9,900 lượt tải xuống trước khi Socket yêu cầu npm gỡ bỏ. Thông tin chi tiết có sẵn tại nguồn đáng tin cậy: 10 npm Typosquatted Packages Deploy Credential Harvester.









