Аналіз інциденту з повторними атаками на OrionProtocol
2 лютого 2023 року вдень на певній DEX платформі на Ethereum та Binance Smart Chain через уразливість контракту стався повторний напад, внаслідок якого було втрачено приблизно 2,9 мільйона доларів США криптоактивів, зокрема 2,844,766 USDT на Ethereum та 191,606 BUSD на Binance Smart Chain.
Огляд процесу атаки
Атакуючи спочатку розгорнули спеціальний токен-контракт і виконали відповідні операції з переказу та авторизації. Після цього атакуючий позичив кошти через функцію обміну на певному DEX і викликав метод 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 після виконання переказу токенів, але не враховує ризик можливих повторних атак. Зловмисник, додавши логіку зворотного виклику у функції 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(
Відтворення атаки
Дослідники успішно відтворили процес атаки та надали відповідний код POC. Результати тестування показали, що зловмисники можуть отримати додаткові кошти, використовуючи вразливість контракту.
! [Аналіз атаки повторного входу 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 забезпечення безпеки контрактів є критично важливим для підтримки довіри користувачів та безпеки активів.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
20 лайків
Нагородити
20
7
Репост
Поділіться
Прокоментувати
0/400
NftRegretMachine
· 08-09 01:43
Знову атака повторного входу
Переглянути оригіналвідповісти на0
AirDropMissed
· 08-08 20:39
Аудитори, мабуть, божеволіють.
Переглянути оригіналвідповісти на0
TokenVelocity
· 08-07 01:39
Без слів, мене обікрали.
Переглянути оригіналвідповісти на0
LiquidatedNotStirred
· 08-06 03:45
Справжній головний біль з уразливістю повторного входу
OrionProtocol зазнав атаки повторного входу, втративши 2,9 мільйона доларів США шифрування активів.
Аналіз інциденту з повторними атаками на OrionProtocol
2 лютого 2023 року вдень на певній DEX платформі на Ethereum та Binance Smart Chain через уразливість контракту стався повторний напад, внаслідок якого було втрачено приблизно 2,9 мільйона доларів США криптоактивів, зокрема 2,844,766 USDT на Ethereum та 191,606 BUSD на Binance Smart Chain.
Огляд процесу атаки
Атакуючи спочатку розгорнули спеціальний токен-контракт і виконали відповідні операції з переказу та авторизації. Після цього атакуючий позичив кошти через функцію обміну на певному DEX і викликав метод 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 після виконання переказу токенів, але не враховує ризик можливих повторних атак. Зловмисник, додавши логіку зворотного виклику у функції 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(
Відтворення атаки
Дослідники успішно відтворили процес атаки та надали відповідний код POC. Результати тестування показали, що зловмисники можуть отримати додаткові кошти, використовуючи вразливість контракту.
! [Аналіз атаки повторного входу 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(
Рекомендації з безпеки
Для смарт-контрактів, які мають функцію обміну токенів, розробники повинні врахувати такі моменти:
Вживаючи ці заходи, можна значно знизити ризик атак на смарт-контракти, підвищивши безпеку та стабільність проєкту. У екосистемі Web3 забезпечення безпеки контрактів є критично важливим для підтримки довіри користувачів та безпеки активів.