Cảnh báo khẩn: Tấn công chuỗi cung ứng Axios nghiêm trọng

Cảnh báo khẩn: Tấn công chuỗi cung ứng Axios nghiêm trọng

Một chiến dịch tấn công chuỗi cung ứng phức tạp đã nhắm mục tiêu vào Axios, một trong những HTTP client được sử dụng rộng rãi nhất trong hệ sinh thái JavaScript. Kẻ tấn công đã đưa một dependency độc hại vào npm registry chính thức, gây ra rủi ro bảo mật nghiêm trọng cho hàng triệu dự án.

Axios đóng vai trò là một thành phần cốt lõi trong nhiều ứng dụng hiện đại, từ frontend frameworks, microservices backend cho đến các ứng dụng doanh nghiệp. Với khoảng 83 triệu lượt tải xuống hàng tuần trên npm, sự ảnh hưởng của Axios làm cho mọi lỗ hổng hoặc sự cố bảo mật trở nên đặc biệt nghiêm trọng.

Mekanisme Tấn Công và Dependency Độc Hại

Sự xâm nhập liên quan đến việc xuất bản trái phép các phiên bản Axios mới. Các phiên bản này tự động kéo về gói [email protected], một gói mới được xuất bản và đã được các hệ thống phát hiện mã độc tự động xác nhận chứa mã độc hại.

Do sự tích hợp rộng rãi của Axios trong phát triển web hiện đại, phạm vi ảnh hưởng tiềm năng của việc đầu độc chuỗi cung ứng này là vô cùng lớn. Điều này đòi hỏi các giao thức phản ứng sự cố tức thì từ những người dùng cuối.

Chiến Thuật Bỏ Qua Quy Trình Phát Hành Tiêu Chuẩn

Theo Socket, các tác nhân đe dọa đã thực hiện cuộc tấn công này bằng cách phá vỡ các mẫu phát hành tiêu chuẩn của dự án Axios. Thông thường, những người duy trì Axios sẽ phát hành các bản gắn thẻ (tagged releases) trên GitHub đồng thời với việc xuất bản lên npm.

Tuy nhiên, các phiên bản npm bị xâm phạm không xuất hiện trong các thẻ repository GitHub chính thức của dự án. Tại thời điểm xảy ra sự cố, v1.14.0 vẫn là thẻ mới nhất hiển thị trên GitHub. Điều này cho thấy các bản cập nhật độc hại đã được đẩy trực tiếp lên npm registry bên ngoài quy trình triển khai thông thường.

Việc bỏ qua hệ thống kiểm soát phiên bản tiêu chuẩn này gợi ý một nỗ lực phối hợp cao để tiêm mã độc một cách âm thầm. Đây là một dấu hiệu điển hình của một tấn công chuỗi cung ứng tinh vi nhằm tối đa hóa khả năng lây nhiễm trước khi các công cụ bảo mật có thể phản ứng.

Dòng Thời Gian Xâm Nhập và Phát Hiện

  • 2026-03-30, 23:59:12 UTC: Gói dependency độc hại [email protected] được xuất bản lên npm registry.
  • Trong vòng vài phút: Các phiên bản Axios bị xâm phạm đã được đẩy lên npm.
  • 2026-03-31, 00:05:41 UTC: Hệ thống phát hiện mã độc tự động của Socket đã gắn cờ gói plain-crypto-js bất thường.

Trình tự thực thi nhanh chóng này được thiết kế để tối đa hóa sự lây nhiễm trước khi các công cụ bảo mật có thể phản ứng đầy đủ. Để tránh bị phát hiện ngay lập tức trong giai đoạn lây nhiễm ban đầu, kẻ tấn công chỉ thực hiện những thay đổi tối thiểu đối với codebase chính của Axios.

Sự thay đổi duy nhất là thêm gói plain-crypto-js độc hại vào cây dependency. Sử dụng những thay đổi nhỏ, có mục tiêu là một chiến thuật thông thường và hiệu quả cao trong các cuộc tấn công chuỗi cung ứng. Phương pháp này cho phép các tác nhân đe dọa thực thi mã tùy ý thông qua các transitive dependencies mà không gây ra sự chú ý thường đi kèm với các sửa đổi codebase lớn hoặc thay đổi logic.

Tìm hiểu thêm về cách các cuộc tấn công chuỗi cung ứng như thế này có thể khai thác các lỗ hổng trong hệ sinh thái phần mềm tại Socket’s analysis.

Nguồn Gốc Khai Thác và IOC

Các cuộc điều tra nhật ký npm registry tiết lộ rằng gói độc hại có liên quan đến tài khoản npm publisher jasonsaayman. Sự xuất hiện của tài khoản này trong chuỗi dependency bị xâm phạm đã làm dấy lên những lo ngại đáng kể về khả năng xuất bản gói trái phép.

Chỉ số Compromise (IOCs):

  • Malicious Package Name: plain-crypto-js
  • Malicious Package Version: 4.2.1
  • Associated npm Publisher Account: jasonsaayman
  • Compromised Axios Versions: Các phiên bản mới hơn 1.14.0 không có trên GitHub tags nhưng xuất hiện trên npm.

Điều này cho thấy khả năng chiếm quyền điều khiển tài khoản, thông tin đăng nhập của nhà phát triển bị xâm phạm, hoặc một session token bị chiếm đoạt đã cho phép kẻ tấn công xác thực và xuất bản các artifact độc hại trực tiếp lên npm registry. Đây là một lỗ hổng nghiêm trọng trong khía cạnh an ninh mạng của quy trình phát triển phần mềm.

Phản Ứng và Biện Pháp Giảm Thiểu

Các đội ngũ bảo mật, kỹ sư DevOps và nhà phát triển phải ngay lập tức kiểm toán chuỗi cung ứng phần mềm của họ để xác định và loại bỏ các thành phần bị xâm phạm. Những người duy trì dự án nên xem xét kỹ lưỡng các file lock dự án (ví dụ: package-lock.json, yarn.lock), biểu đồ dependency, các nhánh tính năng và các pull request đang mở để phát hiện bất kỳ sự tiếp xúc nào với các phiên bản bị ảnh hưởng.

Để đảm bảo an toàn, các tổ chức nên tham khảo các hướng dẫn từ các cơ quan như CISA về Quản lý rủi ro chuỗi cung ứng để tăng cường khả năng phòng thủ.

Các Bước Khắc Phục Khẩn Cấp

Nếu bất kỳ phiên bản gói cụ thể nào được phát hiện trong môi trường của bạn, điều bắt buộc là phải loại bỏ chúng hoàn toàn hoặc khôi phục các dependency về một phiên bản an toàn đã biết, chẳng hạn như Axios 1.14.0, để ngăn chặn việc thực thi mã được tiêm.

Ví dụ, để cài đặt lại một phiên bản an toàn của Axios sử dụng npm:

npm install [email protected] --save

Hoặc với Yarn:

yarn add [email protected]

Sau khi khôi phục, hãy đảm bảo rằng package-lock.json (hoặc yarn.lock) được cập nhật và kiểm tra lại để xác minh rằng không có dependency độc hại nào còn sót lại.

Tầm Quan Trọng của Giám Sát Liên Tục

Vì đây vẫn là một sự cố bảo mật đang diễn ra và phát triển nhanh chóng, việc săn lùng mối đe dọa liên tục (threat hunting) và giám sát không ngừng là cần thiết để xác định toàn bộ phạm vi của sự xâm nhập và ngăn chặn khai thác thêm. Áp dụng các phương pháp bảo mật vững chắc, bao gồm kiểm tra mã định kỳ và sử dụng các công cụ phân tích phần mềm cung cấp thông tin về các mối đe dọa, là tối quan trọng trong việc bảo vệ hệ thống khỏi các loại tấn công chuỗi cung ứng tương tự trong tương lai.

Nâng cao khả năng phòng thủ an ninh mạng đòi hỏi một chiến lược đa lớp, bao gồm việc kiểm soát chặt chẽ các quy trình CI/CD, sử dụng các kho lưu trữ package nội bộ được kiểm tra nghiêm ngặt, và đào tạo nhà phát triển về các rủi ro liên quan đến dependency từ bên thứ ba.