Cointime

Download App
iOS & Android

Phân tích các cuộc tấn công cho vay trên nền tảng cho vay phi tập trung HopeLend

Validated Project

Vào lúc 19:48:59 ngày 18 tháng 10 năm 2023, giờ Bắc Kinh, nhóm cho vay của Hope.money đã bị tấn công do thực hiện các khoản vay nhanh.

Hope.money đã xây dựng nền tảng cho vay HopeLend, sàn giao dịch phi tập trung HopeSwap, đồng tiền ổn định $HOPE và mã thông báo quản trị $LT để cung cấp cho người dùng các dịch vụ tài chính phi tập trung toàn diện.

Giao thức liên quan đến cuộc tấn công này là HopeLend, một nền tảng cho vay phi tập trung nơi người dùng có thể cung cấp thanh khoản cho giao thức hoặc kiếm thu nhập từ các khoản vay có tài sản thế chấp quá mức.

Toàn bộ câu chuyện

Trong quá trình triển khai mã của HopeLend, có một lỗ hổng có thể khai thác trong Lending Pool, khi hủy chứng chỉ tiền gửi xảy ra sự cố chia số nguyên không chính xác khiến phần dấu thập phân bị cắt bớt dẫn đến số lượng chứng chỉ bị hủy ít hơn so với được mong đợi. Đã đạt được và mong đợi Mã thông báo có giá trị nhất quán.

Kẻ tấn công đã khai thác lỗ hổng này để rút cạn các nhóm cho vay khác nhau nơi có tiền trên Hope.money.

Trong số đó, nhóm cho vay hEthWbtc đã được triển khai cách đây 73 ngày nhưng không có tiền trong đó, do đó, hacker đã bơm một lượng lớn tiền vào nhóm cho vay để tăng mạnh tỷ lệ chiết khấu, qua đó nhanh chóng tiêu hết tất cả các khoản vay khác trong đó. một giao dịch khối.Góp vốn.

Điều kịch tính hơn nữa là hacker khai thác lỗ hổng đã không nhận được tiền để khai thác lỗ hổng, giao dịch tấn công của anh ta đã bị người chạy trước phát hiện. Kẻ chạy trước đã bắt chước hành vi tấn công của anh ta và đánh cắp thành công toàn bộ số tiền thu được từ cuộc tấn công (527 ETH). Cuối cùng, 50% số tiền thu được từ cuộc tấn công (263 ETH) đã được những người đi trước sử dụng để hối lộ những người khai thác đã đóng gói các khối (tải trọng).

Tin tặc ban đầu phát hiện ra lỗ hổng đã tạo một hợp đồng tấn công ở khối 18377039 và gọi hợp đồng tấn công đó ở khối 18377042. Tại thời điểm này, kẻ chạy trước đã giám sát các giao dịch trong nhóm bộ nhớ và mô phỏng hợp đồng tấn công với tư cách là kẻ chạy trước. Đầu vào của hợp đồng đang chạy đã bị khai thác trong cùng khối 18377042 và giao dịch ban đầu của hacker trong khối 18377042 không thể thực hiện được vì nó được sắp xếp theo thứ tự phía sau giao dịch chạy trước.

Tiền đi đâu

Một giờ sau khi người dẫn đầu nhận được tiền lãi, anh ta đã chuyển tiền đến: 0x9a9122Ef3C4B33cAe7902EDFCD5F5a486792Bc3A

Tiền đi đâu

Một giờ sau khi người dẫn đầu nhận được tiền lãi, anh ta đã chuyển tiền đến: 0x9a9122Ef3C4B33cAe7902EDFCD5F5a486792Bc3A

Vào lúc 13:30:23 ngày 20 tháng 10, nhóm chính thức bị nghi ngờ đã liên hệ với địa chỉ, cho phép người dẫn đầu để lại 26 ETH (lợi nhuận 10%) làm phần thưởng và nhận được phản hồi từ người dẫn đầu.

Số tiền cuối cùng đã được chuyển đến kho tiền đa chữ ký của GnosisSafe sau một giờ liên lạc.

Dưới đây chúng tôi trình bày lỗ hổng thực tế và chi tiết về cách tin tặc khai thác nó.

thông tin trước

*Việc triển khai giao thức cho vay của HopeLend được phân nhánh từ Aave, do đó, logic kinh doanh cốt lõi liên quan đến các lỗ hổng bảo mật có thể được tìm thấy trong sách trắng của Aave.

Tiền gửi và cho vay 0x00

Aave là một DeFi thuần túy. Hoạt động kinh doanh cho vay được thực hiện thông qua nhóm thanh khoản. Khi người dùng gửi thanh khoản vào Aave, họ mong đợi nhận được thu nhập từ việc cho vay.

Số tiền cho vay sẽ không được phân phối đầy đủ cho người dùng. Một phần nhỏ thu nhập lãi sẽ được đưa vào dự phòng rủi ro. Tỷ lệ này nhỏ và phần lớn số tiền cho vay sẽ được phân phối cho người dùng cung cấp thanh khoản.

Khi cho vay tiền gửi tại Aave, Aave sử dụng chiết khấu để chuyển đổi số tiền gửi tại các thời điểm khác nhau thành số tiền gửi tại thời điểm ban đầu của nhóm thanh khoản. Do đó, tổng tiền gốc và lãi tương ứng với tài sản cơ bản cho mỗi khoản tiền gửi số lượng cổ phiếu có thể được trực tiếp. Nó được tính bằng cách sử dụng số lượng (cổ phiếu) * chỉ số (tỷ lệ chiết khấu), điều này tạo điều kiện thuận lợi rất nhiều cho việc tính toán và hiểu biết.

Nó có thể được hiểu là một quá trình tương tự như mua một quỹ. Giá trị ròng ban đầu của quỹ là 1. Người dùng đầu tư 100 nhân dân tệ để có được 100 cổ phiếu. Giả sử rằng sau một khoảng thời gian, giá trị ròng sẽ trở thành 1,03. Tại thời điểm này , người dùng lại đầu tư 100 nhân dân tệ và nhận được 100 cổ phiếu, là 97 và tổng số cổ phần của người dùng là 197.

Đây thực chất là chiết khấu tài sản theo chỉ số (giá trị ròng). Lý do tại sao điều này được thực hiện là vì tổng tiền gốc và lãi thực tế của người dùng được nhân với chỉ số hiện tại bằng cách sử dụng số dư. Khi gửi tiền lần thứ hai, số tiền gốc và lãi chính xác của người dùng phải là 100 * 1,03 + 100 = 203. Nếu quá trình xử lý chiết khấu không được thực hiện, số tiền gốc và lãi sau khi người dùng gửi 100 lần thứ hai sẽ trở thành (100 +100) * 1,03 = 206, sai. Nếu thực hiện chiết khấu, tổng tiền gốc và lãi sẽ trở thành (100 + 100 / 1,03) * 1,03 = 103 + 100 = 203. Kết quả 203 là đúng.

Quá trình tấn công

0x25126......403907(nhóm hETHWBTC)

Quá trình tấn công

0x25126......403907(nhóm hETHWBTC)

0x5a63e......844e74 (tấn công rút tiền)

kẻ tấn công:

1. Cho vay vốn chớp nhoáng ban đầu và cầm cố chúng

Kẻ tấn công lần đầu tiên vay 2300WBTC từ Aave Flash Loan và thế chấp 2000 WBTC cho HopeLend. Số tiền này sẽ được chuyển vào hợp đồng hEthWbtc của HopeLend (0x251...907) và sẽ nhận được 2000 hETHWBTC tương ứng.

2. Sử dụng nhóm cho vay trống để thao túng tỷ lệ chiết khấu ban đầu (LiquidityIndex)

Vay 2.000 WBTC thông qua khoản vay nhanh từ HopeLend.

Giá trị hiện tại là 1 hETHWBTC = 1 WBTC.

Theo hoạt động thông thường là gửi và rút ETHWBTC để đổi lấy WBTC, tỷ lệ quy đổi sẽ không bị ảnh hưởng (tỷ lệ quy đổi sẽ chỉ bị ảnh hưởng khi kiếm được tiền lãi và 1 hETHWBTC sẽ nhận được nhiều WBTC hơn).

Lúc này, hacker bắt đầu thao túng tỷ lệ chiết khấu thông qua một loạt các thao tác phức tạp:

• Hacker đã chuyển trực tiếp 2.000 WBTC có được sang hợp đồng hEthWbtc của HopeLend (0x251…907) thông qua chuyển khoản trực tiếp. Bước này không phải là trả nợ.

• Sau đó, hacker đã rút phần lớn số WBTC (1999.999…) đã cam kết ở bước 1 nên bước trước yêu cầu chuyển WBTC trở lại để bổ sung tài sản trong pool.

• Cuối cùng hacker chỉ giữ lại đơn vị nhỏ nhất (1e-8) của hEthWbtc, không thể đề cập hết ở đây vì cần để lại một ít, khi tính tỷ lệ chiết khấu (liquidityIndex) sẽ dựa trên cái hiện có cộng với cái mới. , nếu bị xóa, tỷ lệ chiết khấu (chỉ số thanh khoản) sẽ trở thành 0 và tỷ lệ trong nhóm không thể bị mất cân bằng.

• Sử dụng wBTC đã trao đổi để tiêu hủy hầu hết hEthWbtc ở bước trước, cộng với số wBTC còn lại từ khoản vay nhanh trước đó và trả lại khoản vay nhanh đã cho vay vào nhóm HopeLend, trả tổng cộng 2001,8 WBTC (bao gồm 1,8 wBTC lãi suất).

• Quá trình trên sẽ phá hủy hầu hết hEthWbtc, chỉ để lại 1 đơn vị tối thiểu (1e-8) hEthWbtc trong tài khoản hacker. Điều này làm giảm tổng số hETHWBTC, nhưng có 2001,8 wBTC trong nhóm cho vay. tỷ lệ (chỉ số thanh khoản) đạt mức đáng kinh ngạc là 126.000.000.

Điều này liên quan đến hiểu biết rằng lợi ích của người sử dụng tiền gửi về cơ bản đến từ sự tăng trưởng của tính thanh khoản trong nhóm. Nhóm cho vay sẽ linh hoạt điều chỉnh lãi suất vay và lãi suất tiền gửi dựa trên lãi suất tiền gửi và tỷ lệ sử dụng.

Tại đây, khi nhóm nhận được thanh khoản bổ sung từ lãi suất cho vay nhanh (1,8WBTC), bảy mươi phần trăm (126.000.000) được bao gồm trong Chỉ số thanh khoản (chỉ số thanh khoản), được sử dụng để tính giá trị chiết khấu trên mỗi đơn vị tiền gửi (hEthWbt).

Vì nhóm trống trước hoạt động của hacker nên tổng Thanh khoản sau khi hoàn trả chỉ là 1, số tiền là 126000000 và chỉ số thanh khoản ban đầu là 1, kết quả là 126000001.

3. Tiếp tục mở rộng tỷ lệ chiết khấu

Hacker tiếp tục vay 2.000 WBTC từ HopeLend thông qua các khoản vay nhanh và trả lại thêm 1,8 WBTC mỗi lần, khiến Chỉ số thanh khoản tích lũy 126.000.000 mỗi lần.

Tin tặc lặp lại quá trình này 60 lần và cuối cùng chỉ số thanh khoản đạt 7.560.000.001. Giá trị chiết khấu của 1 đơn vị hEthWBTC tối thiểu mà kẻ tấn công nắm giữ có thể đạt tới 75,6WBTC (khoảng 2,14 triệu USD).

Điều này cũng cho phép tin tặc kiểm soát hEthWBTC và bóp méo giá trị của nó.

4. Làm trống nhóm cho vay của các quỹ hiện có khác và tạo thu nhập

Kẻ tấn công sau đó đã sử dụng 1 đơn vị hEthWBTC tối thiểu làm tài sản thế chấp để cho vay một lượng lớn tài sản từ năm nhóm token khác của HopeLend.

bao gồm:

  • 175.4 - WETH
  • 145.522.220985 - USDT
  • 123.406.134999 - USDC
  • 844.282.284002229528476039 - HOPE
  • 220.617.821736563540747967 - stHOPE

Các token này đã được chuyển đổi thành WBTC và WETH thông qua Uniswap dưới dạng doanh thu. Sau khi trừ các khoản phí khác nhau, lợi nhuận cuối cùng của hacker là khoảng 263 WETH (không bao gồm 263,9 WETH trong tải trọng hối lộ).

Tại sao tin tặc có thể vay số tiền lớn từ các nhóm khác:

Khi vay tiền hoặc rút tiền đặt cọc, hợp đồng cho vay sẽ kiểm tra tình trạng tài sản thế chấp của người dùng để đảm bảo khoản vay không vượt quá mức thế chấp.

Do tỷ lệ chiết khấu đã bị tin tặc thao túng trước đó và tỷ lệ chiết khấu sẽ được đưa vào tính toán giá trị thế chấp bằng cách sử dụng hệ số thu nhập chuẩn hóa, nên giá trị thế chấp của một đơn vị hEthWBTC trong tay anh ta cao tới 75,6WBTC.

Mỗi lần vay tiền từ các nhóm khác, hacker đều dễ dàng vượt qua quá trình xác minh tài sản thế chấp.

Tại thời điểm này, kẻ tấn công đã đầu tư tổng cộng 2000+1,8*60 WBTC vào HopeLend để thao túng chỉ số thanh khoản, chỉ để lại 1 đơn vị hEtthWBTC.

5. Khai thác các điểm dễ bị tổn thương chính (lỗi chia số nguyên) để rút tiền

Để rút wBTC đã đầu tư trước đó, kẻ tấn công đã triển khai một hợp đồng tấn công khác: 0x5a63e......844e74 và gọi phương thức drawAllBtc() trong đó

Quá trình dễ bị tổn thương như sau:

① Khoản tiền gửi đầu tiên 151,20000002 wBTC. Theo chỉ số thanh khoản hiện tại (1 đơn vị tối thiểu hEthWBTC=75,6wBTC), kẻ tấn công nhận được 2 đơn vị hEthWBTC tối thiểu.

② Rút 113,4 wBTC, tính lại phần hEthWBTC tương ứng của nó và thực hiện thao tác ghi trên hEthWBTC.

③ 113.4 wBTC yêu cầu phá hủy 1.9999999998 đơn vị tối thiểu của hEthWBTC. Tuy nhiên, do tính chính xác của hàm div nên chỉ một đơn vị tối thiểu của hEthWBTC bị phá hủy, do đó trở thành lỗ hổng có thể khai thác được. Hacker vẫn có thể giữ lại 1 đơn vị tối thiểu của hEthWBTC.

lỗ hổng nghiêm trọng

Phương pháp ghi của hEthWBTC gọi phép chia có độ chính xác cao là rayDiv.

Đây:

a=11340000000 (WBTC dự định rút)

b=75600000010000000000000000009655610336 (tỷ lệ chiết khấu)

Mặc dù (a*1e27+b/2)/b = 1.9999999998, phương thức div riêng của Solidity cắt ngắn và trả về 1, tương đương với 11340000000 / 7560000001. Các vị trí thập phân bị cắt bớt sau khi chia.

Mặc dù (a*1e27+b/2)/b = 1.9999999998, phương thức div riêng của Solidity cắt ngắn và trả về 1, tương đương với 11340000000 / 7560000001. Các vị trí thập phân bị cắt bớt sau khi chia.

0x5a63 (hợp đồng tấn công - rút tiền) tiếp tục gửi 75.60000001WBTC và thu được đúng 1 đơn vị hEthWBTC tối thiểu, do đó tiếp tục nắm giữ 2 đơn vị hEthWBTC tối thiểu.

Trong chu kỳ rút 113,40000000wBTC và gửi 75,60000001wBTC này, kẻ tấn công có thể lấy được 37,8 wBTC một cách bất ngờ mỗi lần.

Sau 58 chu kỳ, kẻ tấn công đã rút toàn bộ wBTC đã đầu tư ở giai đoạn đầu và trả lại thành công khoản vay nhanh của Aave.

Tóm lại là

Vì nhóm cho vay hEthWBTC chưa được khởi tạo nên kẻ tấn công có thể dễ dàng thao túng Chỉ số thanh khoản và tăng nó lên mức tối đa. Sau khi tốc độ rút tiền được khuếch đại lên rất nhiều dưới dạng số chia, do lỗi cắt ngắn của phép chia số nguyên nên việc rút tiền sẽ dễ dàng hơn khoản đầu tư trước đó vào một khối. .

Trong một nhóm cho vay hoạt động tốt, không dễ để một sự gia tăng nhỏ trong lãi suất cho vay có thể làm tăng đáng kể tỷ lệ chiết khấu vì đã có tính thanh khoản trong nhóm.

Các bình luận

Tất cả bình luận

Recommended for you

  • BTC vượt mốc 66.000 đô la

    Dữ liệu thị trường cho thấy BTC đã vượt qua mốc 66.000 đô la và hiện đang giao dịch ở mức 66.006,95 đô la, giảm 7,87% trong 24 giờ. Thị trường đang biến động mạnh, vui lòng quản lý rủi ro của bạn cho phù hợp.

  • Khách mời đặc biệt | Giáo sư Li Hui sẽ tham dự tiệc hậu sự kiện Web3 Night tại Hồng Kông vào ngày 9 tháng 2.

    Theo Cointime, Giáo sư Li Hui, Giáo sư danh dự của Trường Cao học Đại học Bắc Kinh tại Thâm Quyến và Giám đốc Trung tâm Đổi mới Tương lai Đại học Bắc Kinh về Cơ sở hạ tầng Khoa học và Công nghệ Trọng điểm Quốc gia, đã xác nhận sẽ tham dự buổi tiệc sau sự kiện "Đầu tư, Quan sát, Dự đoán và Đổi mới" của Web3 Night tại Hồng Kông vào ngày 9 tháng 2.

  • Người sáng lập Cardano: Hơn 3 tỷ đô la đã bị mất trong không gian tiền điện tử.

    Vào ngày 6 tháng 2, người sáng lập Cardano, Charles Hoskinson, tiết lộ trong một buổi phát trực tiếp rằng mặc dù đã mất hơn 3 tỷ đô la trong không gian tiền điện tử, ông vẫn chọn ở lại trong ngành này thay vì bỏ cuộc. Đáp lại những lời đồn đoán rằng ông "đủ giàu để chịu được thua lỗ", ông tuyên bố: "Nếu các bạn nghĩ tôi tham gia lĩnh vực này vì tiền, các bạn đã nhầm to rồi - ngay cả khi tôi mất hết, tôi cũng sẽ không dừng lại."

  • Binance: Những người sở hữu ít nhất 240 điểm Alpha có thể nhận được phần thưởng airdrop Binance Alpha vào lúc 17:00 hôm nay.

    Binance Wallet thông báo sẽ phát airdrop Binance Alpha vào lúc 17:00 (UTC) hôm nay. Người dùng cần tích lũy đủ 240 điểm Alpha. Việc phân phối sẽ được thực hiện theo nguyên tắc ai đến trước được trước cho đến khi hết điểm trong pool hoặc sự kiện airdrop kết thúc. Thông tin chi tiết hơn sẽ được công bố sớm.

  • Công ty Sapiom, chuyên về cơ sở hạ tầng tác nhân AI, đã huy động được 15,75 triệu đô la vốn đầu tư, dẫn đầu bởi Accel.

    Công ty cung cấp cơ sở hạ tầng cho các tác nhân AI, Sapiom, đã huy động được 15,75 triệu đô la Mỹ tiền đầu tư, dẫn đầu bởi Accel, cùng với sự tham gia của Gradient, Array Ventures, Okta Ventures, Menlo Ventures, Anthropic, Coinbase Ventures, Formus Capital và Operator Collective. Sapiom cung cấp quyền truy cập kinh tế API đáng tin cậy cho các tác nhân AI.

  • Bộ trưởng Tài chính Hoa Kỳ Bessenter: Ngành ngân hàng và tiền điện tử cuối cùng có thể sẽ cho ra mắt các sản phẩm tương tự.

    Bộ trưởng Tài chính Hoa Kỳ Scott Bessant cho biết trước Quốc hội rằng các sản phẩm và dịch vụ tài chính ngân hàng truyền thống và tiền điện tử có thể sẽ tích hợp sâu rộng hơn trong tương lai. Trong phiên điều trần của Ủy ban Ngân hàng Thượng viện hôm thứ Năm, Thượng nghị sĩ đảng Cộng hòa Cynthia Loomis đã hỏi ông Bessant liệu các ngân hàng truyền thống và lĩnh vực tiền điện tử có thể ra mắt các sản phẩm tài chính tương tự trong tương lai hay không. Ông Bessant trả lời: "Tôi tin rằng, nếu có thời gian, tầm nhìn này sẽ trở thành hiện thực. Trên thực tế, chúng tôi đang làm việc với các ngân hàng nhỏ và ngân hàng cộng đồng để tìm hiểu các con đường khả thi cho sự tham gia của họ vào cuộc cách mạng tài sản kỹ thuật số này." Ông Bessant nhấn mạnh rằng nếu không có các quy định rõ ràng, sự phát triển trong ngành công nghiệp tiền điện tử là "bất khả thi", và kêu gọi ngành công nghiệp ủng hộ Đạo luật CLARITY, một đạo luật liên quan đến cấu trúc thị trường tiền điện tử hiện đang được Quốc hội xem xét. Ông tuyên bố: "Chúng ta phải thúc đẩy việc ban hành Đạo luật CLARITY. Bất kỳ người tham gia thị trường nào phản đối đạo luật này đều có thể chuyển đến El Salvador." Ông Bessant nói thêm: "Chúng ta cần đưa ra các nguyên tắc hoạt động an toàn, mạnh mẽ và thận trọng cùng các hệ thống quản lý từ chính phủ Hoa Kỳ cho ngành công nghiệp tiền điện tử, đồng thời vẫn bảo vệ được sự tự do đổi mới của chính ngành này. Tôi tin rằng tất cả các bên hiện đang nỗ lực tìm kiếm sự cân bằng giữa hai điều này."

  • Tin vắn từ Cointime | Christy: RWA đang định hình lại cấu trúc đầu tư tài sản của mình để cho phép các nhà đầu tư thông thường tham gia vào việc phân bổ tài sản cốt lõi.

    Tại sự kiện Space này, Christy, Giám đốc điều hành của ThamesBridge và Phó Tổng thư ký của Hiệp hội Hệ sinh thái Quốc tế RWA, đã chia sẻ những hiểu biết của mình về tác động của RWA đối với cấu trúc thị trường đầu tư. Bà nhấn mạnh:

  • Tin tức nhanh của Cointime | Hakan: Chuỗi công khai RWA phải đạt được "sự phù hợp về độ tin cậy trên chuỗi với thế giới thực"

    Trong buổi thảo luận về không gian, CEO của Soly Chain, ông Hakan, đã chia sẻ những hiểu biết quan trọng về logic thiết kế của cơ sở hạ tầng RWA và kiến ​​trúc tuân thủ nền tảng của nó. Ông cho biết:

  • Tin vắn Cointime | Wang Ping: Bức tranh tài chính toàn cầu đang bước vào "kỷ nguyên mới của tài chính kỹ thuật số", và Hồng Kông sẽ trở thành một trung tâm quan trọng.

    Trong sự kiện đặc biệt của Space với chủ đề "Kiến tạo kỷ nguyên mới của tài chính kỹ thuật số toàn cầu và đưa Hồng Kông trở thành trung tâm tài chính tầm cao mới", do Cointime, ITA, Liên đoàn Quốc tế Hệ sinh thái RWA và Soly Chain đồng tổ chức, ông Wang Ping, Chủ tịch điều hành kiêm Tổng giám đốc Liên đoàn Quốc tế Hệ sinh thái RWA, đã chia sẻ quan điểm hệ thống của mình về việc tái cấu trúc bối cảnh tài chính toàn cầu và con đường phát triển của hệ sinh thái RWA. Ông chỉ ra rằng:

  • Chỉ còn 3 ngày nữa là đến Hội nghị thượng đỉnh toàn cầu RWA lần đầu tiên, ITA 2026

    Tin tức ngày 6 tháng 2: Để khám phá các xu hướng tiên tiến trong lĩnh vực Tài sản Thế giới Thực (RWA) và xây dựng một nền tảng trao đổi và hợp tác cấp cao liên quan đến chính phủ, kinh tế, công nghiệp, học thuật và nghiên cứu, Tạp chí Bauhinia, cùng với Liên đoàn Quốc tế Hệ sinh thái RWA, Công ty TNHH Công nghệ Triangle (Hồng Kông), Tập đoàn WebX Global Digital Holdings, Coin Found và các công ty khác, sẽ tổ chức "Hội nghị thượng đỉnh toàn cầu RWA lần thứ nhất ITA 2026" tại Hồng Kông vào ngày 9 tháng 2, chỉ còn 3 ngày nữa là đến sự kiện.