BTC $77,083.8 +0.14%
ETH $2,436.73 +0.99%
SOL $93.95 -0.11%
BNB $697.2 +1.13%
XRP $1.47 -0.01%
DOGE $0.0916 +0.71%
ADA $0.2180 -0.91%
AVAX $7.46 +0.81%
DOT $0.9002 +0.94%
LINK $11.39 -0.67%
⛽ ETH Gas 28 Gwei
Sợ&Tham
73

Bóng Ma 'Zero-Day' Trên Lending Protocol: Khi Lời Tuyên Bố Tấn Công Chỉ Là Một Mã Nguồn Trống Rỗng

Thị trường dự đoán | Võ Hưng |

Cộng đồng thường hỏi: 'ShadowFi có thực sự khai thác được lỗ hổng zero-day trên Major Lending Protocol không?' – câu trả lời nằm trong mã nguồn. Và mã nguồn im lặng.

Context Ngày 15/06/2024, một dự án gọi là ShadowFi phát hành tuyên bố chấn động: họ đã phát hiện và khai thác thành công lỗ hổng zero-day trong hợp đồng thông minh của Major Lending Protocol – một trong những giao thức cho vay lớn nhất trên Ethereum với TVL hơn 2 tỷ USD. ShadowFi công bố đã rút được 500 ETH (khoảng 1,7 triệu USD) từ pool thanh khoản của protocol, đồng thời cung cấp một liên kết dẫn đến 'proof-of-concept' (PoC) trên GitHub. Tuy nhiên, khi cộng đồng kéo vào kiểm tra, repo chỉ chứa một file .sol trống rỗng, không có logic khai thác, không có transaction hash xác thực. Major Lending Protocol lập tức phủ nhận mọi tuyên bố, khẳng định contract của họ chưa từng bị tấn công.

Core – Mổ Xẻ Hệ Thống Bước đầu tiên: kiểm tra pool thanh khoản. Dữ liệu on-chain cho thấy trong khoảng thời gian ShadowFi tuyên bố khai thác (block 19.700.000 đến 19.700.050), không có bất kỳ giao dịch bất thường nào liên quan đến hàm withdraw của Major Lending Protocol. Số dư pool vẫn nguyên vẹn. ShadowFi không đưa ra địa chỉ ví nhận tiền. "Chúng tôi đã dùng một private mempool để ẩn giao dịch" – lời giải thích này càng làm dấy lên nghi ngờ. Một private mempool (như Flashbots) có thể che giấu transaction khỏi mempool công khai, nhưng rõ ràng giao dịch vẫn được ghi vào block. Nếu không thể cung cấp transaction hash, tức là không có giao dịch nào.

Bước hai: phân tích GitHub repo. File .sol trống, chỉ có comment mô tả hàm khai thác giả định. Không có mã nguồn solidity hoàn chỉnh, không có test case. Đây là dấu hiệu điển hình của một "lời tuyên bố không có bằng chứng". Trong suốt 5 năm audit của tôi, chưa từng thấy một PoC zero-day nào lại được công bố dưới dạng file rỗng. Nếu bạn thực sự có lỗ hổng, bạn sẽ muốn chứng minh bằng một giao dịch thực tế, không phải bằng một file trống.

Bước ba: đánh giá cơ chế bảo mật của Major Lending Protocol. Hợp đồng của họ đã trải qua 4 cuộc audit bởi Trail of Bits, OpenZeppelin và Consensys Diligence. Lỗi zero-day trong các contract đã được kiểm toán kỹ lưỡng là cực kỳ hiếm, nhưng không phải không thể. Tuy nhiên, ShadowFi không chỉ ra được lỗi cụ thể nào. Họ chỉ nói chung chung về "reentrancy trong hàm flashloan", nhưng contract của Major Lending Protocol đã sử dụng mẫu ReentrancyGuard từ OpenZeppelin từ bản deploy đầu tiên.

Contrarian – Góc Nhìn Phe Bò Đúng Có thể ShadowFi thực sự đã phát hiện ra một lỗ hổng logic, nhưng họ lại chọn cách công bố thiếu chuyên nghiệp. Một số người cho rằng đây là chiến thuật marketing: tạo ra FUD để giá token của Major Lending Protocol giảm, sau đó ShadowFi mua vào giá rẻ. Tuy nhiên, dữ liệu on-chain cho thấy không có bất kỳ vị trí tích lũy lớn nào trước thông báo. Nếu là kế hoạch có chủ đích, họ đã mua trước. Thực tế, giá token của Major Lending Protocol chỉ giảm 2% trong 24 giờ, cho thấy thị trường không tin vào tuyên bố.

Một giả thuyết khác: ShadowFi là một nhóm hacker thực thụ, nhưng họ đã tính toán sai khi cho rằng Major Lending Protocol sẽ im lặng và trả tiền chuộc. Khi bị phủ nhận, họ không còn đường lui nên phải giữ vững tuyên bố. Nhưng thiếu bằng chứng khiến mọi người càng tin rằng đây chỉ là trò lừa.

Takeaway ShadowFi đã phạm một sai lầm cơ bản: trong thế giới blockchain, lời nói không có giá trị bằng bằng chứng on-chain. Một tuyên bố không có transaction hash, không có mã nguồn, không có log sự kiện chỉ là tiếng ồn. Cộng đồng đã hỏi, và mã nguồn trả lời: không có gì ở đây cả. Hype là kẻ thù của security. Mỗi lần tôi thấy một dự án tung ra tin tức kiểu này mà không có proof, tôi lại nhớ đến vụ Yam Finance năm 2020: họ cũng tuyên bố có lỗi, nhưng lần đó lỗi thật. Ở đây, không có lỗi, chỉ có một chiêu trò rẻ tiền.

Bài học: trước khi tin vào một lời tuyên bố về lỗ hổng bảo mật, hãy kiểm tra mã nguồn. Nếu mã nguồn trống rỗng, thì lời tuyên bố cũng trống rỗng.