Глибокий аналіз хакерської атаки Poly Network: ролі keeper контракту EthCrossChainData були підмінені

robot
Генерація анотацій у процесі

Детальний аналіз атаки на Poly Network

Нещодавно кросчейн-протокол взаємодії Poly Network зазнав атаки хакера, що викликало широку увагу. Команда з безпеки провела глибокий аналіз цього інциденту і вважає, що зловмисник змінив роль keeper контракту EthCrossChainData за допомогою ретельно сконструйованих даних, а не через витік приватного ключа keeper, як було раніше повідомлено.

Атакувати ядро

Ключ атаки полягає в тому, що функція verifyHeaderAndExecuteTx контракту EthCrossChainManager може виконувати певні міжланцюгові транзакції через функцію _executeCrossChainTx. Оскільки власник контракту EthCrossChainData є контрактом EthCrossChainManager, останній може викликати функцію putCurEpochConPubKeyBytes контракту EthCrossChainData для зміни keeper контракту.

Зловмисник може просто передати ретельно спроектовані дані через функцію verifyHeaderAndExecuteTx, щоб викликати функцію putCurEpochConPubKeyBytes контракту EthCrossChainData, що дозволяє змінити роль keeper на адресу, вказану зловмисником. Після завершення заміни адреси ролі keeper, зловмисник може вільно створювати транзакції та витягувати будь-яку кількість коштів з контракту.

Процес атаки

  1. Атакуючий спочатку викликає функцію putCurEpochConPubKeyBytes через функцію verifyHeaderAndExecuteTx контракту EthCrossChainManager, змінюючи роль keeper.

  2. Потім зловмисник почав здійснювати серію атакуючих транзакцій, витягуючи кошти з контракту.

  3. Після завершення атаки, через зміну keeper, інші користувачі не можуть виконати свої нормальні транзакції.

  4. Схожі методи атаки також були реалізовані в мережі Ethereum, процес схожий на атаки в BSC.

!

Висновок

Причина цієї атаки полягає в тому, що keeper контракту EthCrossChainData може бути змінений контрактом EthCrossChainManager, а функція verifyHeaderAndExecuteTx контракту EthCrossChainManager може виконувати дані, введені користувачем, через функцію _executeCrossChainTx. Зловмисник використав цей вразливість, створивши специфічні дані, успішно змінив keeper контракту EthCrossChainData на адресу, якою він контролює, що дозволило йому незаконно вилучити кошти з контракту.

Ця подія ще раз підкреслила важливість аудиту безпеки смарт-контрактів, особливо в складних системах, що стосуються крос-ланцюгових операцій та управління ключовими ролями. Команди розробників повинні більш обережно проектувати та реалізовувати механізми управління правами контракту, щоб запобігти використанню подібних вразливостей безпеки.

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 4
  • Поділіться
Прокоментувати
0/400
ChainWanderingPoetvip
· 14год тому
Знову зламали? Контракт все ще можна підтримувати
Переглянути оригіналвідповісти на0
OfflineValidatorvip
· 14год тому
Ще одна вразливість була виявлена.
Переглянути оригіналвідповісти на0
Rugpull幸存者vip
· 15год тому
Знову придавлений до землі.
Переглянути оригіналвідповісти на0
airdrop_huntressvip
· 15год тому
Знову проблема з контрактом. Це все?
Переглянути оригіналвідповісти на0
  • Закріпити