Chiến dịch mã độc NPM âm thầm suốt 2 năm, đạt hơn 40.000 lượt tải
Chiến dịch chuỗi cung ứng MALFEX trên NPM đã kéo dài từ tháng 8/2023 với 12 gói được phát hành, trong đó 8 gói chứa mã độc. Một gói duy nhất là function-flag đã tích lũy hơn 37.000 lượt tải mà không hề bị cảnh báo là độc hại.

Các gói độc hại được phát hành trong một chiến dịch chuỗi cung ứng NPM kéo dài đã tích lũy hơn 40.000 lượt tải, theo báo cáo mới nhất từ Checkmarx.
Minh họa mối đe dọa chuỗi cung ứng phần mềm
Chiến dịch MALFEX kéo dài gần hai năm
Chiến dịch này được đặt tên là MALFEX, phát tán các loại mã độc như Overlord RAT và các phần mềm đánh cắp thông tin (infostealer). Nó bắt đầu từ tháng 8/2023, khi kẻ tấn công phát hành gói độc hại đầu tiên lên kho lưu trữ NPM — nơi lưu trữ các thư viện JavaScript được sử dụng rộng rãi trong cộng đồng lập trình viên toàn cầu, trong đó có Việt Nam.
Tính đến nay, nhóm tấn công đã phát hành 12 gói, trong đó 8 gói chứa mã độc. Năm gói đã bị xóa khỏi registry, nhưng ba gói vẫn có thể cài đặt tính đến ngày 1/10, gồm: function-flag, function-color và cdn-img-fetch.
function-flag: Gói nguy hiểm nhất
Theo Checkmarx, function-flag đặc biệt đáng lo ngại. Gói này đã trở thành mã độc từ tháng 7/2025, có hơn 37.000 lượt tải và không có bất kỳ cảnh báo nào gắn cờ độc hại.
Đối với các lập trình viên Việt Nam thường xuyên sử dụng các gói npm phổ biến, đây là lời cảnh tỉnh rõ ràng: một gói trông có vẻ vô hại với tên gọi thông thường vẫn có thể ẩn chứa mã độc mà không bị hệ thống kiểm tra phát hiện.
Các cảnh báo Open Source Vulnerabilities (OSV) đã được công bố cho sáu gói độc hại: tlxbnhd, tldriver, mxdriver, img-to-native, native-runner và cdn-img-fetch. Tuy nhiên, mục cảnh báo cho cdn-img-fetch chỉ bao phủ hai trong số bốn phiên bản độc hại của nó.
Ba con đường phát tán độc lập
Checkmarx xác định ba đường phát tán riêng biệt trong chiến dịch, không chia sẻ hạ tầng với nhau nhưng cùng thuộc một nhóm tấn công.
-
Đường thứ nhất: Các loader cho Overlord RAT và script bị làm rối được thực thi trong quá trình
npm install. Dù script có thể chạy trên Windows, macOS và Linux, payload chỉ hoạt động trên Windows. Overlord RAT cung cấp cho kẻ vận hành khả năng giám sát và điều khiển, gồm chụp màn hình, ghi phím, theo dõi cửa sổ, truy cập shell từ xa, tìm kiếm tệp và cả một màn hình ẩn để thực hiện hành vi độc hại mà không bị phát hiện. -
Đường thứ hai: Mã độc được kích hoạt khi gói được tải, nhằm thả phần mềm đánh cắp thông tin Node.js có tên movinlike xuống máy nạn nhân. Mã độc này nhắm vào tám ứng dụng Discord, bảy trình duyệt phổ biến và các ví tiền mã hóa để đánh cắp dữ liệu.
-
Đường thứ ba: Đây là phần kéo dài lâu nhất của chiến dịch, với một downloader riêng biệt trong mỗi phiên bản độc hại của function-flag, được thiết kế để tải payload từ các vị trí khác nhau.
Biểu tượng an ninh mạng
Rủi ro lan rộng ngoài tầm kiểm soát
Theo Checkmarx, quy trình lây nhiễm được thiết kế sao cho việc cài đặt gói vẫn hoàn tất ngay cả khi tải payload thất bại. Quy trình này thất bại âm thầm trên macOS và Linux, nghĩa là chỉ các hệ thống Windows bị ảnh hưởng.
"Không có gói hợp pháp hay được sử dụng rộng rãi nào phụ thuộc vào bất kỳ gói của kẻ vận hành, nên mức độ phơi nhiễm chỉ giới hạn ở những hệ thống cài đặt trực tiếp các tên gói này. Chúng tôi không tìm thấy sự nhắm mục tiêu theo địa lý hay tổ chức; bất kỳ ai cài đặt phần mềm đánh cắp đều trở thành mục tiêu" — Checkmarx nhận định.
Ý nghĩa với cộng đồng lập trình viên
Sự việc này một lần nữa cho thấy mối đe dọa từ chuỗi cung ứng phần mềm ngày càng tinh vi và khó phát hiện. Với các doanh nghiệp và lập trình viên Việt Nam — những đối tượng thường xuyên sử dụng hệ sinh thái npm cho các dự án Node.js, React, Vue và nhiều framework khác — việc kiểm soát chặt chẽ các gói phụ thuộc là điều cấp thiết.
Một số khuyến nghị thực tế:
- Kiểm tra kỹ lưỡng tên gói, số lượt tải và lịch sử phát hành trước khi cài đặt
- Sử dụng công cụ quét bảo mật cho các gói npm trong quy trình CI/CD
- Khóa phiên bản (lockfile) và xem xét sự thay đổi bất thường của các gói phụ thuộc
- Hạn chế quyền thực thi script trong quá trình cài đặt nếu không cần thiết
Chiến dịch MALFEX cho thấy kẻ tấn công có thể kiên trì duy trì hoạt động suốt nhiều năm mà không bị phát hiện, biến những gói tưởng chừng vô hại thành công cụ xâm nhập hiệu quả. Việc chủ động phòng ngừa không còn là lựa chọn mà đã trở thành yêu cầu bắt buộc trong phát triển phần mềm hiện đại.
Bài viết liên quan

Phần mềm
Atos giành hợp đồng 350 triệu bảng để vận hành ứng dụng cho Cảnh sát Metropolitan
06 tháng 10, 2026

Công nghệ
Gleam v1.19.0: Không còn biên dịch sang mã nguồn Erlang
06 tháng 10, 2026
Phần mềm
QCon London 2027 công bố 15 chủ đề: Từ AI trong sản xuất đến kiến trúc và kỹ thuật quy mô lớn
06 tháng 10, 2026