# Poly ネットワークに対するハッカーの攻撃の分析近日、クロスチェーン相互運用プロトコルPoly Networkがハッカーの攻撃を受け、業界の広範な関心を引き起こしました。セキュリティチームの分析によると、今回の攻撃はkeeperの秘密鍵の漏洩によるものではなく、攻撃者が巧妙に構築したデータを通じて、EthCrossChainData契約のkeeperアドレスを成功裏に変更しました。## 攻撃の詳細1. この攻撃の核心は、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数が、_executeCrossChainTx関数を通じて特定のクロスチェーントランザクションを実行できることです。2. EthCrossChainDataコントラクトの所有権はEthCrossChainManagerコントラクトに帰属し、EthCrossChainManagerコントラクトはputCurEpochConPubKeyBytes関数を呼び出してキーパーを変更することができます。3. 攻撃者は、verifyHeaderAndExecuteTx関数の機能を使用して巧妙に作成されたデータを渡して、_executeCrossChainTx関数にEthCrossChainDataコントラクトのputCurEpochConPubKeyBytes関数を呼び出させ、キーパーの役割を攻撃者が指定したアドレスに変更します。4. keeperの役割の置き換えが完了すると、攻撃者は自由に取引を構築し、契約から任意の金額の資金を引き出すことができます。## 攻撃プロセス1. 攻撃者はまず、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数を通じてputCurEpochConPubKeyBytes関数を呼び出し、キーパーの変更に成功します。2. その後、攻撃者は一連の攻撃取引を実施し、契約から資金を引き出し始めました。3. keeperが変更されたため、他のユーザーの正常な取引が拒否されました。4. この攻撃パターンはBSCチェーン上だけでなく、イーサリアムネットワーク上でも類似の操作が見られました。! [](https://img-cdn.gateio.im/social/moments-c660956f1d8fcf8ee3fea90e7eb2c75f)## まとめ今回の攻撃の根本的な原因は、EthCrossChainDataコントラクトのkeeperがEthCrossChainManagerコントラクトによって変更可能であり、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数がユーザーから渡されたデータを実行できることにあります。攻撃者はこの設計上の脆弱性を利用し、巧妙に構築されたデータを通じてEthCrossChainDataコントラクトのkeeperアドレスを変更し、資金を盗むことに成功しました。この事件は、スマートコントラクトの設計において、権限管理と関数呼び出しの安全性が極めて重要であることを再度私たちに思い出させます。
Poly Networkがハッキングされました:EthCrossChainDataコントラクトキーパーが改ざんされました
Poly ネットワークに対するハッカーの攻撃の分析
近日、クロスチェーン相互運用プロトコルPoly Networkがハッカーの攻撃を受け、業界の広範な関心を引き起こしました。セキュリティチームの分析によると、今回の攻撃はkeeperの秘密鍵の漏洩によるものではなく、攻撃者が巧妙に構築したデータを通じて、EthCrossChainData契約のkeeperアドレスを成功裏に変更しました。
攻撃の詳細
この攻撃の核心は、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数が、_executeCrossChainTx関数を通じて特定のクロスチェーントランザクションを実行できることです。
EthCrossChainDataコントラクトの所有権はEthCrossChainManagerコントラクトに帰属し、EthCrossChainManagerコントラクトはputCurEpochConPubKeyBytes関数を呼び出してキーパーを変更することができます。
攻撃者は、verifyHeaderAndExecuteTx関数の機能を使用して巧妙に作成されたデータを渡して、_executeCrossChainTx関数にEthCrossChainDataコントラクトのputCurEpochConPubKeyBytes関数を呼び出させ、キーパーの役割を攻撃者が指定したアドレスに変更します。
keeperの役割の置き換えが完了すると、攻撃者は自由に取引を構築し、契約から任意の金額の資金を引き出すことができます。
攻撃プロセス
攻撃者はまず、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数を通じてputCurEpochConPubKeyBytes関数を呼び出し、キーパーの変更に成功します。
その後、攻撃者は一連の攻撃取引を実施し、契約から資金を引き出し始めました。
keeperが変更されたため、他のユーザーの正常な取引が拒否されました。
この攻撃パターンはBSCチェーン上だけでなく、イーサリアムネットワーク上でも類似の操作が見られました。
!
まとめ
今回の攻撃の根本的な原因は、EthCrossChainDataコントラクトのkeeperがEthCrossChainManagerコントラクトによって変更可能であり、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数がユーザーから渡されたデータを実行できることにあります。攻撃者はこの設計上の脆弱性を利用し、巧妙に構築されたデータを通じてEthCrossChainDataコントラクトのkeeperアドレスを変更し、資金を盗むことに成功しました。この事件は、スマートコントラクトの設計において、権限管理と関数呼び出しの安全性が極めて重要であることを再度私たちに思い出させます。