Các cuộc tấn công chuỗi cung ứng làm suy giảm nghiêm trọng npm: tài khoản của người bảo trì axios bị đánh cắp, toàn bộ 300 triệu lượt tải mỗi tuần đều rơi vào tình trạng báo động.

供應鏈攻擊重挫npm

Tổ chức nghiên cứu an ninh Socket đã phát hiện vào ngày 31 tháng 3 npm gói lõi axios đang bị tấn công chuỗi cung ứng có tính hoạt động. Kẻ tấn công đã xâm nhập tài khoản npm của người phụ trách chính axios jasonsaayman, phát hành các phiên bản độc hại và chèn các gói phụ thuộc độc hại, nhằm triển khai mã độc truy cập từ xa đa nền tảng (RAT). Mục tiêu của cuộc tấn công là các hệ thống macOS, Windows và Linux.

Phân tích chuỗi tấn công: Từ xâm nhập tài khoản đến quy trình tự hủy đầy đủ của RAT

axios供應鏈攻擊 (Nguồn:Socket)

Sự việc lần này là một cuộc tấn công chuỗi cung ứng nhiều bước được dàn dựng kỹ lưỡng. Kẻ tấn công trước tiên xâm nhập vào tài khoản của người duy trì, thay đổi email thành ifstap@proton.me, sau đó sử dụng thông tin đăng nhập npm bị đánh cắp để thủ công phát hành các phiên bản độc hại, hoàn toàn bỏ qua quy trình phát hành chính thống của axios trên GitHub Actions + OIDC Trusted Publisher. Hai phiên bản độc hại không hề có các bản commit, tag hoặc bản ghi phát hành tương ứng trong kho GitHub.

Công tác chuẩn bị của kẻ tấn công cũng tỉ mỉ tương tự: kiểm soát một tài khoản khác (nrwise,nrwise@proton.me) để trước đó, khoảng 18 giờ trước, phát hành phiên bản mồi sạch plain-crypto-js@4.2.0 nhằm tạo lịch sử, rồi vào 3 tháng 30 lúc 23:59 UTC phát hành phiên bản 4.2.1 độc hại.

Sau khi hook postinstall độc hại được thực thi, bộ triển khai RAT(setup.js)kết nối đến máy chủ lệnh và điều khiển sfrclak[.]com:8000 để triển khai payload theo nền tảng, hoàn tất xong thì tự hủy và thay thế package.json bằng một bản stub sạch, khiến việc kiểm tra sau đó thư mục node_modules không thể phát hiện dấu vết lây nhiễm.

Các chỉ số kỹ thuật quan trọng của cuộc tấn công (IOC)

Phiên bản gói độc hại:axios@1.14.1、axios@0.30.4、plain-crypto-js@4.2.1

Máy chủ C2:sfrclak[.]com / 142.11.206.73 / [.]com:8000

Dấu vết lây nhiễm trên macOS:/Library/Caches/com.apple.act.mond

Dấu vết lây nhiễm trên Windows:%PROGRAMDATA%\wt.exe、%TEMP%\6202033.vbs

Dấu vết lây nhiễm trên Linux:/tmp/ld.py

Tài khoản kẻ tấn công:jasonsaayman(đã bị xâm nhập)、nrwise(tài khoản do kẻ tấn công tạo)

Hướng dẫn ứng phó khẩn cấp: Xác nhận phạm vi ảnh hưởng và các bước khắc phục

Do bộ triển khai độc hại tự hủy sau khi thực thi, không thể xác nhận nhiễm thông qua việc kiểm tra thư mục node_modules. Cách đúng là kiểm tra trực tiếp lockfile (package-lock.json hoặc yarn.lock) xem có chứa bản ghi phiên bản của axios@1.14.1 hoặc axios@0.30.4 hay không.

Quay lui về phiên bản an toàn: Người dùng 1.x hạ xuống axios@1.14.0; người dùng 0.x hạ xuống axios@0.30.3, đồng thời sau đó loại bỏ thư mục plain-crypto-js khỏi node_modules rồi cài đặt lại các phụ thuộc.

Nếu phát hiện bất kỳ dấu vết nhiễm RAT nào trong hệ thống (com.apple.act.mond、wt.exe、ld.py), không nên cố gắng xóa tại chỗ; hãy xây dựng lại từ trạng thái bình thường đã biết, và ngay lập tức luân phiên tất cả các thông tin đăng nhập có thể bị lộ, bao gồm token npm, khóa truy cập AWS, khóa riêng SSH, khóa cấu hình CI/CD và các giá trị trong file .env.

Đối với các nhà phát triển tiền mã hóa và Web3, axios là thư viện HTTP cốt lõi mà nhiều giao thức DeFi dùng cho frontend, công cụ quản lý tài sản mã hóa và dịch vụ truy vấn dữ liệu on-chain. Môi trường phát triển bị nhiễm có thể dẫn đến việc khóa riêng ví, cụm từ ghi nhớ hoặc API key bị rò rỉ cho kẻ tấn công; nên ưu tiên rà soát và luân phiên tất cả các thông tin đăng nhập nhạy cảm.

Câu hỏi thường gặp

Làm thế nào để xác nhận liệu đã cài đặt phiên bản axios bị ảnh hưởng hay chưa?

Do bộ triển khai độc hại tự hủy sau khi thực thi, không thể xác nhận nhiễm thông qua thư mục node_modules. Nên kiểm tra trực tiếp lockfile xem có chứa bản ghi axios@1.14.1 hoặc axios@0.30.4 hay không, đồng thời xác nhận trong node_modules có tồn tại thư mục plain-crypto-js hay không. Có thể chạy npm list axios hoặc tìm kiếm trực tiếp chuỗi phiên bản trong lockfile.

Cuộc tấn công chuỗi cung ứng lần này có ảnh hưởng đặc biệt gì tới các nhà phát triển tiền mã hóa và Web3?

axios là thư viện HTTP phổ biến mà các ứng dụng frontend Web3 và giao diện giao thức DeFi sử dụng. Môi trường phát triển bị nhiễm có thể khiến các thông tin đăng nhập nhạy cảm như khóa riêng, cụm từ ghi nhớ, khóa API của sàn giao dịch hoặc khóa cấu hình CI/CD bị lộ cho kẻ tấn công; các nhà phát triển liên quan nên ưu tiên rà soát và luân phiên tất cả các thông tin đăng nhập liên quan tới mã hóa có thể bị lộ.

Làm thế nào để phòng ngừa các cuộc tấn công chuỗi cung ứng npm trong tương lai?

Các biện pháp phòng ngừa chính bao gồm: trong CI/CD luôn sử dụng npm ci --ignore-scripts để vô hiệu hóa postinstall hook; cố định phiên bản đối với các gói phụ thuộc quan trọng; thường xuyên rà soát lịch sử thay đổi của lockfile; và triển khai các công cụ như Socket, Aikido để giám sát theo thời gian thực các phần mềm độc hại trong các gói phụ thuộc.

Tuyên bố miễn trừ trách nhiệm: Thông tin trên trang này có thể đến từ bên thứ ba và không đại diện cho quan điểm hoặc ý kiến của Gate. Nội dung hiển thị trên trang này chỉ mang tính chất tham khảo và không cấu thành bất kỳ lời khuyên tài chính, đầu tư hoặc pháp lý nào. Gate không đảm bảo tính chính xác hoặc đầy đủ của thông tin và sẽ không chịu trách nhiệm cho bất kỳ tổn thất nào phát sinh từ việc sử dụng thông tin này. Đầu tư vào tài sản ảo tiềm ẩn rủi ro cao và chịu biến động giá đáng kể. Bạn có thể mất toàn bộ vốn đầu tư. Vui lòng hiểu rõ các rủi ro liên quan và đưa ra quyết định thận trọng dựa trên tình hình tài chính và khả năng chấp nhận rủi ro của riêng bạn. Để biết thêm chi tiết, vui lòng tham khảo Tuyên bố miễn trừ trách nhiệm.
Bình luận
0/400
Không có bình luận