Poly Networkのハッキングの詳細な分析:EthCrossChainDataコントラクトキーパーの役割が改ざんされています

robot
概要作成中

Poly Networkへのハッキング攻撃の詳細な分析

最近、クロスチェーン相互運用プロトコルPoly Networkがハッカーの攻撃を受け、広く注目を集めています。セキュリティチームはこの事件について詳細な分析を行い、攻撃者が精巧に構築されたデータを通じてEthCrossChainData契約のkeeper役割を変更したと考えており、以前の噂であったkeeperの秘密鍵の漏洩が原因ではないとしています。

攻撃コア

この攻撃の核心は、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数が、_executeCrossChainTx関数を通じて特定のクロスチェーントランザクションを実行できることです。 EthCrossChainData コントラクトの所有者は EthCrossChainManager コントラクトであるため、後者は EthCrossChainData コントラクトの putCurEpochConPubKeyBytes 関数を呼び出して、コントラクトのキーパーを変更できます。

攻撃者はverifyHeaderAndExecuteTx関数を通じて慎重に設計されたデータを渡すだけで、_executeCrossChainTx関数を実行し、EthCrossChainDataコントラクトのputCurEpochConPubKeyBytes関数を呼び出すことができ、keeperの役割を攻撃者が指定したアドレスに変更します。keeperの役割のアドレスが置き換えられた後、攻撃者は自由に取引を構築し、コントラクトから任意の金額の資金を引き出すことができます。

攻撃プロセス

  1. 攻撃者はまず、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数を通じてputCurEpochConPubKeyBytes関数を呼び出し、キーパーの役割を変更します。

  2. その後、攻撃者は一連の攻撃取引を実施し、契約から資金を引き出し始めました。

  3. 攻撃が完了した後、keeperが変更されたため、他のユーザーの正常な取引が拒否されました。

  4. 類似の攻撃手法もイーサリアムネットワーク上で実施されており、その過程はBSC上の攻撃と似ています。

!

まとめ

今回の攻撃の根本原因は、EthCrossChainDataコントラクトのkeeperがEthCrossChainManagerコントラクトによって変更できることにあり、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数が_executeCrossChainTx関数を介してユーザーが入力したデータを実行できることにあります。攻撃者はこの脆弱性を利用して、特定のデータを構築し、成功裏にEthCrossChainDataコントラクトのkeeperを自分が制御するアドレスに変更することで、コントラクトの資金を不正に引き出しました。

この出来事は、特にクロスチェーン操作や重要な役割管理を含む複雑なシステムにおいて、スマートコントラクトのセキュリティ監査の重要性を再度強調しています。開発チームは、同様のセキュリティ脆弱性が悪用されないように、契約の権限管理メカニズムをより慎重に設計し、実装する必要があります。

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 4
  • 共有
コメント
0/400
ChainWanderingPoetvip
· 14時間前
またハッキングされたの?契約はまだ育てられるの?
原文表示返信0
OfflineValidatorvip
· 14時間前
また別の脆弱性が発見されました
原文表示返信0
Rugpull幸存者vip
· 15時間前
また地面に押し付けられて叩かれた
原文表示返信0
airdrop_huntressvip
· 15時間前
また契約の脆弱性を見つけました、これだけですか?
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)