Нещодавно кросчейн-протокол взаємодії Poly Network зазнав атаки від Хакера, що викликало широкий інтерес у галузі. Команда експертів з безпеки провела детальний аналіз цього інциденту і дійшла висновку, що зловмисники не здійснили атаку через витік приватного ключа, а скористалися вразливістю контракту для модифікації ключових параметрів.
Атака ядра
Ключем атаки є функція verifyHeaderAndExecuteTx в контракті EthCrossChainManager. Ця функція може виконати конкретну міжланцюгову транзакцію через функцію _executeCrossChainTx. Оскільки власник контракту EthCrossChainData є контракт EthCrossChainManager, останній має право викликати функцію putCurEpochConPubKeyBytes контракту EthCrossChainData для зміни keeper контракту.
Процес атаки
Атакуючий через функцію verifyHeaderAndExecuteTx передає ретельно сконструйовані дані.
Ці дані викликають виконання функції _executeCrossChainTx, яка викликає функцію putCurEpochConPubKeyBytes контракту EthCrossChainData.
Ця операція змінить роль keeper на адресу, вказану атакуючим.
Після завершення заміни keeper, зловмисник може створити транзакцію та витягти будь-яку кількість коштів з контракту.
Вплив атаки
Після атаки, через зміни в keeper, було відмовлено у виконанні звичайних транзакцій інших користувачів. Ця проблема вплинула не лише на мережу BSC, але й у мережі Ethereum спостерігалися схожі моделі атак.
Роздуми про подію
Ця подія виявила потенційні ризики в дизайні смарт-контрактів. Ключовим моментом є те, що keeper контракту EthCrossChainData може бути змінений контрактом EthCrossChainManager, який, у свою чергу, дозволяє виконувати дані, введені користувачем. Такий дизайн надає можливість для атаки.
В майбутньому подібні проєкти під час розробки механізмів кросчейн-взаємодії повинні більш уважно враховувати питання управління правами та верифікації даних. Посилення безпечної ізоляції між контрактами, обмеження умов виконання чутливих операцій – це напрямки, які варто розглянути для покращення.
Цей напад ще раз нагадує нам, що в екосистемі блокчейну безпека завжди є пріоритетним фактором. Постійно вдосконалювані механізми безпеки та оцінки ризиків є вкрай важливими для підтримки здорового розвитку всієї екосистеми.
!
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
7 лайків
Нагородити
7
5
Репост
Поділіться
Прокоментувати
0/400
MemecoinTrader
· 10год тому
аматорські експлуатації такі 2021... справжній альфа зараз у соціальному арбітражі настроїв
Розкриття інциденту атаки хакера Poly Network: вразливість контракту призвела до зміни keeper
Аналіз інциденту з атакою хакера на Poly Network
Нещодавно кросчейн-протокол взаємодії Poly Network зазнав атаки від Хакера, що викликало широкий інтерес у галузі. Команда експертів з безпеки провела детальний аналіз цього інциденту і дійшла висновку, що зловмисники не здійснили атаку через витік приватного ключа, а скористалися вразливістю контракту для модифікації ключових параметрів.
Атака ядра
Ключем атаки є функція verifyHeaderAndExecuteTx в контракті EthCrossChainManager. Ця функція може виконати конкретну міжланцюгову транзакцію через функцію _executeCrossChainTx. Оскільки власник контракту EthCrossChainData є контракт EthCrossChainManager, останній має право викликати функцію putCurEpochConPubKeyBytes контракту EthCrossChainData для зміни keeper контракту.
Процес атаки
Атакуючий через функцію verifyHeaderAndExecuteTx передає ретельно сконструйовані дані.
Ці дані викликають виконання функції _executeCrossChainTx, яка викликає функцію putCurEpochConPubKeyBytes контракту EthCrossChainData.
Ця операція змінить роль keeper на адресу, вказану атакуючим.
Після завершення заміни keeper, зловмисник може створити транзакцію та витягти будь-яку кількість коштів з контракту.
Вплив атаки
Після атаки, через зміни в keeper, було відмовлено у виконанні звичайних транзакцій інших користувачів. Ця проблема вплинула не лише на мережу BSC, але й у мережі Ethereum спостерігалися схожі моделі атак.
Роздуми про подію
Ця подія виявила потенційні ризики в дизайні смарт-контрактів. Ключовим моментом є те, що keeper контракту EthCrossChainData може бути змінений контрактом EthCrossChainManager, який, у свою чергу, дозволяє виконувати дані, введені користувачем. Такий дизайн надає можливість для атаки.
В майбутньому подібні проєкти під час розробки механізмів кросчейн-взаємодії повинні більш уважно враховувати питання управління правами та верифікації даних. Посилення безпечної ізоляції між контрактами, обмеження умов виконання чутливих операцій – це напрямки, які варто розглянути для покращення.
Цей напад ще раз нагадує нам, що в екосистемі блокчейну безпека завжди є пріоритетним фактором. Постійно вдосконалювані механізми безпеки та оцінки ризиків є вкрай важливими для підтримки здорового розвитку всієї екосистеми.
!