Недавно межсетевой протокол Poly Network стал жертвой хакерской атаки, что вызвало широкий интерес в отрасли. Команда безопасности провела глубокий анализ этого инцидента и считает, что злоумышленники тщательно модифицировали данные, изменив keeper контракта EthCrossChainData на указанный адрес, а не через ранее распространенное утверждение о утечке приватного ключа keeper.
Подробности атаки
Ядро атаки заключается в том, что функция verifyHeaderAndExecuteTx контракта EthCrossChainManager может выполнять кроссчейн-транзакции через функцию _executeCrossChainTx.
Владелец контракта EthCrossChainData является контрактом EthCrossChainManager, что позволяет последнему вызывать функцию putCurEpochConPubKeyBytes первого для изменения keeper.
Функция verifyHeaderAndExecuteTx контракта EthCrossChainManager может внутренне вызывать функцию _executeCrossChainTx для выполнения перекрестной транзакции, указанной пользователем. Злоумышленник использует это, передавая тщательно сконструированные данные, чтобы вызвать функцию putCurEpochConPubKeyBytes контракта EthCrossChainData, тем самым изменяя роль хранителя на адрес, указанный злоумышленником.
После завершения замены адреса роли keeper, атакующий сможет произвольно создавать транзакции и извлекать любое количество средств из контракта.
Процесс атаки
Атакующий сначала через функцию verifyHeaderAndExecuteTx контракта EthCrossChainManager вызывает функцию putCurEpochConPubKeyBytes, изменяя keeper.
Затем злоумышленник начал осуществлять серию атакующих транзакций, извлекая средства из контракта.
После завершения атаки, из-за изменения keeper, нормальные транзакции других пользователей были отклонены.
Похожие модели атак также появились в сети Ethereum, где злоумышленники использовали те же методы для изменения keeper и проведения атак.
!
Резюме
Ключом к этой атаке стала возможность изменения keeper контракта EthCrossChainData через контракт EthCrossChainManager, в то время как функция verifyHeaderAndExecuteTx контракта EthCrossChainManager может выполнять переданные пользователем данные через функцию _executeCrossChainTx. Атакующий использовал этот проектный недостаток, изменив keeper контракта EthCrossChainData с помощью специально сконструированных данных, а не через утечку приватного ключа keeper, как предполагалось ранее. Этот инцидент еще раз подчеркивает важность безопасного проектирования смарт-контрактов и предоставляет ценнейшие уроки для отрасли.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
11 Лайков
Награда
11
4
Поделиться
комментарий
0/400
RugPullAlarm
· 07-20 15:15
Чистые данные в блокчейне говорят сами за себя, не теряйте большие деньги
Посмотреть ОригиналОтветить0
SchrodingerAirdrop
· 07-20 15:11
Снова произошло событие безопасности, ха-ха.
Посмотреть ОригиналОтветить0
MetaDreamer
· 07-20 14:50
Снова kp попали, когда же это закончится?
Посмотреть ОригиналОтветить0
GasFeeLady
· 07-20 14:47
смущение... компромисс с хранителем просто ждал, чтобы произойти, если честно. нужно проверить эти точки входа
Poly Network была взломана, а хранитель был подделан, что привело к потере средств
Анализ инцидента с атакой на Poly Network
Недавно межсетевой протокол Poly Network стал жертвой хакерской атаки, что вызвало широкий интерес в отрасли. Команда безопасности провела глубокий анализ этого инцидента и считает, что злоумышленники тщательно модифицировали данные, изменив keeper контракта EthCrossChainData на указанный адрес, а не через ранее распространенное утверждение о утечке приватного ключа keeper.
Подробности атаки
Ядро атаки заключается в том, что функция verifyHeaderAndExecuteTx контракта EthCrossChainManager может выполнять кроссчейн-транзакции через функцию _executeCrossChainTx.
Владелец контракта EthCrossChainData является контрактом EthCrossChainManager, что позволяет последнему вызывать функцию putCurEpochConPubKeyBytes первого для изменения keeper.
Функция verifyHeaderAndExecuteTx контракта EthCrossChainManager может внутренне вызывать функцию _executeCrossChainTx для выполнения перекрестной транзакции, указанной пользователем. Злоумышленник использует это, передавая тщательно сконструированные данные, чтобы вызвать функцию putCurEpochConPubKeyBytes контракта EthCrossChainData, тем самым изменяя роль хранителя на адрес, указанный злоумышленником.
После завершения замены адреса роли keeper, атакующий сможет произвольно создавать транзакции и извлекать любое количество средств из контракта.
Процесс атаки
Атакующий сначала через функцию verifyHeaderAndExecuteTx контракта EthCrossChainManager вызывает функцию putCurEpochConPubKeyBytes, изменяя keeper.
Затем злоумышленник начал осуществлять серию атакующих транзакций, извлекая средства из контракта.
После завершения атаки, из-за изменения keeper, нормальные транзакции других пользователей были отклонены.
Похожие модели атак также появились в сети Ethereum, где злоумышленники использовали те же методы для изменения keeper и проведения атак.
!
Резюме
Ключом к этой атаке стала возможность изменения keeper контракта EthCrossChainData через контракт EthCrossChainManager, в то время как функция verifyHeaderAndExecuteTx контракта EthCrossChainManager может выполнять переданные пользователем данные через функцию _executeCrossChainTx. Атакующий использовал этот проектный недостаток, изменив keeper контракта EthCrossChainData с помощью специально сконструированных данных, а не через утечку приватного ключа keeper, как предполагалось ранее. Этот инцидент еще раз подчеркивает важность безопасного проектирования смарт-контрактов и предоставляет ценнейшие уроки для отрасли.