OrionProtocol зазнав повторної атаки, втративши 2,9 мільйона доларів США. Аналіз вразливостей безпеки та рекомендації щодо запобігання.

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

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

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

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

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

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

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

Напрямок фінансів

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

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

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

Основна проблема вразливості виникає у функції doSwapThroughOrionPool. Ця функція оновлює змінну 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(

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

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

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

Дослідники надали частину POC-коду, що імітує процес атаки. Результати тестування показали, що зловмисник успішно скористався вразливістю контракту для отримання додаткових USDT.

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

Рекомендації з безпеки

Для проектів з функцією обміну токенів необхідно враховувати різноманітні ризики безпеки, які можуть виникнути через кілька токенів і шляхи обміну. Рекомендується дотримуватись стандарту кодування "спочатку перевірити, потім записати в змінну, а потім виконати зовнішній виклик" (модель Checks-Effects-Interactions), щоб підвищити безпеку та стабільність контракту. Крім того, сторона проекту повинна по можливості усунути ризики контракту поза ланцюгом, щоб забезпечити безпечну роботу екосистеми Web3.

TOKEN5.98%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 3
  • Поділіться
Прокоментувати
0/400
VirtualRichDreamvip
· 07-15 08:57
Гей, хто піде перевірити, чи це зробив зрадник?
Переглянути оригіналвідповісти на0
HallucinationGrowervip
· 07-12 12:30
Що зробили без роботи служби безпеки?
Переглянути оригіналвідповісти на0
degenonymousvip
· 07-12 12:23
Контракти зазвичай мають багато вразливостей
Переглянути оригіналвідповісти на0
  • Закріпити