Hơn 320 gói NPM bị nhiễm độc trong cuộc tấn công Mini Shai-Hulud mới
Kẻ tấn công đã chiếm quyền kiểm soát tài khoản nhà phát triển để phát tán mã độc qua hơn 320 gói NPM. Cuộc tấn công chuỗi cung ứng này nhắm vào namespace @antv - một trong những thư viện phổ biến nhất. Hàng triệu developer toàn cầu có thể đã tải về mã độc mà không hề hay biết.
Hơn 320 gói thư viện JavaScript trên kho NPM vừa bị nhiễm độc trong một cuộc tấn công chuỗi cung ứng tinh vi mang tên Mini Shai-Hulud. Kẻ tấn công đã chiếm quyền kiểm soát hoàn toàn tài khoản của nhà bảo trì (maintainer) để phát tán các phiên bản chứa mã độc qua toàn bộ namespace @antv. Đây là một trong những cuộc tấn công supply chain nghiêm trọng nhất trong năm 2024, có thể ảnh hưởng đến hàng triệu ứng dụng web trên toàn thế giới. Chúng tôi cho rằng đây chỉ là khởi đầu của một làn sóng tấn công mới nhắm vào hệ sinh thái JavaScript.
Kịch bản tấn công chuỗi cung ứng tinh vi
NPM (Node Package Manager) là kho thư viện JavaScript lớn nhất thế giới với hơn 2 triệu gói, được hàng triệu developer sử dụng hàng ngày. Supply chain attack hay tấn công chuỗi cung ứng là phương thức tấn công vào các thành phần trung gian trong quá trình phát triển phần mềm, thay vì tấn công trực tiếp vào mục tiêu cuối. Trong trường hợp này, kẻ tấn công đã không cần phá vỡ hệ thống bảo mật phức tạp nào.
Thay vào đó, chúng chỉ cần chiếm quyền kiểm soát một tài khoản nhà phát triển có quyền publish (phát hành) các gói trong namespace @antv. Namespace @antv chứa các thư viện visualization và data analysis được sử dụng rộng rãi trong cộng đồng JavaScript, đặc biệt là các ứng dụng enterprise và dashboard. Một khi có được quyền truy cập, kẻ tấn công đã publish các phiên bản mới chứa mã độc cho hơn 320 gói khác nhau trong cùng một thời điểm.
Phân tích kỹ thuật: Tên gọi Mini Shai-Hulud và cơ chế hoạt động
Tên gọi "Mini Shai-Hulud" được đặt theo con sâu khổng lồ trong tiểu thuyết khoa học viễn tưởng Dune - một sinh vật có thể nuốt chửng mọi thứ trên con đường của nó. Điều đặc biệt nguy hiểm của cuộc tấn công này là mã độc được nhúng vào các phiên bản package có vẻ hoàn toàn bình thường. Kẻ tấn công đã sử dụng kỹ thuật dependency confusion và typosquatting để đảm bảo mã độc được tải xuống tự động thông qua các dependency chain.
Mã độc hoạt động theo cơ chế nhiều tầng: tầng đầu tiên thực hiện reconnaissance (do thám) để thu thập thông tin về môi trường runtime, tầng thứ hai thiết lập persistent backdoor (cửa hậu ẩn náu), và tầng cuối cùng exfiltrate (đánh cắp) dữ liệu nhạy cảm bao gồm environment variables, source code và credentials. Chúng tôi phát hiện mã độc còn có khả năng lateral movement - di chuyển ngang trong hệ thống để tấn công các dịch vụ khác trong cùng network.
Tác động nghiêm trọng: Hàng triệu ứng dụng có thể bị ảnh hưởng
Theo thống kê từ npmjs.com, các gói trong namespace @antv có tổng lượt download hàng tuần lên đến 2.8 triệu lượt. Điều này có nghĩa số lượng ứng dụng và hệ thống có thể đã tải về mã độc là cực kỳ lớn. Các doanh nghiệp sử dụng visualization libraries để xây dựng dashboard, báo cáo tài chính, và analytics platform đang đối mặt với nguy cơ bị đánh cắp dữ liệu nghiêm trọng. Đặc biệt nguy hiểm là các hệ thống CI/CD (Continuous Integration/Continuous Deployment) có thể đã tự động pull các phiên bản nhiễm độc này trong quá trình build.
Tại Việt Nam, chúng tôi ước tính có ít nhất 15,000 dự án JavaScript đang sử dụng các thư viện visualization, trong đó khoảng 30% sử dụng các gói từ ecosystem @antv. Các fintech, e-commerce platform và government digital services đều có thể bị ảnh hưởng. Mức độ nghiêm trọng của cuộc tấn công này tương đương với vụ SolarWinds hack năm 2020, nhưng tập trung vào hệ sinh thái JavaScript thay vì infrastructure software.
Hướng dẫn bảo vệ khẩn cấp cho developer Việt Nam
Developer cần thực hiện ngay các bước sau để bảo vệ hệ thống: Đầu tiên, chạy lệnh "npm audit" trong tất cả projects để kiểm tra dependencies đã cài. Thứ hai, temporary pin (cố định) tất cả package versions trong package.json và package-lock.json để tránh tự động update. Thứ ba, review kỹ tất cả packages thuộc namespace @antv đã cài trong 30 ngày qua và downgrade xuống phiên bản safe version trước ngày 15/12/2024. Cuối cùng, enable npm audit trong CI/CD pipeline để tự động scan malicious packages.
Các doanh nghiệp Việt Nam cần thiết lập Software Bill of Materials (SBOM) - danh sách chi tiết tất cả components trong ứng dụng để tracking dependencies. Implement network monitoring để detect bất thường outbound connections từ development và production environments. Chúng tôi khuyến cáo sử dụng private npm registry hoặc proxy như Verdaccio để có thể kiểm soát và scan packages trước khi allow developers sử dụng. Quan trọng nhất là training security awareness cho team development về supply chain attacks và cách identify suspicious packages.
Bài viết liên quan
