Các tác nhân đe dọa từ Bắc Triều Tiên liên quan đến chiến dịch Contagious Interview đã bị phát hiện đang phát tán 108 gói phần mềm và tiện ích mở rộng trình duyệt web độc nhất trên các nền tảng npm, Packagist, Go và Google Chrome như một phần của hoạt động đang diễn ra có tên PolinRider.
"Chiến dịch này vẫn đang hoạt động và các gói độc hại mới có khả năng sẽ tiếp tục xuất hiện khi tin tặc chiếm quyền điều khiển tài khoản của người duy trì (maintainer), sửa đổi các kho lưu trữ hợp pháp và phát hành các phiên bản gói phần mềm bị lây nhiễm nơi chúng giữ lại hoặc giành được quyền truy cập vào registry," nhà nghiên cứu bảo mật Karlo Zanki của Socket cho biết trong một phân tích được công bố tuần này.
Có 162 tệp phát hành độc hại trải dài trên nhiều phiên bản tương ứng với 108 gói phần mềm và tiện ích mở rộng độc nhất, bao gồm 19 thư viện npm, 10 gói Composer, 61 mô-đun Go và một tiện ích mở rộng Google Chrome.
Contagious Interview là mật danh được gán cho một chiến dịch liên kết với Bắc Triều Tiên nhằm vũ khí hóa quy trình tuyển dụng để nhắm mục tiêu vào các nhà phát triển phần mềm và các cá nhân làm việc trong lĩnh vực tiền điện tử, sử dụng các cuộc phỏng vấn và đánh giá công việc thuyết phục để lừa họ thực thi mã độc.
Hoạt động này được biết là đã diễn ra từ ít nhất là năm 2023. Những kẻ tấn công giả mạo là nhà tuyển dụng hoặc cộng tác viên trên các nền tảng như LinkedIn, GitHub hoặc các trang web tự do, thường thiết lập các công ty bình phong tinh vi và hồ sơ nhân viên do AI tạo ra để xây dựng lòng tin và cuối cùng là phát tán mã độc.
Chi tiết về chiến dịch PolinRider
PolinRider lần đầu tiên được gắn cờ bởi nhóm OpenSourceMalware vào tháng 3 năm 2026, mô tả rằng các tác nhân đe dọa đã cấy các tệp tải JavaScript bị che giấu mã nguồn (obfuscated) vào hàng trăm kho lưu trữ GitHub công khai thuộc sở hữu của nhiều cá nhân khác nhau nhằm phát tán một biến thể mới của BeaverTail, một loại mã độc JavaScript nổi tiếng liên quan đến Contagious Interview.
Tính đến ngày 11 tháng 4 năm 2026, hoạt động này đã xâm nhập 1.951 kho lưu trữ GitHub công khai liên quan đến 1.047 chủ sở hữu duy nhất, đồng thời hợp nhất với một cụm tấn công khác có tên là TaskJacker – chuyên thả các tệp VS Code task độc hại vào các kho lưu trữ hiện có của người dùng GitHub. Các tác vụ VS Code này bao gồm tùy chọn "runOn: 'folderOpen'" để kích hoạt việc thực thi mã tùy ý khi thư mục được mở dưới dạng thư mục không gian làm việc trong một IDE như VS Code hoặc Cursor.
"Tác nhân đe dọa không sử dụng thông tin đăng nhập GitHub bị đánh cắp," OpenSourceMalware cho biết. "Thay vào đó, các nạn nhân đã bị xâm nhập thông qua một tiện ích mở rộng VS Code hoặc gói npm độc hại." Người ta tin rằng những kẻ tấn công đang chiếm đoạt tài khoản của người duy trì (maintainer), có khả năng thông qua việc chiếm đoạt tên miền đã hết hạn hoặc một con đường khôi phục tài khoản khác.
Phương thức hoạt động và che dấu dấu vết
Sau khi được thực thi, mã độc sẽ tìm kiếm trong máy tính bị nhiễm các tệp cụ thể như "postcss.config.mjs", "tailwind.config.js", "eslint.config.mjs", "next.config.mjs", "babel.config.js" và "app.js", và nếu tìm thấy, nó sẽ chèn thêm mã JavaScript độc hại vào đó.
Nó cũng sử dụng một script batch của Windows để sửa đổi commit cuối cùng một cách âm thầm, đồng thời làm cho nó có vẻ như được thực hiện bởi tác giả ban đầu. Nghi ngờ rằng các công cụ tương tự cũng đang được sử dụng để ghi lại lịch sử Git (rewrite Git history) cho các hệ điều hành khác như Linux và macOS.
"Kỹ thuật cốt lõi vẫn nhất quán trong suốt chiến dịch: các tác nhân đe dọa đặt các trình tải JavaScript bị che giấu mã nguồn trong các kho lưu trữ hợp pháp, ẩn mã thông qua việc chèn khoảng trắng hoặc các tệp phông chữ .woff2 giả mạo, và kích hoạt thực thi thông qua các công cụ dành cho nhà phát triển như tệp VS Code task," Socket cho biết.
Trong đợt tấn công mới nhất, tệp tải hoạt động như một trình tải mã độc JavaScript liên kết với hạ tầng blockchain, bao gồm các dịch vụ TRON, Aptos và BNB Smart Chain, để lấy tệp tải giai đoạn hai đã được mã hóa, sau đó giải nén thành DEV#POPPER RAT và OmniStealer.
Khuyến nghị bảo mật
Nhà nghiên cứu Zanki lưu ý: "Các tác nhân đe dọa sử dụng việc ghi lại lịch sử Git, bao gồm cả 'force push' và các commit lùi ngày để làm cho các thay đổi độc hại trông cũ hơn và ít nghi ngờ hơn. Điều này khiến trang đích GitHub và lịch sử commit hiển thị không còn là những chỉ số đáng tin cậy về việc bị xâm nhập; những người phòng thủ nên xem xét nhật ký hoạt động của kho lưu trữ, siêu dữ liệu phát hành gói, cấu hình tác vụ VS Code và các thay đổi đáng ngờ đối với các tệp cấu hình."
Người dùng đã cài đặt các gói này nên xử lý môi trường như thể đã bị xâm nhập, thực hiện xoay vòng các bí mật (secrets) bị lộ từ một máy sạch, gỡ bỏ các phiên bản bị ảnh hưởng, xây dựng lại từ một tệp lockfile an toàn đã biết và kiểm tra các trạm làm việc của nhà phát triển cũng như các kho lưu trữ để tìm các đường dẫn thực thi ẩn hoặc các commit đáng ngờ đã sửa đổi các tệp như ".vscode/tasks.json", "config.js", "vite.config.js" và "eslint.config.js".