Euler Finance遭受 cuộc tấn công cho vay chớp nhoáng,损失近2亿美元
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 quy mô lớn do lỗ hổng trong hàm donateToReserves của hợp đồng Etoken. Kẻ tấn công đã thực hiện nhiều thao tác bằng nhiều loại token khác nhau, gây ra thiệt hại lên tới khoảng 197 triệu USD.
Phân tích quá trình tấn công
Kẻ tấn công trước tiên đã lấy khoản vay nhanh 30 triệu DAI từ một nền tảng cho vay, sau đó triển khai hai hợp đồng quan trọng: một để thực hiện các giao dịch vay, và một để thanh lý. Quá trình tấn công có thể được chia thành các bước sau:
Đặt cọc 20 triệu DAI vào hợp đồng Euler Protocol, nhận khoảng 19.5 triệu eDAI.
Sử dụng tính năng đòn bẩy 10x của Euler Protocol, vay 1.956 triệu eDAI và 2 triệu dDAI.
Sử dụng 10 triệu DAI còn lại để trả một phần nợ và tiêu hủy số dDAI tương ứng, sau đó lại vay số lượng eDAI và dDAI tương đương.
Thông qua hàm donateToReserves để quyên góp 100 triệu eDAI, ngay lập tức gọi hàm liquidate để thực hiện thanh lý, nhận được 310 triệu dDAI và 250 triệu eDAI.
Cuối cùng rút 3890 triệu DAI, sau khi trả khoản vay nhanh lãi ròng khoảng 887 triệu DAI.
Phân tích nguyên nhân lỗ hổng
Vấn đề cốt lõi của cuộc tấn công này là hàm donateToReserves thiếu kiểm tra thanh khoản cần thiết. So với hàm mint, hàm donateToReserves không thực hiện bước checkLiquidity, dẫn đến việc người dùng có thể bỏ qua cơ chế kiểm tra thanh khoản bình thường.
Trong trường hợp bình thường, hàm checkLiquidity sẽ gọi mô-đun RiskManager để đảm bảo số lượng Etokens của người dùng lớn hơn số lượng Dtokens. Tuy nhiên, do hàm donateToReserves đã bỏ qua bước này, kẻ tấn công có thể đặt mình vào trạng thái có thể bị thanh lý trước, sau đó hoàn thành thao tác thanh lý.
Đề xuất an toàn
Đối với các lỗ hổng như vậy, chúng tôi khuyên các dự án DeFi:
Thực hiện kiểm toán an toàn toàn diện trước khi hợp đồng ra mắt, đảm bảo tính an toàn của hợp đồng.
Chú ý đặc biệt đến các khía cạnh quan trọng như hoàn trả vốn, kiểm tra tính thanh khoản và thanh lý nợ trong các dự án cho vay.
Thực hiện kiểm tra tính thanh khoản nghiêm ngặt đối với tất cả các hàm có thể ảnh hưởng đến trạng thái tài sản của người dùng.
Thực hiện xem xét mã định kỳ, kịp thời khắc phục các rủi ro an ninh tiềm ẩn.
Cân nhắc việc giới thiệu cơ chế ký đa chữ ký hoặc khóa thời gian và các biện pháp an ninh bổ sung khác.
Sự kiệ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 thông minh. 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à sự phát triển lành mạnh của hệ sinh thái dự án thông qua các thực tiễn an toàn được cải thiện liên tục.
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.
22 thích
Phần thưởng
22
6
Chia sẻ
Bình luận
0/400
MevTears
· 07-07 18:24
defi nằm hưởng thụ tiền rất thơm?
Xem bản gốcTrả lời0
rekt_but_vibing
· 07-06 05:25
Lại một dự án Rug Pull nữa.
Xem bản gốcTrả lời0
P2ENotWorking
· 07-06 05:23
Lại nổ rồi, không có gì bất ngờ.
Xem bản gốcTrả lời0
token_therapist
· 07-06 05:14
又 một Được chơi cho Suckers盛宴
Xem bản gốcTrả lời0
CryptoMom
· 07-06 05:10
thế giới tiền điện tử đồ ngốc lại chơi đùa với mọi người
Euler Finance遭2亿美元cuộc tấn công cho vay chớp nhoáng Tài chính phi tập trung安全再敲警钟
Euler Finance遭受 cuộc tấn công cho vay chớp nhoáng,损失近2亿美元
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 quy mô lớn do lỗ hổng trong hàm donateToReserves của hợp đồng Etoken. Kẻ tấn công đã thực hiện nhiều thao tác bằng nhiều loại token khác nhau, gây ra thiệt hại lên tới khoảng 197 triệu USD.
Phân tích quá trình tấn công
Kẻ tấn công trước tiên đã lấy khoản vay nhanh 30 triệu DAI từ một nền tảng cho vay, sau đó triển khai hai hợp đồng quan trọng: một để thực hiện các giao dịch vay, và một để thanh lý. Quá trình tấn công có thể được chia thành các bước sau:
Đặt cọc 20 triệu DAI vào hợp đồng Euler Protocol, nhận khoảng 19.5 triệu eDAI.
Sử dụng tính năng đòn bẩy 10x của Euler Protocol, vay 1.956 triệu eDAI và 2 triệu dDAI.
Sử dụng 10 triệu DAI còn lại để trả một phần nợ và tiêu hủy số dDAI tương ứng, sau đó lại vay số lượng eDAI và dDAI tương đương.
Thông qua hàm donateToReserves để quyên góp 100 triệu eDAI, ngay lập tức gọi hàm liquidate để thực hiện thanh lý, nhận được 310 triệu dDAI và 250 triệu eDAI.
Cuối cùng rút 3890 triệu DAI, sau khi trả khoản vay nhanh lãi ròng khoảng 887 triệu DAI.
Phân tích nguyên nhân lỗ hổng
Vấn đề cốt lõi của cuộc tấn công này là hàm donateToReserves thiếu kiểm tra thanh khoản cần thiết. So với hàm mint, hàm donateToReserves không thực hiện bước checkLiquidity, dẫn đến việc người dùng có thể bỏ qua cơ chế kiểm tra thanh khoản bình thường.
Trong trường hợp bình thường, hàm checkLiquidity sẽ gọi mô-đun RiskManager để đảm bảo số lượng Etokens của người dùng lớn hơn số lượng Dtokens. Tuy nhiên, do hàm donateToReserves đã bỏ qua bước này, kẻ tấn công có thể đặt mình vào trạng thái có thể bị thanh lý trước, sau đó hoàn thành thao tác thanh lý.
Đề xuất an toàn
Đối với các lỗ hổng như vậy, chúng tôi khuyên các dự án DeFi:
Thực hiện kiểm toán an toàn toàn diện trước khi hợp đồng ra mắt, đảm bảo tính an toàn của hợp đồng.
Chú ý đặc biệt đến các khía cạnh quan trọng như hoàn trả vốn, kiểm tra tính thanh khoản và thanh lý nợ trong các dự án cho vay.
Thực hiện kiểm tra tính thanh khoản nghiêm ngặt đối với tất cả các hàm có thể ảnh hưởng đến trạng thái tài sản của người dùng.
Thực hiện xem xét mã định kỳ, kịp thời khắc phục các rủi ro an ninh tiềm ẩn.
Cân nhắc việc giới thiệu cơ chế ký đa chữ ký hoặc khóa thời gian và các biện pháp an ninh bổ sung khác.
Sự kiệ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 thông minh. 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à sự phát triển lành mạnh của hệ sinh thái dự án thông qua các thực tiễn an toàn được cải thiện liên tục.