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

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

Анализ инцидента с атакой на Poly Network Хакер

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

Принцип атаки

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

Злоумышленник использует функцию verifyHeaderAndExecuteTx, передавая тщательно разработанные данные, чтобы вызвать функцию putCurEpochConPubKeyBytes контракта EthCrossChainData через функцию _executeCrossChainTx, тем самым изменяя роль хранителя на адрес, указанный злоумышленником. После завершения замены адреса хранителя злоумышленник может конструировать транзакции и произвольно извлекать любое количество средств из контракта.

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

  1. Атакующий сначала вызывает функцию putCurEpochConPubKeyBytes через функцию verifyHeaderAndExecuteTx контракта EthCrossChainManager, чтобы изменить keeper.

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

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

  4. Этот тип атаки также имеет аналогичные операции в сети Эфириум.

!

Резюме

Ключом к этой атаке является то, что keeper контракта EthCrossChainData может быть изменён контрактом EthCrossChainManager, а функция verifyHeaderAndExecuteTx контракта EthCrossChainManager может выполнять пользовательские данные через функцию _executeCrossChainTx. Злоумышленник воспользовался этим, успешно изменив keeper контракта EthCrossChainData на адрес, контролируемый атакующим, путём создания определённых данных.

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

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 3
  • Поделиться
комментарий
0/400
GasFeeCriervip
· 07-11 15:43
Снова проблемы со смарт-контрактами, да это же просто ужасно!
Посмотреть ОригиналОтветить0
SleepTradervip
· 07-11 02:54
Снова ретроспективная мудрость безопасности аудита
Посмотреть ОригиналОтветить0
ApyWhisperervip
· 07-08 15:52
Снова обнаружена уязвимость в контракте...
Посмотреть ОригиналОтветить0
  • Закрепить