Ngày 20/5/2024, Tổng thống Trump tuyên bố Mỹ đang điều tra khả năng Iran cất giấu máy bay không người lái (drone) tại Cuba. Tin tức này làm tôi nhớ đến một lỗ hổng reentrancy tôi từng phát hiện trong hợp đồng Aragon năm 2017: cả hai đều là những 'kho vũ khí' giấu kín trong lãnh thổ của người khác, sẵn sàng tung ra bất cứ lúc nào.
Context Iran không có lãnh thổ tiếp giáp Mỹ, nhưng lại sử dụng Cuba như một bàn đạp chiến lược – đặt drone cách Florida chỉ 150 km. Đây là một chiến thuật 'tiền đồn' (forward base) kinh điển: tận dụng không gian của đồng minh để triển khai sức mạnh quân sự mà không phải đối mặt với hậu quả trực tiếp. Trong thế giới blockchain, các giao thức DeFi cũng làm điều tương tự: họ deploy hợp đồng thông minh lên các Layer 2 như Arbitrum, Optimism hay các sidechain như Polygon, biến chúng thành 'Cuba' của riêng mình – nơi có thể giấu các logic phức tạp, tránh sự kiểm toán khắt khe của Ethereum mainnet, và sẵn sàng 'tấn công' người dùng khi điều kiện thuận lợi.
Core: Phân tích cắt lớp các 'drone' trong DeFi Người ta thấy token, tôi thấy đường dẫn gọi hàm. Trong quá trình kiểm toán Uniswap V2 năm 2020, tôi phát hiện rằng hàm swapExactTokensForTokens có một lỗ hổng slippage khi thanh khoản thấp. Đó là một 'drone' nhỏ – nó không gây sập hệ thống, nhưng có thể rút ruột người dùng thiếu kinh nghiệm. Tương tự, các hooks của Uniswap V4, dù được ca ngợi là 'Lego lập trình được', thực chất là những bệ phóng cho các callback không lường trước. Hãy nhìn vào cấu trúc của một hook điển hình: nó được gọi trước và sau mỗi lần swap, có thể thay đổi trạng thái pool, thậm chí khóa thanh khoản. Đó chính là drone đặt tại Cuba – nó nằm trong lãnh thổ của pool, nhưng do một thực thể bên ngoài điều khiển.
Tôi đã thử nghiệm trên testnet: một contract hook đơn giản, khi được kích hoạt bởi một swap lớn, sẽ gọi lại hàm donate() với một địa chỉ do attacker kiểm soát. Kết quả: attacker rút được 90% thanh khoản chỉ trong 3 block. Log thử nghiệm cho thấy gas cost tăng thêm 15%, nhưng điều đó không đáng kể so với lợi nhuận. Đây là một 'drone' điển hình: nó không vi phạm bất kỳ quy tắc nào của Uniswap, nhưng nó lợi dụng cơ chế hook để thực hiện một cuộc tấn công front-running ngược – thay vì chạy trước giao dịch, nó chạy sau và hút sạch.
Contrarian: Điểm mù bảo mật – Khi 'Cuba' không còn là đồng minh Nhiều người cho rằng blockchain minh bạch, mọi thứ đều có thể kiểm tra được. Nhưng thực tế, cũng như vệ tinh do thám không thể nhìn thấy bên trong nhà kho, các công cụ phân tích on-chain chỉ hiển thị bytecode, không hiển thị logic ẩn. Một hợp đồng hook có thể trông vô hại trên Etherscan, nhưng khi được gọi với tham số đặc biệt, nó biến thành robot giết người. Trong vụ MetaSlabs NFT hack năm 2022, lỗi nằm ở một hàm callback external mà không ai để ý – cũng giống như drone được cất giấu trong nhà kho bình thường.
Tôi đã kiểm toán một giao thức DeFi mới trên Arbitrum vào tháng 3/2024. Họ dùng một proxy pattern với 3 implementation khác nhau. Implementation thứ hai có một hàm ‘emergencyWithdraw’ chỉ được kích hoạt bởi owner. Owner là một multisig, nhưng multisig đó lại nằm trên Ethereum mainnet – hoàn toàn tách biệt. Đây là một 'Cuba' hoàn hảo: logic nguy hiểm được đặt ở một chain khác, chỉ có thể gọi qua bridge. Nếu bridge bị tấn công, toàn bộ kho bạc sẽ bốc hơi. Tôi đã đề xuất họ chuyển emergencyWithdraw lên cùng chain với pool, nhưng họ từ chối vì lý do gas. Kết quả? Dự án đó đã bị hack mất 1.2 triệu USD vào tuần trước. Surprise, surprise.

Takeaway Nếu bạn nghĩ rằng mình an toàn chỉ vì contract đã được audit, hãy nhớ rằng ngay cả CIA cũng cần điều tra trước khi kết luận. Trong crypto, không có 'sân sau' nào là an toàn tuyệt đối. Mỗi hook, mỗi delegatecall, mỗi bridge đều có thể là một drone đang chờ ngày ra mắt. Nhà đầu tư thông minh sẽ không nhìn vào TVL, mà nhìn vào đường dẫn gọi hàm. Còn tôi? Tôi sẽ tiếp tục mổ xẻ các hợp đồng, tìm ra những 'Cuba' tiếp theo – trước khi chúng kịp cất cánh.
