Nguyễn Đức Thao
Intern Writer
Các nhóm tin tặc có liên hệ với Triều Tiên đang đẩy mạnh chiến dịch tấn công nhắm trực tiếp vào lập trình viên phần mềm, thông qua các dự án Microsoft Visual Studio Code (VS Code) được cài cắm mã độc. Mục tiêu của chiến dịch là cài đặt cửa hậu cho phép thực thi mã từ xa, từ đó kiểm soát và khai thác hệ thống nạn nhân.
Theo báo cáo mới nhất của Jamf Threat Labs, hoạt động này là phần tiếp nối của chiến dịch gián điệp mạng kéo dài nhiều năm, thường được gọi là “Contagious Interview” (Phỏng vấn lây nhiễm), từng được phát hiện từ tháng 12/2025.
Nhà nghiên cứu bảo mật Thijs Xhaflaire cho biết: “Chiến dịch này cho phép kẻ tấn công giành quyền thực thi mã từ xa trên thiết bị của nạn nhân, mở đường cho hoạt động gián điệp và đánh cắp tài sản kỹ thuật số.”
Khi dự án được mở, các tệp cấu hình tác vụ (tasks.json) bị lợi dụng để tự động thực thi mã độc, nhờ thiết lập runOn: folderOpen. Điều này khiến mã độc được kích hoạt ngay khi thư mục dự án được mở trong môi trường phát triển.
Mã độc được tải từ các tên miền Vercel, tùy theo hệ điều hành của nạn nhân, và dẫn đến việc cài đặt hai thành phần nguy hiểm là BeaverTail và InvisibleFerret – các lớp phần mềm cửa hậu đa tầng.
Để tránh bị phát hiện, các phiên bản mới của chiến dịch còn ngụy trang mã độc dưới dạng từ điển kiểm tra chính tả, đóng vai trò như cơ chế dự phòng nếu việc tải tải trọng chính thất bại.
Trên hệ thống macOS, điều này dẫn đến việc chạy một lệnh nền bằng nohup kết hợp curl, tải JavaScript từ xa và truyền trực tiếp vào môi trường Node.js. Cách làm này giúp mã độc tiếp tục hoạt động ngay cả khi VS Code bị đóng và không để lại đầu ra hiển thị.
Mã JavaScript độc hại sau đó thiết lập vòng lặp thực thi liên tục, thu thập thông tin hệ thống, gửi tín hiệu về máy chủ điều khiển và chờ lệnh để thực thi mã bổ sung. Trong một số trường hợp, Jamf ghi nhận hoạt động độc hại tiếp diễn nhiều phút sau khi lây nhiễm, với tần suất liên lạc cứ mỗi 5 giây. Một số đoạn mã bị nghi ngờ được tạo bằng AI, do cách chú thích và diễn đạt bất thường trong mã nguồn.
Việc xâm nhập thành công cho phép kẻ tấn công đánh cắp tài sản số, dữ liệu nội bộ và sở hữu trí tuệ, qua đó phục vụ cả mục tiêu tài chính lẫn gián điệp nhà nước, trong bối cảnh Triều Tiên đang chịu các lệnh trừng phạt quốc tế nghiêm ngặt.
Trong một số kịch bản, mã độc được thiết kế dự phòng bằng hai cách: cài đặt gói npm độc hại “grayavatar”, hoặc tải một bộ điều khiển Node.js tinh vi để kích hoạt nhiều mô-đun như ghi lại thao tác bàn phím, chụp màn hình, đánh cắp dữ liệu trình duyệt, thay thế địa chỉ ví tiền điện tử trong clipboard và duy trì kết nối liên tục với máy chủ điều khiển.
Sau đó, mã độc còn thiết lập môi trường Python song song, triển khai AnyDesk để truy cập từ xa và tiếp tục khai thác hệ thống. Các lớp Node.js và Python trong chuỗi tấn công này lần lượt được xác định là BeaverTail và InvisibleFerret.
“Việc lạm dụng các tệp cấu hình của Visual Studio Code cho thấy công cụ phát triển phổ biến đang trở thành bề mặt tấn công mới,” Jamf nhận định. “Điều này đặt ra yêu cầu cấp thiết về nâng cao nhận thức an ninh mạng trong cộng đồng phát triển phần mềm.” (The Hacker News)
Theo báo cáo mới nhất của Jamf Threat Labs, hoạt động này là phần tiếp nối của chiến dịch gián điệp mạng kéo dài nhiều năm, thường được gọi là “Contagious Interview” (Phỏng vấn lây nhiễm), từng được phát hiện từ tháng 12/2025.
Nhà nghiên cứu bảo mật Thijs Xhaflaire cho biết: “Chiến dịch này cho phép kẻ tấn công giành quyền thực thi mã từ xa trên thiết bị của nạn nhân, mở đường cho hoạt động gián điệp và đánh cắp tài sản kỹ thuật số.”
Mồi nhử tuyển dụng giả và cơ chế lây nhiễm tinh vi
Kịch bản tấn công bắt đầu bằng việc nạn nhân – thường là kỹ sư phần mềm – được mời tham gia bài kiểm tra tuyển dụng giả mạo. Các đối tượng tấn công yêu cầu ứng viên sao chép một kho mã nguồn từ GitHub, GitLab hoặc Bitbucket và mở dự án bằng VS Code.Khi dự án được mở, các tệp cấu hình tác vụ (tasks.json) bị lợi dụng để tự động thực thi mã độc, nhờ thiết lập runOn: folderOpen. Điều này khiến mã độc được kích hoạt ngay khi thư mục dự án được mở trong môi trường phát triển.
Mã độc được tải từ các tên miền Vercel, tùy theo hệ điều hành của nạn nhân, và dẫn đến việc cài đặt hai thành phần nguy hiểm là BeaverTail và InvisibleFerret – các lớp phần mềm cửa hậu đa tầng.
Để tránh bị phát hiện, các phiên bản mới của chiến dịch còn ngụy trang mã độc dưới dạng từ điển kiểm tra chính tả, đóng vai trò như cơ chế dự phòng nếu việc tải tải trọng chính thất bại.
Khai thác cơ chế “tin cậy” của VS Code
Jamf cũng phát hiện một phương thức lây nhiễm mới, chưa từng được ghi nhận trước đây. Khi người dùng mở dự án, VS Code sẽ hỏi có tin cậy tác giả kho mã hay không. Nếu người dùng đồng ý, ứng dụng sẽ tự động xử lý tệp tasks.json, cho phép thực thi các lệnh tùy ý được nhúng bên trong.Trên hệ thống macOS, điều này dẫn đến việc chạy một lệnh nền bằng nohup kết hợp curl, tải JavaScript từ xa và truyền trực tiếp vào môi trường Node.js. Cách làm này giúp mã độc tiếp tục hoạt động ngay cả khi VS Code bị đóng và không để lại đầu ra hiển thị.
Mã JavaScript độc hại sau đó thiết lập vòng lặp thực thi liên tục, thu thập thông tin hệ thống, gửi tín hiệu về máy chủ điều khiển và chờ lệnh để thực thi mã bổ sung. Trong một số trường hợp, Jamf ghi nhận hoạt động độc hại tiếp diễn nhiều phút sau khi lây nhiễm, với tần suất liên lạc cứ mỗi 5 giây. Một số đoạn mã bị nghi ngờ được tạo bằng AI, do cách chú thích và diễn đạt bất thường trong mã nguồn.
Mục tiêu là kỹ sư công nghệ và tài sản số
Các nhóm tin tặc liên quan đến CHDCND Triều Tiên từ lâu đã tập trung vào kỹ sư phần mềm, đặc biệt trong các lĩnh vực tiền điện tử, blockchain và fintech. Đây là những đối tượng thường có quyền truy cập vào ví điện tử, mã nguồn quan trọng và hạ tầng tài chính nhạy cảm.Việc xâm nhập thành công cho phép kẻ tấn công đánh cắp tài sản số, dữ liệu nội bộ và sở hữu trí tuệ, qua đó phục vụ cả mục tiêu tài chính lẫn gián điệp nhà nước, trong bối cảnh Triều Tiên đang chịu các lệnh trừng phạt quốc tế nghiêm ngặt.
Chuỗi tấn công đa lớp và phần mềm độc hại nâng cao
Các nghiên cứu gần đây từ Red Asgard và Security Alliance cũng xác nhận việc chiến dịch này sử dụng cấu hình tác vụ VS Code để cài đặt cửa hậu Tsunami (TsunamiKit) cùng phần mềm đào tiền điện tử XMRig.Trong một số kịch bản, mã độc được thiết kế dự phòng bằng hai cách: cài đặt gói npm độc hại “grayavatar”, hoặc tải một bộ điều khiển Node.js tinh vi để kích hoạt nhiều mô-đun như ghi lại thao tác bàn phím, chụp màn hình, đánh cắp dữ liệu trình duyệt, thay thế địa chỉ ví tiền điện tử trong clipboard và duy trì kết nối liên tục với máy chủ điều khiển.
Sau đó, mã độc còn thiết lập môi trường Python song song, triển khai AnyDesk để truy cập từ xa và tiếp tục khai thác hệ thống. Các lớp Node.js và Python trong chuỗi tấn công này lần lượt được xác định là BeaverTail và InvisibleFerret.
Jamf cảnh báo rằng các tác nhân đe dọa do nhà nước bảo trợ đang liên tục điều chỉnh chiến thuật để hòa trộn mã độc vào quy trình làm việc hợp pháp của lập trình viên.
“Việc lạm dụng các tệp cấu hình của Visual Studio Code cho thấy công cụ phát triển phổ biến đang trở thành bề mặt tấn công mới,” Jamf nhận định. “Điều này đặt ra yêu cầu cấp thiết về nâng cao nhận thức an ninh mạng trong cộng đồng phát triển phần mềm.” (The Hacker News)
Được phối hợp thực hiện bởi các chuyên gia của Bkav,
cộng đồng An ninh mạng Việt Nam WhiteHat
và cộng đồng Khoa học công nghệ VnReview