Một cuộc tấn công chuỗi cung ứng JavaScript đáng kể nhắm vào ví tiền điện tử thông qua các gói npm bị xâm nhập đã được kiềm chế phần lớn, chỉ dẫn đến 1.043 đô la tiền điện tử bị đánh cắp.
Tóm tắt điều hành
Một cuộc tấn công chuỗi cung ứng JavaScript lan rộng gần đây, được xác định là sự xâm phạm npm lớn nhất trong lịch sử, đã nhắm mục tiêu vào các ví tiền điện tử thông qua các bản cập nhật độc hại cho các gói GitHub phổ biến. Mặc dù có phạm vi tiếp cận tiềm năng rộng lớn, ảnh hưởng đến các gói được sử dụng bởi 99% môi trường đám mây và mã độc có mặt trong 10% các môi trường đó, cuộc tấn công chỉ gây ra thiệt hại tài chính tối thiểu, tổng cộng chỉ 1.043 đô la tiền điện tử bị đánh cắp. Tác động hạn chế này được cho là do phát hiện nhanh chóng trong vòng hai giờ, một tải trọng được thiết kế hẹp, và nhận thức bảo mật của nhà phát triển tăng lên cùng với các biện pháp bảo vệ hiện có.
Chi tiết sự kiện
Sự cố, diễn ra vào ngày 8 tháng 9 năm 2025, liên quan đến việc các tác nhân đe dọa giành quyền kiểm soát tài khoản npm của nhà phát triển Qix (Josh Junon) thông qua một chiến dịch lừa đảo tinh vi. Kẻ tấn công đã sử dụng một email đặt lại xác thực hai yếu tố (2FA) đáng tin cậy từ một tên miền giả mạo để lấy thông tin đăng nhập của người duy trì. Quyền truy cập trái phép này cho phép xuất bản các phiên bản độc hại của 18 gói npm phổ biến, bao gồm debug
, chalk
, supports-hyperlinks
và strip-ansi
, tổng cộng thu được hàng tỷ lượt tải xuống hàng tuần. Các phiên bản độc hại đã hoạt động trên kho lưu trữ npm trong khoảng hai giờ, từ 13:16 UTC cho đến khoảng 15:20 UTC, khi cộng đồng xác định mã đáng ngờ và những người duy trì đã khôi phục lại các phiên bản sạch.
Cơ chế tài chính và vector tấn công
Mã độc được chèn vào không nhắm mục tiêu vào các môi trường phía máy chủ mà tập trung vào việc chặn các giao dịch tiền điện tử và các cuộc gọi API Web3 trong môi trường trình duyệt. Cuộc tấn công đã sử dụng hai cơ chế chính: Chiếm đoạt ví và Thao túng phản hồi mạng. Chiếm đoạt ví liên quan đến việc móc nối vào window.ethereum
để chặn các cuộc gọi đến các ví như MetaMask, âm thầm chuyển hướng các giao dịch đi đến các địa chỉ do kẻ tấn công kiểm soát. Thao túng phản hồi mạng đã ghi đè fetch
và XMLHttpRequest
để quét các phản hồi API tìm địa chỉ chuỗi khối, sau đó thay thế chúng bằng các địa chỉ kẻ tấn công tương tự về mặt hình ảnh bằng thuật toán Levenshtein “khớp gần nhất”. Cuộc tấn công hỗ trợ nhắm mục tiêu đa chuỗi, bao gồm Ethereum, Bitcoin, Litecoin, Tron, BCH và Solana. Tác động tài chính tối thiểu là 1.043 đô la một phần là do một lỗi nghiêm trọng trong mã được chèn vào đã khiến các đường ống CI/CD bị sập, dẫn đến phát hiện sớm hơn dự kiến.
Tác động rộng hơn và tư thế bảo mật
Sự cố này nhấn mạnh các lỗ hổng cố hữu trong chuỗi cung ứng phần mềm mã nguồn mở, đặc biệt liên quan đến các phụ thuộc bắc cầu và bảo mật tài khoản người duy trì. Dữ liệu đo từ xa của Wiz chỉ ra rằng 99% môi trường đám mây chứa ít nhất một phiên bản của các gói bị tấn công, với mã độc đã đến 10% các môi trường đó trong thời gian xâm phạm. Cuộc tấn công làm nổi bật một xu hướng ngày càng tăng của các cuộc tấn công chuỗi cung ứng phần mềm tinh vi trong hệ sinh thái tiền điện tử. Các tác động dài hạn bao gồm tăng cường cảnh giác và giám sát an ninh chuỗi cung ứng phần mềm trên toàn bộ cộng đồng phát triển Web3. Sự kiện này dự kiến sẽ đẩy nhanh việc áp dụng các thực hành bảo mật mạnh mẽ hơn, chẳng hạn như tạo Hóa đơn Vật liệu Phần mềm (SBOM), triển khai khung SLSA, kiểm toán phụ thuộc thường xuyên, sử dụng các tệp khóa gói và xem xét các kho lưu trữ npm riêng tư cho các ứng dụng quan trọng. Các biện pháp này rất quan trọng để giảm thiểu rủi ro liên quan đến việc các phụ thuộc phát triển đáng tin cậy trở thành các vector phân phối phần mềm độc hại tài chính và để tăng cường tư thế bảo mật tổng thể của tài chính phi tập trung.