OrionProtocol зазнав атаки повторного входу, в результаті якої було вкрадено активи на суму майже 3 мільйони доларів.

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

OrionProtocol зазнав атаки повторного входу, що призвела до втрат майже 3 мільйонів доларів

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

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

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

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

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

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

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

Джерело вразливості

Основна проблема полягає в функціях doSwapThroughOrionPool та _doSwapTokens контракту ExchangeWithAtomic. Ці функції оновлюють змінну curBalance після виконання переказу токенів, але не містять заходів для запобігання повторним атакам. Зловмисник використовує зворотний виклик методу depositAsset функції transfer власного токена, що призводить до помилкового оновлення curBalance та можливості вилучення надмірних коштів після погашення миттєвого кредиту.

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

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

Початкові кошти зловмисника походять з гарячого гаманця певної торгівельної платформи. З 1,651 ETH, здобутого в результаті атаки, 657.5 ETH все ще залишаються на гаманці зловмисника, решта була переведена через послуги змішування.

! [Аналіз атаки повторного входу 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. Щодо зовнішніх викликів, особливо тих, що стосуються операцій з переміщення коштів, слід бути особливо обережними і розглянути можливість використання моделі pull payment замість push payment.

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

Вживаючи ці заходи, можна значно підвищити безпеку смарт-контрактів і знизити ризик атаки. У веб3 екосистемі безпека завжди повинна бути пріоритетом.

TOKEN3.24%
ETH-0.82%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 4
  • Поділіться
Прокоментувати
0/400
TokenTherapistvip
· 12год тому
Ще хтось не може зрозуміти?
Переглянути оригіналвідповісти на0
LiquidatorFlashvip
· 12год тому
Вразливість повторного входу дійсно є першим вбивцею втрат у DeFi...
Переглянути оригіналвідповісти на0
0xLuckboxvip
· 13год тому
Цього року знову вкрали?
Переглянути оригіналвідповісти на0
TokenSherpavip
· 13год тому
*с sigh* ще один протокол не проходить базові перевірки на повторне входження... якщо говорити історично, це було запобіжним.
Переглянути оригіналвідповісти на0
  • Закріпити