Axios bajo fuego: así se gestó el ataque a la cadena de suministro en npm

Cập nhật lần cuối: 04/01/2026
  • Các bản phát hành Axios độc hại trên npm đã thêm một phụ thuộc ẩn, dẫn đến việc triển khai một phần mềm độc hại truy cập từ xa đa nền tảng trong quá trình cài đặt.
  • Kẻ tấn công đã lợi dụng tài khoản người bảo trì bị xâm phạm và các mã thông báo npm cũ để phát tán axios@1.14.1, axios@0.30.4 và plain-crypto-js@4.2.1.
  • Phần mềm RAT có thể đánh cắp thông tin bí mật, truy cập vào kho lưu trữ và môi trường đám mây, với các chỉ báo xâm nhập (IOC) bao gồm sfrclak.com, 142.11.206.73 và các thành phần cụ thể của hệ thống tệp.
  • Các nhóm bảo mật khuyến cáo các nhà phát triển nên kiểm tra lại các tập tin khóa, thay đổi thông tin đăng nhập thường xuyên, tăng cường bảo mật quy trình làm việc trong chuỗi cung ứng và coi các máy bị ảnh hưởng là đã bị xâm phạm hoàn toàn.

Hình minh họa cuộc tấn công chuỗi cung ứng của Axios

Trong vài giờ căng thẳng, một trong những thư viện JavaScript được sử dụng rộng rãi nhất trên thế giới, Axios, đã trở thành một phương tiện phát tán phần mềm độc hại ngoài ý muốn. Một mục tiêu cụ thể cuộc tấn công chuỗi cung ứng vào hệ sinh thái npm Biến một bản cập nhật phụ thuộc thông thường thành một lỗ hổng tiềm tàng cho tin tặc tấn công hàng trăm nghìn máy tính của nhà phát triển và hệ thống xây dựng.

Các nhà điều tra từ một số công ty bảo mật và Nhóm Tình báo Mối đe dọa của Google đã cùng nhau tìm ra cách một kẻ tấn công độc hại đã cài cắm lỗ hổng này. trojan truy cập từ xa (RAT) được đưa vào các bản phát hành Axios cụ thể trên npm, tương tự như sâu máy tính chuỗi cung ứng npm.

Axios là gì và tại sao sự thỏa hiệp lại quan trọng đến vậy

Về bản chất, Axios là một Thư viện HTTP client dựa trên Promise dành cho Node.js và trình duyệt.Nó hoạt động âm thầm trong vô số dự án, xử lý các tác vụ hàng ngày như "lấy tin nhắn từ máy chủ" hoặc "gửi biểu mẫu này đến API" mà không cần lập trình viên phải tự viết mã mạng cấp thấp.

Vì nó hoạt động cả trên trình duyệt và trên máy chủ Node.js, Axios đã trở thành một công cụ hữu ích. sự phụ thuộc nền tảng trong các ngăn xếp JavaScript hiện đạiCó thể bạn chưa bao giờ cài đặt nó một cách rõ ràng, nhưng bạn vẫn gián tiếp phụ thuộc vào nó khi:

  • Sử dụng các ứng dụng web được xây dựng bằng các framework như React, Vue hoặc Angular, trong đó các lệnh gọi API được tích hợp với Axios.
  • Chạy các ứng dụng dành cho máy tính để bàn hoặc thiết bị di động được xây dựng trên các công nghệ như Electron, React Native và các môi trường chạy ứng dụng web tương tự.
  • Tương tác với các công cụ SaaS nhỏ hơn, bảng điều khiển quản trị hoặc các dịch vụ tự lưu trữ mà nhà phát triển của chúng đã chọn Axios cho các yêu cầu HTTP.

Theo nghĩa đó, Axios có phần giống với... hệ thống đường ống nước trong nhà bạnBạn hiếm khi nghĩ đến nó, nhưng nó lại là thứ truyền tải "dòng nước" dữ liệu giữa ứng dụng của bạn và thế giới bên ngoài. Bạn chỉ thực sự nhận ra điều đó khi có sự rò rỉ—chính xác là điều mà cuộc tấn công này đã tạo ra, nhưng ở quy mô hệ sinh thái phần mềm.

Diễn biến cuộc tấn công Axios npm

Sự việc xoay quanh hai bản phát hành npm: axios@1.14.1axios@0.30.4Bằng cách sử dụng thông tin đăng nhập bị đánh cắp của một trong những người duy trì chính của dự án, tin tặc đã thành công trong việc công bố... các bản dựng độc hại trực tiếp lên npm trong khi vẫn giữ nguyên mã nguồn công khai trên GitHub, một mô hình cũng được mô tả trong... Phân tích Shai-Hulud.

Thay vì thay đổi mã nguồn của Axios một cách rõ ràng, kẻ tấn công đã thêm một phụ thuộc mới, dường như không liên quan: plain-crypto-js@4.2.1Gói phần mềm này được thiết kế đặc biệt cho hoạt động và không được nhập vào bất kỳ đâu trong các tệp nguồn của Axios.Đây là một dấu hiệu đáng báo động đối với bất kỳ ai xem xét kỹ sự khác biệt — nhưng lại dễ bị bỏ sót trong các quy trình tự động chỉ đơn giản tin tưởng vào registry.

Cả hai phiên bản axios bị lỗi này gộp lại có tiềm năng gây ảnh hưởng rất lớn, lên tới mức... Khoảng 100 triệu lượt tải xuống mỗi tuần trên npm.Theo ước tính, Axios hiện diện trong gần 80% môi trường điện toán đám mây và các quy trình CI/CD, vì vậy ngay cả một khoảng thời gian tiếp xúc ngắn cũng tiềm ẩn rủi ro hệ thống nghiêm trọng.

Điều quan trọng là, các phiên bản bị ảnh hưởng không bao giờ xuất hiện trong... thẻ GitHub chính thức Đối với dự án Axios. Chi tiết đó cho thấy rõ ràng rằng các quy trình phát hành thông thường đã bị bỏ qua: kẻ tấn công đã lợi dụng mã thông báo npm bị đánh cắp để đẩy các gói trực tiếp lên kho lưu trữ, nằm ngoài lịch sử mã nguồn công khai.

Cơ chế của sự phụ thuộc độc hại và RAT

Mấu chốt của sự thỏa hiệp nằm ở những gì đã xảy ra trong quá trình cài đặt. Bất kỳ quy trình làm việc nào đã được thực thi. npm install và kéo vào axios@1.14.1, axios@0.30.4 or plain-crypto-js@4.2.1 Việc bật các tập lệnh đã kích hoạt một quy trình hậu cài đặt ẩn.

Bên trong sự phụ thuộc độc hại, một tập lệnh postinstall (node ​​setup.js) Được thực thi tự động. Đoạn mã đó đã tải xuống một phần mềm thả mã độc được mã hóa, sau đó phần mềm này sẽ tải về một phần mềm RAT dành riêng cho nền tảng đó. macOS, Windows hoặc LinuxPhần mềm RAT cho phép kẻ tấn công truy cập từ xa tương tác vào máy tính bị xâm nhập.

Khi được kích hoạt, phần mềm độc hại truy cập từ xa này có thể liệt kê các thành phần hệ thống, thu thập thông tin bí mật và thực thi các lệnh tùy ý. Hãy nghĩ đến điều đó. Khóa API đám mây, mã thông báo triển khai CI, mã thông báo xác thực npm, khóa SSH, mã thông báo truy cập kho lưu trữ và các biến môi trường nhạy cảm khác. Thường được tiêm vào các tác nhân xây dựng hoặc máy tính xách tay của nhà phát triển.

Từ đó, kẻ tấn công có thể chuyển hướng: kiểm tra mã nguồn, can thiệp vào các bản phát hành trong tương lai, thêm nhiều cửa hậu hoặc xâm nhập vào cơ sở hạ tầng sản xuất. Đối với các nhà phát triển làm việc trên các dự án liên quan đến tiền điện tử—ví điện tử, sàn giao dịch, giao diện người dùng DeFi—loại truy cập này có thể trực tiếp dẫn đến... trộm cắp tiền điện tử hoặc gian lận tài chính quy mô lớn hơn.

Chiến thuật lén lút: tại sao sự thỏa hiệp lại khó phát hiện

Các tác giả phần mềm độc hại đã nỗ lực hết sức để giữ cho dấu vết của chúng nhỏ gọn và dễ biến mất nhất có thể. Theo các nhà nghiên cứu, trình phát tán phần mềm này... đã dọn dẹp dấu vết của nó Ngay sau khi thực thi.

Điều đó có nghĩa là nếu bạn kiểm tra node_modules/plain-crypto-js/package.json sau khi Nếu bị nhiễm virus, bạn sẽ thấy một biểu hiện hoàn toàn vô hại: không có tập lệnh sau khi cài đặt, không có setup.jsKhông có dấu hiệu rõ ràng nào cho thấy có hành vi phạm tội. Các công cụ tiêu chuẩn như npm audit Hoặc việc kiểm tra thư mục thủ công sơ lược sẽ không phát hiện ra những gì đã xảy ra.

Trên thực tế, hành vi này khiến các nhà điều tra phải dựa vào nguồn thông tin bên ngoài. chỉ số thỏa hiệp (IOCs)Cuộc tấn công tập trung vào việc thu thập dữ liệu đo từ xa mạng và các thành phần máy chủ thay vì chỉ đơn giản là quét tĩnh nội dung gói npm. Vào thời điểm vụ tấn công được công khai, các phiên bản độc hại đã bị gỡ bỏ khỏi npm, càng làm phức tạp thêm việc tái tạo lại luồng thực thi chính xác.

Các dấu hiệu chính cho thấy sự xâm phạm trong vụ việc Axios.

Mặc dù phần mềm độc hại đã cố gắng che giấu dấu vết, các nhóm bảo mật đã chia sẻ các chỉ báo xâm nhập (IOC) cụ thể có thể giúp xác định xem môi trường có bị ảnh hưởng hay không. Trong số những chỉ báo quan trọng nhất là:

trên phía mạngHãy tìm cách liên lạc với:

  • Tên miền: sfrclakcom
  • Địa chỉ IP: 142.11.206.73

Cả hai chỉ báo này đều đã bị các nhà cung cấp bảo mật chính thống chặn, nhưng chúng vẫn là những dấu hiệu hữu ích trong nhật ký lịch sử và các tìm kiếm SIEM.

trên hệ thống tập tinCác nhà điều tra đã nêu bật những hiện vật liên quan đến RAT:

  • hệ điều hành Mac: /Library/Caches/com.apple.act.mond
  • Linux: /tmp/ld.py
  • Windows: các tệp tin nằm dưới %PROGRAMDATA%\wt và các kịch bản tạm thời như %TEMP%\6202033.vbs or .ps1 có thể chỉ tồn tại trong thời gian ngắn trong quá trình thực thi

Về các gói npm, các bản dựng bị xâm phạm và mã kiểm tra đã biết của chúng là:

  • axios@1.14.1, SHA-256: 2553649f2322049666871cea80a5d0d6adc700ca
  • axios@0.30.4, SHA-256: d6f3f62fd3b9f5432f5782b62d8cfd5247d5ee71
  • plain-crypto-js@4.2.1, SHA-256: 07d889e2dadce6f3910dcbc253317d28ca61c766

Các công ty bảo mật như Huntress đã quan sát thấy ít nhất... 135 hệ thống đang liên hệ với máy chủ điều khiển của kẻ tấn công. Trong khoảng thời gian tiếp xúc tương đối ngắn, các nhà nghiên cứu từ Google cảnh báo rằng "hàng trăm nghìn" bí mật có thể đã bị đánh cắp.

Ai đứng sau vụ tấn công? Xác định thủ phạm và mối liên hệ với Triều Tiên.

Nhóm Tình báo Mối đe dọa của Google đã công khai liên kết vụ xâm nhập Axios với một... nghi phạm đe dọa từ Triều Tiên Được theo dõi với mã định danh UNC1069. John Hultquist, nhà phân tích trưởng tại đơn vị chống mối đe dọa của Google, lưu ý rằng các nhà điều hành mạng Triều Tiên có lịch sử lâu dài về... các cuộc tấn công chuỗi cung ứng nhằm mục đích đánh cắp tiền điện tử và các tài sản khác.

Theo Google và các nhà cung cấp bảo mật khác, vụ việc Axios dường như là một phần của chiến dịch rộng lớn hơn do các nhóm Triều Tiên tiến hành, bao gồm cả các tổ chức như Lazarus, tập trung vào... Tống tiền, trộm cắp tài chính và đánh cắp dữ liệu Nhắm mục tiêu vào các lĩnh vực như tiền điện tử, công nghệ tài chính và cơ sở hạ tầng đám mây.

Mặc dù tác động đầy đủ vẫn chưa rõ ràng, nhưng sự kết hợp giữa một gói phần mềm cực kỳ phổ biến, quyền truy cập vào môi trường phát triển và bản chất của dữ liệu bị đánh cắp khiến các nhà phân tích dự đoán rằng sẽ có những hậu quả nghiêm trọng. các cuộc tấn công tiếp theo dưới hình thức xâm phạm chuỗi cung ứng hơn nữa, tấn công bằng mã độc tống tiền và đánh cắp tiền điện tử trực tiếp.

Cách thức tài khoản người bảo trì và quy trình làm việc của npm bị lạm dụng

Một trong những khía cạnh đáng lo ngại nhất đối với cộng đồng mã nguồn mở là việc những kẻ tấn công đã успела phát tán các phiên bản Axios độc hại mà không cần động đến mã nguồn công khai. Mấu chốt nằm ở chỗ... Tài khoản người bảo trì bị xâm phạm trên npmĐược cho là thuộc về một người bảo trì chính của Axios có tên là jasonsaayman.

Theo báo cáo, kẻ tấn công đã thay đổi địa chỉ email liên kết với tài khoản npm đó thành một địa chỉ do chúng kiểm soát. Bằng bước này, chúng có thể... khóa tài khoản người bảo trì hợp pháp và đẩy các phiên bản gói mới lên như thể chúng là các bản cập nhật chính thức, trong khi kho lưu trữ GitHub chính thức vẫn sạch sẽ.

Cuộc vận hành này cũng làm sáng tỏ một vấn đề cấu trúc trong npm: hỗ trợ cho mã thông báo xác thực cũ, và nhu cầu về công cụ quản lý chuỗi cung ứng và các chính sách mã thông báo nghiêm ngặt hơn.

Trong trường hợp này, các nhà nghiên cứu bảo mật chỉ ra rằng npm vẫn còn mặc định sử dụng mã thông báo cũ Để xuất bản, và không có cơ chế kiểm soát nào tự động thu hồi mã thông báo đó khi các phương pháp xuất bản hiện đại hơn được cấu hình. Sự cùng tồn tại đó đã tạo ra một lỗ hổng bảo mật mà UNC1069 có thể khai thác.

Thời gian tiếp xúc và phát hiện sớm

Vụ tấn công Axios không phải là một quá trình diễn ra từ từ và kéo dài. Các cuộc điều tra cho thấy các phiên bản độc hại đã... Có sẵn trên npm trong khoảng ba giờ. Khoảng thời gian từ tối Chủ nhật đến rạng sáng thứ Hai hoặc thứ Ba, tùy thuộc vào múi giờ.

StepSecurity và các công ty khác lưu ý rằng kẻ tấn công đã gieo mầm mống trong hệ sinh thái bằng một loại mã độc. phiên bản sạch của phần phụ thuộc độc hại khoảng 18 giờ trước đó Việc gắn biến thể vũ khí hóa vào Axios. Động thái này dường như được thiết kế để tạo ra một lịch sử lành tính cho gói phần mềm và tránh kích hoạt các bộ phát hiện bất thường tự động khi sự phụ thuộc đột ngột xuất hiện.

Sau khi các bản phát hành Axios bị nhiễm virus được đưa vào hoạt động, phần mềm độc hại đã thực hiện trinh sát kỹ lưỡng trên từng hệ thống mà nó chạy: Quét thư mục, liệt kê các tiến trình đang chạy, liệt kê ổ đĩa. và sau đó chuyển thông tin đó trở lại máy chủ của kẻ tấn công. Tất cả những điều này diễn ra ngầm trong quá trình mà đối với các nhà phát triển, trông giống như một quá trình cài đặt phụ thuộc thông thường.

Nhờ sự phối hợp ứng phó từ phía đơn vị bảo trì, npm và nhiều nhà cung cấp bảo mật, các phiên bản độc hại đã bị gỡ bỏ chỉ trong vài giờ. Tuy nhiên, như một số nhà nghiên cứu và chính nhóm của Google đã nhấn mạnh, Thời gian tiếp xúc ngắn không đồng nghĩa với rủi ro thấp. khi mục tiêu là một thư viện có hàng chục triệu lượt tải xuống mỗi tuần.

Tác động đến các nhà phát triển, các dự án tiền điện tử và người dùng cuối.

Xét về mặt thực tế, những nạn nhân trực tiếp nhất của vụ việc Axios là các nhà phát triển và môi trường xây dựng Việc này đã cài đặt các phiên bản độc hại. Bất kỳ ai đã chạy quá trình cài đặt hoặc xây dựng mà kéo theo axios@1.14.1, axios@0.30.4 hoặc plain-crypto-js@4.2.1 với các tập lệnh được bật đều phải giả định rằng hệ thống có thể bị xâm phạm hoàn toàn.

Đối với các dự án trong lĩnh vực tiền điện tử—ví điện tử, sàn giao dịch tập trung và phi tập trung, bảng điều khiển DeFi, bot giao dịch và giao diện người dùng Web3—thì rủi ro đặc biệt cao. Nhiều hệ thống trong số này Phụ thuộc vào Axios để giao tiếp với các cổng blockchain, API và dịch vụ phụ trợ.và họ thường quản lý các thông tin bí mật nhạy cảm như khóa riêng tư, thông tin đăng nhập API và dữ liệu người dùng.

Nếu máy trạm của nhà phát triển hoặc tác nhân CI trong dự án đó bị nhiễm virus, kẻ tấn công không chỉ có thể chiếm đoạt được các bí mật được lưu trữ cục bộ mà còn cả... quyền truy cập vào kho lưu trữ và quy trình triển khaiVới điều đó, chúng có thể chèn mã độc vào các bản phát hành trong tương lai, gián tiếp gây nguy hiểm cho người dùng cuối hoặc chuyển hướng tiền.

Ngược lại, những người dùng chỉ đơn giản chạy các ứng dụng đã hoàn thiện trong trình duyệt của họ lại ở vị thế thuận lợi hơn: RAT đã được phân phối trong quá trình các bước cài đặt và xây dựngKhông phải trong quá trình chạy trên trình duyệt. Vì vậy, việc truy cập một trang web sử dụng Axios cho các cuộc gọi phía máy khách không tự động kích hoạt cuộc tấn công. Rủi ro tập trung vào những người đã cài đặt các gói npm bị ảnh hưởng.

Các bước cần thực hiện ngay lập tức của nhà phát triển

Các nhóm bảo mật và người duy trì hệ thống đã nói rõ: nếu có bất kỳ khả năng nào hệ thống của bạn đã bị nhiễm các bản phát hành Axios hoặc plain-crypto-js bị xâm phạm, hãy coi các máy chủ đó như là... hoàn toàn không đáng tin cậy cho đến khi được điều tra.Điều đó có nghĩa là nhiều hơn chỉ việc tăng số phiên bản.

Các hành động cụ thể được các nhà nghiên cứu và nhà cung cấp khuyến nghị bao gồm:

  • Kiểm tra lại các phụ thuộc và tệp khóa của bạn: Tìm kiếm axios@1.14.1, axios@0.30.4plain-crypto-js@4.2.1 in package-lock.json, pnpm-lock.yaml, yarn.lock và nhật ký CI; xem cách sửa chữa chúng một cách an toàn.
  • Nâng cấp lên các phiên bản đã được xác minh an toàn: Hãy chuyển sang các bản phát hành Axios sạch (ví dụ: các thẻ vá lỗi tiếp theo được người bảo trì đề xuất) và đảm bảo các tệp khóa của bạn được tạo lại.
  • Thường xuyên thay đổi thông tin đăng nhập: Giả định rằng bất kỳ thông tin bí mật nào có trên các máy hoặc quy trình bị ảnh hưởng—khóa API đám mây, mã thông báo npm, khóa SSH, khóa triển khai, biến .env—đều có thể đã bị đánh cắp và hãy thay thế chúng bằng khóa mới.
  • Khôi phục các hệ thống bị lỗi: Nếu có thể, hãy triển khai lại các tác nhân xây dựng, trình chạy CI và máy trạm của nhà phát triển từ các ảnh hệ thống đáng tin cậy thay vì cố gắng làm sạch chúng tại chỗ.
  • Cơ sở hạ tầng khối C2: Thêm sfrclak.com142.11.206.73 liên quan đến tường lửa, danh sách chặn DNS và các quy tắc EDR.
  • Săn tìm cổ vật: Kiểm tra đường dẫn hệ thống tập tin và các tập tin tạm thời liên quan đến RAT trên các máy chủ macOS, Windows và Linux.

Một số công ty bảo mật đã khuyến cáo các tổ chức đã cài đặt các phiên bản bị nhiễm độc nên thực hiện các biện pháp sau: giả định sự thỏa hiệp theo mặc địnhNói cách khác, hãy tiến hành xử lý sự cố với giả định rằng kẻ tấn công đã có quyền truy cập, và thực hiện các bước ứng phó sự cố một cách có hệ thống thay vì hy vọng rằng phần mềm độc hại không gây ra thiệt hại gì.

Những bài học rộng hơn về bảo mật chuỗi cung ứng phần mềm

Ngoài việc xử lý sự cố trước mắt, vụ việc Axios đã làm dấy lên những cuộc tranh luận về cách hệ sinh thái rộng lớn hơn xử lý vấn đề lòng tin, danh tính và phân phối trong mã nguồn mở. Nó minh họa cách thức mà một tài khoản người quản lý thư viện duy nhất Nó có thể trở thành yếu tố then chốt cho tư thế bảo mật của vô số tổ chức.

Một số chủ đề chính đã nổi lên từ các cuộc phân tích sau sự cố và phân tích nhà cung cấp:

  • Các token cũ là một gánh nặng: Các token npm cũ có thể âm thầm tồn tại song song với các quy trình làm việc dựa trên OIDC mới hơn. Các dự án cần có chính sách rõ ràng để thu hồi chúng khi các phương pháp an toàn hơn được áp dụng.
  • Việc cập nhật tự động có cả mặt lợi và mặt hại: Việc tự động cập nhật các gói phụ thuộc giúp tăng tốc quá trình phát triển nhưng cũng có nghĩa là một bản phát hành độc hại có thể lan truyền khắp hệ sinh thái trước khi bất kỳ ai nhận ra.
  • Quét phụ thuộc là cần thiết nhưng chưa đủ: Kiểm tra tĩnh và npm audit Chúng rất hữu ích, nhưng chúng lại gặp khó khăn trong việc chống lại... hành vi nhất thời Giống như các tập lệnh tự xóa sau khi cài đặt.
  • Bảo mật hệ thống là cơ sở hạ tầng thiết yếu: Xác thực đa yếu tố mạnh mẽ, khóa bảo mật phần cứng, xử lý cẩn thận mã truy cập và xem xét thường xuyên ai có thể xuất bản giờ đây quan trọng không kém việc viết mã tốt.

Đối với các nhà sáng lập, CTO và các lãnh đạo kỹ thuật, vụ việc thỏa hiệp Axios là một lời nhắc nhở rằng Rủi ro chuỗi cung ứng là một vấn đề chiến lược.Không chỉ là vấn đề kỹ thuật. Nó ảnh hưởng đến tốc độ triển khai sản phẩm, cách thiết kế các quy trình CI/CD và cách cân bằng giữa sự tiện lợi của mã nguồn mở với nhu cầu xác minh những gì bạn chạy trong môi trường sản xuất.

Tóm lại, việc Axios bị xâm phạm trên npm cho thấy một cuộc tấn công ngắn ngủi nhưng được lên kế hoạch kỹ lưỡng có thể biến một thành phần đáng tin cậy của hệ sinh thái JavaScript thành một kênh lén lút cho phần mềm độc hại truy cập từ xa. Với việc kẻ tấn công nhắm mục tiêu vào những người duy trì và các kênh phân phối cũng như người dùng cuối, việc giữ cho chuỗi cung ứng phần mềm lành mạnh hiện phụ thuộc vào việc kiểm soát chặt chẽ hơn các quy trình xuất bản, giám sát tích cực các bất thường và sẵn sàng đối xử với các phụ thuộc với cùng sự hoài nghi mà trước đây chỉ dành cho lưu lượng mạng bên ngoài.

auditoría de seguridad npm
Bài viết liên quan:
Hướng dẫn chi tiết về kiểm tra bảo mật npm và các cuộc tấn công chuỗi cung ứng
bài viết liên quan: