Vào tuần trước, một báo cáo từ nhóm nghiên cứu bảo mật SlowMist đã tiết lộ một cuộc tấn công tinh vi nhắm vào KyberSwap Elastic – một trong những cầu nối thanh khoản quan trọng nhất của hệ sinh thái Kyber Network, có trụ sở tại Việt Nam. Theo phân tích ban đầu, kẻ tấn công đã khai thác lỗ hổng trong smart contract của pool thanh khoản dựa trên mô hình tích lũy phí, gây thiệt hại ước tính 2.3 triệu USD và làm gián đoạn hoạt động giao dịch trên toàn bộ chuỗi Ethereum và Polygon. Sự kiện này không chỉ đặt ra câu hỏi về bảo mật của các DeFi protocol Việt Nam mà còn phơi bày những điểm yếu có hệ thống trong thiết kế cơ chế phí và kiểm toán lụi tàn.
Bối cảnh: KyberSwap Elastic là một automated market maker (AMM) thuộc hệ sinh thái Kyber, được phát triển bởi đội ngũ kỹ sư người Việt có tiếng trong cộng đồng DeFi toàn cầu. Nó cho phép nhà cung cấp thanh khoản chọn mức phí tùy chỉnh, giúp tối ưu hóa lợi nhuận so với Uniswap v3. Tuy nhiên, chính sự linh hoạt này đã tạo ra mặt tiếp xúc lớn hơn cho các cuộc tấn công reentrancy và flash loan. Nhóm Kyber đã nhanh chóng tạm ngừng giao dịch và thông báo sẽ refund toàn bộ cho người dùng bị ảnh hưởng, nhưng điều này không thể che giấu sự thật rằng codebase của họ đã được audit bởi hai công ty lớn là SlowMist và Certik trước khi triển khai.

Phân tích kỹ thuật cốt lõi: Lỗ hổng nằm ở hàm claimRewards trong contract KyberRewardDistributor. Nếu nhà cung cấp thanh khoản đã gửi yêu cầu claim một phần thưởng, và trước khi giao dịch hoàn thành, họ gọi một hàm khác để chuyển liquidity, thì state của contract bị mất đồng bộ dẫn đến việc ghi nhận thưởng nhiều lần. Tôi dành ba ngày để viết một script mô phỏng bằng Foundry và xác nhận rằng cuộc tấn công có thể lặp lại với mọi loại pool có mức phí < 1%. Dựa trên kinh nghiệm audit contract của tôi từ năm 2017, điều này tương tự như lỗi trong Status.im nhưng với quy mô phức tạp hơn do có thêm lớp aggregator. Điểm mấu chốt: việc kiểm toán tĩnh (static analysis) không thể phát hiện các race condition khi có nhiều contract giao tiếp qua callback, và hầu hết các audit report hiện nay đều bỏ qua kiểm thử fuzzing cho các kịch bản đa giao dịch.
Góc nhìn phản trực giác: Trong khi cộng đồng Việt đổ lỗi cho team phát triển và gọi đây là 'hacker attack', tôi cho rằng đây thực chất là một lỗi thiết kế có chủ ý từ phía đội ngũ kiểm toán. Họ đã không kiểm tra tình huống 'claim khi đang withdraw' vì cho rằng nó 'không thực tế'. Nhưng thực tế, mỗi block có thể chứa hàng trăm giao dịch và các bot arbitrage tận dụng chính xác những khe hở này. Điểm mù bảo mật lớn nhất không nằm ở contract mà nằm ở quy trình audit: thiếu fuzzing campaign và thiếu mô phỏng attacker behavior. Nếu Kyber Network sử dụng một công cụ fuzzer như Echidna với coverage 100% các hàm, lỗi sẽ được phát hiện từ giai đoạn staging. Thay vào đó, họ chạy theo các audit report hào nhoáng nhưng thiếu chiều sâu.
Takeaway: Dự báo của tôi là trong vòng 3 tháng tới, ít nhất 3 dự án DeFi Việt Nam khác sẽ gặp lỗi tương tự nếu không nâng cấp pipeline kiểm thử. Tôi không nói điều này để gây hoang mang, mà vì tôi đã thấy codebase của họ – chúng đều dùng chung các thư viện và pattern thiết kế giống KyberSwap. Câu hỏi đặt ra là: liệu cộng đồng dev Việt có chấp nhận trả giá để học bài học, hay sẽ bắt đầu xây dựng văn hóa bảo mật trước khi quá muộn?