Нещодавно кросчейн-протокол Poly Network став мішенню для хакерської атаки, що викликало широкий інтерес в галузі. Експерти з безпеки провели глибокий аналіз цього інциденту, розкривши конкретні методи атаки.
Основна проблема цієї атаки полягає у функції verifyHeaderAndExecuteTx контракту EthCrossChainManager. Ця функція може виконати конкретну кросчейн-транзакцію через функцію _executeCrossChainTx. Оскільки власник контракту EthCrossChainData є контрактом EthCrossChainManager, останній може викликати функцію putCurEpochConPubKeyBytes першого, щоб змінити keeper контракту.
Зловмисники використали цю вразливість дизайну, передавши ретельно підготовлені дані через функцію verifyHeaderAndExecuteTx, що призвело до виклику функції putCurEpochConPubKeyBytes контракту EthCrossChainData через функцію _executeCrossChainTx, таким чином змінивши роль keeper на адресу, вказану зловмисником. Завершивши цей етап, зловмисники можуть вільно формувати транзакції та витягувати будь-яку кількість коштів з контракту.
Конкретний процес атаки наступний:
Зловмисник спочатку зафіксував цільовий контракт.
Через виклик функції verifyHeaderAndExecuteTx контракту EthCrossChainManager змінено keeper, викликавши функцію putCurEpochConPubKeyBytes.
Потім були здійснені кілька атакуючих транзакцій для вилучення коштів з контракту.
Через зміну keeper, звичайні транзакції інших користувачів були відхилені.
Слід зазначити, що цей інцидент не був викликаний витоком приватного ключа keeper, а зловмисник巧妙 використав недоліки у дизайні контракту. Цей випадок ще раз підкреслює важливість безпеки аудиту смарт-контрактів, особливо для складних міжланцюгових протоколів.
Розробницька команда та експерти з безпеки повинні винести уроки з цього інциденту, посилити перевірку управління правами договорів та логіки виклику функцій, щоб запобігти виникненню подібних атак. Водночас, також нагадуємо користувачам бути обережними при використанні нових DeFi протоколів та звертати увагу на запобігання ризикам.
!
Переглянути оригінал
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.
5 лайків
Нагородити
5
3
Поділіться
Прокоментувати
0/400
SerumSquirrel
· 19год тому
Знову в яму потрапив
Переглянути оригіналвідповісти на0
ParanoiaKing
· 19год тому
Цю вразливість безпеки вже багато разів бачили, хто знає, той знає.
Poly Network зазнав атаки хакера: уразливість у дизайні контракту призвела до виведення коштів
Аналіз інциденту атаки на протокол Poly Network
Нещодавно кросчейн-протокол Poly Network став мішенню для хакерської атаки, що викликало широкий інтерес в галузі. Експерти з безпеки провели глибокий аналіз цього інциденту, розкривши конкретні методи атаки.
Основна проблема цієї атаки полягає у функції verifyHeaderAndExecuteTx контракту EthCrossChainManager. Ця функція може виконати конкретну кросчейн-транзакцію через функцію _executeCrossChainTx. Оскільки власник контракту EthCrossChainData є контрактом EthCrossChainManager, останній може викликати функцію putCurEpochConPubKeyBytes першого, щоб змінити keeper контракту.
Зловмисники використали цю вразливість дизайну, передавши ретельно підготовлені дані через функцію verifyHeaderAndExecuteTx, що призвело до виклику функції putCurEpochConPubKeyBytes контракту EthCrossChainData через функцію _executeCrossChainTx, таким чином змінивши роль keeper на адресу, вказану зловмисником. Завершивши цей етап, зловмисники можуть вільно формувати транзакції та витягувати будь-яку кількість коштів з контракту.
Конкретний процес атаки наступний:
Зловмисник спочатку зафіксував цільовий контракт.
Через виклик функції verifyHeaderAndExecuteTx контракту EthCrossChainManager змінено keeper, викликавши функцію putCurEpochConPubKeyBytes.
Потім були здійснені кілька атакуючих транзакцій для вилучення коштів з контракту.
Через зміну keeper, звичайні транзакції інших користувачів були відхилені.
Слід зазначити, що цей інцидент не був викликаний витоком приватного ключа keeper, а зловмисник巧妙 використав недоліки у дизайні контракту. Цей випадок ще раз підкреслює важливість безпеки аудиту смарт-контрактів, особливо для складних міжланцюгових протоколів.
Розробницька команда та експерти з безпеки повинні винести уроки з цього інциденту, посилити перевірку управління правами договорів та логіки виклику функцій, щоб запобігти виникненню подібних атак. Водночас, також нагадуємо користувачам бути обережними при використанні нових DeFi протоколів та звертати увагу на запобігання ризикам.
!