# Poly Networkのハッキングインシデントの分析最近、クロスチェーン相互運用プロトコルのPoly Networkがハッカーの攻撃を受け、業界で広く注目を集めました。セキュリティチームはこの事件を徹底的に分析し、攻撃者の具体的な手法と攻撃プロセスを明らかにしました。## 攻撃の原則攻撃の核心は、EthCrossChainManager コントラクトの脆弱性を利用することにあります。攻撃者は verifyHeaderAndExecuteTx 関数を通じて、巧妙に構築されたデータを渡し、成功裏に EthCrossChainData コントラクトの keeper を指定されたアドレスに変更しました。これは、以前に流布された keeper の秘密鍵が漏洩したという説と矛盾しています。## 攻撃の詳細1. EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数は、_executeCrossChainTx関数を通じて特定のクロスチェーントランザクションを実行できます。2. EthCrossChainDataコントラクトの所有者はEthCrossChainManagerコントラクトであるため、後者は前者のputCurEpochConPubKeyBytes関数を呼び出してキーパーを変更できます。3. 攻撃者は、verifyHeaderAndExecuteTx関数を使用して特別に細工されたデータを渡して、_executeCrossChainTx関数にEthCrossChainDataコントラクトのputCurEpochConPubKeyBytes関数を実行させ、キーパーを攻撃者が制御するアドレスに変更します。4. keeper 役割が置き換えられた後、攻撃者は自由に取引を構築し、契約から任意の数量の資金を引き出すことができます。## 攻撃フロー1. 攻撃者はまず、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数を通じてputCurEpochConPubKeyBytes関数を呼び出すことにより、キーパーを変更しました。2. その後、攻撃者は一連の攻撃取引を実施し、契約から資金を引き出しました。3. 攻撃が完了した後、keeperが変更されたため、他のユーザーの正常な取引が拒否されました。4. 類似の攻撃手法もイーサリアムネットワークで実施され、攻撃者は同じ操作手順を採用しました。! [](https://img-cdn.gateio.im/social/moments-c660956f1d8fcf8ee3fea90e7eb2c75f)## まとめ今回の攻撃の鍵は、EthCrossChainData コントラクトの keeper が EthCrossChainManager コントラクトによって変更可能であり、後者の verifyHeaderAndExecuteTx 関数がユーザーから渡されたデータを実行できることにあります。攻撃者はこの脆弱性を利用して特定のデータを構築し、成功裏に EthCrossChainData コントラクトの keeper を変更し、資金を盗みました。この事件は再び私たちに、クロスチェーンプロトコルの設計と実装において、権限管理とセキュリティ検証メカニズムに特に注意を払う必要があることを思い出させます。類似の攻撃が発生するのを防ぐためです。また、スマートコントラクトの監査と脆弱性検出も、特に重要な役割や権限の変更に関わる関数については、より包括的で深く行うべきです。
Poly Networkは、EthCrossChainManager契約の脆弱性によってハッキングされ、資金が失われました
Poly Networkのハッキングインシデントの分析
最近、クロスチェーン相互運用プロトコルのPoly Networkがハッカーの攻撃を受け、業界で広く注目を集めました。セキュリティチームはこの事件を徹底的に分析し、攻撃者の具体的な手法と攻撃プロセスを明らかにしました。
攻撃の原則
攻撃の核心は、EthCrossChainManager コントラクトの脆弱性を利用することにあります。攻撃者は verifyHeaderAndExecuteTx 関数を通じて、巧妙に構築されたデータを渡し、成功裏に EthCrossChainData コントラクトの keeper を指定されたアドレスに変更しました。これは、以前に流布された keeper の秘密鍵が漏洩したという説と矛盾しています。
攻撃の詳細
EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数は、_executeCrossChainTx関数を通じて特定のクロスチェーントランザクションを実行できます。
EthCrossChainDataコントラクトの所有者はEthCrossChainManagerコントラクトであるため、後者は前者のputCurEpochConPubKeyBytes関数を呼び出してキーパーを変更できます。
攻撃者は、verifyHeaderAndExecuteTx関数を使用して特別に細工されたデータを渡して、_executeCrossChainTx関数にEthCrossChainDataコントラクトのputCurEpochConPubKeyBytes関数を実行させ、キーパーを攻撃者が制御するアドレスに変更します。
keeper 役割が置き換えられた後、攻撃者は自由に取引を構築し、契約から任意の数量の資金を引き出すことができます。
攻撃フロー
攻撃者はまず、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数を通じてputCurEpochConPubKeyBytes関数を呼び出すことにより、キーパーを変更しました。
その後、攻撃者は一連の攻撃取引を実施し、契約から資金を引き出しました。
攻撃が完了した後、keeperが変更されたため、他のユーザーの正常な取引が拒否されました。
類似の攻撃手法もイーサリアムネットワークで実施され、攻撃者は同じ操作手順を採用しました。
!
まとめ
今回の攻撃の鍵は、EthCrossChainData コントラクトの keeper が EthCrossChainManager コントラクトによって変更可能であり、後者の verifyHeaderAndExecuteTx 関数がユーザーから渡されたデータを実行できることにあります。攻撃者はこの脆弱性を利用して特定のデータを構築し、成功裏に EthCrossChainData コントラクトの keeper を変更し、資金を盗みました。
この事件は再び私たちに、クロスチェーンプロトコルの設計と実装において、権限管理とセキュリティ検証メカニズムに特に注意を払う必要があることを思い出させます。類似の攻撃が発生するのを防ぐためです。また、スマートコントラクトの監査と脆弱性検出も、特に重要な役割や権限の変更に関わる関数については、より包括的で深く行うべきです。