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.

Переглянути оригінал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Нагородити
  • 3
  • Поділіться
Прокоментувати
0/400
FreeRidervip
· 07-12 19:16
Ще один новий невдаха-учасник
Переглянути оригіналвідповісти на0
WenMoon42vip
· 07-12 19:09
Ще один проект закінчився.
Переглянути оригіналвідповісти на0
LiquidationSurvivorvip
· 07-12 19:08
Контракт знову обдерли, не знаю, що й сказати.
Переглянути оригіналвідповісти на0
  • Закріпити