Poly Network зазнав хакерської атаки, keeper був змінений, що призвело до втрати коштів.

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

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

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

Деталі атаки

  1. Ядро атаки полягає в тому, що функція verifyHeaderAndExecuteTx контракту EthCrossChainManager може виконувати міжланцюгові транзакції через функцію _executeCrossChainTx.

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

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

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

Процес атаки

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

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

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

  4. Схожі моделі атак також з'явилися в мережі Ethereum, зловмисники використовували ті ж методи для зміни keeper та реалізації атак.

!

Підсумок

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

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 4
  • Поділіться
Прокоментувати
0/400
RugPullAlarmvip
· 07-20 15:15
Чисті дані у блокчейні говорять, не втрачаючи великі гроші
Переглянути оригіналвідповісти на0
SchrodingerAirdropvip
· 07-20 15:11
Знову сталася подія безпеки, а? Ха-ха
Переглянути оригіналвідповісти на0
MetaDreamervip
· 07-20 14:50
Знову kp підвели. Коли це закінчиться?
Переглянути оригіналвідповісти на0
GasFeeLadyvip
· 07-20 14:47
smh... компроміс з хранителем просто чекав, щоб статися, якщо чесно. потрібно перевірити ці точки входу
Переглянути оригіналвідповісти на0
  • Закріпити