OrionProtocol зазнав атаки повторного входу, втративши 2900000 доларів США шифрування активів.

Аналіз інциденту з атаками повторного входу на OrionProtocol

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

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

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

Під час обміну контракт токена зловмисника використовував функцію transfer для виклику методу ExchangeWithAtomic.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 та _doSwapTokens. Ключова проблема полягає в тому, що контракт оновлює змінну curBalance лише після виконання операції переказу, що створює умови для атаки повторного входу. Зловмисник, додавши логіку зворотного виклику у функцію transfer власного токена, може повторно викликати функцію depositAsset, що призводить до неправильного оновлення curBalance.

! [Аналіз атаки повторного входу 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. Дотримуйтесь моделі "Перевірка-Ефекти-Взаємодії" (Checks-Effects-Interactions), щоб забезпечити оновлення змінних стану перед зовнішніми викликами.

  2. Впровадження замка повторного входу, щоб запобігти повторному виклику функції під час її виконання.

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

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

  5. Регулярно проводьте аудити безпеки, щоб своєчасно виявляти та виправляти потенційні вразливості.

Ця подія ще раз підкреслила важливість строгого дотримання стандартів безпечного кодування під час розробки смарт-контрактів. Команда проекту повинна постійно звертати увагу на безпеку контрактів і вживати багатошарових заходів захисту, щоб максимально знизити ризик атак.

TOKEN7.15%
ETH8.81%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 6
  • Репост
  • Поділіться
Прокоментувати
0/400
New_Ser_Ngmivip
· 07-13 12:19
Знову хакер кліпові купони.
Переглянути оригіналвідповісти на0
DegenMcsleeplessvip
· 07-13 03:32
Ще один проєкт відкрите~
Переглянути оригіналвідповісти на0
SatoshiSherpavip
· 07-12 13:26
Знову бачу смартконтракти в дії, тс-тс.
Переглянути оригіналвідповісти на0
VCsSuckMyLiquidityvip
· 07-10 17:44
Ще один впав, не дивно
Переглянути оригіналвідповісти на0
GasFeeDodgervip
· 07-10 17:37
Ще один проєкт зник. Втік, втік.
Переглянути оригіналвідповісти на0
FOMOSapienvip
· 07-10 17:16
Ще одна риба на залізній шахті
Переглянути оригіналвідповісти на0
  • Закріпити