Euler Finance遭1.97亿美元cuộc tấn công cho vay chớp nhoáng donateToReserves函数漏洞成祸因

robot
Đang tạo bản tóm tắt

Phân tích sự cố lỗ hổng Euler Finance: cuộc tấn công cho vay chớp nhoáng dẫn đến thiệt hại 1.97 triệu đô la Mỹ

Vào ngày 13 tháng 3 năm 2023, dự án Euler Finance đã gặp phải một sự kiện an ninh nghiêm trọng. Theo dữ liệu giám sát trên chuỗi, do lỗ hổng kiểm tra tính thanh khoản trong hàm donateToReserves của Etoken, dự án đã chịu một cuộc tấn công cho vay chớp nhoáng. Kẻ tấn công thông qua nhiều thao tác với các loại tiền khác nhau, cuối cùng đã gây ra khoản thiệt hại lên đến 197 triệu USD, liên quan đến 6 loại token. Hiện tại, số tiền này vẫn đang được giữ trong tài khoản của kẻ tấn công.

Phân tích lỗ hổng Euler Finance: Làm thế nào để bị cuộc tấn công cho vay chớp nhoáng, mất 1.97 tỷ đô la Mỹ!

Phân tích quy trình tấn công

  1. Kẻ tấn công trước tiên đã lấy 30 triệu Dai bằng khoản vay nhanh từ một nền tảng cho vay, sau đó triển khai hai hợp đồng: một hợp đồng để vay mượn, hợp đồng còn lại để thanh lý.

  2. Kẻ tấn công đã thế chấp 20 triệu Dai vay mượn vào hợp đồng Euler Protocol, nhận được khoảng 19,5 triệu eDAI.

  3. Lợi dụng chức năng đòn bẩy 10 lần của Giao thức Euler, kẻ tấn công đã vay 195.6 triệu eDAI và 200 triệu dDAI.

  4. Kẻ tấn công 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 195.6 triệu eDAI và 20 triệu dDAI.

  5. Bước quan trọng: Kẻ tấn công gọi hàm donateToReserves, đã quyên góp số tiền gấp 10 lần số tiền hoàn trả, tức là 100 triệu eDAI. Ngay sau đó, kẻ tấn công kích hoạt hàm thanh lý, đã nhận được 310 triệu dDAI và 250 triệu eDAI.

  6. Cuối cùng, kẻ tấn công đã rút 38,9 triệu Dai, hoàn trả 30 triệu khoản vay nhanh, cuối cùng thu lợi khoảng 8,87 triệu Dai.

Phân tích lỗ hổng Euler Finance: Làm thế nào để bị cuộc tấn công cho vay chớp nhoáng, thiệt hại 1.97 triệu đô la!

Phân tích lỗ hổng Euler Finance: Làm thế nào để bị cuộc tấn công cho vay chớp nhoáng, thiệt hại 1.97 triệu USD!

Phân tích lỗ hổng Euler Finance: Làm thế nào để bị tấn công cho vay chớp nhoáng, thiệt hại 1.97 tỷ đô la!

Phân tích lỗ hổng Euler Finance: Cách bị tấn công cho vay chớp nhoáng, thiệt hại 1.97 triệu đô la!

Phân tích lỗ hổng Euler Finance: Làm thế nào để bị cuộc tấn công cho vay chớp nhoáng, thiệt hại 1.97 triệu USD!

Phân tích lỗ hổng Euler Finance: Làm thế nào để bị cuộc tấn công cho vay chớp nhoáng, thiệt hại 1.97 triệu USD!

Phân tích lỗ hổng Euler Finance: Làm thế nào để bị tấn công cho vay chớp nhoáng, mất 1.97 tỷ đô la!

Phân tích lỗ hổng Euler Finance: Làm thế nào để bị cuộc tấn công cho vay chớp nhoáng, thiệt hại 1.97 triệu USD!

Phân tích lỗ hổng Euler Finance: Làm thế nào để bị cuộc tấn công cho vay chớp nhoáng, thiệt hại 1.97 tỷ đô la!

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 nằm ở hàm donateToReserves. So với các hàm quan trọng khác (như hàm mint), hàm donateToReserves thiếu một bước quan trọng: checkLiquidity.

Hàm checkLiquidity có tác dụng gọi mô-đun RiskManager, kiểm tra người dùng, đảm bảo Etoken lớn hơn Dtoken, từ đó đảm bảo tình trạng thanh khoản của người dùng. Trong bình thường, mỗi lần hoạt động đều cần thực hiện kiểm tra này. Tuy nhiên, hàm donateToReserves thiếu bước này, dẫn đến kẻ tấn công có thể đặt mình vào trạng thái có thể bị thanh lý, sau đó hoàn thành hoạt động thanh lý.

Phân tích lỗ hổng Euler Finance: Làm thế nào để bị tấn công cho vay chớp nhoáng, mất 1.97 triệu đô la Mỹ!

Đề xuất bảo mật

Đối với các lỗ hổng như vậy, chúng tôi khuyến nghị các dự án cần thực hiện kiểm toán an ninh toàn diện trước khi ra mắt để đảm bảo tính an toàn của hợp đồng. Đối với các dự án cho vay, đặc biệt cần chú ý đến các khía cạnh sau:

  1. Tính toàn vẹn của cơ chế hoàn trả vốn
  2. Tính toàn diện của việc kiểm tra tính thanh khoản
  3. Độ an toàn của quy trình thanh lý nợ

Chỉ thông qua việc kiểm tra an ninh nghiêm ngặt và đánh giá rủi ro toàn diện, mới có thể giảm thiểu tối đa xác suất xảy ra các sự cố an ninh tương tự, bảo đảm an toàn tài chính cho dự án và người dùng.

EUL1.07%
Xem bản gố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.
  • Phần thưởng
  • 3
  • Chia sẻ
Bình luận
0/400
AirdropChaservip
· 08-05 08:04
又 chơi đùa với mọi người 又 chơi đùa với mọi người 天天被割
Xem bản gốcTrả lời0
DefiSecurityGuardvip
· 08-05 08:04
*thở dài* một ngày nữa, một giao thức khác bị hủy hoại bởi lỗ hổng donateToReserves cơ bản... đã cảnh báo điều này từ tháng trước thật lòng. nhắc nhở quan trọng: LUÔN luôn làm sạch các kiểm tra thanh khoản cẩn thận. những sai lầm nghiệp dư này vẫn tiếp tục khiến mất 9 con số thật đáng tiếc.
Xem bản gốcTrả lời0
GasGrillMastervip
· 08-05 07:50
Anh này phòng thủ cơ bản còn không ổn, thật là tệ.
Xem bản gốcTrả lời0
  • Ghim
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)