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, як це раніше стверджувалося.
Ця подія ще раз підкреслила важливість безпеки смарт-контрактів, особливо в складних системах, що включають крос-ланцюгові операції. Розробники повинні більш обережно проектувати структуру прав контракту та здійснювати всебічний аудит безпеки, щоб запобігти виникненню подібних атак.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
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, як це раніше стверджувалося.
Ця подія ще раз підкреслила важливість безпеки смарт-контрактів, особливо в складних системах, що включають крос-ланцюгові операції. Розробники повинні більш обережно проектувати структуру прав контракту та здійснювати всебічний аудит безпеки, щоб запобігти виникненню подібних атак.