Анализ уязвимостей смарт-контрактов Poly Network: как злоумышленники могут изменить роль keeper для получения средств

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

Анализ уязвимости безопасности Poly Network: как злоумышленники используют уязвимость контракта для изменения прав

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

Суть события заключается в том, что в контракте EthCrossChainManager есть недостаток проектирования в функции verifyHeaderAndExecuteTx. Эта функция может выполнять указанные пользователем кросс-цепочные транзакции через внутреннюю функцию _executeCrossChainTx. Атакующий воспользовался этим, создав определенные данные, которые заставили функцию _executeCrossChainTx вызвать функцию putCurEpochConPubKeyBytes контракта EthCrossChainData, тем самым изменив роль хранителя на адрес, контролируемый атакующим.

Конкретный процесс атаки следующий:

  1. Нападающий сначала вызывает функцию verifyHeaderAndExecuteTx контракта EthCrossChainManager, передавая тщательно подготовленные данные.

  2. Внутри этой функции выполняется _executeCrossChainTx, который затем вызывает функцию putCurEpochConPubKeyBytes контракта EthCrossChainData.

  3. Функция putCurEpochConPubKeyBytes выполняется, изменяя адрес роли keeper на адрес, указанный атакующим.

  4. После замены keeper, злоумышленник получил права на выполнение операций и может произвольно конструировать транзакции для извлечения средств из контракта.

  5. После завершения атаки, из-за изменения keeper, нормальные транзакции других пользователей начинают отклоняться.

Этот метод атаки был использован как на BSC, так и на блокчейне Ethereum. Ключ к атаке заключается в том, что keeper контракта EthCrossChainData может быть изменён контрактом EthCrossChainManager, который, в свою очередь, позволяет выполнять произвольные данные, переданные пользователем. Эта конструкция имеет серьезные проблемы с безопасностью, предоставляя нападающим возможность для атаки.

!

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

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 8
  • Поделиться
комментарий
0/400
FomoAnxietyvip
· 07-21 14:29
天天 Будут играть для лохов
Посмотреть ОригиналОтветить0
airdrop_whisperervip
· 07-20 03:50
Снова уязвимость смарт-контрактов
Посмотреть ОригиналОтветить0
blocksnarkvip
· 07-18 15:43
Снова это вина смарт-контрактов
Посмотреть ОригиналОтветить0
NFT_Therapyvip
· 07-18 15:40
典中典, еще один сбой смарт-контрактов
Посмотреть ОригиналОтветить0
BTCRetirementFundvip
· 07-18 15:37
Снова видите, что контракт был взломан?
Посмотреть ОригиналОтветить0
MemeKingNFTvip
· 07-18 15:33
Снова день, когда нас посетил хитрый вор, мир как большой поток песка, посмотрим, чьи контракты все еще имеют дыры.
Посмотреть ОригиналОтветить0
nft_widowvip
· 07-18 15:29
Снова вина контракта
Посмотреть ОригиналОтветить0
rekt_but_not_brokevip
· 07-18 15:20
Еще один проект gg.
Посмотреть ОригиналОтветить0
  • Закрепить