В последнее время кросс-чейн протокол взаимодействия Poly Network стал жертвой атаки Хакера, что привлекло широкое внимание в отрасли. Команда безопасности провела глубокий анализ этого инцидента, раскрывая конкретные методы и процесс атаки злоумышленника.
Принципы атаки
Суть атаки заключается в использовании уязвимости в контракте EthCrossChainManager. Злоумышленник, используя функцию verifyHeaderAndExecuteTx и передавая тщательно сконструированные данные, успешно изменил keeper контракта EthCrossChainData на указанное адрес. Это противоречит ранее распространенной версии о утечке приватного ключа keeper.
Детали атаки
Функция verifyHeaderAndExecuteTx контракта EthCrossChainManager может выполнять конкретные кросс-чейн транзакции через функцию _executeCrossChainTx.
Владелец контракта EthCrossChainData является контрактом EthCrossChainManager, поэтому последний может вызывать функцию putCurEpochConPubKeyBytes первого для изменения keeper.
Атакующий использует функцию verifyHeaderAndExecuteTx, передавая специализированные данные, чтобы функция _executeCrossChainTx выполнила функцию putCurEpochConPubKeyBytes контракта EthCrossChainData, тем самым изменив keeper на адрес, контролируемый атакующим.
После замены роли keeper, злоумышленник может произвольно создавать транзакции и извлекать любое количество средств из контракта.
Процесс атаки
Атакующий сначала вызывает функцию putCurEpochConPubKeyBytes через функцию verifyHeaderAndExecuteTx контракта EthCrossChainManager, изменяя keeper.
Затем хакер осуществил серию атакующих сделок, чтобы извлечь средства из контракта.
После завершения атаки, из-за того, что keeper был изменен, нормальные транзакции других пользователей были отклонены.
Похожие методы атаки также были реализованы в сети Ethereum, где злоумышленники использовали те же самые действия.
!
Вывод
Ключом к этой атаке стал тот факт, что keeper контракта EthCrossChainData может быть изменён контрактом EthCrossChainManager, а функция verifyHeaderAndExecuteTx последнего может выполнять данные, переданные пользователем. Злоумышленник использовал эту уязвимость, создав специальные данные, и успешно изменил keeper контракта EthCrossChainData, что привело к краже средств.
Это событие еще раз напоминает нам о том, что при проектировании и реализации кросс-чейн протоколов необходимо уделять особое внимание управлению доступом и механизмам безопасности, чтобы предотвратить подобные атаки. Также аудит и обнаружение уязвимостей смарт-контрактов должны быть более полными и глубокими, особенно в функциях, касающихся ключевых ролей и изменений прав.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
19 Лайков
Награда
19
8
Поделиться
комментарий
0/400
DefiPlaybook
· 13ч назад
Еще один смарт-контракт был срублен... кросс-чейн не является ямой?
Посмотреть ОригиналОтветить0
TestnetScholar
· 08-04 02:59
Снова нужно начинать латать дырки, да?
Посмотреть ОригиналОтветить0
SocialAnxietyStaker
· 08-03 15:41
Этот контракт слишком хрупкий 8
Посмотреть ОригиналОтветить0
DeFiVeteran
· 08-03 15:37
Снова обнаружена уязвимость безопасности? На что паниковать?
Poly Network была взломана с помощью уязвимости в контракте EthCrossChainManager, что привело к потере средств
Анализ инцидента с атакой на Poly Network
В последнее время кросс-чейн протокол взаимодействия Poly Network стал жертвой атаки Хакера, что привлекло широкое внимание в отрасли. Команда безопасности провела глубокий анализ этого инцидента, раскрывая конкретные методы и процесс атаки злоумышленника.
Принципы атаки
Суть атаки заключается в использовании уязвимости в контракте EthCrossChainManager. Злоумышленник, используя функцию verifyHeaderAndExecuteTx и передавая тщательно сконструированные данные, успешно изменил keeper контракта EthCrossChainData на указанное адрес. Это противоречит ранее распространенной версии о утечке приватного ключа keeper.
Детали атаки
Функция verifyHeaderAndExecuteTx контракта EthCrossChainManager может выполнять конкретные кросс-чейн транзакции через функцию _executeCrossChainTx.
Владелец контракта EthCrossChainData является контрактом EthCrossChainManager, поэтому последний может вызывать функцию putCurEpochConPubKeyBytes первого для изменения keeper.
Атакующий использует функцию verifyHeaderAndExecuteTx, передавая специализированные данные, чтобы функция _executeCrossChainTx выполнила функцию putCurEpochConPubKeyBytes контракта EthCrossChainData, тем самым изменив keeper на адрес, контролируемый атакующим.
После замены роли keeper, злоумышленник может произвольно создавать транзакции и извлекать любое количество средств из контракта.
Процесс атаки
Атакующий сначала вызывает функцию putCurEpochConPubKeyBytes через функцию verifyHeaderAndExecuteTx контракта EthCrossChainManager, изменяя keeper.
Затем хакер осуществил серию атакующих сделок, чтобы извлечь средства из контракта.
После завершения атаки, из-за того, что keeper был изменен, нормальные транзакции других пользователей были отклонены.
Похожие методы атаки также были реализованы в сети Ethereum, где злоумышленники использовали те же самые действия.
!
Вывод
Ключом к этой атаке стал тот факт, что keeper контракта EthCrossChainData может быть изменён контрактом EthCrossChainManager, а функция verifyHeaderAndExecuteTx последнего может выполнять данные, переданные пользователем. Злоумышленник использовал эту уязвимость, создав специальные данные, и успешно изменил keeper контракта EthCrossChainData, что привело к краже средств.
Это событие еще раз напоминает нам о том, что при проектировании и реализации кросс-чейн протоколов необходимо уделять особое внимание управлению доступом и механизмам безопасности, чтобы предотвратить подобные атаки. Также аудит и обнаружение уязвимостей смарт-контрактов должны быть более полными и глубокими, особенно в функциях, касающихся ключевых ролей и изменений прав.