Нещодавно протокол міжланцюгової взаємодії Poly Network зазнав атаки хакера, що викликало широкий резонанс. Команда безпеки після аналізу вважає, що ця атака не була викликана витоком приватного ключа keeper, а зловмисник шляхом ретельно спланованих даних змінив keeper контракту EthCrossChainData на вказану адресу.
Деталі атаки
Ядро атаки полягає в тому, що функція verifyHeaderAndExecuteTx контракту EthCrossChainManager може виконувати міжланцюгові транзакції через функцію _executeCrossChainTx.
Власник контракту EthCrossChainData є контрактом EthCrossChainManager, тому останній може викликати функцію putCurEpochConPubKeyBytes першого, щоб змінити keeper.
Атакуючий передає спеціальні дані через функцію verifyHeaderAndExecuteTx, що призводить до виконання виклику функції putCurEpochConPubKeyBytes контракту EthCrossChainData через функцію _executeCrossChainTx, в результаті чого keeper змінюється на адресу, вказану атакуючим.
Після заміни keeper, зловмисник може вільно конструювати транзакції для виведення будь-якої кількості коштів з контракту.
Процес атаки
Зловмисник спочатку викликає функцію putCurEpochConPubKeyBytes через функцію verifyHeaderAndExecuteTx контракту EthCrossChainManager, щоб змінити keeper.
Потім зловмисник здійснив кілька атакуючих транзакцій, щоб вилучити кошти з контракту.
Через те, що keeper був змінений, це призвело до скасування нормальних транзакцій інших користувачів.
Схожі методи атак також реалізуються в мережі Ethereum.
!
Висновок
Суть цієї атаки полягає в тому, що keeper контракту EthCrossChainData може бути змінений контрактом EthCrossChainManager, а функція verifyHeaderAndExecuteTx останнього може виконувати дані, передані користувачем. Зловмисник скористався цією вразливістю, ретельно сконструювавши дані для зміни keeper, а не через витік приватного ключа keeper, як раніше стверджувалося.
Ця подія ще раз підкреслила важливість безпеки крос-чейн протоколів, нагадуючи розробникам і користувачам про необхідність більш обережного проектування та використання відповідних функцій. Водночас вона також б'є на сполох для всієї галузі, закликаючи до посилення аудиту та запобігання вразливостям смарт-контрактів.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
10 лайків
Нагородити
10
5
Репост
Поділіться
Прокоментувати
0/400
NFTBlackHole
· 08-05 02:09
Це знову типовий випадок, коли вразливість експлуатується.
Аналіз атаки хакера на Poly Network: вразливість контракту призвела до зміни keeper
Аналіз інциденту з атакою хакера на Poly Network
Нещодавно протокол міжланцюгової взаємодії Poly Network зазнав атаки хакера, що викликало широкий резонанс. Команда безпеки після аналізу вважає, що ця атака не була викликана витоком приватного ключа keeper, а зловмисник шляхом ретельно спланованих даних змінив keeper контракту EthCrossChainData на вказану адресу.
Деталі атаки
Ядро атаки полягає в тому, що функція verifyHeaderAndExecuteTx контракту EthCrossChainManager може виконувати міжланцюгові транзакції через функцію _executeCrossChainTx.
Власник контракту EthCrossChainData є контрактом EthCrossChainManager, тому останній може викликати функцію putCurEpochConPubKeyBytes першого, щоб змінити keeper.
Атакуючий передає спеціальні дані через функцію verifyHeaderAndExecuteTx, що призводить до виконання виклику функції putCurEpochConPubKeyBytes контракту EthCrossChainData через функцію _executeCrossChainTx, в результаті чого keeper змінюється на адресу, вказану атакуючим.
Після заміни keeper, зловмисник може вільно конструювати транзакції для виведення будь-якої кількості коштів з контракту.
Процес атаки
Зловмисник спочатку викликає функцію putCurEpochConPubKeyBytes через функцію verifyHeaderAndExecuteTx контракту EthCrossChainManager, щоб змінити keeper.
Потім зловмисник здійснив кілька атакуючих транзакцій, щоб вилучити кошти з контракту.
Через те, що keeper був змінений, це призвело до скасування нормальних транзакцій інших користувачів.
Схожі методи атак також реалізуються в мережі Ethereum.
!
Висновок
Суть цієї атаки полягає в тому, що keeper контракту EthCrossChainData може бути змінений контрактом EthCrossChainManager, а функція verifyHeaderAndExecuteTx останнього може виконувати дані, передані користувачем. Зловмисник скористався цією вразливістю, ретельно сконструювавши дані для зміни keeper, а не через витік приватного ключа keeper, як раніше стверджувалося.
Ця подія ще раз підкреслила важливість безпеки крос-чейн протоколів, нагадуючи розробникам і користувачам про необхідність більш обережного проектування та використання відповідних функцій. Водночас вона також б'є на сполох для всієї галузі, закликаючи до посилення аудиту та запобігання вразливостям смарт-контрактів.