$200K UniLend Hack: Що пішло не так і як DeFi може зробити краще

Середній1/22/2025, 4:23:33 PM
UniLend був експлуатований через вразливість, що призвело до крадіжки приблизно 200 тис. доларів (4% від TVL). Атакувальник використовував швидкий кредит для внесення 60 мільйонів USDC, маніпулював розрахунками застави та використовував помилку контракту в процесі перевірки стану, щоб завищити вартість застави, вивівши 60 stETH. Недолік виник внаслідок несправної реалізації функції userBalanceOfToken. UniLend вже виправив проблему, призупинив внески V2 та запропонував винагороду за відновлення коштів. Цей інцидент підкреслює критичне значення безпеки для платформ DeFi та потребу у ретельних перевірках смарт-контрактів.

Вступ до UniLend

@UniLend_Finance- це бездозвільний децентралізований протокол грошового ринку з послугами кредитування та позик відомі через розумні контракти.

UniLend дозволяє користувачам використовувати свої криптовалюти, надаючи заставу мережі, яку можна позичити, заставляючи переколатералізовані криптовалюти. Це створює безпечне кредитне середовище, де кредитор отримує складений щорічний процентний курс (APY), що сплачується за блок, тоді як позичальник сплачує відсотки за позиченими криптовалютами.

Як працює UniLend

Протокол UniLend V2 працює через три основні технічні компоненти:

1. Модель двохактивних пулів

UniLend використовує ізольовані подвійні пули активів для кожної пари ERC20/ERC20-сумісних активів. Цей дизайн гарантує, що продуктивність або волатильність одного активу не впливає на інші, підвищуючи безпеку та стабільність. Архітектура дозволяє будь-якому користувачеві створювати та управляти пулами позик та позиковими пулами для широкого спектру активів на різних блокчейнах.

2. Постачання та позичання

  • Постачання: Користувачі вносять ERC20-токени до відповідних пулів та отримують Необмінні Токени (NFT), які представляють їх унікальні позиції ліквідності. Ці NFT зберігають деталі про постачані активи та можуть бути передані або викуплені за потребою. Постачані активи отримують змінний відсоток відповідно до використання пулу та попиту на ринку.
  • Позичання: Для отримання позики користувачі повинні надати перевикористані криптовалюти. Протокол забезпечує відношення забезпеченості, які можна налаштувати через управління. Виборговані суми нараховують відсотки за кожний блок, які визначаються використанням пулу, що забезпечує відповідну безпеку позик.

3. Модель процентної ставки

UniLend використовує модель динамічної відсоткової ставки, засновану на коефіцієнті використання пулу (U), який розраховується як:

Ux=ПозикаxПозикаx+Готівкаx

Ставка позичання:

Відсоткова ставка за позикою x=10%+(Ux×30%)

Ставки зростають зі збільшенням використання для збалансування подання та попиту.

  • Процентна ставка забезпечення:

Ставка поставкиx=Ставка позикx×Ux×(1−S)

Це забезпечує постачальникам стійкий прибуток, поки протокол залишається прибутковим.

Ці компоненти співпрацюють між собою, щоб створити безпечний, ефективний та масштабований децентралізований грошовий ринок.

Аналіз атаки

12 січня 2025 року була використана вразливість безпеки в протоколі UniLend, що призвело до втрати приблизно 200 000 доларів зі страхового фонду UniLend. Атакувальник маніпулював розрахунками застави, які неправильно оцінювали фактор здоров'я користувача. Цей недолік дозволив атакувальникові вивести 60 токенів stETH без належної застави.

Украдені активи включали 60 токенів stETH, використовуючи помилкове розрахунок балансу токенів користувача протоколу.

Детальний розбір атаки

1. Ініціалізація використання

Атакувальник ініціював використання вразливості, використовуючи швидкий кредит для внесення великої суми USDC в басейн UniLend. Зокрема, вони внесли 60 мільйонів USDC, значно завищивши свій забезпечення в басейні.

Флеш-кредити дозволяють користувачам брати великі суми активів без застави, за умови, що позичена сума повертається протягом тієї ж транзакції.

Атакувальник скористався цим механізмом, щоб отримати необхідні USDC без передоплати капіталу, тим самим створивши штучно завищену позицію в басейні.

2. Маніпуляція розрахунками застави

Після внесення USDC зловмисник продовжив позичати токени stETH. Протокол розраховує вартість застави користувача на підставі балансу їх токенів у басейні. Проте через недолік у реалізації баланс розраховувався на основі поточного балансу токенів у контракті басейну, а не фактичної суми, яка була переказана під час перевірки фактору здоров'я. Це неузгодженість означала, що баланс токенів користувача здавався значно вищим, ніж він насправді був, особливо в басейнах з великою ліквідністю.

Корінь цієї маніпуляції полягає у функції userBalanceOfToken. У сценаріях, де пул має значний ліквідний запас, ця функція може повертати високий lendBalance, навіть коли залишилася лише невелика позика. Це переоцінювання балансу користувача надавало зловмиснику уявлення про більш значну заставу, ніж він фактично мав. В результаті зловмисник міг запозичувати токени stETH понад своє законне право на основі його фактичної застави.

3. Погашення базових активів

З завищеною вартістю застави нападник продовжив викупити свої USDC та stETH. Була викликана функція redeemUnderlying, яка спалювала токени LP, пов'язані з депозитом користувача. Однак через недолік перевірки фактору здоров'я, що відбувається перед передачею токенів, система вважала, що у користувача є достатньо застави, щоб зняти більше, ніж йому належить. Цей недолік дозволив нападнику зняти 60 токенів stETH без збереження необхідної застави, ефективно отримавши ці токени безкоштовно.

Як можна було запобігти атакі

Щоб запобігти атакі, UniLend повинен був перепорядкувати операції у функції redeemUnderlying. Виконуючи перевірку фактора здоров'я після передачі токенів користувачеві, протокол гарантує, що фактичний баланс токенів користувача відображає їхній статус застави.

Безпека блокчейну не є вибірковою. Захистіть свої розумні контракти та протоколи DeFi за допомогою Three Sigma, надійного партнера з безпеки в області блокчейну, аудиту блокчейну, оцінки вразливостей розумних контрактів та безпеки Web3.

Натисніть дляОтримайте сьогодні свій аудит розумного контракту.

Наслідки

Експлуатація UniLend призвела до значних фінансових втрат, приблизно 200 000 доларів США з пулу UniLend. Ці значні втрати безпосередньо вплинули на резерви платформи та зменшили доступну ліквідність для інших користувачів, що потенційно може нашкодити наданню позик та позичанню.

Відповідь протоколу UniLend

Після експлойту UniLend вжила негайних заходів для усунення вразливості та заспокоїла свою базу користувачів.

Вони оголосили 20% винагороду відповідальній стороні за безпечне повернення коштів.

Адреси

Атака транзакції:

Адреса експлуататора:

Адреса UnilendV2Core:

Disclaimer:

  1. Ця стаття передрукована з []. Усі авторські права належать оригінальному автору [@threesigmaxyz]. Якщо є заперечення до цього перевидання, будь ласка, зв'яжіться з Ворота Навчитисякоманда і вони оперативно цим займуться.
  2. Відмова відповідальності за зобов'язання: Погляди і думки, висловлені в цій статті, є виключно авторськими і не становлять жодної інвестиційної поради.
  3. Команда Gate Learn робить переклад статті на інші мови. Якщо не зазначено, копіювання, розповсюдження або плагіат перекладених статей заборонено.

$200K UniLend Hack: Що пішло не так і як DeFi може зробити краще

Середній1/22/2025, 4:23:33 PM
UniLend був експлуатований через вразливість, що призвело до крадіжки приблизно 200 тис. доларів (4% від TVL). Атакувальник використовував швидкий кредит для внесення 60 мільйонів USDC, маніпулював розрахунками застави та використовував помилку контракту в процесі перевірки стану, щоб завищити вартість застави, вивівши 60 stETH. Недолік виник внаслідок несправної реалізації функції userBalanceOfToken. UniLend вже виправив проблему, призупинив внески V2 та запропонував винагороду за відновлення коштів. Цей інцидент підкреслює критичне значення безпеки для платформ DeFi та потребу у ретельних перевірках смарт-контрактів.

Вступ до UniLend

@UniLend_Finance- це бездозвільний децентралізований протокол грошового ринку з послугами кредитування та позик відомі через розумні контракти.

UniLend дозволяє користувачам використовувати свої криптовалюти, надаючи заставу мережі, яку можна позичити, заставляючи переколатералізовані криптовалюти. Це створює безпечне кредитне середовище, де кредитор отримує складений щорічний процентний курс (APY), що сплачується за блок, тоді як позичальник сплачує відсотки за позиченими криптовалютами.

Як працює UniLend

Протокол UniLend V2 працює через три основні технічні компоненти:

1. Модель двохактивних пулів

UniLend використовує ізольовані подвійні пули активів для кожної пари ERC20/ERC20-сумісних активів. Цей дизайн гарантує, що продуктивність або волатильність одного активу не впливає на інші, підвищуючи безпеку та стабільність. Архітектура дозволяє будь-якому користувачеві створювати та управляти пулами позик та позиковими пулами для широкого спектру активів на різних блокчейнах.

2. Постачання та позичання

  • Постачання: Користувачі вносять ERC20-токени до відповідних пулів та отримують Необмінні Токени (NFT), які представляють їх унікальні позиції ліквідності. Ці NFT зберігають деталі про постачані активи та можуть бути передані або викуплені за потребою. Постачані активи отримують змінний відсоток відповідно до використання пулу та попиту на ринку.
  • Позичання: Для отримання позики користувачі повинні надати перевикористані криптовалюти. Протокол забезпечує відношення забезпеченості, які можна налаштувати через управління. Виборговані суми нараховують відсотки за кожний блок, які визначаються використанням пулу, що забезпечує відповідну безпеку позик.

3. Модель процентної ставки

UniLend використовує модель динамічної відсоткової ставки, засновану на коефіцієнті використання пулу (U), який розраховується як:

Ux=ПозикаxПозикаx+Готівкаx

Ставка позичання:

Відсоткова ставка за позикою x=10%+(Ux×30%)

Ставки зростають зі збільшенням використання для збалансування подання та попиту.

  • Процентна ставка забезпечення:

Ставка поставкиx=Ставка позикx×Ux×(1−S)

Це забезпечує постачальникам стійкий прибуток, поки протокол залишається прибутковим.

Ці компоненти співпрацюють між собою, щоб створити безпечний, ефективний та масштабований децентралізований грошовий ринок.

Аналіз атаки

12 січня 2025 року була використана вразливість безпеки в протоколі UniLend, що призвело до втрати приблизно 200 000 доларів зі страхового фонду UniLend. Атакувальник маніпулював розрахунками застави, які неправильно оцінювали фактор здоров'я користувача. Цей недолік дозволив атакувальникові вивести 60 токенів stETH без належної застави.

Украдені активи включали 60 токенів stETH, використовуючи помилкове розрахунок балансу токенів користувача протоколу.

Детальний розбір атаки

1. Ініціалізація використання

Атакувальник ініціював використання вразливості, використовуючи швидкий кредит для внесення великої суми USDC в басейн UniLend. Зокрема, вони внесли 60 мільйонів USDC, значно завищивши свій забезпечення в басейні.

Флеш-кредити дозволяють користувачам брати великі суми активів без застави, за умови, що позичена сума повертається протягом тієї ж транзакції.

Атакувальник скористався цим механізмом, щоб отримати необхідні USDC без передоплати капіталу, тим самим створивши штучно завищену позицію в басейні.

2. Маніпуляція розрахунками застави

Після внесення USDC зловмисник продовжив позичати токени stETH. Протокол розраховує вартість застави користувача на підставі балансу їх токенів у басейні. Проте через недолік у реалізації баланс розраховувався на основі поточного балансу токенів у контракті басейну, а не фактичної суми, яка була переказана під час перевірки фактору здоров'я. Це неузгодженість означала, що баланс токенів користувача здавався значно вищим, ніж він насправді був, особливо в басейнах з великою ліквідністю.

Корінь цієї маніпуляції полягає у функції userBalanceOfToken. У сценаріях, де пул має значний ліквідний запас, ця функція може повертати високий lendBalance, навіть коли залишилася лише невелика позика. Це переоцінювання балансу користувача надавало зловмиснику уявлення про більш значну заставу, ніж він фактично мав. В результаті зловмисник міг запозичувати токени stETH понад своє законне право на основі його фактичної застави.

3. Погашення базових активів

З завищеною вартістю застави нападник продовжив викупити свої USDC та stETH. Була викликана функція redeemUnderlying, яка спалювала токени LP, пов'язані з депозитом користувача. Однак через недолік перевірки фактору здоров'я, що відбувається перед передачею токенів, система вважала, що у користувача є достатньо застави, щоб зняти більше, ніж йому належить. Цей недолік дозволив нападнику зняти 60 токенів stETH без збереження необхідної застави, ефективно отримавши ці токени безкоштовно.

Як можна було запобігти атакі

Щоб запобігти атакі, UniLend повинен був перепорядкувати операції у функції redeemUnderlying. Виконуючи перевірку фактора здоров'я після передачі токенів користувачеві, протокол гарантує, що фактичний баланс токенів користувача відображає їхній статус застави.

Безпека блокчейну не є вибірковою. Захистіть свої розумні контракти та протоколи DeFi за допомогою Three Sigma, надійного партнера з безпеки в області блокчейну, аудиту блокчейну, оцінки вразливостей розумних контрактів та безпеки Web3.

Натисніть дляОтримайте сьогодні свій аудит розумного контракту.

Наслідки

Експлуатація UniLend призвела до значних фінансових втрат, приблизно 200 000 доларів США з пулу UniLend. Ці значні втрати безпосередньо вплинули на резерви платформи та зменшили доступну ліквідність для інших користувачів, що потенційно може нашкодити наданню позик та позичанню.

Відповідь протоколу UniLend

Після експлойту UniLend вжила негайних заходів для усунення вразливості та заспокоїла свою базу користувачів.

Вони оголосили 20% винагороду відповідальній стороні за безпечне повернення коштів.

Адреси

Атака транзакції:

Адреса експлуататора:

Адреса UnilendV2Core:

Disclaimer:

  1. Ця стаття передрукована з []. Усі авторські права належать оригінальному автору [@threesigmaxyz]. Якщо є заперечення до цього перевидання, будь ласка, зв'яжіться з Ворота Навчитисякоманда і вони оперативно цим займуться.
  2. Відмова відповідальності за зобов'язання: Погляди і думки, висловлені в цій статті, є виключно авторськими і не становлять жодної інвестиційної поради.
  3. Команда Gate Learn робить переклад статті на інші мови. Якщо не зазначено, копіювання, розповсюдження або плагіат перекладених статей заборонено.
ابدأ التداول الآن
اشترك وتداول لتحصل على جوائز ذهبية بقيمة
100 دولار أمريكي
و
5500 دولارًا أمريكيًا
لتجربة الإدارة المالية الذهبية!