OrionProtocol подвергся атаке повторного входа на сумму 2,9 миллиона долларов: анализ кражи средств и рекомендации по предотвращению

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

Анализ инцидента с повторным входом OrionProtocol

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

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

Злоумышленник сначала развернул контракт на кастомный токен и выполнил операции по передаче и авторизации этого токена, подготавливаясь к последующим атакам. Затем злоумышленник использовал функцию обмена Uniswap V2 для заимствования средств и вызвал метод ExchangeWithAtomic.swapThroughOrionPool от OrionProtocol для обмена токенов.

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

Путь обмена установлен как: USDC → Кастомный токен нападающего → USDT

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

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

Направление денежных потоков

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

! [Анализ атаки на ре-энтерназии OrionProtocol с PoC])https://img-cdn.gateio.im/webp-social/moments-7e21c34158a85d4c387fcdbec136d31b.webp(

Анализ уязвимостей

Основная проблема уязвимости заключается в функции doSwapThroughOrionPool. Эта функция обновляет переменную curBalance после выполнения перевода токена, что создает условия для атаки повторного входа. Злоумышленник может добавить обратную логику в функцию transfer своего токена, что позволяет повторно вызывать функцию depositAsset до обновления curBalance, что приводит к ошибке в расчете баланса.

! [Анализ атак на ре-энтерназии 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. Проведение комплексного аудита безопасности, включая статический анализ, динамическое тестирование и ручную проверку.
  6. Постоянно мониторить активность контрактов и установить механизм быстрой реакции.

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

TOKEN2.87%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 7
  • Репост
  • Поделиться
комментарий
0/400
CryptoCrazyGFvip
· 08-16 01:00
Снова украли токены, не зря Медвежий рынок влияет на результаты.
Посмотреть ОригиналОтветить0
FUD_Vaccinatedvip
· 08-14 03:57
Снова будут играть для лохов
Посмотреть ОригиналОтветить0
GateUser-aa7df71evip
· 08-13 22:35
Еще один неудачник с косой. Смотрите мой анализ на заднем плане.
Посмотреть ОригиналОтветить0
CoinBasedThinkingvip
· 08-13 22:34
Снова этот старый трюк с повторным входом
Посмотреть ОригиналОтветить0
HalfBuddhaMoneyvip
· 08-13 22:29
Ещё один классический провал смарт-контрактов, деньги неудачников не защищены.
Посмотреть ОригиналОтветить0
NewPumpamentalsvip
· 08-13 22:26
Снова атака повторного входа. Когда это закончится?
Посмотреть ОригиналОтветить0
ShibaOnTheRunvip
· 08-13 22:23
Снова подверглись атаке, немного страшно.
Посмотреть ОригиналОтветить0
  • Закрепить