Node.js thường được nhìn nhận như một nền tảng hợp pháp để chạy ứng dụng JavaScript phía máy chủ, công cụ phát triển và nhiều quy trình tự động hóa trong doanh nghiệp. Chính sự hợp pháp đó đang khiến nó trở thành một lựa chọn hấp dẫn với kẻ tấn công: thay vì đưa vào hệ thống một tệp nhị phân lạ, chúng có thể dùng node.exe đã được ký số để thực thi mã độc viết bằng JavaScript.
The Hacker News dẫn báo cáo mới của Symantec Threat Hunter Team cho biết kỹ thuật này đã xuất hiện trong nhiều cuộc tấn công từ tháng 02/2026, nhắm vào cơ quan chính phủ, doanh nghiệp công nghệ và khách sạn. Điểm đáng chú ý không nằm ở bản thân Node.js, mà ở cách một công cụ đáng tin bị biến thành lớp vỏ cho hoạt động duy trì truy cập, tải payload và né tránh phát hiện dựa trên chữ ký.

Vì sao công cụ hợp lệ có thể trở thành rủi ro?
Trong nhiều môi trường doanh nghiệp, Node.js là thành phần quen thuộc. Máy trạm của lập trình viên, hệ thống build, công cụ nội bộ và pipeline tự động hóa có thể cần Node.js để hoạt động bình thường. Vì vậy, sự hiện diện của node.exe không mặc nhiên là dấu hiệu bất thường.
Kẻ tấn công tận dụng chính điểm này. Khi mã độc nằm trong các script được thông dịch thay vì một tệp thực thi độc hại mới, các biện pháp phát hiện chỉ dựa vào chữ ký tệp có thể gặp khó khăn hơn. Nếu payload được duy trì qua khóa Registry Run, mã JavaScript có thể được chạy lại mỗi lần người dùng đăng nhập mà vẫn khoác vỏ một runtime hợp lệ.
Đây là một biến thể của xu hướng sống nhờ công cụ hợp lệ trong hệ thống. Thay vì chỉ dùng PowerShell, WMI hoặc công cụ quản trị từ xa, nhóm tấn công mở rộng sang runtime phát triển phần mềm, nơi ranh giới giữa hoạt động hợp pháp và bất thường thường mờ hơn.
Chuỗi tấn công được ghi nhận
Theo thông tin được công bố, trong một vụ xâm nhập vào doanh nghiệp công nghệ tại châu Á từ ngày 23/03 đến 25/07/2026, kẻ tấn công đã tải bộ cài Node.js chính thức từ nodejs.org. Sau đó, chúng dùng runtime đã được ký số để chạy implant độc hại, duy trì truy cập dài hạn và nhận lệnh hoặc công cụ bổ sung qua kỹ thuật EtherHiding.
Trước khi chuyển sang cách này, các nỗ lực triển khai AdaptixC2 và Cobalt Strike Beacon đã bị chặn. Quyền truy cập ban đầu được cho là đến từ ClickFix, hình thức lừa người dùng thực hiện thao tác giả mạo sửa lỗi hoặc xác minh, từ đó tự chạy lệnh có lợi cho kẻ tấn công.
Symantec cũng liên hệ kỹ thuật lạm dụng Node.js với một số công cụ khác như ModeloRAT, Mistic, C2Looper, AsukaStealer và EtherRAT. Điều này cho thấy đây không phải thủ thuật đơn lẻ của một nhóm duy nhất, mà là một mẫu vận hành có thể được nhiều tác nhân ở nhiều mức kỹ năng khác nhau tái sử dụng.
Điểm khó cho đội phòng thủ
Thách thức đầu tiên là phân biệt giữa Node.js hợp pháp và Node.js bị lạm dụng. Trong một tổ chức có đội phát triển phần mềm, việc chặn hoàn toàn node.exe thường không thực tế. Nhưng nếu cho phép không kiểm soát, runtime này có thể trở thành kênh thực thi mã nằm ngoài tầm nhìn của các rule truyền thống.
Thách thức thứ hai là chuỗi tấn công không nhất thiết diễn ra ngay lập tức. Trong một trường hợp nhắm vào tổ chức fintech tại Mỹ, hoạt động triển khai C2Looper được ghi nhận hơn hai tháng sau những sự kiện truy cập ban đầu. Khoảng cách thời gian dài khiến việc xâu chuỗi sự kiện điều tra trở nên khó hơn, đặc biệt nếu log endpoint, proxy và DNS không được lưu đủ lâu.
Thách thức thứ ba là kẻ tấn công có thể kết hợp Node.js với nhiều công cụ hợp lệ khác của Microsoft, dòng lệnh Windows và hạ tầng đám mây hoặc blockchain. Khi mỗi mảnh ghép riêng lẻ trông có vẻ bình thường, giá trị phòng thủ nằm ở tương quan hành vi: ai cài runtime, từ đâu tải về, script nào được chạy, tiến trình con nào phát sinh và kết nối mạng đi đâu.
Các tín hiệu cần giám sát
Doanh nghiệp không nên xem Node.js là độc hại, nhưng cần đặt runtime này vào bối cảnh quản trị tài sản phần mềm. Máy chủ hoặc máy trạm không thuộc nhóm phát triển mà đột nhiên tải và cài Node.js từ Internet là tín hiệu cần kiểm tra. Tương tự, node.exe chạy từ thư mục tạm, thư mục người dùng hoặc thư mục bất thường cũng cần được đưa vào danh sách giám sát.
Các đội SOC có thể theo dõi việc node.exe khởi chạy PowerShell, cmd.exe, công cụ nén, công cụ tải file hoặc kết nối đến tên miền mới đăng ký. Cần chú ý thêm các khóa Registry Run tạo persistence, script JavaScript bị mã hóa hoặc được tải động, cũng như lưu lượng liên quan đến kỹ thuật giấu payload trong dịch vụ hợp pháp.
Ở mức chính sách, tổ chức nên dùng allowlist theo vai trò thay vì cho phép runtime phát triển phần mềm ở mọi nơi. Với máy không có nhu cầu phát triển, Node.js nên được quản lý qua phần mềm phân phối tập trung, có phiên bản chuẩn, đường dẫn chuẩn và cơ chế cảnh báo khi xuất hiện bản cài ngoài danh mục.
Bài học cho cá nhân và tổ chức
Với người dùng cá nhân, ClickFix là lời nhắc quan trọng: không sao chép và chạy lệnh từ website chỉ vì trang đó nói cần sửa trình duyệt, xác minh CAPTCHA hoặc cập nhật tiện ích. Các thông báo yêu cầu mở Run, PowerShell hoặc Terminal để dán lệnh cần được xem là rủi ro cao.
Với tổ chức, bài học là mở rộng mô hình phát hiện từ tệp độc hại sang hành vi lạm dụng công cụ hợp lệ. Một runtime được ký số không đồng nghĩa với một hoạt động đáng tin. Câu hỏi đúng là runtime đó xuất hiện trên máy nào, do ai cài, chạy script nào, sinh tiến trình gì và kết nối tới hạ tầng nào.
Node.js vẫn là một công nghệ thiết yếu trong phát triển phần mềm hiện đại. Rủi ro nằm ở khoảng trống kiểm soát khi công cụ hợp pháp được cài đặt và thực thi ngoài mục đích ban đầu. Khi kẻ tấn công ngày càng ưa chuộng các kỹ thuật ẩn mình trong môi trường đáng tin, phòng thủ hiệu quả phải dựa trên bối cảnh, quản trị tài sản và tương quan hành vi thay vì chỉ tìm kiếm tệp lạ.
VNCyberS tổng hợp từ The Hacker News, Symantec Threat Hunter Team và Broadcom















