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.
Poly Networkがハッキングされました:EthCrossChainManager契約の脆弱性により資金が失われる
Poly Networkのハッキングの分析
最近、クロスチェーン相互運用プロトコルのPoly Networkがハッカーによる攻撃を受け、広く注目を集めています。セキュリティチームの分析によると、今回の攻撃はkeeperの秘密鍵の漏洩によるものではなく、攻撃者が巧妙に構成したデータを使用して、契約の脆弱性を利用してEthCrossChainData契約のkeeperアドレスを変更したとのことです。
攻撃の原則
この攻撃の中心にあるのは、クロスチェーントランザクションを実行できるEthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数です。 EthCrossChainData コントラクトの所有者は EthCrossChainManager コントラクトであるため、後者は前者の putCurEpochConPubKeyBytes 関数を呼び出してキーパーを変更できます。
攻撃者は、verifyHeaderAndExecuteTx 関数を使用して細工されたデータを渡し、内部で _executeCrossChainTx 関数を呼び出し、最後に EthCrossChainData コントラクトの putCurEpochConPubKeyBytes 関数を実行して、キーパー ロールを攻撃者が指定したアドレスに変更します。
keeper 役割の置き換えが完了すると、攻撃者は自由に取引を構築し、契約から任意の金額の資金を引き出すことができます。
攻撃プロセス
攻撃者はまず、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数を通じてputCurEpochConPubKeyBytes関数を呼び出すことにより、キーパーを変更しました。
その後、攻撃者は一連の攻撃取引を実施し、契約から資金を引き出しました。
keeperが変更されたため、他のユーザーの正常な取引が拒否されました。
同様の攻撃もイーサリアムネットワーク上で行われており、攻撃手法は同じです。
!
まとめ
今回の攻撃の根本的な原因は、EthCrossChainData コントラクトの keeper が EthCrossChainManager コントラクトによって変更可能であり、後者の verifyHeaderAndExecuteTx 関数がユーザーから渡されたデータを実行できることにあります。攻撃者はこの設計上の欠陥を利用して、特定のデータを構築し、EthCrossChainData コントラクトの keeper アドレスを変更することで攻撃を実現しました。
この事件は、クロスチェーンプロトコルを設計する際に、権限管理とデータ検証に特に注意を払う必要があることを再度思い出させます。これは、同様のセキュリティホールが悪用されるのを防ぐためです。また、潜在的なセキュリティリスクを迅速に発見し修正するために、定期的なセキュリティ監査とバグバウンティプログラムの重要性も浮き彫りにしています。