OrionProtocol зазнав атаки повторного входу на 2.9 мільйона доларів, постраждали обидві мережі ETH та BSC.

robot
Генерація анотацій у процесі

Аналіз події повторного входу OrionProtocol

Огляд події

2 лютого 2023 року OrionProtocol зазнав атаки повторного входу на Ethereum та Binance Smart Chain, внаслідок чого було втрачено близько 2,9 мільйона доларів. Зловмисники використали вразливість контракту, щоб вкрасти 2,844,766 USDT на Ethereum та 191,606 BUSD на Binance Smart Chain.

! [Аналіз атаки повторного входу OrionProtocol з PoC](https://img-cdn.gateio.im/webp-social/moments-730464b2d4d7f6e0ff21a0289a2d5d68.webp0192837465674839201

Аналіз процесу атаки

  1. Зловмисник спочатку розгорнув контракт на власний токен, готуючись до подальшої атаки.

  2. Позичання через метод swap UNI-V2 та виклик методу ExchangeWithAtomic.swapThroughOrionPool для обміну токенів. Шлях обміну містить адресу контракту токена, створеного зловмисником.

  3. При виконанні методу swapThroughOrionPool зловмисник використовує функцію зворотного виклику в спеціальному контракті токена, повторно викликаючи метод ExchangeWithAtomic.depositAsset, що призводить до багаторазового накопичення суми депозиту.

  4. Нарешті, зловмисник завершує отримання прибутку через операцію з виведення коштів.

! [Аналіз атаки повторного входу OriionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-caac189901b7aaad5abd8be30bb4361a.webp(

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-7e21c34158a85d4c387fcdbec136d31b.webp(

Напрямок коштів

Початкові кошти зловмисника походять з гарячого гаманця певної торгової платформи. З отриманих 1,651 ETH, 657.5 ETH все ще залишаються в гаманці зловмисника, решта була переміщена через послуги змішування монет.

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-24819b5154419e86ea523a25a9101f67.webp(

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

Основна проблема полягає у функції doSwapThroughOrionPool. Ця функція при виконанні _doSwapTokens спочатку виконує операцію переказу, а потім оновлює змінну curBalance. Зловмисник скористався додаванням зворотного виклику в функцію transfer свого власного токена, знову викликавши функцію depositAsset до оновлення curBalance, що призвело до помилки в обчисленні балансу.

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/social/moments-7c4bde9d6a35da4304844a3bb934fae(

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-7239f8886fe83c1da8b1b42545185811.webp(

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-e5042932f0e1b7fa96e3f6e749231957.webp(

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-4bd31735de09c63c490488e887118038.webp(

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-cd401091e63ab21864f39cd650014b97.webp(

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-e010d0f0c02fb8bbc648f755b0ac464c.webp(

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-f3c5f9416cfb9b7b791d86eeffb933be.webp(

Рекомендації щодо запобігання

  1. При проектуванні контракту необхідно враховувати можливі ризики безпеки, пов'язані з різними токенами та шляхами обміну.

  2. Дотримуйтесь моделі "Перевірки-Ефекти-Взаємодії" (Checks-Effects-Interactions) під час написання коду контракту, тобто спочатку виконуйте перевірку умов, потім оновлюйте змінні стану, а наприкінці здійснюйте зовнішні виклики.

  3. Додати механізми безпеки, такі як повторне блокування, щоб запобігти атакам повторного входу.

  4. Регулярно проводити аудит коду та сканування на вразливості, своєчасно усувати潜在安全隐患.

  5. Обмежити максимальну суму одноразової交易, встановити обмеження на частоту交易 та інші заходи, щоб зменшити потенційні втрати від атак.

Вживаючи ці заходи, команда проекту може суттєво підвищити безпеку контрактів і знизити ризик зазнати подібних атак. Постійна увага до безпеки смарт-контрактів є вкрай важливою для підтримки здорового розвитку екосистеми Web3.

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 5
  • Поділіться
Прокоментувати
0/400
StakeOrRegretvip
· 15год тому
Знову яма зі смартконтрактами
Переглянути оригіналвідповісти на0
TokenEconomistvip
· 07-15 07:15
дозвольте мені пояснити це: класична вразливість повторного входу, в основному економічний арбітраж, але з недоліками смарт-контрактів
Переглянути оригіналвідповісти на0
FreeRidervip
· 07-12 19:16
Ще один новий невдаха-учасник
Переглянути оригіналвідповісти на0
WenMoon42vip
· 07-12 19:09
Ще один проект закінчився.
Переглянути оригіналвідповісти на0
LiquidationSurvivorvip
· 07-12 19:08
Контракт знову обдерли, не знаю, що й сказати.
Переглянути оригіналвідповісти на0
  • Закріпити