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 đã bị tấn công cho vay chớp nhoáng do lỗ hổng hợp đồng thông minh, gây thiệt hại khoảng 197 triệu USD. Cuộc tấn công này liên quan đến 6 loại token, kẻ tấn công đã tận dụng một khiếm khuyết trong hàm của hợp đồng dự án để thực hiện cuộc tấn công.
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 để thực hiện các hoạt động cho vay và thanh lý. Cuộc tấn công chủ yếu được chia thành các bước sau:
Gửi 20 triệu DAI vào hợp đồng Euler Protocol, nhận 19 triệu eDAI.
Sử dụng tính năng đòn bẩy 10x của Euler Protocol, cho 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ợ, thiêu hủy dDAI tương ứng, tiếp tục cho vay nhiều eDAI và dDAI hơn.
Thông qua hàm donateToReserves để quyên góp 100 triệu eDAI, sau đó thực hiện thao tác thanh lý, nhận được 310 triệu dDAI và 250 triệu eDAI.
Cuối cùng, rút 38,9 triệu DAI, sau khi hoàn trả Khoản vay nhanh, thu lợi khoảng 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 thành công là do hàm donateToReserves trong hợp đồng Euler Finance thiếu kiểm tra thanh khoản cần thiết. So với các hàm quan trọng khác như mint, hàm donateToReserves không gọi checkLiquidity để xác minh thanh khoản của người dù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 eToken của người dùng lớn hơn số lượng dToken. Do thiếu bước quan trọng này, kẻ tấn công đã có thể thao túng trạng thái tài khoản của bản thân, khiến nó ở trạng thái có thể bị thanh lý, từ đó thu lợi bất chính.
Đề xuất an toàn
Sự kiện lần này lại làm nổi bật tầm quan trọng của việc kiểm toán an ninh hợp đồng thông minh. Đối với các dự án tài chính phi tập trung (DeFi), đặc biệt là các nền tảng liên quan đến chức năng cho vay, cần đặc biệt chú ý đến những khía cạnh sau:
Tính toàn vẹn của cơ chế hoàn trả vốn
Tính toàn diện của việc kiểm tra tính thanh khoản
Độ an toàn của quy trình thanh lý nợ
Các bên dự án nên thực hiện kiểm toán an ninh toàn diện trước khi triển khai hợp đồng, đảm bảo tính an toàn và khả năng tương tác của từng mô-đun chức năng. Đồng thời, việc giám sát an ninh liên tục và sửa lỗi kịp thời cũng là chìa khóa để đảm bảo sự hoạt động ổn định lâu dài của dự án.
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
7
Chia sẻ
Bình luận
0/400
WagmiWarrior
· 07-22 11:52
Được chơi cho Suckers手法越来越高级了
Xem bản gốcTrả lời0
CountdownToBroke
· 07-22 02:14
Một cái bão tố nữa, từ từ xếp hàng đi.
Xem bản gốcTrả lời0
MEVHunterX
· 07-21 21:20
Lại là vấn đề kiểm toán? Thật hài hước.
Xem bản gốcTrả lời0
defi_detective
· 07-20 16:03
Một dự án khác đã bị sụp đổ.
Xem bản gốcTrả lời0
DegenDreamer
· 07-20 15:55
Lại là một lỗ hổng bảo mật, không thể chơi trong vòng này được nữa.
Euler Finance遭 cuộc tấn công cho vay chớp nhoáng损失近2亿美元
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 đã bị tấn công cho vay chớp nhoáng do lỗ hổng hợp đồng thông minh, gây thiệt hại khoảng 197 triệu USD. Cuộc tấn công này liên quan đến 6 loại token, kẻ tấn công đã tận dụng một khiếm khuyết trong hàm của hợp đồng dự án để thực hiện cuộc tấn công.
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 để thực hiện các hoạt động cho vay và thanh lý. Cuộc tấn công chủ yếu được chia thành các bước sau:
Gửi 20 triệu DAI vào hợp đồng Euler Protocol, nhận 19 triệu eDAI.
Sử dụng tính năng đòn bẩy 10x của Euler Protocol, cho 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ợ, thiêu hủy dDAI tương ứng, tiếp tục cho vay nhiều eDAI và dDAI hơn.
Thông qua hàm donateToReserves để quyên góp 100 triệu eDAI, sau đó thực hiện thao tác thanh lý, nhận được 310 triệu dDAI và 250 triệu eDAI.
Cuối cùng, rút 38,9 triệu DAI, sau khi hoàn trả Khoản vay nhanh, thu lợi khoảng 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 thành công là do hàm donateToReserves trong hợp đồng Euler Finance thiếu kiểm tra thanh khoản cần thiết. So với các hàm quan trọng khác như mint, hàm donateToReserves không gọi checkLiquidity để xác minh thanh khoản của người dù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 eToken của người dùng lớn hơn số lượng dToken. Do thiếu bước quan trọng này, kẻ tấn công đã có thể thao túng trạng thái tài khoản của bản thân, khiến nó ở trạng thái có thể bị thanh lý, từ đó thu lợi bất chính.
Đề xuất an toàn
Sự kiện lần này lại làm nổi bật tầm quan trọng của việc kiểm toán an ninh hợp đồng thông minh. Đối với các dự án tài chính phi tập trung (DeFi), đặc biệt là các nền tảng liên quan đến chức năng cho vay, cần đặc biệt chú ý đến những khía cạnh sau:
Các bên dự án nên thực hiện kiểm toán an ninh toàn diện trước khi triển khai hợp đồng, đảm bảo tính an toàn và khả năng tương tác của từng mô-đun chức năng. Đồng thời, việc giám sát an ninh liên tục và sửa lỗi kịp thời cũng là chìa khóa để đảm bảo sự hoạt động ổn định lâu dài của dự án.