OrionProtocol подвергся атаке повторного входа, похищено 2,9 миллиона долларов США.

robot
Генерация тезисов в процессе

Уязвимость контракта OrionProtocol привела к убыткам в 2,9 миллиона долларов

2 февраля 2023 года контракты OrionProtocol на Ethereum и Binance Smart Chain подверглись атаке повторного входа, что привело к убыткам около 2,9 миллиона долларов. Конкретные убытки составили 2,844,766 USDT на Ethereum и 191,606 BUSD на Binance Smart Chain.

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

Атакующий сначала развернул специальный контракт Token и выполнил соответствующие операции по передаче и авторизации. Затем атакующий заимствовал средства через метод swap какого-то DEX и вызвал метод swapThroughOrionPool протокола OrionProtocol для обмена токенов. Путь обмена включает адрес контракта Token, созданного атакующим.

При выполнении метода swapThroughOrionPool, из-за того, что в контракте токена злоумышленника присутствует функция обратного вызова, во время процесса перевода возможно многократное вызов метода depositAsset. Это приводит к повторному учету суммы депозита, в результате чего злоумышленник получает избыточную прибыль через операции вывода.

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

Направление движения средств

Начальный капитал злоумышленника поступил из горячего кошелька одной из торговых платформ. Из 1,651 ETH, полученных в результате атаки, 657.5 ETH все еще находятся на кошельке злоумышленника, а оставшаяся часть была переведена через сервисы смешивания.

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

Ядро уязвимости

Проблема заключается в функции doSwapThroughOrionPool. Эта функция сначала выполняет операцию перевода, а затем обновляет переменную curBalance при выполнении _doSwapTokens. Злоумышленник использует функцию обратного вызова 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/webp-social/moments-7c4bde9d6a35da4304844a3bbb934fae.webp(

! [Анализ атаки повторного входа 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-8.48%
ETH-2.97%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 1
  • Поделиться
комментарий
0/400
BoredStakervip
· 07-27 03:45
Снова атака повторного входа
Посмотреть ОригиналОтветить0
  • Закрепить