Аналіз вразливостей безпеки Poly Network: як зловмисники використовують вразливості контрактів для підміни прав
Нещодавно міжланкова протокол взаємодії Poly Network зазнав значної безпекової події, що викликало широку увагу в галузі. Згідно з аналізом експертів з безпеки, ця атака не була викликана витоком приватного ключа, а зловмисники вміло використали вразливість у смарт-контракті.
Суть події полягає в тому, що в контракті EthCrossChainManager є конструктивний дефект у функції verifyHeaderAndExecuteTx. Ця функція може виконати вказану користувачем міжланкову транзакцію через внутрішню функцію _executeCrossChainTx. Зловмисник скористався цим, сконструювавши певні дані, що призвело до виклику функції putCurEpochConPubKeyBytes контракту EthCrossChainData через функцію _executeCrossChainTx, що дозволило змінити роль keeper на адресу, контрольовану зловмисником.
Конкретний процес атаки виглядає так:
Зловмисник спочатку викликає функцію verifyHeaderAndExecuteTx контракту EthCrossChainManager, передаючи ретельно сконструйовані дані.
Ця функція виконує _executeCrossChainTx, що, у свою чергу, викликає функцію putCurEpochConPubKeyBytes контракту EthCrossChainData.
функція putCurEpochConPubKeyBytes виконується, змінюючи адресу ролі keeper на адресу, вказану зловмисником.
Після заміни keeper, зловмисник отримав права на виконання операцій і може вільно створювати транзакції для вилучення коштів з контракту.
Після завершення атаки, через те, що keeper був змінений, звичайні транзакції інших користувачів почали відхилятися.
Цей метод атаки був використаний як на BSC, так і на блокчейні Ethereum. Ключ до атаки полягає в тому, що keeper контракту EthCrossChainData може бути змінений контрактом EthCrossChainManager, який, в свою чергу, дозволяє виконувати будь-які дані, передані користувачем. Такий дизайн містить серйозні загрози безпеці, надаючи злочинцям можливості для атаки.
!
Ця подія ще раз підкреслює, що безпека смарт-контрактів має вирішальне значення. Команда розробників при проектуванні контракту повинна ретельно враховувати різні сценарії атак, суворо обмежувати права доступу до ключових функцій та проводити повний аудит безпеки. Водночас децентралізовані проекти також повинні створити більш完善ний механізм управління для реагування на надзвичайні ситуації.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
13 лайків
Нагородити
13
7
Поділіться
Прокоментувати
0/400
airdrop_whisperer
· 44хв. тому
Знову вразливість смартконтрактів
Переглянути оригіналвідповісти на0
blocksnark
· 07-18 15:43
Знову це провина смартконтрактів
Переглянути оригіналвідповісти на0
NFT_Therapy
· 07-18 15:40
典中典, ще один смартконтракт провал
Переглянути оригіналвідповісти на0
BTCRetirementFund
· 07-18 15:37
Знову контракт виявився зламаним?
Переглянути оригіналвідповісти на0
MemeKingNFT
· 07-18 15:33
Ще один день, коли нас відвідав божественний крадій. Світ, як великі хвилі, вибирає пісок, дивлячись, чиї контракти ще мають дірки.
Аналіз вразливостей смартконтрактів Poly Network: як зловмисники маніпулюють роллю keeper для отримання коштів
Аналіз вразливостей безпеки Poly Network: як зловмисники використовують вразливості контрактів для підміни прав
Нещодавно міжланкова протокол взаємодії Poly Network зазнав значної безпекової події, що викликало широку увагу в галузі. Згідно з аналізом експертів з безпеки, ця атака не була викликана витоком приватного ключа, а зловмисники вміло використали вразливість у смарт-контракті.
Суть події полягає в тому, що в контракті EthCrossChainManager є конструктивний дефект у функції verifyHeaderAndExecuteTx. Ця функція може виконати вказану користувачем міжланкову транзакцію через внутрішню функцію _executeCrossChainTx. Зловмисник скористався цим, сконструювавши певні дані, що призвело до виклику функції putCurEpochConPubKeyBytes контракту EthCrossChainData через функцію _executeCrossChainTx, що дозволило змінити роль keeper на адресу, контрольовану зловмисником.
Конкретний процес атаки виглядає так:
Зловмисник спочатку викликає функцію verifyHeaderAndExecuteTx контракту EthCrossChainManager, передаючи ретельно сконструйовані дані.
Ця функція виконує _executeCrossChainTx, що, у свою чергу, викликає функцію putCurEpochConPubKeyBytes контракту EthCrossChainData.
функція putCurEpochConPubKeyBytes виконується, змінюючи адресу ролі keeper на адресу, вказану зловмисником.
Після заміни keeper, зловмисник отримав права на виконання операцій і може вільно створювати транзакції для вилучення коштів з контракту.
Після завершення атаки, через те, що keeper був змінений, звичайні транзакції інших користувачів почали відхилятися.
Цей метод атаки був використаний як на BSC, так і на блокчейні Ethereum. Ключ до атаки полягає в тому, що keeper контракту EthCrossChainData може бути змінений контрактом EthCrossChainManager, який, в свою чергу, дозволяє виконувати будь-які дані, передані користувачем. Такий дизайн містить серйозні загрози безпеці, надаючи злочинцям можливості для атаки.
!
Ця подія ще раз підкреслює, що безпека смарт-контрактів має вирішальне значення. Команда розробників при проектуванні контракту повинна ретельно враховувати різні сценарії атак, суворо обмежувати права доступу до ключових функцій та проводити повний аудит безпеки. Водночас децентралізовані проекти також повинні створити більш完善ний механізм управління для реагування на надзвичайні ситуації.