$200K Hack của UniLend: Những điều đã sai và cách DeFi có thể làm tốt hơn

Trung cấp1/22/2025, 4:23:33 PM
UniLend đã bị khai thác do một lỗ hổng, dẫn đến việc đánh cắp khoảng 200K đô la Mỹ (4% TVL). Kẻ tấn công đã sử dụng một khoản vay flash để gửi 60 triệu USDC, thao tác tính toán tài sản đảm bảo và khai thác một lỗi hợp đồng trong quá trình kiểm tra sức khỏe để làm tăng giá trị tài sản đảm bảo, rút 60 stETH. Lỗi xuất phát từ việc thực hiện không chính xác của chức năng userBalanceOfToken. UniLend đã sửa lỗi, tạm dừng gửi tiền vào V2 và đề xuất một khoản thưởng để khôi phục các khoản tiền. Sự cố này nhấn mạnh tầm quan trọng quan trọng của an ninh đối với các nền tảng DeFi và nhu cầu kiểm tra hợp đồng thông minh kỹ lưỡng.

Giới thiệu về UniLend

@UniLend_Financelà một giao thức thị trường tiền phi tập trung không cần phép với dịch vụ cho vay và vay thông qua hợp đồng thông minh.

UniLend cho phép người dùng sử dụng tiền điện tử của họ bằng cách cung cấp tài sản thế chấp cho mạng lưới có thể được vay bằng cách đặt cược vào tài sản thế chấp có giá trị cao hơn. Điều này tạo ra một môi trường cho vay an toàn, trong đó người cho vay nhận được một tỷ lệ lãi suất hợp thành hàng năm (APY) được trả trên mỗi khối trong khi người vay trả lãi suất trên tiền điện tử đã vay.

Cách UniLend Hoạt Động

Giao thức UniLend V2 hoạt động thông qua ba thành phần kỹ thuật chính:

1. Mô hình Dual Asset Pool

UniLend sử dụng các hồ bơi tài sản cô lập đôi cho mỗi cặp ERC20/ERC20 tương thích. Thiết kế này đảm bảo rằng hiệu suất hoặc biến động của một tài sản không ảnh hưởng đến các tài sản khác, tăng cường an ninh và ổn định. Kiến trúc cho phép bất kỳ người dùng nào tạo và quản lý các hồ bơi cho vay và cho vay cho nhiều loại tài sản trên nhiều chuỗi khối khác nhau.

2. Cung cấp và Vay mượn

  • Cung cấp: Người dùng gửi token ERC20 vào các hồ bơi được chỉ định và nhận Non-Fungible Tokens (NFTs) đại diện cho vị trí thanh khoản duy nhất của họ. Những NFTs này lưu trữ thông tin về tài sản được cung cấp và có thể chuyển nhượng hoặc đổi lấy theo nhu cầu. Các tài sản được cung cấp kiếm lãi suất biến đổi dựa trên việc sử dụng hồ bơi và nhu cầu thị trường.
  • Vay: Để vay, người dùng phải cung cấp tiền điện tử được thế chấp quá mức. Nghị định thư thực thi các tỷ lệ tài sản thế chấp, có thể điều chỉnh thông qua quản trị. Số tiền vay tích lũy lãi suất trên mỗi khối, được xác định bởi tỷ lệ sử dụng của nhóm, đảm bảo các khoản vay vẫn được bảo đảm đầy đủ.

3. Mô hình Lãi suất

UniLend sử dụng mô hình lãi suất động dựa trên Tỷ lệ Tận dụng (U) của pool được tính toán như sau:

Ux = Vay x Vay x + Tiền mặt x

Lãi suất vay:

Lãi suất vay x = 10% + (Ux × 30%)

Tỷ lệ tăng lên khi sử dụng cao hơn để cân bằng cung cầu.

  • Lãi suất cung cấp:

Lãi suất cung cấp x = Lãi suất vay x x Ux x (1-S)

Điều này đảm bảo các nhà cung cấp thu được lợi nhuận bền vững trong khi giao thức vẫn có lợi nhuận.

Những thành phần này hoạt động cùng nhau để tạo ra một thị trường tiền tệ phi tập trung an toàn, hiệu quả và có khả năng mở rộng.

Phân tích cuộc tấn công

Vào ngày 12 tháng 1 năm 2025, một lỗ hổng bảo mật trong giao thức UniLend đã bị khai thác, dẫn đến mất mát khoảng 200.000 đô la từ UniLend Pool. Kẻ tấn công đã thao túng tính toán tài sản đảm bảo, gây ra việc đánh giá không chính xác về yếu tố sức khỏe của người dùng. Lỗi này cho phép kẻ tấn công rút 60 mã thông báo stETH mà không có sự bảo đảm đủ.

Các tài sản bị đánh cắp bao gồm 60 mã stETH, tận dụng sự tính toán sai lệch của số dư mã token người dùng trong giao thức.

Phân tích chi tiết về cuộc tấn công

1. Khởi tạo Exploit

Kẻ tấn công khai thác bằng cách sử dụng khoản vay flash để gửi một số lượng lớn USDC vào hồ bơi UniLend. Cụ thể, họ đã gửi 60 triệu USDC, làm tăng đáng kể tài sản đảm bảo của họ trong hồ bơi.

Flash loans cho phép người dùng vay một lượng lớn tài sản mà không cần thế chấp, miễn là số tiền vay được trả lại trong cùng một giao dịch.

Kẻ tấn công sử dụng cơ chế này để có được USDC cần thiết mà không cần vốn ban đầu, do đó tạo ra một vị trí được thổi phồng nhân tạo trong hồ bơi.

2. Thao tác với tính toán tài sản thế chấp

Sau khi gửi USDC, kẻ tấn công tiếp tục vay stETH. Giao thức tính toán giá trị tài sản đảm bảo của người dùng dựa trên số dư token trong hồ bơi. Tuy nhiên, do cách triển khai lỗi, số dư được tính toán bằng cách sử dụng số dư hiện tại của token trong hợp đồng hồ bơi thay vì số lượng thực sự đã được chuyển trong quá trình kiểm tra yếu tố sức khỏe. Sự không phù hợp này khiến số dư token của người dùng xuất hiện cao hơn nhiều so với thực tế, đặc biệt là trong các hồ bơi có thanh khoản lớn.

Nguồn gốc của sự thao tác này nằm ở hàm userBalanceOfToken. Trong các trường hợp nơi liêu vốn được cung cấp lớn, hàm này có thể trả về một số lendBalance cao ngay cả khi chỉ còn một số nhỏ của lend share. Sự ước lượng quá cao về số dư của người dùng đã tạo cơ hội cho kẻ tấn công cho rằng họ có nhiều tài sản đảm bảo hơn thực tế. Do đó, kẻ tấn công có thể mượn các token stETH nhiều hơn so với quyền lợi thực sự của họ dựa trên tài sản đảm bảo thực tế.

3. Đổi Thành Tài Sản Gốc

Với giá trị tài sản thế chấp bị thổi phồng, kẻ tấn công tiếp tục rút USDC và stETH của họ. Hàm redeemUnderlying được gọi, đốt LP token liên quan đến khoản tiền gửi của người dùng. Tuy nhiên, do kiểm tra yếu tố sức khỏe bị lỗi xảy ra trước khi chuyển các token, hệ thống tin tưởng rằng người dùng có đủ tài sản thế chấp để rút nhiều hơn số tiền họ được quyền. Lỗi này cho phép kẻ tấn công rút 60 mã thông báo stETH mà không duy trì tài sản thế chấp cần thiết, hiệu quả nhận được các mã thông báo này miễn phí.

Làm sao để ngăn chặn cuộc tấn công có thể xảy ra

Để ngăn chặn cuộc tấn công, UniLend nên đã sắp xếp lại các hoạt động trong hàm redeemUnderlying. Bằng cách thực hiện kiểm tra yếu tố sức khỏe sau khi chuyển token cho người dùng, giao thức sẽ đảm bảo rằng số dư token thực tế của người dùng phản ánh chính xác tình trạng tài sản đảm bảo của họ.

An ninh Blockchain không phải là tùy chọn. Bảo vệ hợp đồng thông minh và giao protocal DeFi của bạn với Three Sigma, một đối tác an ninh đáng tin cậy trong kiểm toán blockchain, đánh giá lỗ hổng hợp đồng thông minh và an ninh Web3.

Nhấp đểĐảm bảo hợp đồng thông minh của bạn được kiểm tra hôm nay

Hậu quả

Sự khai thác của UniLend đã gây thiệt hại tài chính đáng kể khoảng 200.000 đô la từ hồ bơi UniLend. Mất mát đáng kể này đã ảnh hưởng trực tiếp đến dự trữ của nền tảng và giảm tích lũy thanh khoản có sẵn cho người dùng khác, có thể gây cản trở hoạt động cho vay và vay tiếp diễn.

Phản hồi từ giao thức UniLend

Sau khi khai thác, UniLend đã thực hiện các biện pháp ngay lập tức để khắc phục lỗ hổng và đảm bảo an ninh cho người dùng của mình.

Họ thông báo một phần thưởng 20% cho bên có trách nhiệm trả lại an toàn số tiền.

Địa chỉ

Giao Dịch Tấn Công:

Địa chỉ Kẻ khai thác:

Địa chỉ UnilendV2Core:

免責聲明:

  1. Bài viết này được in lại từ [X]. All copyrights belong to the original author [@threesigmaxyz]. Nếu có ý kiến ​​phản đối về việc tái bản này, vui lòng liên hệ với Gate Learnđội ngũ, và họ sẽ xử lý nó ngay lập tức.
  2. Miễn trách nhiệm về trách nhiệm: Quan điểm và ý kiến được thể hiện trong bài viết này chỉ thuộc về tác giả và không đại diện cho bất kỳ lời khuyên đầu tư nào.
  3. Đội ngũ Gate Learn thực hiện bản dịch của bài viết sang các ngôn ngữ khác. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn các bài viết đã được dịch là không được phép.

$200K Hack của UniLend: Những điều đã sai và cách DeFi có thể làm tốt hơn

Trung cấp1/22/2025, 4:23:33 PM
UniLend đã bị khai thác do một lỗ hổng, dẫn đến việc đánh cắp khoảng 200K đô la Mỹ (4% TVL). Kẻ tấn công đã sử dụng một khoản vay flash để gửi 60 triệu USDC, thao tác tính toán tài sản đảm bảo và khai thác một lỗi hợp đồng trong quá trình kiểm tra sức khỏe để làm tăng giá trị tài sản đảm bảo, rút 60 stETH. Lỗi xuất phát từ việc thực hiện không chính xác của chức năng userBalanceOfToken. UniLend đã sửa lỗi, tạm dừng gửi tiền vào V2 và đề xuất một khoản thưởng để khôi phục các khoản tiền. Sự cố này nhấn mạnh tầm quan trọng quan trọng của an ninh đối với các nền tảng DeFi và nhu cầu kiểm tra hợp đồng thông minh kỹ lưỡng.

Giới thiệu về UniLend

@UniLend_Financelà một giao thức thị trường tiền phi tập trung không cần phép với dịch vụ cho vay và vay thông qua hợp đồng thông minh.

UniLend cho phép người dùng sử dụng tiền điện tử của họ bằng cách cung cấp tài sản thế chấp cho mạng lưới có thể được vay bằng cách đặt cược vào tài sản thế chấp có giá trị cao hơn. Điều này tạo ra một môi trường cho vay an toàn, trong đó người cho vay nhận được một tỷ lệ lãi suất hợp thành hàng năm (APY) được trả trên mỗi khối trong khi người vay trả lãi suất trên tiền điện tử đã vay.

Cách UniLend Hoạt Động

Giao thức UniLend V2 hoạt động thông qua ba thành phần kỹ thuật chính:

1. Mô hình Dual Asset Pool

UniLend sử dụng các hồ bơi tài sản cô lập đôi cho mỗi cặp ERC20/ERC20 tương thích. Thiết kế này đảm bảo rằng hiệu suất hoặc biến động của một tài sản không ảnh hưởng đến các tài sản khác, tăng cường an ninh và ổn định. Kiến trúc cho phép bất kỳ người dùng nào tạo và quản lý các hồ bơi cho vay và cho vay cho nhiều loại tài sản trên nhiều chuỗi khối khác nhau.

2. Cung cấp và Vay mượn

  • Cung cấp: Người dùng gửi token ERC20 vào các hồ bơi được chỉ định và nhận Non-Fungible Tokens (NFTs) đại diện cho vị trí thanh khoản duy nhất của họ. Những NFTs này lưu trữ thông tin về tài sản được cung cấp và có thể chuyển nhượng hoặc đổi lấy theo nhu cầu. Các tài sản được cung cấp kiếm lãi suất biến đổi dựa trên việc sử dụng hồ bơi và nhu cầu thị trường.
  • Vay: Để vay, người dùng phải cung cấp tiền điện tử được thế chấp quá mức. Nghị định thư thực thi các tỷ lệ tài sản thế chấp, có thể điều chỉnh thông qua quản trị. Số tiền vay tích lũy lãi suất trên mỗi khối, được xác định bởi tỷ lệ sử dụng của nhóm, đảm bảo các khoản vay vẫn được bảo đảm đầy đủ.

3. Mô hình Lãi suất

UniLend sử dụng mô hình lãi suất động dựa trên Tỷ lệ Tận dụng (U) của pool được tính toán như sau:

Ux = Vay x Vay x + Tiền mặt x

Lãi suất vay:

Lãi suất vay x = 10% + (Ux × 30%)

Tỷ lệ tăng lên khi sử dụng cao hơn để cân bằng cung cầu.

  • Lãi suất cung cấp:

Lãi suất cung cấp x = Lãi suất vay x x Ux x (1-S)

Điều này đảm bảo các nhà cung cấp thu được lợi nhuận bền vững trong khi giao thức vẫn có lợi nhuận.

Những thành phần này hoạt động cùng nhau để tạo ra một thị trường tiền tệ phi tập trung an toàn, hiệu quả và có khả năng mở rộng.

Phân tích cuộc tấn công

Vào ngày 12 tháng 1 năm 2025, một lỗ hổng bảo mật trong giao thức UniLend đã bị khai thác, dẫn đến mất mát khoảng 200.000 đô la từ UniLend Pool. Kẻ tấn công đã thao túng tính toán tài sản đảm bảo, gây ra việc đánh giá không chính xác về yếu tố sức khỏe của người dùng. Lỗi này cho phép kẻ tấn công rút 60 mã thông báo stETH mà không có sự bảo đảm đủ.

Các tài sản bị đánh cắp bao gồm 60 mã stETH, tận dụng sự tính toán sai lệch của số dư mã token người dùng trong giao thức.

Phân tích chi tiết về cuộc tấn công

1. Khởi tạo Exploit

Kẻ tấn công khai thác bằng cách sử dụng khoản vay flash để gửi một số lượng lớn USDC vào hồ bơi UniLend. Cụ thể, họ đã gửi 60 triệu USDC, làm tăng đáng kể tài sản đảm bảo của họ trong hồ bơi.

Flash loans cho phép người dùng vay một lượng lớn tài sản mà không cần thế chấp, miễn là số tiền vay được trả lại trong cùng một giao dịch.

Kẻ tấn công sử dụng cơ chế này để có được USDC cần thiết mà không cần vốn ban đầu, do đó tạo ra một vị trí được thổi phồng nhân tạo trong hồ bơi.

2. Thao tác với tính toán tài sản thế chấp

Sau khi gửi USDC, kẻ tấn công tiếp tục vay stETH. Giao thức tính toán giá trị tài sản đảm bảo của người dùng dựa trên số dư token trong hồ bơi. Tuy nhiên, do cách triển khai lỗi, số dư được tính toán bằng cách sử dụng số dư hiện tại của token trong hợp đồng hồ bơi thay vì số lượng thực sự đã được chuyển trong quá trình kiểm tra yếu tố sức khỏe. Sự không phù hợp này khiến số dư token của người dùng xuất hiện cao hơn nhiều so với thực tế, đặc biệt là trong các hồ bơi có thanh khoản lớn.

Nguồn gốc của sự thao tác này nằm ở hàm userBalanceOfToken. Trong các trường hợp nơi liêu vốn được cung cấp lớn, hàm này có thể trả về một số lendBalance cao ngay cả khi chỉ còn một số nhỏ của lend share. Sự ước lượng quá cao về số dư của người dùng đã tạo cơ hội cho kẻ tấn công cho rằng họ có nhiều tài sản đảm bảo hơn thực tế. Do đó, kẻ tấn công có thể mượn các token stETH nhiều hơn so với quyền lợi thực sự của họ dựa trên tài sản đảm bảo thực tế.

3. Đổi Thành Tài Sản Gốc

Với giá trị tài sản thế chấp bị thổi phồng, kẻ tấn công tiếp tục rút USDC và stETH của họ. Hàm redeemUnderlying được gọi, đốt LP token liên quan đến khoản tiền gửi của người dùng. Tuy nhiên, do kiểm tra yếu tố sức khỏe bị lỗi xảy ra trước khi chuyển các token, hệ thống tin tưởng rằng người dùng có đủ tài sản thế chấp để rút nhiều hơn số tiền họ được quyền. Lỗi này cho phép kẻ tấn công rút 60 mã thông báo stETH mà không duy trì tài sản thế chấp cần thiết, hiệu quả nhận được các mã thông báo này miễn phí.

Làm sao để ngăn chặn cuộc tấn công có thể xảy ra

Để ngăn chặn cuộc tấn công, UniLend nên đã sắp xếp lại các hoạt động trong hàm redeemUnderlying. Bằng cách thực hiện kiểm tra yếu tố sức khỏe sau khi chuyển token cho người dùng, giao thức sẽ đảm bảo rằng số dư token thực tế của người dùng phản ánh chính xác tình trạng tài sản đảm bảo của họ.

An ninh Blockchain không phải là tùy chọn. Bảo vệ hợp đồng thông minh và giao protocal DeFi của bạn với Three Sigma, một đối tác an ninh đáng tin cậy trong kiểm toán blockchain, đánh giá lỗ hổng hợp đồng thông minh và an ninh Web3.

Nhấp đểĐảm bảo hợp đồng thông minh của bạn được kiểm tra hôm nay

Hậu quả

Sự khai thác của UniLend đã gây thiệt hại tài chính đáng kể khoảng 200.000 đô la từ hồ bơi UniLend. Mất mát đáng kể này đã ảnh hưởng trực tiếp đến dự trữ của nền tảng và giảm tích lũy thanh khoản có sẵn cho người dùng khác, có thể gây cản trở hoạt động cho vay và vay tiếp diễn.

Phản hồi từ giao thức UniLend

Sau khi khai thác, UniLend đã thực hiện các biện pháp ngay lập tức để khắc phục lỗ hổng và đảm bảo an ninh cho người dùng của mình.

Họ thông báo một phần thưởng 20% cho bên có trách nhiệm trả lại an toàn số tiền.

Địa chỉ

Giao Dịch Tấn Công:

Địa chỉ Kẻ khai thác:

Địa chỉ UnilendV2Core:

免責聲明:

  1. Bài viết này được in lại từ [X]. All copyrights belong to the original author [@threesigmaxyz]. Nếu có ý kiến ​​phản đối về việc tái bản này, vui lòng liên hệ với Gate Learnđội ngũ, và họ sẽ xử lý nó ngay lập tức.
  2. Miễn trách nhiệm về trách nhiệm: Quan điểm và ý kiến được thể hiện trong bài viết này chỉ thuộc về tác giả và không đại diện cho bất kỳ lời khuyên đầu tư nào.
  3. Đội ngũ Gate Learn thực hiện bản dịch của bài viết sang các ngôn ngữ khác. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn các bài viết đã được dịch là không được phép.
Bắt đầu giao dịch
Đăng ký và giao dịch để nhận phần thưởng USDTEST trị giá
$100
$5500