Poly Network зазнав атаки хакера: ураза контракту EthCrossChainManager призвела до втрати коштів

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

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

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

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

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

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

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

Процес атаки

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

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

  3. Через те, що keeper був змінений, інші користувачі не можуть виконати свої звичайні угоди.

  4. Схожі атаки також проводяться в мережі Ethereum, методи атаки однакові.

!

Висновок

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

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

Переглянути оригінал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Нагородити
  • 5
  • Поділіться
Прокоментувати
0/400
MetaDreamervip
· 07-04 18:08
Ще один пампушок був викрадений.
Переглянути оригіналвідповісти на0
CoffeeNFTsvip
· 07-02 15:50
смартконтракти знову вибухнули? У цей час ще наважуються зберігати монету
Переглянути оригіналвідповісти на0
ShitcoinConnoisseurvip
· 07-02 15:48
Ще один смартконтракт був зламаний
Переглянути оригіналвідповісти на0
LayoffMinervip
· 07-02 15:47
Знову з'явилася вразливість безпеки. Втік, втік.
Переглянути оригіналвідповісти на0
HodlVeteranvip
· 07-02 15:31
Щороку невдахи обдурюються, ми до цього звикли.
Переглянути оригіналвідповісти на0
  • Закріпити