Аналіз інциденту атаки Хакера на протокол Poly Network
Нещодавно міжланкова взаємодія прото́колу Poly Network зазнала атаки Хакера, що викликало широкий інтерес у галузі. Команда безпеки провела глибокий аналіз цього інциденту і вважає, що зловмисник за допомогою майстерного конструювання даних змінив адресу keeper контракту EthCrossChainData, а не через раніше поширювані чутки про витік приватного ключа keeper.
Атака ядра
Ключ атаки полягає в функції verifyHeaderAndExecuteTx контракту EthCrossChainManager. Ця функція може виконати певну крос-чейн транзакцію через функцію _executeCrossChainTx. Оскільки власник контракту EthCrossChainData є контрактом EthCrossChainManager, останній може викликати функцію putCurEpochConPubKeyBytes першого, щоб змінити keeper контракту.
Зловмисник використовує функцію verifyHeaderAndExecuteTx, передаючи ретельно спроектовані дані, що призводить до виклику функції putCurEpochConPubKeyBytes контракту EthCrossChainData функцією _executeCrossChainTx, в результаті чого роль keeper змінюється на адресу, вказану зловмисником. Завершивши цей етап, зловмисник може вільно конструювати транзакції та виводити будь-яку кількість коштів з контракту.
Процес атаки
Атакуючий спочатку через функцію verifyHeaderAndExecuteTx контракту EthCrossChainManager викликав функцію putCurEpochConPubKeyBytes, змінивши keeper.
Потім хакер почав здійснювати серію атакуючих транзакцій, щоб вивести кошти з контракту.
Через зміни в keeper, інші користувачі не можуть виконати свої нормальні транзакції.
Схожі методи атак також були застосовані в мережі Ethereum.
!
Висновок
Корінна причина цієї атаки полягає в тому, що keeper контракту EthCrossChainData може бути змінений контрактом EthCrossChainManager, а функція verifyHeaderAndExecuteTx останнього може виконувати дані, передані користувачем. Зловмисник скористався цією вразливістю, сконструювавши певні дані, успішно змінив адресу keeper контракту EthCrossChainData. Це відкриття спростувало попередні помилкові чутки про витік приватного ключа keeper.
Ця подія ще раз підкреслила важливість безпеки крос-чейн протоколів. Для складних систем смарт-контрактів, особливо для проектів, що включають крос-чейн операції, необхідні більш суворі заходи безпеки та оцінка ризиків. Водночас, це також нагадує розробникам блокчейн проектів бути особливо уважними до управління правами доступу та перевірки даних, щоб запобігти використанню подібних вразливостей у безпеці.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
17 лайків
Нагородити
17
5
Репост
Поділіться
Прокоментувати
0/400
failed_dev_successful_ape
· 08-15 16:03
gg старий товариш був закутий у ланцюги
Переглянути оригіналвідповісти на0
OnChainArchaeologist
· 08-15 16:03
Вкрадених грошей занадто багато, тікаю, тікаю.
Переглянути оригіналвідповісти на0
retroactive_airdrop
· 08-15 16:01
Цілий день під атаками.
Переглянути оригіналвідповісти на0
TeaTimeTrader
· 08-15 15:48
Не прикидайся, всі ми знаємо, що ти зрадник.
Переглянути оригіналвідповісти на0
DeadTrades_Walking
· 08-15 15:43
смартконтракти також не мають сенсу, щодня їх ламають.
Розкриття причин атаки на Poly Network: було змінено keeper контракту EthCrossChainData.
Аналіз інциденту атаки Хакера на протокол Poly Network
Нещодавно міжланкова взаємодія прото́колу Poly Network зазнала атаки Хакера, що викликало широкий інтерес у галузі. Команда безпеки провела глибокий аналіз цього інциденту і вважає, що зловмисник за допомогою майстерного конструювання даних змінив адресу keeper контракту EthCrossChainData, а не через раніше поширювані чутки про витік приватного ключа keeper.
Атака ядра
Ключ атаки полягає в функції verifyHeaderAndExecuteTx контракту EthCrossChainManager. Ця функція може виконати певну крос-чейн транзакцію через функцію _executeCrossChainTx. Оскільки власник контракту EthCrossChainData є контрактом EthCrossChainManager, останній може викликати функцію putCurEpochConPubKeyBytes першого, щоб змінити keeper контракту.
Зловмисник використовує функцію verifyHeaderAndExecuteTx, передаючи ретельно спроектовані дані, що призводить до виклику функції putCurEpochConPubKeyBytes контракту EthCrossChainData функцією _executeCrossChainTx, в результаті чого роль keeper змінюється на адресу, вказану зловмисником. Завершивши цей етап, зловмисник може вільно конструювати транзакції та виводити будь-яку кількість коштів з контракту.
Процес атаки
Атакуючий спочатку через функцію verifyHeaderAndExecuteTx контракту EthCrossChainManager викликав функцію putCurEpochConPubKeyBytes, змінивши keeper.
Потім хакер почав здійснювати серію атакуючих транзакцій, щоб вивести кошти з контракту.
Через зміни в keeper, інші користувачі не можуть виконати свої нормальні транзакції.
Схожі методи атак також були застосовані в мережі Ethereum.
!
Висновок
Корінна причина цієї атаки полягає в тому, що keeper контракту EthCrossChainData може бути змінений контрактом EthCrossChainManager, а функція verifyHeaderAndExecuteTx останнього може виконувати дані, передані користувачем. Зловмисник скористався цією вразливістю, сконструювавши певні дані, успішно змінив адресу keeper контракту EthCrossChainData. Це відкриття спростувало попередні помилкові чутки про витік приватного ключа keeper.
Ця подія ще раз підкреслила важливість безпеки крос-чейн протоколів. Для складних систем смарт-контрактів, особливо для проектів, що включають крос-чейн операції, необхідні більш суворі заходи безпеки та оцінка ризиків. Водночас, це також нагадує розробникам блокчейн проектів бути особливо уважними до управління правами доступу та перевірки даних, щоб запобігти використанню подібних вразливостей у безпеці.