Các Rust Crates độc hại đánh cắp khóa ví Solana và Ethereum — 8.424 lượt tải xuống được xác nhận

Các nhà nghiên cứu an ninh mạng đã phát hiện hai Rust crates độc hại mạo danh một thư viện hợp pháp tên là fast_log để đánh cắp khóa ví Solana và Ethereum từ mã nguồn. Các crates này, được đặt tên là faster_log và async_println, đã được tác nhân đe dọa phát hành dưới bí danh rustguruman và dumbnbased vào ngày 25 tháng 5 năm 2025, thu hút tổng cộng 8.424 lượt tải xuống, theo công ty an ninh chuỗi cung ứng phần mềm.

Các nhà nghiên cứu an ninh mạng đã phát hiện hai Rust crates độc hại mạo danh một thư viện hợp pháp tên là fast_log để đánh cắp khóa ví Solana và Ethereum từ mã nguồn.

Các crates này, được đặt tên là faster_log và async_println, đã được tác nhân đe dọa phát hành dưới bí danh rustgurumandumbnbased vào ngày 25 tháng 5 năm 2025, thu hút tổng cộng 8.424 lượt tải xuống, theo công ty an ninh chuỗi cung ứng phần mềm Socket.

"Các crates này bao gồm mã ghi nhật ký hoạt động để che đậy và nhúng các quy trình quét các tệp nguồn tìm khóa riêng tư Solana và Ethereum, sau đó trích xuất các kết quả khớp qua HTTP POST đến một điểm cuối command and control (C2) được mã hóa cứng," nhà nghiên cứu bảo mật Kirill Boychenko cho biết.

Sau khi được tiết lộ một cách có trách nhiệm, những người duy trì crates.io đã thực hiện các bước để xóa các gói Rust và vô hiệu hóa hai tài khoản. Họ cũng đã lưu giữ nhật ký của những người dùng do tác nhân đe dọa điều hành cùng với các crates độc hại để phân tích thêm.

"Mã độc hại đã được thực thi trong thời gian chạy, khi chạy hoặc kiểm tra một dự án phụ thuộc vào chúng," Walter Pearce của Crates.io cho biết. "Đáng chú ý, chúng không thực thi bất kỳ mã độc hại nào trong thời gian xây dựng. Ngoại trừ tải trọng độc hại của chúng, các crates này đã sao chép mã nguồn, tính năng và tài liệu của các crates hợp pháp, sử dụng tên tương tự."

Cuộc tấn công typosquatting, như Socket đã trình bày chi tiết, liên quan đến việc các tác nhân đe dọa giữ lại chức năng ghi nhật ký của thư viện gốc, đồng thời đưa các thay đổi mã độc hại trong quá trình đóng gói nhật ký (log packing operation) đã tìm kiếm đệ quy các tệp Rust (*.rs) trong một thư mục để tìm khóa riêng tư Ethereum và Solana cùng các mảng byte được đặt trong ngoặc và trích xuất chúng đến một miền Cloudflare Workers ("mainnet.solana-rpc-pool.workers[.]dev").

Ngoài việc sao chép README của fast_log và đặt trường kho lưu trữ của các crates giả mạo thành dự án GitHub thực, việc sử dụng "mainnet.solana-rpc-pool.workers[.]dev" là một nỗ lực để bắt chước Mainnet beta RPC endpoint của Solana là "api.mainnet-beta.solana[.]com."

Theo crates.io, hai crates này không có bất kỳ dependent downstream crates nào, cũng như những người dùng không phát hành các crates khác trên kho lưu trữ gói Rust. Các tài khoản GitHub được liên kết với tài khoản nhà xuất bản crates.io vẫn có thể truy cập được tại thời điểm viết bài. Trong khi tài khoản GitHub dumbnbased được tạo vào ngày 27 tháng 5 năm 2023, rustguruman không tồn tại cho đến ngày 25 tháng 5 năm 2025 – cùng ngày các crates được tải lên.

"Chiến dịch này cho thấy mã tối thiểu và sự lừa dối đơn giản có thể tạo ra rủi ro chuỗi cung ứng," Boychenko nói. "Một trình ghi nhật ký (logger) hoạt động với tên quen thuộc, thiết kế được sao chép và README có thể vượt qua quá trình kiểm tra thông thường, trong khi một quy trình nhỏ đăng các khóa ví riêng tư lên điểm cuối C2 do tác nhân đe dọa kiểm soát. Thật không may, điều đó đủ để tiếp cận máy tính xách tay của nhà phát triển và CI."