Poly Networkスマートコントラクト脆弱性分析:攻撃者がどのようにkeeper役割を改ざんして資金を取得するか

robot
概要作成中

Poly Networkのセキュリティ脆弱性分析:攻撃者はどのように契約の脆弱性を利用して権限を改ざんするのか

最近、クロスチェーン相互運用プロトコルPoly Networkが重大なセキュリティ事件に見舞われ、業界の広範な関心を引き起こしました。セキュリティ専門家の分析によると、今回の攻撃は秘密鍵の漏洩によるものではなく、攻撃者がスマートコントラクト内の脆弱性を巧みに利用したためです。

このイベントの核心は、EthCrossChainManager コントラクトの verifyHeaderAndExecuteTx 関数の設計上の欠陥にあります。 この関数は、内部_executeCrossChainTx関数を通じてユーザー指定のクロスチェーントランザクションを実行できます。 攻撃者はこれを悪用して、特定のデータを構築して_executeCrossChainTx関数にEthCrossChainDataコントラクトのputCurEpochConPubKeyBytes関数を呼び出させ、キーパーロールによって攻撃者が制御するアドレスを改ざんしました。

具体的な攻撃プロセスは以下の通りです:

  1. 攻撃者はまず、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数を呼び出し、慎重に作成されたデータを渡します。

  2. この関数は_executeCrossChainTx内部で実行され、EthCrossChainData コントラクトの putCurEpochConPubKeyBytes 関数を呼び出します。

  3. putCurEpochConPubKeyBytes関数が実行され、キーパーロールのアドレスが攻撃者によって指定されたアドレスに変更されます。

  4. keeperが置き換えられた後、攻撃者は操作権を取得し、自由に取引を構築して契約から資金を引き出すことができます。

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

この攻撃手法はBSCとイーサリアムチェーンの両方で利用されています。攻撃の鍵は、EthCrossChainDataコントラクトのkeeperがEthCrossChainManagerコントラクトによって変更可能であり、後者はユーザーが入力した任意のデータを実行できることです。この設計には深刻なセキュリティ上の欠陥があり、攻撃者に好機を提供しています。

!

この事件は、スマートコントラクトの安全性が重要であることを再度示しています。開発チームは、コントラクトを設計する際に、さまざまな攻撃シナリオを十分に考慮し、重要な関数の呼び出し権限を厳しく制限し、包括的な安全監査を実施する必要があります。また、分散型プロジェクトも緊急事態に対応するために、より洗練されたガバナンスメカニズムを構築する必要があります。

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 8
  • 共有
コメント
0/400
FomoAnxietyvip
· 07-21 14:29
天天カモにされる
原文表示返信0
airdrop_whisperervip
· 07-20 03:50
またスマートコントラクトの脆弱性です
原文表示返信0
blocksnarkvip
· 07-18 15:43
またスマートコントラクトのせいだ
原文表示返信0
NFT_Therapyvip
· 07-18 15:40
典中典、もう一つのスマートコントラクトの失敗
原文表示返信0
BTCRetirementFundvip
· 07-18 15:37
また契約が脆弱性を突かれたのですか?
原文表示返信0
MemeKingNFTvip
· 07-18 15:33
また神様に盗まれる日が来ましたね、江湖はまるで大浪のように砂を淘汰しています、どの家の契約がまだ穴を塞いでいないか見てみましょう。
原文表示返信0
nft_widowvip
· 07-18 15:29
また契約のせいだ
原文表示返信0
rekt_but_not_brokevip
· 07-18 15:20
またプロジェクトがggになった。
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)