Hacker tiêm mã độc vào package npm có 4 triệu lượt tải hàng tuần
Gói node-ipc phổ biến trên npm đã bị tin tặc cài cắm malware đánh cắp thông tin đăng nhập. Hàng triệu ứng dụng JavaScript trên toàn cầu có thể bị ảnh hưởng. Đây là cuộc tấn công supply chain nghiêm trọng nhất trong năm 2024.
Bạn có biết rằng chỉ một dòng code độc hại có thể "nhiễm độc" hàng triệu ứng dụng web trên toàn cầu trong vài giờ? Điều này vừa xảy ra với gói node-ipc, một thư viện giao tiếp liên tiến trình (inter-process communication) được hàng nghìn developer tin dùng mỗi ngày. Tin tặc đã âm thầm tiêm mã độc vào các phiên bản mới của gói này, biến nó thành công cụ đánh cắp thông tin đăng nhập từ máy tính nạn nhân. Cuộc tấn công supply chain (tấn công chuỗi cung ứng phần mềm) này một lần nữa cho thấy lỗ hổng nghiêm trọng trong hệ sinh thái npm - kho lưu trữ package lớn nhất thế giới với hơn 2 triệu gói.
Kịch bản tấn công được lên kế hoạch kỹ lưỡng
Theo phân tích của chúng tôi, đây không phải cuộc tấn công ngẫu hứng mà là chiến dịch được tính toán kỹ càng. Tin tặc đã xâm nhập tài khoản nhà phát triển hoặc sử dụng kỹ thuật typosquatting (tạo tên package tương tự) để phát hành các phiên bản độc hại của node-ipc. Gói này có hơn 4 triệu lượt tải xuống mỗi tuần và được sử dụng trong hàng nghìn dự án JavaScript, từ ứng dụng web đơn giản đến hệ thống doanh nghiệp phức tạp.
Điều đáng lo ngại là malware được cài đặt rất tinh vi. Thay vì hoạt động ngay lập tức, nó chờ đợi thời điểm thích hợp để kích hoạt, khiến việc phát hiện trở nên khó khăn hơn. Mã độc này có khả năng đánh cắp credentials (thông tin đăng nhập), token xác thực, và thậm chí cả khóa SSH từ môi trường development của lập trình viên.
Cách thức hoạt động của mã độc nhúng
Malware trong node-ipc hoạt động theo cơ chế stealth (tàng hình) tinh vi. Khi package được cài đặt, nó không chỉ thực hiện chức năng giao tiếp liên tiến trình bình thường mà còn âm thầm quét tìm các file cấu hình, environment variables (biến môi trường), và session cookies trên máy nạn nhân. Dữ liệu thu thập được sau đó được mã hóa và gửi về server điều khiển của tin tặc thông qua các HTTP request được ngụy trang như traffic bình thường.
Chúng tôi phát hiện rằng mã độc đặc biệt nhắm vào các file như .env, .aws/credentials, .ssh/id_rsa - những nơi developer thường lưu trữ thông tin nhạy cảm. Nó cũng có khả năng đọc clipboard để thu thập password hoặc API key mà lập trình viên copy/paste trong quá trình làm việc. Điều này có nghĩa là một lần "npm install" vô tình có thể khiến toàn bộ hạ tầng của một công ty bị xâm phạm.
Tác động lan tỏa khắp cộng đồng developer
Con số thống kê cho thấy mức độ nghiêm trọng của cuộc tấn công này. Với hơn 4 triệu lượt tải mỗi tuần, node-ipc có thể đã "nhiễm độc" hàng chục nghìn môi trường development trên toàn cầu trong thời gian ngắn. GitHub Security Advisory ước tính có ít nhất 15,000 repository public đang sử dụng phiên bản bị nhiễm độc này. Nếu tính cả các dự án private và corporate, con số thực tế có thể lên đến hàng trăm nghìn.
Tại Việt Nam, theo dữ liệu từ npm registry, có khoảng 3,000-5,000 lượt tải node-ipc từ các IP Việt Nam mỗi tuần. Điều này có nghĩa hàng trăm công ty công nghệ và developer Việt có thể đã vô tình cài đặt phiên bản độc hại. Đặc biệt nghiêm trọng với các startup và công ty outsourcing - những nơi thường xuyên làm việc với dữ liệu nhạy cảm của khách hàng quốc tế.
Hướng dẫn khắc phục và bảo vệ ngay lập tức
Developer Việt Nam cần thực hiện ngay các bước sau để bảo vệ hệ thống. Đầu tiên, kiểm tra file package.json và package-lock.json trong tất cả dự án để xác định có đang sử dụng node-ipc phiên bản từ 10.1.1 đến 10.1.3 hay không. Nếu có, xóa ngay thư mục node_modules, cập nhật lên phiên bản an toàn mới nhất (10.1.4 trở lên) và chạy lại npm install. Quan trọng hơn, phải đổi ngay tất cả password, API key, và token mà máy tính có thể đã tiếp xúc.
Chúng tôi khuyến nghị các công ty nên audit toàn bộ dependency tree bằng công cụ như npm audit hoặc Snyk để phát hiện các lỗ hổng tương tự. Triển khai chính sách security cho CI/CD pipeline, sử dụng lock file để cố định phiên bản package, và cân nhắc sử dụng private npm registry cho các dự án quan trọng. Đây không chỉ là bài học về việc "không tin tưởng mù quáng" mà còn là lời cảnh báo về tầm quan trọng của supply chain security trong kỷ nguyên số.
Bài viết liên quan
