Анализ инцидента с атакой на Poly Network: детали раскрывают, как злоумышленник искусно использовал уязвимость контракта
Недавно протокол межсетевой интеграции Poly Network подвергся хакерской атаке, что вызвало широкий интерес в отрасли. Команда безопасности провела глубокий анализ этого события и пришла к выводу, что злоумышленники изменили keeper контракта EthCrossChainData с помощью тщательно подготовленных данных, а не по причине утечки приватного ключа keeper, как ранее сообщалось.
Ключевые точки атаки
Ядро атаки заключается в том, что функция verifyHeaderAndExecuteTx контракта EthCrossChainManager может выполнять кросс-цепочные транзакции через функцию _executeCrossChainTx.
Владелец контракта EthCrossChainData является контрактом EthCrossChainManager, который может вызывать функцию putCurEpochConPubKeyBytes первого контракта для изменения хранителя.
Нападающий использует функцию verifyHeaderAndExecuteTx, передавая тщательно сконструированные данные, чтобы функция _executeCrossChainTx выполнила функцию putCurEpochConPubKeyBytes, что изменяет keeper на указанный адрес.
После завершения замены адреса keeper, злоумышленник может произвольно создавать транзакции для извлечения средств из контракта.
Восстановление процесса атаки
Нападающий сначала вызывает функцию putCurEpochConPubKeyBytes через функцию verifyHeaderAndExecuteTx контракта EthCrossChainManager, чтобы изменить keeper.
После изменения keeper, злоумышленник начинает выполнять несколько атакующих сделок, извлекая средства из контракта.
После завершения атаки, из-за изменения keeper, нормальные сделки других пользователей были отменены.
Похожие методы атаки также были реализованы в сети Ethereum.
!
Итог события
Ключом к этой атаке стало то, что keeper контракта EthCrossChainData может быть изменен контрактом EthCrossChainManager, причем функция verifyHeaderAndExecuteTx последнего может выполнять данные, переданные пользователем. Атакующий воспользовался этим, изменив адрес keeper, используя специально сконструированные данные, а не утечку закрытого ключа keeper, как предполагалось ранее.
Это событие вновь напоминает отрасли о необходимости усиления аудита безопасности смарт-контрактов, особенно для сложных протоколов, таких как межсетевое взаимодействие, для чего требуется всесторонняя и тщательная оценка безопасности, чтобы предотвратить возможность эксплуатации потенциальных уязвимостей. В то же время, многопрофильное сотрудничество и быстрая реакция имеют решающее значение для уменьшения потерь и защиты прав пользователей.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
8 Лайков
Награда
8
3
Поделиться
комментарий
0/400
notSatoshi1971
· 20ч назад
Код понятен, не понимаю, почему так глупо написано.
Посмотреть ОригиналОтветить0
AirdropHunterKing
· 20ч назад
И контракт не закрывается, и про меня про опять обманули, так что я жестко накинулся на уязвимость.
Посмотреть ОригиналОтветить0
LightningClicker
· 20ч назад
Уязвимость слишком очевидна, разве не могли посмотреть перед запуском?
Poly Network была взломана и умело использовала уязвимость контракта для модификации хранителя
Анализ инцидента с атакой на Poly Network: детали раскрывают, как злоумышленник искусно использовал уязвимость контракта
Недавно протокол межсетевой интеграции Poly Network подвергся хакерской атаке, что вызвало широкий интерес в отрасли. Команда безопасности провела глубокий анализ этого события и пришла к выводу, что злоумышленники изменили keeper контракта EthCrossChainData с помощью тщательно подготовленных данных, а не по причине утечки приватного ключа keeper, как ранее сообщалось.
Ключевые точки атаки
Ядро атаки заключается в том, что функция verifyHeaderAndExecuteTx контракта EthCrossChainManager может выполнять кросс-цепочные транзакции через функцию _executeCrossChainTx.
Владелец контракта EthCrossChainData является контрактом EthCrossChainManager, который может вызывать функцию putCurEpochConPubKeyBytes первого контракта для изменения хранителя.
Нападающий использует функцию verifyHeaderAndExecuteTx, передавая тщательно сконструированные данные, чтобы функция _executeCrossChainTx выполнила функцию putCurEpochConPubKeyBytes, что изменяет keeper на указанный адрес.
После завершения замены адреса keeper, злоумышленник может произвольно создавать транзакции для извлечения средств из контракта.
Восстановление процесса атаки
Нападающий сначала вызывает функцию putCurEpochConPubKeyBytes через функцию verifyHeaderAndExecuteTx контракта EthCrossChainManager, чтобы изменить keeper.
После изменения keeper, злоумышленник начинает выполнять несколько атакующих сделок, извлекая средства из контракта.
После завершения атаки, из-за изменения keeper, нормальные сделки других пользователей были отменены.
Похожие методы атаки также были реализованы в сети Ethereum.
!
Итог события
Ключом к этой атаке стало то, что keeper контракта EthCrossChainData может быть изменен контрактом EthCrossChainManager, причем функция verifyHeaderAndExecuteTx последнего может выполнять данные, переданные пользователем. Атакующий воспользовался этим, изменив адрес keeper, используя специально сконструированные данные, а не утечку закрытого ключа keeper, как предполагалось ранее.
Это событие вновь напоминает отрасли о необходимости усиления аудита безопасности смарт-контрактов, особенно для сложных протоколов, таких как межсетевое взаимодействие, для чего требуется всесторонняя и тщательная оценка безопасности, чтобы предотвратить возможность эксплуатации потенциальных уязвимостей. В то же время, многопрофильное сотрудничество и быстрая реакция имеют решающее значение для уменьшения потерь и защиты прав пользователей.