Poly Network зазнав хакерської атаки: аналіз виявив деталі атаки
Нещодавно крос-ланцюговий протокол взаємодії Poly Network зазнав атаки хакера, що викликало широкий інтерес у галузі. Команда безпеки провела детальний аналіз цієї події, виявивши конкретні методи атакуючого.
Атака ядра
Аналіз показує, що основа цієї атаки полягає у функції verifyHeaderAndExecuteTx в контракті EthCrossChainManager. Ця функція може виконувати конкретні крос-чейн транзакції через функцію _executeCrossChainTx. Зловмисник скористався цим механізмом, хитро змінивши ключову роль keeper у системі.
Деталі атаки
Власником контракту EthCrossChainData є контракт EthCrossChainManager. Це дозволяє останньому викликати функцію putCurEpochConPubKeyBytes першого, змінюючи keeper контракту.
функція verifyHeaderAndExecuteTx може виконати вказану користувачем міжланцюгову транзакцію через внутрішній виклик функції _executeCrossChainTx.
Атакуючий через функцію verifyHeaderAndExecuteTx передає ретельно сконструйовані дані, що змушує функцію _executeCrossChainTx викликати функцію putCurEpochConPubKeyBytes контракту EthCrossChainData, в результаті чого роль keeper змінюється на адресу, вказану атакуючим.
Після успішної заміни адреси ролі keeper, зловмисник може вільно створювати транзакції та витягувати будь-яку кількість коштів з контракту.
!
Вплив атаки
Після завершення атаки, через зміни в keeper, інші користувачі не змогли виконати свої нормальні транзакції. Ця атака вплинула не лише на ланцюг BSC, але й подібні дії відбулися в мережі Ethereum.
Висновок
Основна причина атаки полягає в тому, що keeper контракту EthCrossChainData може бути змінений контрактом EthCrossChainManager, а функція verifyHeaderAndExecuteTx останнього може виконувати дані, які передані користувачем. Зловмисник скористався цим проектним недоліком, сконструювавши спеціальні дані для зміни keeper, а не через витік приватного ключа keeper, як це раніше стверджувалося.
Ця подія ще раз підкреслила важливість безпеки смарт-контрактів, особливо в складних системах, що включають крос-ланцюгові операції. Розробники повинні більш обережно проектувати структуру прав контракту та здійснювати всебічний аудит безпеки, щоб запобігти виникненню подібних атак.
Переглянути оригінал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
7 лайків
Нагородити
7
4
Поділіться
Прокоментувати
0/400
WealthCoffee
· 07-04 02:21
Занадто багато вразливостей у контрактах, чи не так??
Переглянути оригіналвідповісти на0
LayerZeroHero
· 07-03 15:57
Знову на місці великих втрат
Переглянути оригіналвідповісти на0
LiquidityWizard
· 07-03 15:53
rekt af... статистично кажучи, крос-ланцюг вразливості були на 73,4% передбачувані
Деталі атаки хакера на Poly Network: вразливість EthCrossChainManager стала ключовою
Poly Network зазнав хакерської атаки: аналіз виявив деталі атаки
Нещодавно крос-ланцюговий протокол взаємодії Poly Network зазнав атаки хакера, що викликало широкий інтерес у галузі. Команда безпеки провела детальний аналіз цієї події, виявивши конкретні методи атакуючого.
Атака ядра
Аналіз показує, що основа цієї атаки полягає у функції verifyHeaderAndExecuteTx в контракті EthCrossChainManager. Ця функція може виконувати конкретні крос-чейн транзакції через функцію _executeCrossChainTx. Зловмисник скористався цим механізмом, хитро змінивши ключову роль keeper у системі.
Деталі атаки
Власником контракту EthCrossChainData є контракт EthCrossChainManager. Це дозволяє останньому викликати функцію putCurEpochConPubKeyBytes першого, змінюючи keeper контракту.
функція verifyHeaderAndExecuteTx може виконати вказану користувачем міжланцюгову транзакцію через внутрішній виклик функції _executeCrossChainTx.
Атакуючий через функцію verifyHeaderAndExecuteTx передає ретельно сконструйовані дані, що змушує функцію _executeCrossChainTx викликати функцію putCurEpochConPubKeyBytes контракту EthCrossChainData, в результаті чого роль keeper змінюється на адресу, вказану атакуючим.
Після успішної заміни адреси ролі keeper, зловмисник може вільно створювати транзакції та витягувати будь-яку кількість коштів з контракту.
!
Вплив атаки
Після завершення атаки, через зміни в keeper, інші користувачі не змогли виконати свої нормальні транзакції. Ця атака вплинула не лише на ланцюг BSC, але й подібні дії відбулися в мережі Ethereum.
Висновок
Основна причина атаки полягає в тому, що keeper контракту EthCrossChainData може бути змінений контрактом EthCrossChainManager, а функція verifyHeaderAndExecuteTx останнього може виконувати дані, які передані користувачем. Зловмисник скористався цим проектним недоліком, сконструювавши спеціальні дані для зміни keeper, а не через витік приватного ключа keeper, як це раніше стверджувалося.
Ця подія ще раз підкреслила важливість безпеки смарт-контрактів, особливо в складних системах, що включають крос-ланцюгові операції. Розробники повинні більш обережно проектувати структуру прав контракту та здійснювати всебічний аудит безпеки, щоб запобігти виникненню подібних атак.