# Poly Networkがハッカーによる攻撃を受けた事件の分析近日、クロスチェーン相互運用プロトコルPoly Networkがハッカーの攻撃を受け、広範な関心を引き起こしました。セキュリティチームの詳細な分析によると、攻撃者はkeeperの秘密鍵の漏洩を通じて攻撃を実施したのではなく、契約の脆弱性を利用しました。## 攻撃の原則この攻撃の核心は、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数が、_executeCrossChainTx関数を通じて特定のクロスチェーントランザクションを実行できることです。 EthCrossChainData コントラクトの所有者は EthCrossChainManager コントラクトであるため、後者は前者の putCurEpochConPubKeyBytes 関数を呼び出してコントラクトのキーパーを変更できます。慎重に細工されたデータをverifyHeaderAndExecuteTx関数に渡すことで、攻撃者は_executeCrossChainTx関数にEthCrossChainDataコントラクトのputCurEpochConPubKeyBytes関数の呼び出しを実行させ、キーパーの役割を攻撃者が指定したアドレスに変更します。 キーパーの役割が置き換えられると、攻撃者は自由に取引を構築し、コントラクトから任意の金額の資金を引き出すことができます。## 攻撃プロセス1. 攻撃者はまず、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数を通じてputCurEpochConPubKeyBytes関数を呼び出し、キーパーを変更します。2. その後、攻撃者は変更された権限を利用して一連の攻撃取引を実施し、契約から資金を引き出しました。3. keeperが変更されたため、他のユーザーの正常な取引が拒否されました。4. この攻撃パターンはBSCチェーンだけでなく、イーサリアムネットワークでも同様の攻撃操作が発生しました。## まとめこの攻撃の根本的な原因は、EthCrossChainData コントラクトのキーパーが EthCrossChainManager コントラクトによって変更される可能性があり、EthCrossChainManager コントラクトの verifyHeaderAndExecuteTx 関数が _executeCrossChainTx 関数を通じてユーザーが入力したデータを実行できることです。 攻撃者は、この設計上の欠陥を利用して、特定のデータを構築することでEthCrossChainDataコントラクトのキーパーを変更し、資金の盗難を達成しました。この出来事は再びクロスチェーンプロトコルのセキュリティ設計の重要性を浮き彫りにし、特に権限管理や関数呼び出しに関しては、より厳格な監査と制限が必要です。分散型金融プロジェクトにとって、継続的なセキュリティ監査とバグ修正は、同様の攻撃事件の発生を防ぐために極めて重要です。! [](https://img-cdn.gateio.im/social/moments-c660956f1d8fcf8ee3fea90e7eb2c75f)
Poly Networkがハッカーの攻撃を受ける:契約の脆弱性によりkeeperが改ざんされる
Poly Networkがハッカーによる攻撃を受けた事件の分析
近日、クロスチェーン相互運用プロトコルPoly Networkがハッカーの攻撃を受け、広範な関心を引き起こしました。セキュリティチームの詳細な分析によると、攻撃者はkeeperの秘密鍵の漏洩を通じて攻撃を実施したのではなく、契約の脆弱性を利用しました。
攻撃の原則
この攻撃の核心は、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数が、_executeCrossChainTx関数を通じて特定のクロスチェーントランザクションを実行できることです。 EthCrossChainData コントラクトの所有者は EthCrossChainManager コントラクトであるため、後者は前者の putCurEpochConPubKeyBytes 関数を呼び出してコントラクトのキーパーを変更できます。
慎重に細工されたデータをverifyHeaderAndExecuteTx関数に渡すことで、攻撃者は_executeCrossChainTx関数にEthCrossChainDataコントラクトのputCurEpochConPubKeyBytes関数の呼び出しを実行させ、キーパーの役割を攻撃者が指定したアドレスに変更します。 キーパーの役割が置き換えられると、攻撃者は自由に取引を構築し、コントラクトから任意の金額の資金を引き出すことができます。
攻撃プロセス
攻撃者はまず、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数を通じてputCurEpochConPubKeyBytes関数を呼び出し、キーパーを変更します。
その後、攻撃者は変更された権限を利用して一連の攻撃取引を実施し、契約から資金を引き出しました。
keeperが変更されたため、他のユーザーの正常な取引が拒否されました。
この攻撃パターンはBSCチェーンだけでなく、イーサリアムネットワークでも同様の攻撃操作が発生しました。
まとめ
この攻撃の根本的な原因は、EthCrossChainData コントラクトのキーパーが EthCrossChainManager コントラクトによって変更される可能性があり、EthCrossChainManager コントラクトの verifyHeaderAndExecuteTx 関数が _executeCrossChainTx 関数を通じてユーザーが入力したデータを実行できることです。 攻撃者は、この設計上の欠陥を利用して、特定のデータを構築することでEthCrossChainDataコントラクトのキーパーを変更し、資金の盗難を達成しました。
この出来事は再びクロスチェーンプロトコルのセキュリティ設計の重要性を浮き彫りにし、特に権限管理や関数呼び出しに関しては、より厳格な監査と制限が必要です。分散型金融プロジェクトにとって、継続的なセキュリティ監査とバグ修正は、同様の攻撃事件の発生を防ぐために極めて重要です。
!