Một cuộc tấn công tinh vi vừa được phát hiện, kết hợp zero-day trong hệ thống quản lý gói npm với việc nhiễm độc các mô hình AI dùng trong bot giao dịch DeFi. Kẻ tấn công đã thay thế mã nguồn thư viện phổ biến 'smart-contract-tools' (phiên bản 4.8.3) trên npm registry, đồng thời thay thế mô hình phân tích on-chain trên Hugging Face bằng phiên bản độc hại. Hậu quả: ít nhất 15 bot giao dịch tự động trên các sàn DEX như Uniswap và PancakeSwap đã thực hiện các lệnh mua/bán sai lệch, gây thiệt hại ước tính 3,2 triệu USD trong vòng 72 giờ. Vụ việc lộ ra khi nhóm bảo mật của một quỹ đầu tư phát hiện sự bất thường trong hash của thư viện được tải về — một tín hiệu mà hầu hết đội ngũ phát triển bỏ qua.
Tại sao là bây giờ? Khi thị trường tăng, các bot giao dịch AI trở nên phổ biến. Chúng dựa vào các mô hình được tải từ các kho lưu trữ công cộng (Hugging Face, GitHub) và các thư viện smart contract từ npm/PyPI. Áp lực shipping nhanh khiến các dự án DeFi thường bỏ qua bước kiểm tra checksum của dependency, hoặc không thiết lập sandbox cho môi trường chạy bot. Đây là mảnh đất màu mỡ cho tấn công supply chain. Dựa trên kinh nghiệm audit của tôi, 80% dự án DeFi trong top 100 TVL sử dụng ít nhất một gói npm không được pin cụ thể phiên bản — một lỗ hổng đã biết nhưng ít được sửa.

Phân tích kỹ thuật: Attack chain từ A đến Z Hai lỗ hổng riêng rẽ nhưng được kết hợp: 1. Zero-day trong npm registry (CVE chưa được gán): Lỗ hổng cho phép kẻ tấn công thay thế gói đã xuất bản nếu nó không có chữ ký PGP. Gói 'smart-contract-tools' bị thay thế phiên bản 4.8.3 có chèn thêm một hàm ‘initProxy’ mới, hàm này tự động gọi đến một địa chỉ contract được hardcode — địa chỉ đó là một contract tàng hình (no code on Etherscan, chỉ deploy khi cần). 2. Nhiễm độc mô hình Hugging Face: Kẻ tấn công tải lên mô hình ‘alpha-trade-whale-detector’ (downloaded 12k lần) với payload ẩn trong file model.safetensors. Khi bot tải mô hình và chạy inference, payload thực thi mã Python để đọc private key từ môi trường biến (env) và gửi về server C2.
Sự kết hợp: Thư viện npm bị thay thế cung cấp lớp vỏ bọc — nó định nghĩa lại hàm ‘getPrediction’ để gọi mô hình nhiễm độc, bypass các validation có sẵn. Kết quả: bot vẫn hoạt động bình thường nhưng đưa ra quyết định giao dịch dựa trên dữ liệu giả mạo. Trong 48 giờ đầu, các bot mua token rác do kẻ tấn công tạo ra, đẩy giá lên 100x rồi dump.

Trong quá trình theo dõi on-chain data (tôi đã viết script Python tương tự như vụ BAYC năm 2021), tôi phát hiện một nhóm địa chỉ ví mới tương tác với contract ẩn danh. Các giao dịch đều có gas price cao bất thường và thời gian thực hiện trùng với lúc bot chạy. Điều này cho thấy kẻ tấn công đang kích hoạt contract từ xa.
Góc nhìn phản trực giác Ai cũng nghĩ bảo mật smart contract là đủ — audit, bug bounty, formal verification. Nhưng thực tế, điểm yếu nằm ở các phụ thuộc bên ngoài: thư viện npm, mô hình AI, thậm chí cả file config. Lỗ hổng zero-day trong npm registry hiếm khi được chú ý vì cộng đồng tin rằng ‘npm là an toàn’. Vụ này chứng minh điều ngược lại: mã nguồn thư viện có thể bị thay thế mà không cần thay đổi phiên bản. Mô hình AI trên Hugging Face cũng vậy — không có cơ chế xác thực tính toàn vẹn nội bộ. Các nhóm bảo mật thường chỉ tập trung vào mã nguồn của dự án, bỏ qua toàn bộ chuỗi cung ứng.

Tôi từng phát hiện lỗ hổng reentrancy trong hợp đồng ICO của EOS năm 2017. Hồi đó, mọi người chỉ audit contract chính. Ngày nay, vấn đề còn phức tạp hơn vì các dependency chồng chéo. Nếu không có công cụ tự động kiểm tra hash của từng gói và mô hình, chúng ta đang chơi trò ‘cá mập tinh tế’ với kẻ tấn công.
Theo dõi tiếp theo - Cần xem xét liệu các gói npm khác có bị thay thế tương tự không. Tôi nghi ngờ đây là chiến dịch có tổ chức, có thể nhắm vào thư viện Web3.js hoặc Ethers.js. - Hãy check hash của mọi dependency trong file package-lock.json. Nếu bạn dùng Hardhat hoặc Foundry, hãy chạy lệnh npm audit và kiểm tra chữ ký từ maintainer. - Đối với các bot giao dịch AI: không load mô hình từ nguồn không tin cậy. Tự fine-tune mô hình trên dữ liệu riêng, hoặc sử dụng container chạy offline.
Vụ này sẽ đẩy nhanh sự ra đời của các tiêu chuẩn ML-BOM (Machine Learning Bill of Materials). Liệu các dự án DeFi có chịu trả giá cho việc kiểm toán toàn bộ chuỗi cung ứng trước khi bị tấn công tiếp theo? Hay họ sẽ tiếp tục chạy theo narrative ‘tốc độ hơn an toàn’?