Các gói độc hại này lần lượt là “express-api-sync” và “system-health-sync-api”, hoạt động như một công cụ đồng bộ cơ sở dữ liệu và giám sát tình trạng hệ thống. Theo các nhà nghiên cứu, cả hai đều gói này đều chứa backdoor cho phép xóa dữ liệu từ xa trên máy chủ bị nhiễm.
Các gói độc hại đã được phát hành trên npm vào tháng 5/2025 và đã bị xóa khỏi nền tảng này sau khi Socket báo cáo. Số liệu thống kê lịch sử của công ty cho thấy, system-health-sync-api đã được các nhà phát triển tải xuống 855 lần, trong khi express-api-sync chỉ có 104 lượt tải xuống .
Gói đầu tiên, express-api-sync, được cho là có chức năng như một API đơn giản cho các ứng dụng Express để đồng bộ dữ liệu giữa hai cơ sở dữ liệu, nhưng trên thực tế không có chức năng hợp lệ nào. Thay vào đó, phần mềm trung gian được gói tích hợp để đăng ký điểm cuối HTTP POST độc hại có tên là “/api/this/that” và âm thầm chờ lệnh “kill command” từ kẻ tấn công.
Khi điểm cuối backdoor này nhận được yêu cầu POST chứa khóa được mã hóa cứng “DEFAULT_123” thông qua tham số tiêu đề hoặc nội dung, phần mềm độc hại lúc này sử dụng hàm child_process[.]exec để thực thi lệnh xóa Unix rm -rf *, lệnh này có chức năng xóa tất cả các tệp trong thư mục làm việc của ứng dụng.
Báo cáo Socket giải thích rằng: “Khi được kích hoạt, lệnh rm -rf * sẽ thực thi trong thư mục làm việc của ứng dụng, xóa tất cả các tệp, bao gồm mã nguồn, tệp cấu hình và mọi cơ sở dữ liệu cục bộ”.
Trong khi express-api-sync chỉ ảnh hưởng đến các ứng dụng Express chạy trên hệ thống giống Unix, thì system-health-sync-api phức tạp và linh hoạt hơn, cung cấp các chức năng có vẻ hợp pháp cùng với các tính năng phá hủy tiềm ẩn của nó.
Gói độc hại này có các gói phụ thuộc hợp lệ, bao gồm nodemailer và performance-now, bao gồm một điểm cuối kiểm tra tình trạng hệ thống, chức năng sẽ trả về thông tin trạng thái máy chủ cơ bản. Gói này cũng cung cấp nhiều cấu hình cho người dùng để tăng thêm tính hợp lệ.
Theo các nhà nghiên cứu, gói này đăng ký nhiều điểm cuối backdoor như sau:
- GET /_/system/health → trả về trạng thái máy chủ.
- POST /_/system/health → điểm cuối phá hủy chính.
- POST /_/sys/maintenance → điểm cuối hủy bản sao lưu.
Trong trường hợp này, khóa bí mật là “HelloWorld”, kích hoạt hoạt động do thám tiếp theo là phá hủy từ xa theo hệ điều hành cụ thể. Phần mềm độc hại này hỗ trợ cả lệnh xóa của Linux (rm -rf *) và Windows (rd /s /q.), do đó nó sử dụng lệnh phù hợp tùy thuộc vào kiến trúc hệ thống.
Kẻ tấn công cũng nhận được phản hồi ngay lập tức cho yêu cầu ban đầu của chúng thông qua phản hồi HTTP, xác nhận xem lệnh phá hủy có thành công theo thời gian thực hay không.
Chức năng phá hủy của các gói độc hại
Những kẻ tấn công đã sử dụng địa chỉ email của chúng là anupm019@gmail[.]com, làm kênh liên lạc để nhận thông báo từ phần mềm độc hại, bao gồm bất kỳ bản cập nhật cấu hình nào do nhà phát triển mục tiêu thực hiện.
Bên cạnh đó, phần mềm độc hại này cũng thu thập thông tin về hệ thống mục tiêu trước khi xóa các tệp, bao gồm tên máy chủ, địa chỉ IP và hàm băm biến môi trường, thông tin sau có thể được sử dụng để tạo “fingerprint” nhằm giúp kẻ tấn công xác định máy chủ có cấu hình cụ thể hoặc phát hiện khi biến môi trường thay đổi.
Các trường hợp xóa dữ liệu trong npm khá bất thường vì chúng không phục vụ mục đích lợi ích tài chính hoặc đánh cắp dữ liệu, đây là trường hợp điển hình khi mã độc xâm nhập vào nền tảng phân phối phần mềm.
“Những gói độc hại này không đánh cắp tiền điện tử hoặc thông tin đăng nhập mà xóa mọi thứ. Điều này cho thấy những kẻ tấn công có động cơ phá hoại, cạnh tranh hoặc gây gián đoạn hệ thống chứ không chỉ đơn thuần vì động cơ tài chính”, Socket kết luận.