Dự án Euler Finance bị tấn công cho vay chớp nhoáng, thiệt hại gần 200 triệu đô la
Vào ngày 13 tháng 3 năm 2023, dự án Euler Finance đã chịu một cuộc tấn công cho vay chớp nhoáng, dẫn đến thiệt hại lên tới khoảng 197 triệu USD. Kẻ tấn công đã khai thác một lỗ hổng trong hợp đồng của dự án, thực hiện cuộc tấn công thông qua nhiều thao tác. Hiện tại, số tiền bị đánh cắp vẫn còn trong tài khoản của kẻ tấn công.
Phân tích quá trình tấn công
Kẻ tấn công trước tiên đã vay 30 triệu DAI từ một nền tảng cho vay chớp nhoáng và triển khai hai hợp đồng: một hợp đồng cho vay và một hợp đồng thanh lý.
Kẻ tấn công đã thế chấp 20 triệu DAI đã vay vào hợp đồng Euler Protocol, nhận được 19,5 triệu eDAI.
Sử dụng tính năng đòn bẩy của Giao thức Euler, kẻ tấn công đã vay 195,6 triệu eDAI và 200 triệu dDAI.
Kẻ tấn công sử dụng 10 triệu DAI còn lại để thanh toán một phần nợ, đã tiêu hủy 10 triệu dDAI, sau đó lại vay 195,6 triệu eDAI và 200 triệu dDAI.
Bước quan trọng: Kẻ tấn công gọi hàm donateToReserves, quyên góp 100 triệu eDAI, sau đó thông qua hàm liquidate để thanh lý, nhận được 310 triệu dDAI và 250 triệu eDAI.
Cuối cùng, kẻ tấn công đã rút 38.9 triệu DAI, hoàn trả 30 triệu DAI khoản vay nhanh, và cuối cùng thu lợi 8.87 triệu DAI.
Nguyên nhân lỗ hổng
Nguyên nhân chính khiến cuộc tấn công được thực hiện thành công là do hàm donateToReserves trong hợp đồng Euler Finance có khuyết điểm. So với các hàm quan trọng khác, hàm này thiếu bước kiểm tra thanh khoản cần thiết (checkLiquidity). Kiểm tra này lẽ ra phải đảm bảo rằng số lượng eToken của người dùng lớn hơn số lượng dToken, để duy trì trạng thái lành mạnh của hợp đồng.
Do việc thiếu kiểm tra quan trọng này, kẻ tấn công có thể thông qua các thao tác cụ thể để tự đưa mình vào trạng thái có thể bị thanh lý, sau đó lợi dụng điều này để thực hiện cuộc tấn công.
Đề xuất an toàn
Đối với các dự án cho vay tương tự, cần đặc biệt chú ý đến một số điểm quan trọng sau:
Độ an toàn của cơ chế hoàn trả vốn
Tính toàn diện của việc kiểm tra thanh khoản
Tính nghiêm ngặt của quy trình thanh lý nợ
Trước khi hợp đồng ra mắt, việc thực hiện một cuộc kiểm tra an ninh toàn diện và chuyên nghiệp là vô cùng quan trọng. Điều này không chỉ giúp phát hiện các lỗ hổng tiềm ẩn mà còn đảm bảo tính an toàn và ổn định tổng thể của hợp đồng.
Sự kiện lần này một lần nữa nhấn mạnh tầm quan trọng của an toàn hợp đồng trong lĩnh vực tài chính phi tập trung. Các bên dự án nên luôn đặt an toàn lên hàng đầu để bảo vệ tài sản của người dùng và duy trì sự phát triển lành mạnh của toàn bộ hệ sinh thái.
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
Euler Finance遭 cuộc tấn công cho vay chớp nhoáng损失近2亿美元
Dự án Euler Finance bị tấn công cho vay chớp nhoáng, thiệt hại gần 200 triệu đô la
Vào ngày 13 tháng 3 năm 2023, dự án Euler Finance đã chịu một cuộc tấn công cho vay chớp nhoáng, dẫn đến thiệt hại lên tới khoảng 197 triệu USD. Kẻ tấn công đã khai thác một lỗ hổng trong hợp đồng của dự án, thực hiện cuộc tấn công thông qua nhiều thao tác. Hiện tại, số tiền bị đánh cắp vẫn còn trong tài khoản của kẻ tấn công.
Phân tích quá trình tấn công
Kẻ tấn công trước tiên đã vay 30 triệu DAI từ một nền tảng cho vay chớp nhoáng và triển khai hai hợp đồng: một hợp đồng cho vay và một hợp đồng thanh lý.
Kẻ tấn công đã thế chấp 20 triệu DAI đã vay vào hợp đồng Euler Protocol, nhận được 19,5 triệu eDAI.
Sử dụng tính năng đòn bẩy của Giao thức Euler, kẻ tấn công đã vay 195,6 triệu eDAI và 200 triệu dDAI.
Kẻ tấn công sử dụng 10 triệu DAI còn lại để thanh toán một phần nợ, đã tiêu hủy 10 triệu dDAI, sau đó lại vay 195,6 triệu eDAI và 200 triệu dDAI.
Bước quan trọng: Kẻ tấn công gọi hàm donateToReserves, quyên góp 100 triệu eDAI, sau đó thông qua hàm liquidate để thanh lý, nhận được 310 triệu dDAI và 250 triệu eDAI.
Cuối cùng, kẻ tấn công đã rút 38.9 triệu DAI, hoàn trả 30 triệu DAI khoản vay nhanh, và cuối cùng thu lợi 8.87 triệu DAI.
Nguyên nhân lỗ hổng
Nguyên nhân chính khiến cuộc tấn công được thực hiện thành công là do hàm donateToReserves trong hợp đồng Euler Finance có khuyết điểm. So với các hàm quan trọng khác, hàm này thiếu bước kiểm tra thanh khoản cần thiết (checkLiquidity). Kiểm tra này lẽ ra phải đảm bảo rằng số lượng eToken của người dùng lớn hơn số lượng dToken, để duy trì trạng thái lành mạnh của hợp đồng.
Do việc thiếu kiểm tra quan trọng này, kẻ tấn công có thể thông qua các thao tác cụ thể để tự đưa mình vào trạng thái có thể bị thanh lý, sau đó lợi dụng điều này để thực hiện cuộc tấn công.
Đề xuất an toàn
Đối với các dự án cho vay tương tự, cần đặc biệt chú ý đến một số điểm quan trọng sau:
Trước khi hợp đồng ra mắt, việc thực hiện một cuộc kiểm tra an ninh toàn diện và chuyên nghiệp là vô cùng quan trọng. Điều này không chỉ giúp phát hiện các lỗ hổng tiềm ẩn mà còn đảm bảo tính an toàn và ổn định tổng thể của hợp đồng.
Sự kiện lần này một lần nữa nhấn mạnh tầm quan trọng của an toàn hợp đồng trong lĩnh vực tài chính phi tập trung. Các bên dự án nên luôn đặt an toàn lên hàng đầu để bảo vệ tài sản của người dùng và duy trì sự phát triển lành mạnh của toàn bộ hệ sinh thái.