OrionProtocol зазнав атаки повторного входу, 2,9 мільйона доларів було вкрадено.

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

Уразливість контракту OrionProtocol призвела до збитків у 2,9 мільйона доларів

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

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

Зловмисник спочатку розгорнув спеціальний токен-контракт і виконав відповідні операції з переведення та авторизації. Потім зловмисник позичив кошти через метод swap певної DEX і викликав метод swapThroughOrionPool протоколу Orion для обміну токенів. Шлях обміну містить адресу токен-контракту, створеного зловмисником.

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

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

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

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

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

Ядро вразливості

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

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

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

! [Аналіз атаки повторного входу 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. Провести комплексний аудит безпеки контракту.

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

TOKEN3.34%
ETH2.46%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 1
  • Поділіться
Прокоментувати
0/400
BoredStakervip
· 13год тому
Знову атака повторного входу
Переглянути оригіналвідповісти на0
  • Закріпити