Детальний аналіз вразливостей|Аналіз події крадіжки 12 мільйонів доларів з протоколу Cork Protocol та відстеження коштів

Нещодавно протокол Cork Protocol у ланцюжку Ethereum зазнав атаки, і зловмисник отримав прибуток у розмірі $12 млн через логічну вразливість у контракті проєкту (не перевіривши ключові параметри). У цій статті представлений детальний аналіз атаки та відстеження коштів.

Автор: Beosin

Нещодавно протокол Cork на Етері зазнав атаки, злочинець отримав прибуток у 12 мільйонів доларів через логічну уразливість контракту проекту (невірна перевірка ключових параметрів). Команда безпеки Beosin провела детальний аналіз та відстеження коштів за цим інцидентом і поділилася результатами нижче:

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

Перш ніж аналізувати атаку, нам потрібно зрозуміти особливу бізнес-логіку Cork Protocol. Він представляє механізм кредитного дефолтного свопу, подібний до традиційних фінансів (під назвою Depeg Swap), який токенізує ризик деприв'язки прив'язаних активів (таких як stETH), і користувачі можуть хеджувати або торгувати ризиком деприв'язки прив'язаних активів. Типи токенів бувають:

  • Вилучення активів (Redemption Asset, RA): базовий актив (наприклад, Етер)

  • Прив'язаний актив (Pegged Asset, PA): актив, прив'язаний до базового активу (наприклад, stETH)

  • Depeg Swaps (DS): Подібно до пут-опціонів, хеджування від зниження ціни

  • Покритий токен (Cover Token, CT) — схожий на опціон колл, без відв'язки, можна отримати прибуток; у разі відв'язки необхідно нести втрати.

Коли користувач вносить RA, протокол Cork випускає токени DS та CT, які користувач може торгувати або викуповувати для ставки або хеджування ризику.

Ця атака стосується реального ринку токенів та фальшивого ринку, створеного зловмисниками:

!

(1) зловмисники спочатку створили фальшивий маркетплейс, де RA – це токен weETH8DS-2, а PA – wstETH. Можна відзначити, що weETH8DS-2 може використовуватися як RA на підробленому ринку, а не як DS на реальному ринку, який повинен був бути заборонений крос-ринковою перевіркою токенів.

!

(2) Зловмисники купують weETH8CT-2 на реальному ринку.

!

(3) зловмисник скористався відсутністю належного контролю доступу функції beforeSwap у функції CorkHook для надсилання користувацьких даних Hook до функції CorkCall, змусивши її розбити свій weETH8DS-2 на фальшивий_DS і фальшивий_CT. Це можливо тому, що weETH8DS-2 є РА фальшивого ринку, і функція вважає, що фальшивка_DS та підробка_CT належать зловмисникам.

!

Після (4) фальшиві _DS та фальшиві_CT токени передаються зловмисникам, згідно з правилами Cork Protocol: токени DS та CT можна обміняти на токени RA. Отримані фальшиві _DS та фальшиві_CT токени зловмисник обмінював на weETH8DS-2 через віртуальний маркетплейс.

(5) Наразі атакувальник має weETH8CT-2, придбаний на кроці 2, повторно зібраний weETH8DS-2, який можна обміняти на RA (тобто wstETH) на реальному ринку.

В результаті зловмисник може перевести ліквідність ДС на реальному ринку на інший ринок (сконструйований фальшивий ринок) для погашення як РА, тим самим видобуваючи ліквідність РА на реальному ринку. У цьому інциденті зловмисники вкрали 3 761 wstETH і обміняли їх на ETH на суму близько 12 мільйонів доларів.

Аналіз вразливостей

Згідно з наведеними вище процесами атаки, ми можемо побачити, що причинами експлуатації вразливостей усього інциденту є три наступні пункти:

  • Відсутня перевірка: не перевірено, чи використовувався DS, що використовується як RA, на інших ринках.

  • CorkCall зворотні дані, надані надійними користувачами без належної перевірки.

  • Цей протокол дозволяє створення неконтрольованих, необмежених ринків.

Незважаючи на те, що Cork Protocol пройшов через багато аудитів безпеки та конкурсів з аудиту, ця логічна вразливість була проігнорована. Цієї атаки можна було б уникнути, якби існували більш суворі перевірки повторного використання токенів, сувора перевірка даних зворотного виклику та більш жорсткий контроль за створенням ринку.

Відстеження вкрадених коштів

Beosin Trace відстежив викрадені кошти та виявив, що адреса зловмисника 0xea6f30e360192bae715599e15e2f765b49e4da98 отримати прибуток у розмірі близько 3761 wstETH, а потім обміняла wstETH на ETH через протоколи DeFi, такі як Uniswap та 1inch, загальною сумою 4530,6.

Наразі вкрадені кошти ще не були переміщені. Beosin Trace додав адреси хакерів до чорного списку, надалі буде продовжено відстеження.

!

Згідно з аналізом Beosin Trace, всі викрадені кошти все ще зберігаються за адресою атакуючого.

Підсумок

В основі атаки лежала вразливість основної бізнес-логіки в протоколі Cork, яка призвела до крадіжки зловмисником великої кількості wstETH за допомогою підроблених токенів. Складні протоколи DeFi, такі як Cork Protocol, вимагають детального тестування та огляду бізнес-логіки контракту за допомогою багатогранних та багаторівневих аудитів безпеки. Раніше команда безпеки Beosin провела аудит безпеки кількох протоколів DeFi (наприклад, Surf Protocol, SyncSwap, LeverFi, Owlto Finance), зосередившись на пошуку недоліків логіки контрактів і крайніх випадків, які можна не помітити, гарантуючи, що протокол повністю протестований.

Переглянути оригінал
Контент має виключно довідковий характер і не є запрошенням до участі або пропозицією. Інвестиційні, податкові чи юридичні консультації не надаються. Перегляньте Відмову від відповідальності , щоб дізнатися більше про ризики.
  • Нагородити
  • Прокоментувати
  • Поділіться
Прокоментувати
0/400
Немає коментарів
  • Закріпити