Poly Networkがハッキングされ、EthCrossChainDataコントラクトの脆弱性が悪用されました

robot
概要作成中

Poly Networkのハッキングインシデントの分析

最近、クロスチェーン相互運用プロトコルのPoly Networkがハッカー攻撃を受け、業界内で広く注目を集めています。セキュリティチームの分析によると、今回の攻撃はkeeperの秘密鍵の漏洩によるものではなく、攻撃者が巧妙に構成したデータによってEthCrossChainData契約のkeeperアドレスを変更したことが原因です。

攻撃コア

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

攻撃者は verifyHeaderAndExecuteTx 関数を利用して、精巧に構築されたデータを渡し、_executeCrossChainTx 関数を呼び出して EthCrossChainData コントラクトの putCurEpochConPubKeyBytes 関数を実行させることで、keeper 役割を攻撃者が指定したアドレスに変更します。このステップを完了すると、攻撃者はトランザクションを構築し、コントラクトから任意の金額の資金を引き出すことができます。

攻撃プロセス

  1. 攻撃者はまず、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数を通じてputCurEpochConPubKeyBytes関数を呼び出すことにより、キーパーを変更しました。

  2. その後、攻撃者は一連の攻撃取引を実施し、契約から資金を引き出しました。

  3. 攻撃が完了した後、keeperが変更されたため、他のユーザーの正常な取引が拒否されました。

  4. この攻撃パターンはBSCだけでなく、イーサリアムネットワークでも類似の操作が発生しています。

!

まとめ

この攻撃の核心は、EthCrossChainData コントラクトのキーパーを EthCrossChainManager コントラクトによって変更でき、後者の verifyHeaderAndExecuteTx 関数が _executeCrossChainTx 関数を通じてユーザーから渡されたデータを実行することです。 攻撃者は、この設計上の脆弱性を悪用して、攻撃の目的を達成するために特定のデータを構築することにより、EthCrossChainDataコントラクトのキーパーアドレスを変更しました。

この事件は再びクロスチェーンプロトコルのセキュリティの重要性を浮き彫りにし、開発者に対してスマートコントラクトを設計する際には特に重要な役割の権限変更機能においてより慎重になる必要があることを思い出させます。また、ユーザーにとっても、クロスチェーンサービスを利用する際には警戒を怠らず、関連するセキュリティの動向に注意を払う必要があります。

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 4
  • 共有
コメント
0/400
LiquidatedAgainvip
· 7時間前
コードの脆弱性の結果は非常に深刻です
原文表示返信0
MoonBoi42vip
· 08-01 16:37
大変だ、大変だ。暗号資産の世界でまた問題が発生した。
原文表示返信0
HackerWhoCaresvip
· 08-01 16:33
やっぱりソースコードを見るべきだね
原文表示返信0
LayerZeroHerovip
· 08-01 16:25
馴染みのあるハッカーの罠
原文表示返信0
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)