Cảnh báo: Tấn công chuỗi cung ứng Rust nhắm vào các crate phổ biến
Dự án Rust vừa gỡ bỏ 3 crate phổ biến khỏi crates.io sau khi tài khoản của người duy trì bị chiếm quyền, phát tán mã độc thông qua script build.
- Giọng nữ Bắc
Dự án Rust vừa thực hiện gỡ bỏ ba crate (thư viện) phổ biến khỏi kho lưu trữ crates.io sau khi phát hiện các phiên bản chứa mã độc được đăng tải. Sự cố này bắt nguồn từ việc tài khoản của người duy trì (maintainer) bị chiếm quyền, cho phép kẻ tấn công chèn một phụ thuộc (dependency) giả mạo vào quá trình build.
Table Of Content
Chi tiết về cuộc tấn công
Các phiên bản bị ảnh hưởng bao gồm arrayref 0.3.10, internment 0.8.7 và append-only-vec 0.1.9. Tất cả đều được đăng tải từ cùng một tài khoản vào ngày 20/08/2026 và đã bị gỡ bỏ chỉ sau khoảng 86 đến 107 phút. Điểm nguy hiểm là mã độc nằm ngay trong script build của phụ thuộc bị chèn vào, nghĩa là chỉ cần thực hiện lệnh build dự án, payload sẽ tự động được thực thi mà không cần gọi trực tiếp đến các crate này.
Kẻ tấn công đã sử dụng kỹ thuật typosquatting bằng cách tạo ra crate proc-macro1 (giả mạo proc-macro2). Khi quá trình build diễn ra, script này sẽ tải xuống payload từ máy chủ từ xa, vô hiệu hóa xác thực TLS và thực thi mã độc tùy theo hệ điều hành (Windows, macOS hoặc Unix).
Cơ chế lây nhiễm và tác động
Theo phân tích, mã độc có khả năng thu thập thông tin đăng nhập trình duyệt (Chrome, Brave, Edge) thông qua việc truy vấn cơ sở dữ liệu SQLite. Trên Windows, nó sử dụng PowerShell để chạy ẩn, trong khi trên các hệ điều hành khác, nó tạo ra các file thực thi trong thư mục tạm. Các chuyên gia bảo mật cho biết hạ tầng của cuộc tấn công này có nhiều điểm tương đồng với các chiến dịch tấn công chuỗi cung ứng gần đây nhắm vào npm và các hệ sinh thái khác.
Khuyến nghị cho nhà phát triển
Hiện tại, Rust Security Response Team chưa ghi nhận bằng chứng về việc các phiên bản mã độc này đã bị khai thác trên diện rộng, tuy nhiên các nhà phát triển cần lưu ý:
- Kiểm tra và xóa các file crate bị xóa trong thư mục
~/.cargo/registry/cache. - Ghim phiên bản
arrayrefở mức 0.3.9 hoặc cũ hơn. - Cẩn trọng với các bản cập nhật phụ thuộc mới, đặc biệt là những bản cập nhật được phát hành trong thời gian ngắn.
Sự cố này một lần nữa gióng lên hồi chuông cảnh báo về tính an toàn của chuỗi cung ứng phần mềm. Hiện cộng đồng Rust đang thảo luận về việc triển khai cơ chế global-min-publish-age để ngăn chặn các phụ thuộc mới được sử dụng ngay lập tức, nhằm giảm thiểu rủi ro từ các cuộc tấn công tương tự trong tương lai.
Nguồn tham khảo: The Hacker News

No Comment! Be the first one.