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.

Переглянути оригінал
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.
  • Нагородити
  • 2
  • Поділіться
Прокоментувати
0/400
HallucinationGrowervip
· 07-12 12:30
Що зробили без роботи служби безпеки?
Переглянути оригіналвідповісти на0
degenonymousvip
· 07-12 12:23
Контракти зазвичай мають багато вразливостей
Переглянути оригіналвідповісти на0
  • Закріпити