# Poly Networkのハッキングインシデントの分析最近、クロスチェーン相互運用プロトコルの Poly Network がハッカーの攻撃を受け、広範な関心を集めました。セキュリティチームの分析によれば、今回の攻撃は keeper の秘密鍵の漏洩によるものではなく、攻撃者が巧妙に構築したデータを通じて、契約の脆弱性を利用して EthCrossChainData 契約の keeper アドレスを変更しました。## 攻撃コアこの攻撃の核心は、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数にあります。 この機能は、_executeCrossChainTx機能を通じて特定のクロスチェーントランザクションを実行できます。 EthCrossChainData コントラクトの所有者は EthCrossChainManager コントラクトであるため、後者は EthCrossChainData コントラクトの putCurEpochConPubKeyBytes 関数を呼び出してキーパーを変更する権利があります。攻撃者はこのメカニズムを悪用して、細工されたデータをverifyHeaderAndExecuteTx関数を介して渡し、_executeCrossChainTx関数がEthCrossChainDataコントラクトへのputCurEpochConPubKeyBytes関数呼び出しを実行するようにして、キーパーロールを攻撃者が指定したアドレスに変更します。## 攻撃プロセス1. 攻撃者はまず、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数を通じてputCurEpochConPubKeyBytes関数を呼び出すことにより、キーパーを変更しました。2. keeper 役割のアドレス置き換えを完了すると、攻撃者は自由に取引を構築し、契約から任意の数量の資金を引き出すことができます。3. 攻撃が完了した後、keeperが変更されたため、他のユーザーの正常な取引が拒否されることになります。4. この攻撃パターンはBSCチェーンだけでなく、イーサリアムネットワークでも同様の操作が発生しました。## まとめ今回の攻撃の根本的な原因は、EthCrossChainData コントラクトの keeper が EthCrossChainManager コントラクトによって変更可能であり、さらに EthCrossChainManager コントラクトの verifyHeaderAndExecuteTx 関数がユーザーから渡されたデータを実行できることにあります。攻撃者はこの設計上の欠陥を利用し、特定のデータを構築して EthCrossChainData コントラクトの keeper アドレスを変更しました。これは以前の噂であった keeper の秘密鍵の漏洩ではありません。この事件は再びクロスチェーンプロトコルのセキュリティ設計の重要性と、契約の権限管理に対する厳格な要求を浮き彫りにしました。また、ブロックチェーンエコシステムにおいて、一見無害な機能であっても、悪意を持って利用される可能性があるため、深刻なセキュリティの脆弱性を引き起こす可能性があることを私たちに思い出させています。! [](https://img-cdn.gateio.im/social/moments-c660956f1d8fcf8ee3fea90e7eb2c75f)
Poly Networkがハッカーの攻撃を受ける:契約の脆弱性によりkeeperが改ざんされる
Poly Networkのハッキングインシデントの分析
最近、クロスチェーン相互運用プロトコルの Poly Network がハッカーの攻撃を受け、広範な関心を集めました。セキュリティチームの分析によれば、今回の攻撃は keeper の秘密鍵の漏洩によるものではなく、攻撃者が巧妙に構築したデータを通じて、契約の脆弱性を利用して EthCrossChainData 契約の keeper アドレスを変更しました。
攻撃コア
この攻撃の核心は、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数にあります。 この機能は、_executeCrossChainTx機能を通じて特定のクロスチェーントランザクションを実行できます。 EthCrossChainData コントラクトの所有者は EthCrossChainManager コントラクトであるため、後者は EthCrossChainData コントラクトの putCurEpochConPubKeyBytes 関数を呼び出してキーパーを変更する権利があります。
攻撃者はこのメカニズムを悪用して、細工されたデータをverifyHeaderAndExecuteTx関数を介して渡し、_executeCrossChainTx関数がEthCrossChainDataコントラクトへのputCurEpochConPubKeyBytes関数呼び出しを実行するようにして、キーパーロールを攻撃者が指定したアドレスに変更します。
攻撃プロセス
攻撃者はまず、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数を通じてputCurEpochConPubKeyBytes関数を呼び出すことにより、キーパーを変更しました。
keeper 役割のアドレス置き換えを完了すると、攻撃者は自由に取引を構築し、契約から任意の数量の資金を引き出すことができます。
攻撃が完了した後、keeperが変更されたため、他のユーザーの正常な取引が拒否されることになります。
この攻撃パターンはBSCチェーンだけでなく、イーサリアムネットワークでも同様の操作が発生しました。
まとめ
今回の攻撃の根本的な原因は、EthCrossChainData コントラクトの keeper が EthCrossChainManager コントラクトによって変更可能であり、さらに EthCrossChainManager コントラクトの verifyHeaderAndExecuteTx 関数がユーザーから渡されたデータを実行できることにあります。攻撃者はこの設計上の欠陥を利用し、特定のデータを構築して EthCrossChainData コントラクトの keeper アドレスを変更しました。これは以前の噂であった keeper の秘密鍵の漏洩ではありません。
この事件は再びクロスチェーンプロトコルのセキュリティ設計の重要性と、契約の権限管理に対する厳格な要求を浮き彫りにしました。また、ブロックチェーンエコシステムにおいて、一見無害な機能であっても、悪意を持って利用される可能性があるため、深刻なセキュリティの脆弱性を引き起こす可能性があることを私たちに思い出させています。
!