OrionProtocol зазнав повторної атаки на 2,9 мільйона, кошти частково потрапили до перемикача криптовалюти

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

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

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

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

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

У процесі обміну зловмисники використали функцію зворотного виклику кастомного токен-контракту, повторно викликавши функцію ExchangeWithAtomic.depositAsset через метод Token.Transfer, що призвело до постійного накопичення суми депозиту. Врешті-решт, зловмисники завершили отримання прибутку через операцію виведення.

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

Відтворення атаки

Зловмисник атакує, створюючи кастомний контракт ERC20 токенів та використовуючи функцію миттєвого кредитування певної DEX для здійснення атаки. Головні кроки включають:

  1. Створення користувацького токена та встановлення торгових пар з USDC, USDT
  2. Підготуйте початковий капітал і забезпечте ліквідність
  3. Викликати функції depositAsset та swapThroughOrionPool контракту ExchangeWithAtomic
  4. Додайте логіку зворотного виклику в функцію transfer власного токена
  5. В кінцевому підсумку витягніть прибуткові кошти за допомогою функції withdraw

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

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

TOKEN-4.94%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 4
  • Поділіться
Прокоментувати
0/400
AirdropF5Brovip
· 20год тому
пастка готівкою, знову з новою метою~
Переглянути оригіналвідповісти на0
ProbablyNothingvip
· 20год тому
Чи може контракт стати ще гірше?
Переглянути оригіналвідповісти на0
CountdownToBrokevip
· 20год тому
Ще одна компанія закрилася.
Переглянути оригіналвідповісти на0
StablecoinAnxietyvip
· 21год тому
Ой, знову прийшов суддівський Хакер.
Переглянути оригіналвідповісти на0
  • Закріпити