Vào ngày 14 tháng 3 năm 2025, dự án WebKey Các tổ chức tự trị phi tập trung (DAO) hoạt động trên Binance Smart Chuỗi (BSC) đã bị khai thác, dẫn đến tổn thất tài chính ước tính khoảng 737.000 đô la Mỹ. Phân tích này đi sâu vào cơ chế của cuộc tấn công, xác định nguyên nhân gốc rễ và phác thảo các điểm chính về bảo mật.
Tổng quan sự cố
Ngày: 14 tháng 3 năm 2025
Nền tảng: Binance Smart Chuỗi (BSC)
Địa chỉ kẻ tấn công : 0x3026c464d3bd6ef0ced0d49e80f171b58176ce32
Hợp đồng bị ảnh hưởng (Proxy): 0xd511096a73292a7419a94354d4c1c73e8a3cd851
Hợp đồng triển khai (tại thời điểm tấn công) : 0xc39c54868a4f842b02a99339f4a57a44efc310b8
Giao dịch tấn công : 0xf13d281d4aa95f1aca457bd17f2531581b0ce918c90905d65934c9e67f6ae0ec
Cơ chế khai thác
Kẻ tấn công đã thực hiện một chiến lược chênh lệch giá có lợi nhuận bằng cách khai thác các tham số được cấu hình sai trong hợp đồng WebKey Các tổ chức tự trị phi tập trung (DAO) . Các bước cốt lõi của chiến lược này, được lặp lại trong các giao dịch tấn công, như sau:
Mua: Gọi hàm buy
, sử dụng USDT để mua token wkeyDao với mức giá thấp giả tạo do nhà điều hành đặt ra.
Nhận: Nhận ngay các token wkeyDao đã mua do giá trị immediateReleaseTokens
không bằng 0.
Bán: Đổi token wkeyDao đã nhận trên Sàn Sàn phi tập trung (DEX) (như PancakeSwap) để lấy USDT hoặc các tài sản khác theo giá thị trường hiện tại cao hơn.
Kẻ tấn công đã lặp lại chu kỳ mua-nhận-bán này. Ví dụ, phân tích giao dịch tấn công chính (0xf13d...ae0ec) cho thấy kẻ tấn công đã sử dụng khoảng 1.200 USDT trong một số phần của khai thác để mua 230 mã thông báo wkeyDao, sau đó được bán với giá khoảng 13.000 USDT. Bằng cách lặp lại sự chênh lệch giá này trong giao dịch, kẻ tấn công đã có thể rút một lượng giá trị đáng kể, góp phần vào tổng thiệt hại ước tính là ~737.000 USD.
Cuộc điều tra của chúng tôi tập trung vào cách kẻ tấn công mua được mã thông báo với mức giá thấp hơn đáng kể so với giá thị trường.
Phân tích hàm buy
: Hàm buy
tạo điều kiện cho việc bán Token dựa trên các tham số được xác định trong biến lưu trữ currentSaleInfo
. Vào thời điểm xảy ra cuộc tấn công, điều này bao gồm một mức giá cố định (1.200 USDT cho gói đã mua) và một giá trị cho immediateReleaseTokens
. Khi immediateReleaseTokens
được đặt thành giá trị khác không, hợp đồng sẽ ngay lập tức chuyển số lượng token đó cho người mua khi mua. Mặc dù cơ chế này cho phép khai thác, nhưng bản thân hàm này hoạt động theo logic của nó dựa trên các tham số bán hiện có. Nguyên nhân gốc rễ không nằm trong chính logic mã của hàm buy
.
Điều tra currentSaleInfo: Chúng tôi đã theo dõi cách biến currentSaleInfo, đặc biệt là tham số immediateReleaseTokens, được thiết lập. Cơ chế chính để sửa đổi dữ liệu này là hàm setSaleInfo.
Phân tích hàm setSaleInfo: Logic của hàm setSaleInfo rất đơn giản và bao gồm một kiểm tra kiểm soát truy cập cần thiết: chỉ có người vận hành hợp đồng được chỉ định mới có thể gọi hàm này để cập nhật các tham số bán hàng. Hàm này, khi tách biệt, không có lỗ hổng cố hữu.
Xác định giao dịch tiền thân: Việc xem xét các tương tác lịch sử với hợp đồng đã tiết lộ một giao dịch quan trọng được thực hiện bởi địa chỉ nhà điều hành khoảng 120 ngày trước khi khai thác:
Giao dịch của nhà điều hành: 0xda64c661c80739865c344d57415476c8a9cac4cee8ec51274dcb173939f976df Giao dịch này đã gọi setSaleInfo và cấu hình currentSaleInfo với các tham số chính xác mà kẻ tấn công sau đó đã khai thác. Dữ liệu đầu vào được giải mã cho giao dịch này (hiển thị bên dưới) chỉ rõ các giá trị được đặt cho _price và _immediateReleaseTokens đã tạo ra lỗ hổng.
Xác định nguyên nhân gốc rễ
Nguyên nhân cơ bản của khai thác này không phải là lỗi trong logic mã của hợp đồng thông minh mà là vấn đề vận hành. Các tham số bán hàng không chính xác (cụ thể là giá thấp kết hợp với việc phát hành Token thông báo ngay lập tức, như được hiển thị trong dữ liệu giao dịch ở trên) đã được thiết lập thông qua hàm setSaleInfo
bởi nhà điều hành được chỉ định trước cuộc tấn công khá lâu. Cấu hình sai này đã tạo ra một cơ hội, cho phép kẻ tấn công mua các mã thông báo thấp hơn nhiều so với giá trị thị trường của chúng. Lý do cho cấu hình sai này có thể từ lỗi của con người trong quá trình thiết lập đến khả năng xâm phạm khóa riêng của nhà điều hành.
Sự cố này nhấn mạnh tầm quan trọng của bảo mật hoạt động cùng với bảo mật mã:
Xác thực tham số: Triển khai các quy trình kiểm tra nghiêm ngặt và xác minh nhiều người khi thiết lập các tham số hợp đồng quan trọng như giá bán và lịch phát hành Token .
Quản lý khóa an toàn: Sử dụng các giải pháp quản lý khóa mạnh mẽ cho các vai trò đặc quyền như nhà điều hành hợp đồng. Cân nhắc sử dụng ví Tính toán đa bên (MPC) hoặc ví phần cứng được lưu trữ an toàn để ngăn chặn các điểm lỗi đơn lẻ và truy cập trái phép.
Kiểm tra và giám sát thường xuyên: Mặc dù bản thân mã không có lỗi, nhưng việc xem xét thường xuyên trạng thái và thông số hợp đồng, cùng với việc giám sát các hành động bất thường của người vận hành, có thể phát hiện ra những cấu hình sai như vậy sớm hơn.
Bằng cách tập trung vào các quy trình vận hành an toàn và bảo vệ các tài khoản đặc quyền, các dự án DeFi có thể giảm đáng kể nguy cơ bị khai thác do cấu hình sai.