OrionProtocol подвергся атаке повторного входа, потеряв 2,9 миллиона долларов USDT и BUSD.

Анализ инцидента с атакой повторного входа OrionProtocol

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

Процесс атаки

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

Настройте путь обмена на [USDC, Токен атакующего, USDT]. Ключевым моментом является то, что смарт-контракт токена, созданного атакующим, содержит функцию обратного вызова. В процессе обмена атакующий использует метод Token.Transfer для вызова функции ExchangeWithAtomic.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 контракта ExchangeWithAtomic. Эта функция при выполнении операции _doSwapTokens сначала проводит перевод, а затем обновляет переменную curBalance. Злоумышленник добавил обратную логику в функцию transfer своего пользовательского токена, что привело к неправильному обновлению 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. Проектирование контракта должно следовать модели "Проверка-Эффекты-Взаимодействия" (Checks-Effects-Interactions), сначала обновляя переменные состояния, а затем выполняя внешние вызовы.

  2. Реализация механизмов защиты от повторного входа, таких как замки повторного входа.

  3. Для функций, связанных с обменом токенов, необходимо全面 учитывать возможные угрозы безопасности, связанные с различными типами токенов и путями обмена.

  4. Укрепить аудит кода, особенно обратить внимание на ключевые функции, связанные с операциями с финансами.

  5. Рассмотрите возможность введения дополнительных мер безопасности, таких как ограничение суммы сделки или таймлок.

  6. Периодически проводить оценку безопасности и тестирование на проникновение, своевременно выявлять и устранять потенциальные уязвимости.

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

Посмотреть Оригинал
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.
  • Награда
  • 6
  • Поделиться
комментарий
0/400
NewPumpamentalsvip
· 07-11 03:48
Каждый день подвергаюсь атакам на мошенничество
Посмотреть ОригиналОтветить0
HodlBelievervip
· 07-08 12:16
Типичные риски контрактов
Посмотреть ОригиналОтветить0
0xSoullessvip
· 07-08 08:06
Реентрация всегда является больной темой
Посмотреть ОригиналОтветить0
PaperHandSistervip
· 07-08 08:03
упущено сестра сегодня сильно плакала
Посмотреть ОригиналОтветить0
AirdropHunterXMvip
· 07-08 08:02
Это снова инцидент с повторным входом.
Посмотреть ОригиналОтветить0
ChainWatchervip
· 07-08 07:55
Еще одна компания, которую обманули с помощью Клиповые купоны
Посмотреть ОригиналОтветить0
  • Закрепить