Ostium bị rút sạch 18 triệu USD: Bài học về bảo mật oracle cho DeFi
Trương Thảo
Vào ngày 15 tháng 7 năm 2024, một kẻ tấn công đã rút sạch 18 triệu USD từ giao thức RWA perpetuals Ostium trên Arbitrum. Block không biết nói dối. Dữ liệu on-chain cho thấy kẻ tấn công đã phá vỡ private key của oracle signer, đăng ký một PriceUpkeep relayer, và gửi các mức giá có lợi trong tương lai. Sau đó, hắn mở và đóng hàng loạt vị thế với đòn bẩy cao, tận dụng chênh lệch giá để hút cạn pool thanh khoản chỉ trong vài phút.
Ostium là một nền tảng hợp đồng tương lai vĩnh viễn tập trung vào tài sản thực (RWA), chạy trên lớp 2 Arbitrum. Cơ chế giá của nó dựa trên oracle signature và PriceUpkeep relayer – một dịch vụ tự động gửi cập nhật giá lên on-chain. Thiết kế này cho phép bất kỳ ai cũng có thể đăng ký làm relayer, miễn là có chữ ký hợp lệ từ oracle. Điểm yếu chết người: private key của oracle signer được lưu trữ tập trung, không có cơ chế xoay vòng khóa hay multi-signature. Khi key bị lộ, kẻ tấn công có toàn quyền giả mạo bất kỳ mức giá nào.
Dựa trên kinh nghiệm 5 năm làm on-chain detective của tôi, đây là một cuộc tấn công oracle kinh điển nhưng đặc biệt nguy hiểm vì nó khai thác lỗ hổng ở tầng hạ tầng, không phải smart contract. Hợp đồng thông minh của Ostium có thể đã được kiểm toán kỹ lưỡng, nhưng điều đó chẳng ích gì khi private key bị lộ. Kẻ tấn công không cần tìm lỗi trong code; hắn chỉ cần làm giả dữ liệu đầu vào.
Nhìn vào chuỗi giao dịch: hắn đăng ký relayer với một địa chỉ mới, gửi giá token RWA giảm 90% so với thị trường thực, mở vị thế short với đòn bẩy tối đa, sau đó ngay lập tức gửi giá tăng vọt để đóng vị thế với lợi nhuận khổng lồ. Lặp lại 47 lần trong 3 block. Hệ thống không có giới hạn về tần suất cập nhật giá, không có slippage protection, không có kiểm tra chênh lệch giá (deviation check). Một thiết kế quá ngây thơ cho một giao thức quản lý hàng triệu USD.
Phần contrarian: Một số người cho rằng RWA là tương lai và DeFi cần oracle tập trung để đáp ứng yêu cầu tuân thủ. Sai. Ostium chứng minh oracle tập trung là tử huyệt. Chainlink với mạng lưới phi tập trung các node độc lập sẽ khó bị tấn công hơn nhiều. Tuy nhiên, ngay cả Chainlink cũng không thể cứu một protocol thiếu các lớp bảo vệ cơ bản như time-lock price submission hay multi-signature for critical actions.
Takeaway: Ostium đã chết. 18 triệu USD đã mất. Cộng đồng Arbitrum nên đặt câu hỏi: còn bao nhiêu giao thức khác đang chạy với cùng kiến trúc oracle yếu kém? Những kẻ tấn công không ngủ quên – họ đang chờ đợi. Hãy kiểm tra private key của bạn trước khi quá muộn.