Poly Network зазнав хакерської атаки через вразливість контракту EthCrossChainManager, що призвело до втрати коштів

robot
Генерація анотацій у процесі

Аналіз інциденту з атакою на Poly Network Хакер

Нещодавно кросчейн-протокол Poly Network зазнав атаки хакера, що викликало широкий інтерес у галузі. Команда безпеки провела глибокий аналіз цього інциденту, розкривши конкретні методи та процес атаки зловмисника.

Принцип атаки

Ядром атаки є використання уразливості в контракті EthCrossChainManager. Зловмисник через функцію verifyHeaderAndExecuteTx, передаючи ретельно сконструйовані дані, успішно змінив keeper контракту EthCrossChainData на вказану адресу. Це не відповідає раніше поширюваній версії про витік приватного ключа keeper.

Деталі атаки

  1. Функція verifyHeaderAndExecuteTx контракту EthCrossChainManager може виконати конкретну кросчейн-транзакцію через функцію _executeCrossChainTx.

  2. Власник контракту EthCrossChainData є контрактом EthCrossChainManager, тому останній може викликати функцію putCurEpochConPubKeyBytes першого для зміни keeper.

  3. Атакуючий використовує функцію verifyHeaderAndExecuteTx, передаючи спеціально підготовлені дані, щоб функція _executeCrossChainTx виконала функцію putCurEpochConPubKeyBytes контракту EthCrossChainData, таким чином змінюючи keeper на адресу, контрольовану атакуючим.

  4. Після заміни ролі keeper, атакуючий може вільно створювати транзакції та витягувати будь-яку кількість коштів з контракту.

Процес атаки

  1. Атакуючий спочатку через функцію verifyHeaderAndExecuteTx контракту EthCrossChainManager викликав функцію putCurEpochConPubKeyBytes, змінивши keeper.

  2. Потім зловмисник здійснив серію атакуючих транзакцій, щоб витягти кошти з контракту.

  3. Після завершення атаки, через те, що keeper був змінений, нормальні транзакції інших користувачів були відхилені.

  4. Схожі методи атак також були реалізовані в мережі Ethereum, зловмисники використовували ті ж операційні кроки.

!

Висновок

Ключем до цього нападу є те, що keeper контракту EthCrossChainData може бути змінений контрактом EthCrossChainManager, а функція verifyHeaderAndExecuteTx останнього може виконувати дані, передані користувачем. Атакуючий скористався цією вразливістю, шляхом конструкції специфічних даних, успішно змінив keeper контракту EthCrossChainData, що в свою чергу призвело до викрадення коштів.

Ця подія ще раз нагадує нам, що при проектуванні та реалізації міжланцюгових протоколів необхідно особливо уважно ставитися до управління правами доступу та механізмів безпеки, щоб запобігти виникненню подібних атак. Крім того, аудит смарт-контрактів та виявлення вразливостей повинні бути більш всебічними та глибокими, особливо у функціях, що стосуються ключових ролей та змін прав доступу.

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 7
  • Поділіться
Прокоментувати
0/400
TestnetScholarvip
· 08-04 02:59
Знову потрібно почати латати дірки, так?
Переглянути оригіналвідповісти на0
SocialAnxietyStakervip
· 08-03 15:41
Цей контракт занадто крихкий 8
Переглянути оригіналвідповісти на0
DeFiVeteranvip
· 08-03 15:37
Знову безпековий пролом? Чого панікувати?
Переглянути оригіналвідповісти на0
ChainMaskedRidervip
· 08-03 15:36
Знову час обдурювати людей, як лохів~
Переглянути оригіналвідповісти на0
Fren_Not_Foodvip
· 08-03 15:22
Знову один смартконтракт був зламаний
Переглянути оригіналвідповісти на0
DiamondHandsvip
· 08-03 15:15
І знову чорний, але не так чорний, як треба, курча
Переглянути оригіналвідповісти на0
ser_we_are_earlyvip
· 08-03 15:14
Ще одна можливість заробити, лежачи?
Переглянути оригіналвідповісти на0
  • Закріпити