BarryPortier

Ba vụ hack trong 24 giờ: Bài học về 'lòng tin' trong DeFi từ AFX, Verus và B² Network

Võ Đức
Văn hóa

Ngày 22 tháng 7 năm 2024, thị trường DeFi chứng kiến một 'cơn bão' an ninh hiếm thấy: ba giao thức độc lập bị tấn công chỉ trong vòng vài giờ, tổng thiệt hại khoảng 31,69 triệu USD. AFX, một DEX trên Arbitrum, mất 24,15 triệu USDC qua cầu nối bên thứ ba. Verus, một nền tảng cross-chain, mất 7,54 triệu USD do lỗi xác thực. B² Network, một Layer 2, buộc phải tạm dừng staking khi quyền nâng cấp bị truy cập trái phép. Nếu bạn nghĩ đây là những sự cố riêng lẻ, hãy nghĩ lại. Chúng là minh chứng cho một thực tế phũ phàng: trong DeFi, 'an toàn' không chỉ là code, mà còn là quy trình, con người và niềm tin.

Tôi đã kiểm toán hàng trăm dự án kể từ năm 2017. Vụ ICO EtherDelta Pro năm đó dạy tôi rằng một dòng code tràn số có thể cướp đi 12.500 ETH. Nhưng những gì tôi thấy vào ngày 22/7 còn đáng sợ hơn: lỗ hổng không chỉ nằm trong contract, mà còn trong cách vận hành. Hãy cùng tôi mổ xẻ từng vụ, từ góc nhìn của một auditor kỹ thuật.

Bối cảnh: Ba giao thức, ba điểm yếu khác nhau

AFX là một decentralized exchange chạy trên Arbitrum. Nó sử dụng cầu nối bên thứ ba để chuyển USDC giữa các chain. Đây không phải cầu native của Arbitrum – một điểm khác biệt quan trọng. Verus là một giao thức cross-chain cho phép người dùng chuyển tài sản giữa nhiều blockchain. B² Network là một Layer 2 với cơ chế staking để bảo mật mạng. Cả ba đều đã hoạt động ổn định trong nhiều tháng, nhưng điểm chung của chúng là phụ thuộc vào các 'lớp tin cậy' bên ngoài smart contract.

Cốt lõi: Phân tích kỹ thuật từng vụ

1. AFX: Cuộc tấn công xã hội vào hạ tầng

Theo Blockaid, kẻ tấn công đã thực hiện một chiến dịch social engineering tinh vi, nhắm vào các nhà phát triển của AFX. Chúng xâm nhập vào môi trường phát triển (development environment), sau đó leo thang lên hệ thống validator của cầu nối. Kết quả: chúng có thể ký các giao dịch chuyển USDC ra ngoài mà không cần khai thác lỗi smart contract nào. Tổng cộng 24,15 triệu USDC bị rút.

Điều này có thể tái tạo: bất kỳ dự án nào có validator tập trung hoặc quy trình vận hành lỏng lẻo đều dễ bị tấn công tương tự. Tôi từng cảnh báo điều này trong bài phân tích về Celestia năm 2022: "Data availability không phải là vấn đề, vấn đề là ai kiểm soát node". Ở đây, kẻ tấn công đã kiểm soát validator, và toàn bộ số dư trong cầu biến mất.

2. Verus: Lỗi logic xác thực cross-chain

SlowMist phát hiện rằng Verus bridge đã phê duyệt rút tiền mà không có bằng chứng tài sản hỗ trợ tương ứng. Nói cách khác, hàm xác thực cross-chain đã bị bypass. Đây là một lỗi trong logic smart contract: nó cho phép người dùng claim token từ chain khác mà không cần gửi token thật vào contract nguồn. Thiệt hại: 7,54 triệu USD.

Loại lỗi này thường xuất hiện khi hàm verifyMessage không kiểm tra đủ điều kiện – ví dụ, thiếu kiểm tra nonce, signature không đúng định dạng, hoặc bỏ qua kiểm tra số dư. Tôi đã gặp lỗi tương tự khi audit Uniswap v2 năm 2020: một lỗi làm tròn phí 0,1% có thể gây thất thoát nhỏ, nhưng nếu là lỗi xác thực cross-chain, hậu quả là hàng triệu USD.

3. B² Network: Quyền nâng cấp bị lộ

B² Network không tiết lộ thiệt hại, nhưng xác nhận rằng quyền nâng cấp hợp đồng staking của họ đã bị truy cập trái phép. Họ lập tức tạm dừng staking và cam kết bồi thường toàn bộ. Đến ngày 24/7, việc bồi thường chưa được ghi nhận trên chuỗi. Người dùng muốn unstake phải gửi yêu cầu thủ công qua Discord.

Điểm yếu ở đây là quyền admin. Bất kỳ ai có private key của multi-sig hoặc admin wallet đều có thể nâng cấp contract lên phiên bản độc hại. Đây là lý do tại sao 'code is law' không hoàn toàn đúng trong DAO governance – quyền nâng cấp luôn nằm trong tay vài người. Tôi đã chỉ ra điều này trong bài viết về ArtPixel năm 2021: khi bạn có thể fork code và sửa lỗi, nhưng không thể kiểm soát quyền admin, thì contract vẫn không an toàn.

Góc nhìn phản trực giác: An toàn không đến từ audit

Nhiều người nghĩ rằng audit có thể ngăn chặn mọi rủi ro. Sự thật: ba vụ hack này đều liên quan đến các điểm yếu mà audit thông thường khó phát hiện. Vụ AFX là do social engineering, không phải lỗi code. Verus có thể đã qua audit nhưng vẫn sót lỗi logic cross-chain. B² liên quan đến quản lý khóa riêng. Audit chỉ là một lớp phòng thủ, không phải tấm khiên vạn năng.

Điểm mù bảo mật thực sự nằm ở 'attack surface' ngoài smart contract: hạ tầng validator, quy trình vận hành, con người. Một dự án có thể có contract hoàn hảo, nhưng nếu validator bị chiếm, tất cả đều vô nghĩa. Điều này có thể tái tạo: bất kỳ dự án nào có điểm tập trung hóa (admin key, validator set nhỏ) đều có nguy cơ tương tự.

Takeaway: Dự báo lỗ hổng và lời khuyên cho nhà đầu tư

Tôi dự đoán trong 6 tháng tới, chúng ta sẽ thấy ít nhất ba xu hướng: (1) Các dự án sẽ tăng cường bảo mật hạ tầng, bao gồm hardware security module và air-gapped signing; (2) Cầu nối cross-chain sẽ phải chứng minh khả năng chống tấn công social engineering, không chỉ lỗi code; (3) Các Layer 2 sẽ buộc phải triển khai cơ chế unstake khẩn cấp tự động, thay vì qua Discord.

Đối với nhà đầu tư: hãy tự hỏi protocol của bạn dựa vào những 'lòng tin' nào? Nếu câu trả lời bao gồm 'validator tập trung', 'admin key một người', 'cầu nối bên thứ ba không được audit chuyên sâu', thì đó là rủi ro bạn đang chấp nhận. Trong thị trường tăng giá này, FOMO có thể che giấu mọi thứ, nhưng code không biết nói dối. Và tôi, với tư cách là một auditor, chỉ có thể nói: hãy kiểm tra lại 'an toàn' của bạn. Bởi vì lần tới, có thể là dự án của bạn.