Lỗ hổng lỗi phê duyệt: Phân tích cuộc tấn công HedgeyFinance

Bài viết này được dịch máy
Xem bản gốc

Vào ngày 19 tháng 4 năm 2024, HedgeyFinance bị khai thác dẫn đến thiệt hại ước tính khoảng 45 triệu USD. Lỗi thiết kế trong hợp đồng Chiến dịch đã cho phép kẻ tấn công trực tiếp đánh cắp một lượng tài sản đáng kể.

Trong blog này, chúng tôi sẽ phân tích cuộc tấn công đầu tiên vào mạng Ethereum để giúp người dùng ngăn chặn các lỗ hổng tương tự trong các dự án của riêng họ.

Cảm ơn đã đọc Verichains! Đăng ký miễn phí để nhận bài viết mới và hỗ trợ công việc của tôi.

Tổng quan

Kẻ tấn công:

https://etherscan.io/address/0xded2b1a426e1b7d415a40bcad44e98f47181dda2

Hợp đồng dễ bị tổn thương:

https://etherscan.io/address/0xbc452fdc8f851d7c5b72e1fe74dfb63bb793d511

Tấn công giao dịch:

https://etherscan.io/tx/0xa17fdb804728f226fcd10e78eae5247abd984e0f03301312315b89cae25aa517

https://etherscan.io/tx/0x2606d459a50ca4920722a111745c2eeced1d8a01ff25ee762e22d5d4b1595739

Phân tích khai thác

Sau giao dịch đầu tiên, phương pháp tấn công đơn giản một cách đáng ngạc nhiên. Kẻ tấn công đã vay một lượng lớn USDC để tạo chiến dịch bị khóa và sau đó hủy ngay lập tức.

Trong giao dịch thứ hai, kẻ tấn công đã kích hoạt hợp đồng chuyển USDC trực tiếp từ hợp đồng HedgeyFinance sang địa chỉ của chính chúng.

Tính đơn giản của giao dịch thứ hai cho thấy rõ ràng rằng nguyên nhân cốt lõi của việc khai thác nằm ở các hàm createLockedCampaigncancel từ bước 1.

Điều tra hàm createLockedCampaign

Trong quá trình tạo chiến dịch bị khóa, chủ sở hữu có khả năng chỉ định tokenLocker. TokenLocker này, sau khi nhận được sự chấp thuận, có thể chuyển tất cả các mã thông báo được liên kết với chiến dịch mới được tạo ra. Hành vi này dường như là một lỗ hổng tiềm năng.

Mặc dù nhận xét về chức năng cho thấy mục đích ngăn chặn bất kỳ ai yêu cầu thêm mã thông báo, nhưng dường như nó chỉ hạn chế quyền truy cập vào mã thông báo thưởng. Điều quan trọng là chức năng này không thu hồi phê duyệt đã cấp ở bước trước. Sự giám sát này cho phép kẻ tấn công rút tất cả các mã thông báo đã đặt cược trong chiến dịch trong khi vẫn giữ được sự chấp thuận từ bước trước đó.

Với sự chấp thuận kéo dài này, kẻ tấn công có thể dễ dàng chuyển mã thông báo ra khỏi hợp đồng đến bất kỳ vị trí mong muốn nào.

Bằng cách phân tích ngược lại hàm createLockedCampaign , có thể thấy rõ rằng logic phê duyệt có sai sót. Việc cấp cho một chiến dịch bị khóa khả năng chuyển mã thông báo ra bất kỳ lúc nào trái ngược với hành vi dự kiến. Lỗ hổng thiết kế này là nguyên nhân cốt lõi của việc khai thác HedgeyFinance.

Bài học kinh nghiệm

Việc khai thác HedgeyFinance nêu bật những hậu quả nghiêm trọng của việc không quản lý phê duyệt Token một cách cẩn thận trong các hợp đồng thông minh. Dưới đây là những điểm chính:

Nguồn
Tuyên bố từ chối trách nhiệm: Nội dung trên chỉ là ý kiến của tác giả, không đại diện cho bất kỳ lập trường nào của Followin, không nhằm mục đích và sẽ không được hiểu hay hiểu là lời khuyên đầu tư từ Followin.
Thích
Thêm vào Yêu thích
Bình luận