Нещодавно крос-чейнова протокол взаємодії Poly Network зазнав атаки хакера, що викликало широке обговорення в галузі. Команда експертів з безпеки провела глибокий аналіз цього інциденту і вважає, що зловмисник не здійснив атаку через витік приватного ключа, а скористався вразливістю контракту для зміни ключових параметрів.
Атака ядра
Атакуючи через функцію verifyHeaderAndExecuteTx контракту EthCrossChainManager, передавши ретельно підготовлені дані, успішно змінили адресу keeper контракту EthCrossChainData. Ця операція надала атакуючому можливість отримати доступ до коштів контракту.
Деталі атаки
Ключ до атаки полягає в тому, що функція verifyHeaderAndExecuteTx контракту EthCrossChainManager може виконувати певні крос-чейн транзакції через функцію _executeCrossChainTx.
Власник контракту EthCrossChainData є контракт EthCrossChainManager, тому останній може викликати функцію putCurEpochConPubKeyBytes першого для зміни keeper.
Зловмисник використовує функцію verifyHeaderAndExecuteTx, передаючи спеціально підготовлені дані, що призвело до виконання функції _executeCrossChainTx, яка змінила адресу keeper.
Після успішної заміни адреси keeper, зловмисник може створити транзакцію, щоб вилучити будь-яку кількість коштів з контракту.
Процес атаки
Атакуючий спочатку через функцію verifyHeaderAndExecuteTx контракту EthCrossChainManager викликав функцію putCurEpochConPubKeyBytes, змінивши keeper.
Потім зловмисник скористався новими правами keeper і здійснив кілька операцій з виведення коштів.
Після завершення атаки, через те, що keeper був змінений, інші користувачі не змогли виконати свої нормальні транзакції.
Схожі моделі атак також відтворюються в мережі Ethereum.
!
Висновок
Суть атаки полягає в тому, що keeper контракту EthCrossChainData може бути змінений контрактом EthCrossChainManager, а функція verifyHeaderAndExecuteTx останнього може виконувати дані, передані користувачем. Зловмисник скористався цим механізмом, успішно змінивши адресу keeper, шляхом побудови специфічних даних, і таким чином отримав контроль над коштами контракту.
Ця подія ще раз підкреслила важливість аудиту безпеки смарт-контрактів, особливо в складних сценаріях, таких як крос-ланцюгові операції, де необхідно проводити всебічну і ретельну перевірку логіки контракту, щоб уникнути потенційних ризиків безпеки.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
15 лайків
Нагородити
15
7
Поділіться
Прокоментувати
0/400
GmGnSleeper
· 07-15 15:01
Урази є всюди, краще вже поспати.
Переглянути оригіналвідповісти на0
CryptoAdventurer
· 07-15 15:01
Ще одна хвиля невдах сплатила навчання.
Переглянути оригіналвідповісти на0
BearMarketSurvivor
· 07-15 15:00
Ще одна фінансова піраміда вибухнула
Переглянути оригіналвідповісти на0
BlockchainFoodie
· 07-15 14:51
смакує як погано приготований суп зі смарт-контрактів... потребує більше приправи безпеки fr
Аналіз атаки хакера на Poly Network: вразливість контракту призвела до крадіжки коштів у крос-ланцюг.
Аналіз інциденту з атакою на Poly Network Хакер
Нещодавно крос-чейнова протокол взаємодії Poly Network зазнав атаки хакера, що викликало широке обговорення в галузі. Команда експертів з безпеки провела глибокий аналіз цього інциденту і вважає, що зловмисник не здійснив атаку через витік приватного ключа, а скористався вразливістю контракту для зміни ключових параметрів.
Атака ядра
Атакуючи через функцію verifyHeaderAndExecuteTx контракту EthCrossChainManager, передавши ретельно підготовлені дані, успішно змінили адресу keeper контракту EthCrossChainData. Ця операція надала атакуючому можливість отримати доступ до коштів контракту.
Деталі атаки
Ключ до атаки полягає в тому, що функція verifyHeaderAndExecuteTx контракту EthCrossChainManager може виконувати певні крос-чейн транзакції через функцію _executeCrossChainTx.
Власник контракту EthCrossChainData є контракт EthCrossChainManager, тому останній може викликати функцію putCurEpochConPubKeyBytes першого для зміни keeper.
Зловмисник використовує функцію verifyHeaderAndExecuteTx, передаючи спеціально підготовлені дані, що призвело до виконання функції _executeCrossChainTx, яка змінила адресу keeper.
Після успішної заміни адреси keeper, зловмисник може створити транзакцію, щоб вилучити будь-яку кількість коштів з контракту.
Процес атаки
Атакуючий спочатку через функцію verifyHeaderAndExecuteTx контракту EthCrossChainManager викликав функцію putCurEpochConPubKeyBytes, змінивши keeper.
Потім зловмисник скористався новими правами keeper і здійснив кілька операцій з виведення коштів.
Після завершення атаки, через те, що keeper був змінений, інші користувачі не змогли виконати свої нормальні транзакції.
Схожі моделі атак також відтворюються в мережі Ethereum.
!
Висновок
Суть атаки полягає в тому, що keeper контракту EthCrossChainData може бути змінений контрактом EthCrossChainManager, а функція verifyHeaderAndExecuteTx останнього може виконувати дані, передані користувачем. Зловмисник скористався цим механізмом, успішно змінивши адресу keeper, шляхом побудови специфічних даних, і таким чином отримав контроль над коштами контракту.
Ця подія ще раз підкреслила важливість аудиту безпеки смарт-контрактів, особливо в складних сценаріях, таких як крос-ланцюгові операції, де необхідно проводити всебічну і ретельну перевірку логіки контракту, щоб уникнути потенційних ризиків безпеки.