Poly Networkがハッカーの攻撃を受ける:契約設計の欠陥により資金が引き出される

robot
概要作成中

Poly Network プロトコルに対する攻撃の分析

最近、クロスチェーン相互運用プロトコルPoly Networkがハッカー攻撃の標的となり、業界で広く注目を集めました。セキュリティ専門家はこの事件について詳細な分析を行い、攻撃者の具体的な手法を明らかにしました。

この攻撃の核心的な問題は、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数です。 この機能は、_executeCrossChainTx機能を通じて特定のクロスチェーントランザクションを実行できます。 EthCrossChainData コントラクトの所有者は EthCrossChainManager コントラクトであるため、後者は前者の putCurEpochConPubKeyBytes 関数を呼び出すことでコントラクトのキーパーを変更できます。

攻撃者はこの設計上の脆弱性を利用し、verifyHeaderAndExecuteTx関数を通じて慎重に構築されたデータを渡すことで、_executeCrossChainTx関数がEthCrossChainData契約のputCurEpochConPubKeyBytes関数を呼び出すようにしました。その結果、keeperの役割が攻撃者が指定したアドレスに変更されました。このステップを完了すると、攻撃者は自由に取引を構築し、契約から任意の金額を引き出すことができるようになります。

具体的な攻撃プロセスは以下の通りです:

  1. 攻撃者は最初にターゲット契約をロックしました。

  2. キーパーを変更するには、EthCrossChainManager コントラクトの verifyHeaderAndExecuteTx 関数を通じて putCurEpochConPubKeyBytes 関数を呼び出します。

  3. その後、複数の攻撃トランザクションが実施され、契約から資金が引き出されました。

  4. keeperが変更されたため、他のユーザーの正常な取引は即座に拒否されました。

注意すべきは、今回の事件はkeeperのプライベートキーの漏洩によって引き起こされたのではなく、攻撃者が契約設計の欠陥を巧みに利用したということです。このケースは、特に複雑なクロスチェーンプロトコルに関して、スマートコントラクトのセキュリティ監査の重要性を再度強調しています。

開発チームとセキュリティ専門家は、この事件から教訓を得て、契約の権限管理と関数呼び出しロジックの審査を強化し、同様の攻撃の発生を防ぐべきです。また、ユーザーには新興のDeFiプロトコルを使用する際に警戒を怠らず、リスク管理に注意するように促します。

!

原文表示
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.
  • 報酬
  • 6
  • 共有
コメント
0/400
MetaverseMigrantvip
· 07-10 12:43
このバグは私を楽しくさせる~
原文表示返信0
SchroedingerMinervip
· 07-10 09:04
下手で遊ぶのが好き
原文表示返信0
ForkItAllDayvip
· 07-09 17:13
また寝ているのか?
原文表示返信0
SerumSquirrelvip
· 07-07 15:55
また落とし穴にハマった
原文表示返信0
ParanoiaKingvip
· 07-07 15:54
このセキュリティホールはよく見かけるもので、分かる人には分かる。
原文表示返信0
RektButStillHerevip
· 07-07 15:25
良い日々はもういいや
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)