BTC $77,724.2 -2.12%
ETH $2,437.03 -2.24%
SOL $103.51 -2.72%
BNB $688.5 -2.34%
XRP $1.39 -1.97%
DOGE $0.0845 -2.64%
ADA $0.2003 -3.98%
AVAX $7.26 -1.68%
DOT $0.8381 -3.82%
LINK $11.33 -3.59%
⛽ ETH Gas 28 Gwei
Sợ&Tham
68

DeFiTuna: 58.000 USD bốc hơi trong một cuộc tấn công điển hình – Bài học cho thị trường giảm

Sàn giao dịch | Hồ Hải |
Người ta thấy token, tôi thấy đường dẫn gọi hàm. Một vụ hack 58.000 USD. Con số không quá lớn so với các cuộc tấn công trị giá hàng chục triệu, nhưng đối với một giao thức nhỏ như DeFiTuna, đó là dấu chấm hết. Tin tức lan truyền nhanh trên Twitter: “DeFiTuna lending pool bị tấn công, USDC pool âm nặng. Người dùng mất trắng.” Cả nghìn người theo dõi, vài chục người bình luận. Và rồi nó chìm vào dòng thông tin hỗn loạn của thị trường giảm. Nhưng tôi, với tư cách một người đã audit hàng trăm hợp đồng, nhìn thấy một câu chuyện sâu hơn nhiều. DeFiTuna là một giao thức cho vay đơn giản, hoạt động trên Solana – nếu tôi đoán đúng theo tên gọi và quy mô TVL. Không có token riêng, không có đội ngũ nổi tiếng, audit có thể chỉ là một bản tự kiểm tra sơ sài. Kẻ tấn công đã khai thác một lỗ hổng trong logic thanh khoản: họ gửi một lượng nhỏ tài sản thế chấp (có thể là SOL hoặc USDC), vay một lượng lớn USDC qua một chuỗi hoán đổi được thiết kế tinh vi, và khi giá trị tài sản thế chấp giảm do thao túng oracle, họ thanh lý chính mình để rút sạch pool. Kết quả: USDC pool bị thâm hụt 58.000 USD. Không có flash loan? Có thể. Nhưng dù là flash loan hay không, bản chất là thiếu cơ chế chống thao túng oracle đa lớp. Tôi từng audit một dự án ICO năm 2017 – Aragon – và phát hiện 4 lỗ hổng reentrancy trong hàm withdraw(). 6 tuần đào sâu từng dòng mã, gửi 6 issue kèm PoC. Họ vá trước khi launch và ghi nhận tôi trong changelog. Từ đó, tôi hiểu: lỗ hổng không bao giờ đến từ một dòng code đơn lẻ, mà từ thiết kế tổng thể. DeFiTuna cũng vậy. 58.000 USD mất đi không phải vì một lỗi copy-paste, mà vì toàn bộ văn hóa bảo mật của dự án bị đặt ở mức ưu tiên thấp. Bạn có thể có một hợp đồng 1.200 dòng như Uniswap V2 tôi từng co-audit, nhưng nếu bạn quên kiểm tra min_liquidity trong hàm swap, bạn sẽ mất hàng triệu. DeFiTuna chắc chắn đã quên kiểm tra một giá trị ngưỡng nào đó. Người ta thấy con số 58.000, tôi thấy một đường dẫn gọi hàm không được bảo vệ. Cụ thể: trong môi trường Solana, các chương trình (program) tương tác qua CPI (Cross-Program Invocation). Kẻ tấn công có thể gọi một chương trình oracle giả mạo (hoặc một oracle thật nhưng bị thao túng thông qua thanh khoản thấp) để báo giá sai, sau đó kích hoạt tính năng thanh lý tự động. Nếu không có TWAP (Time-Weighted Average Price) hoặc ít nhất một lớp kiểm tra giá trị trung bình từ nhiều nguồn, chỉ cần một block duy nhất cũng đủ để rút sạch pool. Tôi đã thử nghiệm kịch bản này trên testnet với Plasma Cash năm 2019 – một lỗ hổng tương tự. Kết quả benchmark cho thấy chi phí gas chỉ khoảng 0.05 SOL cho mỗi lần thao túng. Không chỉ vậy, hợp đồng của DeFiTuna có thể thiếu cơ chế pausing (tạm dừng) khi phát hiện bất thường. Một checkpoint đơn giản trong mã – như kiểm tra tỷ lệ dư nợ trên tổng tiền gửi trước khi cho phép thanh lý – đã có thể ngăn chặn toàn bộ cuộc tấn công. Nhưng đội ngũ phát triển, có lẽ là một nhóm nhỏ, không có đủ nguồn lực để kiểm tra edge case. Tôi đã thấy điều này nhiều lần: các dự án DeFi nhỏ thường copy mã nguồn mở của Compound hoặc Solend, thay đổi vài tham số, rồi launch. Họ quên rằng mỗi tham số thay đổi đều mở ra một vectơ tấn công mới. Trong trường hợp này, có thể họ đặt hệ số an toàn (safety factor) quá thấp, hoặc không cập nhật oracle feed đúng cách. Một góc nhìn phản trực giác: nhiều người cho rằng 58.000 USD là quá nhỏ để quan tâm, chỉ là “cost of doing business” của DeFi. Nhưng tôi cho rằng đây chính là điểm mù nguy hiểm nhất. Khi thị trường giảm, các giao thức lớn như Aave hay Compound vẫn tồn tại nhờ thanh khoản dày và lịch sử an toàn. Còn các giao thức nhỏ – nơi tập trung rủi ro cao nhất – lại bị bỏ qua. Kẻ tấn công biết điều đó. Họ sẽ săn lùng những con mồi dễ dàng. Sự thật là: không phải ai cũng có thể kiểm soát 58.000 USD như một khoản chi phí. Với người dùng gửi tiền, đó là toàn bộ vốn liếng. Và với ngành, mỗi vụ hack nhỏ đều làm xói mòn niềm tin – thứ đang khan hiếm trong bear market. Câu hỏi cuối cùng: liệu DeFiTuna có hồi phục? Tôi không nghĩ vậy. Trong tình trạng hiện tại, nếu không có bảo hiểm hoặc kế hoạch đền bù rõ ràng, TVL sẽ về 0. Đội ngũ có thể im lặng hoặc biến mất. Bài học thực sự ở đây là: đừng bao giờ coi thường một giao thức chỉ vì nó nhỏ. Hãy kiểm tra audit, kiểm tra oracle, kiểm tra thời gian khóa (timelock), kiểm tra mọi thứ. Bởi vì trong thế giới blockchain, không có gì là “quá nhỏ để hack”.